A mini Pokémon-style game where you catch real-world humanoid robots. Vanilla JS + HTML5 canvas, zero dependencies, GBA-style 240x160.
cd game
python3 -m http.server 8000- Arrow keys / WASD — move
- Z / Enter — A button (confirm, talk, advance text)
- X — B button (back)
- Esc / M — open menu (Robodex, party, box, save)
Sprites are loaded from assets/sprites/ with three variants per robot (ids are lowercase kebab names — see id fields in src/data/dex.js):
<robot-id>.png— 64x64 front battle sprite (foe side, menus). Missing PNG falls back to a procedural pixel-art silhouette.<robot-id>-back.png— 64x64 player-side back sprite (zoomed close-up from behind). Missing PNG falls back to the front sprite, content-cropped, zoomed and mirrored.<robot-id>-ow.png— 16x16 overworld map sprite. Missing PNG falls back to the front sprite content-cropped to fit the tile.
All variants are generated by tools/spritegen — see its README.
node check-data.mjs validates dex/map data integrity.