Code26 juni 2025· 4 min lezen

Hello Gold Digger!

Een klein retro mijnspel bouwen in een paar avonden — samen met een AI die de saaie helft voor z'n rekening neemt.

Gold Digger in beeld: de mijnwerker staat linksboven in de aarde, met goudklompen verspreid over het speelveld en een houten stadje erboven
Gold Digger in beeld: de mijnwerker staat linksboven in de aarde, met goudklompen verspreid over het speelveld en een houten stadje erboven

Ik wilde weten hoe ver je komt als je een spelletje níet zelf uittypt, maar uitlegt. Niet als experiment met een deadline, gewoon een paar avonden na het eten. Het resultaat is Gold Digger: een mini-mijnspel in de stijl van het aloude Digger. Graven, goud zoeken, wegblijven bij de wormen.

Gold Digger in beeld: de mijnwerker staat linksboven in de aarde, met goudklompen verspreid over het speelveld en een houten stadje erboven

Het spel in drie regels

Je begint linksboven in een veld van 12×12 tegels aarde. Elke tegel waar je overheen loopt graaf je weg, en ergens onder die aarde liggen tien goudklompen. Verzamel ze alle tien en je wint. Maar in de gangen die je zelf graaft verschijnen wormen — elke vier seconden eentje, tot er vijf zijn. Raken ze je aan, dan is het klaar.

ToetsActie
PijltjestoetsenGraven en bewegen
Verder is er niks. Dat is het hele spel.

Dat laatste is geen bescheidenheid maar het punt: hoe kleiner de regels, hoe eerder je iets hebt dat je echt kunt spélen in plaats van iets dat "bijna af" is.

Wat de AI goed deed

De game loop. Serieus, dat scheelde het meeste. "Canvas van 12 bij 12 tegels van 32 pixels, speler beweegt op de pijltjes, maximaal één stap per 200 milliseconde" — en daar rolt een requestAnimationFrame-lus uit die klopt. Inclusief het onderscheid tussen wat in React-state hoort (de score, of je gewonnen hebt) en wat je in een useRef moet parkeren omdat je het zestig keer per seconde aanraakt en er geen re-render bij wilt.

Dat is precies het soort code waar ik zelf traag in ben. Niet moeilijk, wel priegelig, en je bent zo een avond kwijt aan een off-by-one in je tegelcoördinaten.

Ook fijn: de pixel art.

Titelscherm van Gold Digger: een houten stadje met een STORE boven de grond, daaronder de mijnwerker met pikhouweel tussen goudklompen en twee wormen

De hele tileset is één plaatje van 128×128 met zestien vakjes van 32 pixels. Bovenste rij de mijnwerker in drie standen, daaronder weggegraven grond, dan de worm in drie standen, en onderin de aarde en het goud. Uit de tekening rolt dan dit soort saaie maar noodzakelijke boekhouding:

const tileMap = {
  dirt:  { x: 0,  y: 96 },
  gold:  { x: 96, y: 96 },
  empty: { x: 0,  y: 32 },
}

Wat ik zelf moest doen

Bijna alles wat met gevoel te maken heeft.

De eerste versie liet je vloeiend bewegen, en dat was meteen fout — een graafspel moet schokkerig zijn, tegel voor tegel, zodat je bij elke stap even beslist. Die 200 milliseconde tussen twee stappen is er niet uit gerekend maar uit spelen gekomen. Te snel en het wordt paniek, te traag en het voelt als door stroop lopen.

Hetzelfde met de wormen. Die kwamen aanvankelijk recht op je af, en dat maakte het spel oneerlijk en saai tegelijk: je verliest zonder dat je iets te kiezen had. Nu zoeken ze willekeurig hun weg door de gangen die jij hebt gegraven. Dat is niet alleen aardiger, het is ook een leuker idee — jouw eigen tunnels zijn het probleem. Hoe meer je graaft, hoe meer ruimte ze hebben.

En de vondst dat ze alléén door lege tegels kunnen, dus dat ongegraven aarde veilig is, kwam ook pas tijdens het spelen. Zulke dingen bedenkt geen enkel model voor je, omdat ze niet in de opdracht zaten. Ze zitten in het spelen.

De les

De verdeling die uit deze paar avonden kwam voelt logisch: de AI schreef het raamwerk, ik deed de afstelling. Alles wat je kunt opschrijven als regel ging snel. Alles waarvan je pas na twintig potjes weet of het klopt, moest ik zelf doen.

Het aardigste effect zit hem in wat er níet gebeurde. Normaal strandt zo'n zijproject in de eerste avond, ergens tussen het opzetten van de build en het uitzoeken hoe een sprite sheet ook alweer werkt. Die avond was nu ongeveer een halfuur. Wat overbleef was de leuke helft.

Er is geen level twee, geen geluid, geen highscore. Het is tien klompjes goud en een paar wormen, en het is af. Ook dat is een prima uitkomst voor een zijproject.

Speel Gold Digger direct in de browser →

Veel graafplezier.

▶ GERELATEERD