Protect Your Eggs

Schrijven · 13 sep 2026

Protect Your Eggs

Een game bouwen met mijn zoon van zeven

Op zondag 13 september bouwden mijn zoon Jurre (7) en ik een game. Hij speelt Roblox op zijn iPad, ik wilde zien wat er gebeurt als een kind zelf een AI-agent aanstuurt. Aan het eind van de avond was er resultaat: een multiplayer game: Protect Your Eggs. Deze post gaat over hoe dat ging, wat de game doet, en wie het wanneer overnam.

De prompt

Ik maakte een klein beginnetje met een simpele prompt: laten we een game maken die een kruising is tussen Minecraft, Flappy Bird en Roblox' Steal an Egg. In HTML5 en Three.js omdat ik weet dat dat op elk platform goed draait, van een Linux-laptop tot een iPad. De agent was Claude Code op de Framework 12 met Omarchy, dezelfde machine waarop ik deze notities schrijf. Twintig minuten later stond er een blokkerig veld met vier bases, een markt met eieren in het midden, bots die stelen, en een speler die flappert als een vogel. Het draaide vanaf een bestand op de schijf, geen server, niets geïnstalleerd.

Dat was mijn deel. Toen ging Jurre zitten.

Zondagmiddag: Jurre achter de Framework 12, hij typt zelf de volgende verbetering, zijn iPad naast hem op de grond
Zondagmiddag: Jurre achter de Framework 12, hij typt zelf de volgende verbetering, zijn iPad naast hem op de grond

Jurre neemt het toetsenbord

Hij kent Roblox beter dan ik, dus hij typte de verbeteringen zelf. Letterlijk: een zevenjarige achter het toetsenbord van een Linux-laptop, die in zijn eigen woorden intypt wat hij cool zou vinden. Dat je bewakers kunt kopen. Dat er meer monsters komen naarmate je level hoger wordt. Dat er om negen uur 's ochtends op zaterdag admin abuse is tijdens onweer. Dat je een loopband kunt kopen tot level 100, en een slot dat iedereen uit je basis houdt maar waardoor je zelf ook geen eieren kunt pakken. Later: mythische, geheime, eeuwige en goddelijke eieren, en dat je kunt kiezen hoe lang een ronde duurt.

Dit is een geval waarin programmeren in natuurlijke taal wint. Hij verwoordt de mechanieken die hij leuk vindt, en een paar minuten later proberen we ze. De echte oefening voor hem is de woorden vinden: wat is er fout, wat kan beter, wat zou geweldig zijn. Ik denk dat die vaardigheid veel verder rendeert dan gameontwikkeling.

De eerste versie op het scherm: een blokkerig veld, vier bases, eieren op de markt, bots op weg om te stelen
De eerste versie op het scherm: een blokkerig veld, vier bases, eieren op de markt, bots op weg om te stelen

Twaalf minuten

Ik stond versteld van de snelheid. Hij niet. Halverwege de middag, terwijl de agent de game herschreef voor multiplayer, verzuchtte hij: we wachten al twaalf minuten, papa, dit duurt zo lang. Perspectief verandert snel. Voor mij zijn twaalf minuten voor een gameserver sciencefiction. Voor hem is het de tijd tussen een idee en het moment dat hij het kan spelen, en dat voelde traag. In Snelle iteratie in agentic loops schreef ik dat de loop zo kort mogelijk moet zijn. Een kind vertelt je hetzelfde zonder de theorie.

De iPad, zoals hij speelt: touchbediening via wifi vanaf de machine in het homelab, op de grond en op de bank
De iPad, zoals hij speelt: touchbediening via wifi vanaf de machine in het homelab, op de grond en op de bank

Op de iPad

