Ook te lezen in het Engels (English)
Ik ben een enthousiaste Java programmeur en game developer. Ook ken ik mijn weg rond Linux en de command line. Hieronder heb ik een paar van mijn projecten beschreven.
Ik heb ervaring met JUnit, Docker, Maven en Git, en heb ook mijn Oracle Certified Associate diploma behaald. Ook heb ik gebruik gemaakt van PHP, MongoDB, en MySQL om websites op te stellen. Daarbij gebruikt deze site Javascript om e-mails en links te beschermen tegen crawlers.
Op de middelbare school kwam ik in aanraking met Game Maker, waar ik mijn eerste stapjes had gezet in de wereld van programmeren en game design. In mijn vrije tijd werkte ik aan allerlei ideeën en projectjes. Hierdoor leerde ik vanzelf GML.
Blue Hotel is een arcade-achtige - maar toch verhaalgedreven - top-down shooter, gemaakt met de hulp van een goede vriend.
Ondanks zijn pixelachtige uiterlijk, is er veel oog voor detail in speelelementen zoals bloed, wapengebruik, en de manier waarop vijanden situaties aanpakken. Het project was rond maart 2015 gestart, en heeft door de jaren heen een aantal herzieningen gehad.
Gyroclock was een simpel maar verslavend spel. Een top down shooter met geometrische figuren.
Het uiterlijk was simpel, maar erg ‘trippy.’ Het originele project van Gyroclock was verloren geraakt, maar er is nog een speelbare versie te vinden op Dropbox.
Sinds mid 2019 is Gyroclock compleet herschreven voor Android, met nog meer nadruk op de ‘trippy’ visuele stijl en strakke gameplay. Ook is er nieuwe AI voor vijanden en een puntensysteem. Deze is te vinden op de Play Store.
Toen ik met mijn cursus Applicatie Ontwikkeling en Mediabeheer begon, koos ik voor Java als mijn eerste echte programmeertaal. Net als met Game Maker’s GML had ik de syntax - en later ook objectgeoriënteerd denken - mijzelf aangeleerd. Rond februari 2018 was ik comfortabel genoeg met de taal om de cursus Java programmeren bij het LOI te starten. Sinds dien ben ik in bezit van het Oracle Certified Associate-certificaat.
LockHead was een gemodificeerde Minecraft client met cheats en andere snufjes.
Ondanks dat dit mijn eerste Java project was, was het vrij geavanceerd. Het had de mogelijkheid om meerdere anti-cheat systemen te omzeilen op multiplayer servers.
Skynet was mijn eigen anti-cheat project voor Minecraft.
Skynet maakte gebruik van een zelf geschreven plug-in systeem door middel van classloaders, die de mogelijkheid gaf om zelf dynamisch cheat detectie code toe te voegen of te verwijderen, zonder dat de server opnieuw opgestart moest worden. Elke module was zijn eigen jar-bestand. Skynet zelf bevatte geen detectie code, en kon dus vrijgegeven worden, open-source. Andere developers konden hiervan gebruik maken.
LPF (Light Plug-in Framework) is een makkelijk te gebruiken, event-driven plug-in framework.
Het was ontworpen om makkelijk toegevoegd te kunnen worden aan ieder project, en is eenvoudig uit te breiden en te gebruiken. Plug-in developers kunnen met gemak methoden schrijven die via Java Annotations luisteren naar events.
LZombie was een core plug-in die de server veranderde in een zombie apocalyps.
Ondanks dat het nooit was afgemaakt, bevatte het wel een zelfgemaakte zombie AI, loot chests, een chat die alleen werkte met spelers in de omgeving en enkel hun namen liet zien als de speler hun gezien zou hebben. Zombies konden je horen en ruiken, en chests bevatte willekeurige items.
Odd Folk is een roguelike spel, open-source en in Java.
Het spel vond plaats in de nasleep van een post-apocalyptische wereld, waarin de samenleving terug naar stap 1 is gezet. Het spel maakte gebruik van willekeurig gegenereerde werelden, en de speler mocht doen wat hij niet laten kon. Het verhaal is dus in jouw handen. Elk wezen en voorwerp kon op elkaar inwerken, elk voorwerp kon gebruikt worden als wapen of gereedschap. Elk wezen kon doodgemaakt worden, of permanent verwond raken, enzovoorts. Maar, elke actie die de speler onderneemt had consequenties.
Het spel maakt gebruik van het JSON-formaat om het makkelijk te maken om zelf voorwerpen toe te voegen aan het spel. Items hebben zogenaamde ‘flags’ waarmee je aan kunt geven waar het item voor bedoeld is. Ook kunnen eigenschappen worden toegewezen. Daarnaast zijn er ‘structures’, welke gebruikt worden voor het genereren van de wereld. Ook deze kunnen in JSON-formaat worden toegevoegd. Alles in het spel wordt zo abstract mogelijk gehouden, zodat plug-ins (waarbij LPF wordt gebruikt) en modificaties zo makkelijk mogelijk gemaakt kunnen worden.
In het verleden heb ik mij bezig gehouden met parttime banen als developer voor verscheidene Minecraft servers.
Sarefine was een server die zich adverteerde als PvP, speler tegen speler. Men kon er terecht voor de zogenaamde Practice PvP modus, waarin je één op één-gevechten doet, om zo jouw weg op de leaderboards te beklimmen.
LFilter was een spamfilter plug-in die stilletjes berichten van spelers tegenhield als deze woorden bevatten die op een spamlijst staan.
De speler merkte dit niet, want het bericht was enkel verborgen voor anderen.
StaffMode was een plug-in speciaal voor serverbeheerders.
Het bevatte enkele sneltoetsen en interfaces voor commando’s, zodat deze makkelijk te bereiken waren voor beheerders. Ook bevatte het zelfgemaakte commando’s, die ervoor zorgde dat je jezelf onzichtbaar kon maken, of de inventory van een speler kon bekijken, of het aantal kliks-per-seconde (voor autoclickers) kon zien.
GhostBuster was de anti-cheat van dezer server.
Sinds de originele developer was gestopt, had ik het project overgenomen, waarbij ik enkele detectiesystemen had verbeterd.
Net zoals Sarefine, was Systic een PvP server. Deze legde zijn focus op Practice, maar ook Free For All. Mijn anti-cheat, Skynet, werd hier gebruikt.
Barrier was was de anti-spam plug-in, en de verbeterde versie van LFilter.
Naast snel opeenvolgende berichten, was deze plug-in ook in staat andere soorten spam te detecteren, zoals advertenties, fors gebruik van de bovenkast en willekeurige letters.
Advisor was een ban-manager met een chat menu waarop je kon klikken.
Het bood beheerders de mogelijkheid om een speler te kiezen, en vervolgens te klikken op regels die hij of zij gebroken had. Advisor deed de rest.
FFA was de core plug-in die Free For All tot leven bracht.
Het spel was simpel; je begint met een standaard uitrusting met een harnas en zwaard, en healing items. Speciale bordjes waren verspreid over het veld, welke je kon klikken om nieuwe healing items te halen. Het doel was om zo veel mogelijk kills te behalen en tegelijkertijd zo min mogelijk dood te gaan. Degene met de hoogste K/D ratio kwam bovenaan de leader boards te staan. Voor elke kill kreeg je punten. Als je dood ging verloor je er een paar. Met deze punten kon je tijdelijke upgrades kopen.
Ik kan mijn weg goed vinden in de volgende software:
Engels
10+ jaar, vloeiend
Game Maker 8.1
10+ jaar, expert
Game Maker Studio 1.4
5+ jaar, gevorderd
Game Maker Studio 2
3+ jaar, gevorderd
Eclipse Java IDE
5+ jaar, expert
IntelliJ IDEA
4+ jaar, gevorderd
Vim or Neovim
4+ jaar, gevorderd
Git (vooral bij gebruik van GitLab of GitHub)
3+ jaar, gevorderd
Apache HTTP, MongoDB, MySQL (MariaDB), PHP
3+ jaar, gevorderd
De Linux command line, maar vooral in:
Arch Linux en ervan afgeleid
5+ jaar, gevorderd
Alpine Linux
2+ jaar, gevorderd
JUnit, Maven, Gradle
2+ jaar
HTML, CSS, JS
1+ jaar