Wayfarer's Gate
Een action-RPG in één week, gebouwd om te zien wat AI niet kan.
- Jaar
- 2026
- Rol
- Ontwerp, bouw en balans. Alleen.
- Status
- live
- Stack
- Phaser 3, TypeScript, Vite, Colyseus, Postgres, Playwright
Een 2D action-RPG die in de browser draait. Je begint in een stadje, traint, vecht buiten de poorten, verzamelt loot en ontgrendelt langzaam dungeons en arena's. Vier klassen, zesentwintig skills, tien bossen en een aparte server voor samen spelen.
De vraag was niet of er een spel uit zou komen. De vraag was waar de grens ligt: wat kun je in een week met agentische AI bouwen, en welk deel van het werk weigert zich te laten uitbesteden. Een spel is daar een goede testcase voor, want het is pas af als het goed voelt, en gevoel staat in geen enkele specificatie.
Werkt op een breed scherm. Toetsenbord of muis.Openen in een nieuw tabblad
De documenten waren de bron, niet de code
Achtentwintig ontwerpdocumenten stuurden de bouw, inclusief een expliciete psychologische laag: hoe de speler wordt vastgehouden, wat hij per fase mag weten, en waarom een beloning ook een volgende vraag moet openen. De agents lazen die documenten en schreven de code.
Eén plek waar een klap wordt afgehandeld
Het gevechtssysteem is de enige autoriteit voor treffers, projectielen en zones. Aanvallen zijn datatabellen, geen losse code per skill. Daardoor kon één correctie in de schadeberekening in alle klassen tegelijk landen.
Balanceren met gesimuleerde spelers
Vijf simulatie-agents speelden vier klassen door en beoordeelden progressie, keuzedichtheid en buildidentiteit. Die audit vond dat het upgradesysteem elf opeenvolgende aankopen was zonder één echte keuze.
Met de hand afgesteld waar het telt
Alle bossen zijn opnieuw ingesteld op een ritme van korte prikken, zware inzetten en fasebreuken, met langere en beter leesbare aankondigingen. Die getallen zijn met de hand gezet, na spelen.

- 01
Timing en gevoel gaan niet naar de machine
AanleidingEen taalmodel weet dat de ene duur langer is dan de andere. Het weet niet hoe een seconde voelt. Gevraagd om een boss-aanval met 400 milliseconden aankondiging en 900 milliseconden herstel komen er plausibele getallen terug die negen van de tien keer verkeerd zijn.
KeuzeElke aankondiging, elk herstel en elk strafvenster is met de hand gezet na spelen. De rest van de sprint bleef wel uitbesteed.
Wat het kostteHet duurste deel van de week ging naar het deel dat niemand op een screenshot ziet. Ook bij de beste modellen die er nu zijn.
- 02
Perfecte balans ging eruit
AanleidingEen balansscript liep het hele spel droog door en leverde een nette, voorspelbare curve op. Daarmee was elke keuze even goed, en dus geen keuze meer.
KeuzeBewuste asymmetrie ging erin. Sommige items zijn met opzet zwak, andere duidelijk sterk, en er staan krachtpieken op vaste plekken die aanvoelen als een ontdekking terwijl ze volledig van tevoren vastliggen.
Wat het kostteHet spel is niet meer eerlijk in de wiskundige zin. Een speler die de verkeerde tak kiest, merkt dat.
- 03
Een tutorial werkt pas als je iets wilt kunnen
AanleidingDe uitleg kwam na de mechanieken. Toen die er eenmaal was, werkte hij nog steeds niet: uitleggen hoe iets werkt is niet hetzelfde als iemand het laten willen.
KeuzeDe uitleg verhuisde naar het moment waarop je vastloopt zonder de techniek. Dan is het geen huiswerk meer maar een antwoord.
Wat het kostteDe eerste minuten moesten opnieuw, en het onboardingontwerp kwam later dan het had gemoeten.
- Speelbaar in de browser, met een aparte realtime server voor samen spelen.
- Vier klassen, zesentwintig skills met eigen ontgrendelniveaus, en tien bossen met een eigen projectielidentiteit.
- Aanraakbesturing met twee sticks, gyroscoopbesturing en een landschapsmodus voor telefoons.
- Opslag met versiebeheer, foutmonitoring en end-to-end tests.
De beveiliging tegen opslag uit twee tabbladen is er weer uitgehaald. Die sloeg alarm tijdens gewoon spelen in één tabblad, en de melding kwam daarna bij elke schermwissel terug. De schade van een vals alarm was groter dan de bescherming waard was. Terughalen zou moeten via één gedeelde leesroute, niet via een tweede administratie ernaast.