Hij wilde touchbediening, want zo speelt hij. Dus zetten we een kleine server op de machine in het homelab en speelden we de game via wifi op zijn iPad, met een Roblox-achtige joystick en een grote springknop. Dat maakte de game ook tot wat hij nu is: echte multiplayer. Tot acht spelers, lege plekken gevuld door bots, en als de eerste mens een kamer met alleen bots binnenkomt, begint de ronde opnieuw zodat het doel, als eerste level 10, eerlijk is. Hij testte, ik repareerde. De overslaan-knop van de tutorial die op de iPad niets deed, de winkelknoppen die onder de bediening verdwenen, een blauwe balk onderaan het scherm. De opwinding tijdens het debuggen geeft energie.

YOU WIN: level 10 gehaald, de eerste keer dat hij de bots versloeg
YOU WIN: level 10 gehaald, de eerste keer dat hij de bots versloeg

Papa neemt het over

Een game die op een laptop op de salontafel leeft is speelgoed. Een game met een adres is een product, en die stap was van mij. De avond ging op aan de dingen die een kind niet ziet: een naam, gekozen door Jurre, en een logo. Een domein, protect-your-eggs.dsd164.com, en dezelfde keten die ik voor mijn andere apps gebruik: de server in het homelab, achter de cloud. Een pagina over privacy en kinderveiligheid, zo geschreven dat een kind het kan lezen: geen dataverzameling, geen chat, grove namen worden automatisch vervangen, geen accounts, geen reclame, geen aankopen. Een icoon zodat het op een beginscherm kan. Statistieken, zodat ik kan zien hoeveel mensen spelen en hoe de server het houdt. Niet het leuke deel, maar het deel dat het echt maakt.

Jurre wint! De ronde die hij vanaf de bank speelde terwijl ik op de laptop naar de eindstand keek
Jurre wint! De ronde die hij vanaf de bank speelde terwijl ik op de laptop naar de eindstand keek

De game

Protect Your Eggs is simpel. Pak eieren van de markt in het midden, breng ze naar huis, leg ze in je nesten. Eieren in je nesten betalen munten. Munten vullen je levelbalk en kopen bewakers, extra nesten, flappen, schoenen, een grotere basis, een hamer en de loopband. Anderen stelen van jou, jij steelt van hen. Elk level komt er een monster bij. Onweer brengt extra eieren en bliksem. ADMIN ABUSE brengt vijftien seconden maanzwaartekracht, eierregen of reuzen. Rondes duren vijf minuten, wie het eerst level 10 haalt wint. Het werkt met toetsenbord en touch, op een telefoon, een tablet of een laptop, in de browser, gratis.

De schermafbeeldingen zijn van vandaag. Er zal nog veel veranderen, dit is de eerste dag van een game.

De schermen van vandaag: spelen met toetsenbord op de laptop, en de touchindeling met de Roblox-achtige joystick en springknop. Werk in uitvoering
De schermen van vandaag: spelen met toetsenbord op de laptop, en de touchindeling met de Roblox-achtige joystick en springknop. Werk in uitvoering

Jurres spaarpot

Nog een ding waar hij om vroeg. Jurre spaart voor zijn eerste echte laptop, en hij wilde een manier waarop mensen kunnen helpen. Dus zit er een spaarpotknop in de game met een eenmalige betaallink: doe een muntje in Jurres spaarpot. Elke cent gaat naar hem. Geen abonnementen, er gaat niets open in de game, geen tracking, helemaal vrijblijvend. Kun je niet doneren? Vertel je vrienden over zijn game, dat helpt net zo goed.

Het startscherm: een naam, PLAY, en Jurres spaarpot
Het startscherm: een naam, PLAY, en Jurres spaarpot

Conclusie

Wat ik deze zondag leerde gaat niet over de agent. Ik wist al dat die in een middag een game kan bouwen; in februari schreef ik over drie games in drie weken. Wat ik niet wist is hoe vanzelfsprekend een zevenjarige het stuur pakt als de enige vereiste vaardigheid is dat je zegt wat je wilt. Hij leerde vandaag niet programmeren. Hij leerde dat een idee, hardop en duidelijk gezegd, iets wordt dat je kunt spelen. Het wachten, hooguit twaalf minuten, was voor hem het moeilijkste. Ik vermoed dat dat voor zijn generatie altijd zo zal blijven.

← Meer verhalen