Demo · 7 September 2026
Moon Courier Crisis
A game about a courier on the Moon. Mission selection, routes, radio events and shift results. React handles the interface; Phaser handles the game scenes. It runs in the browser without a backend.
01 / The task
Browser game in React and Phaser
The React interface and Phaser scenes share mission state. Showing the result and restarting must not leave state from the previous attempt.
Use case: A browser game with route controls.
Work done
- Connected the React interface to Phaser game scenes.
- Routes, events, briefing, radio panel and mission restart.
- Build, asset checks and mobile layout for the pre-game screens.
Screenshots
Screens, forms, errorsScreenshots, diagrams and source evidence retain their original language; captions and descriptions are translated.
02 / Technology
Stack
React
Briefing, panels, hints and mission result.
Phaser
Canvas, game loop, scenes, routes and objects.
TypeScript / Vite
Game model, production build and asset checks.
03 / Decisions
How the project works
- React handles the interface; Phaser handles the canvas and game loop.
- Level selection, briefing, mission and result are separate states.
- After a defeat, replay returns to the briefing; a new shift starts through an explicit action.
04 / Verification
Demo workflows
- Choose a level and read the briefing.
- Start a shift, select a courier and assign a route.
- Open the radio panel and follow a mission event.
- Wait for the result, select replay and start a new shift from the briefing.
Check results
- 15 meaningful screenshots of the actual interface retained.
- Each screenshot includes its date, scenario and code revision.
- No separate backend process runs on the VPS: Nginx serves static files. Shared Nginx resources cannot fairly be attributed to a single site.
- 6 scenario repetitions measured; median 61.0 ms, maximum 1770 ms. Timing includes the browser and HTTPS; methodology and limitations are included.
Limitations
- Route control is designed for a mouse and keyboard. Mobile screens are responsive, but full touch-based routing is not claimed.
- The first available commit is a baseline of an already completed stage, so it does not establish when development began.
- No external integrations or server database: the mission runs in the browser.
Technical notes
Modules, API, data model, setup and check results.
Documentation →Materials ↓