Night Eagle — een commandogame in de browser

2026

Een top-down commandogame voor toetsenbord en muis. Je landt 's nachts met een parachute in een vallei, sluipt langs 21 bewakers en drie zoeklichten, blaast een commandobunker op en ontsnapt naar het ophaalpunt. Gebouwd met Phaser 3.90, TypeScript en de Web Audio API.

De game heeft één level, Operation Night Eagle, van titelscherm tot Mission Complete: briefing, parachutesprong boven Raven Valley, sluipen en vechten langs een loopgravenlinie, bunkers en een kamp, explosieven plaatsen bij de commandobunker (F drie seconden vasthouden, daarna tien seconden om weg te komen) en ontsnappen naar het ophaalpunt. Er zijn drie checkpoints; het laatste valt direct na de ontploffing. De tekst in de game is Engels. Het speelgevoel is geïnspireerd door de airborne-commandogames uit het C64-tijdperk.

De vallei is 2400 bij 2400 pixels en heeft 21 bewakers. Elke bewaker heeft een toestandsmachine met zeven toestanden: stilstaan, patrouilleren, argwanend, onderzoeken, vechten, zoeken en terugkeren. Een bewaker ziet in een kegel van 60 graden tot 170 pixels ver. Een verdenkingsmeter loopt sneller vol in het licht, bij sprinten en bij mondingsvuur, en langzamer in struiken en loopgraven. Geluid heeft een bereik: lopen 40 pixels, sprinten 110, een geweerschot 420, een granaat 600. Bewakers lopen met A* over een raster van 8 pixels, zoeken dekking achter zandzakken en kratten en waarschuwen elkaar. Wie bij de radiomast te lang in gevecht is, zet het algemene alarm aan; de mast kun je vooraf opblazen.

De simulatie staat los van Phaser: beweging, kogels, zicht, geluid en granaten zijn gewone TypeScript-modules met unit-tests in Vitest; Phaser verzorgt alleen beeld en invoer. Het beeld is 640 bij 360 pixels en wordt met hele factoren opgeschaald. Soldaten (16 bij 16 pixels, acht richtingen), terrein, props, licht, effecten en het lettertype worden in code getekend, in één palet van 32 kleuren. De nacht is een donkere laag waarin zoeklichten, lampen, mondingsvuur en brand gaten maken. De commandobunker (heel en verwoest), het nachtpanorama van het titelscherm en het adelaarsembleem zijn vooraf gemaakt met de OpenAI Images API en teruggebracht tot hetzelfde palet. Geluid en muziek worden live gesynthetiseerd met de Web Audio API, zonder audiobestanden; de muziek heeft drie lagen voor sluipen, vechten en ontsnappen. De game doet geen externe requests; de download is 423 kB gzip, Phaser inbegrepen. Op een telefoon of tablet toont de pagina een stilstaand beeld uit de game en wordt Phaser niet geladen.

Technologieën

Phaser 3.90 TypeScript Vite Web Audio OpenAI Images API

Meer van mijn werk

Bekijk het hele portfolio of lees het blog.

Meer werk