Mobile-first HTML5 Canvas runner prototype (no build tools, no external
libs).
Core loop: autorun + jump / double-jump (fatigue) + armor meter + slam +
HP, crystals & hearts, results screen.
- Open the repo folder in VS Code\
- Install the Live Server extension\
- Right-click
index.html→ Open with Live Server
python3 -m http.server 4173Open in browser:
Note:
file://may work, but some browsers restrict ES module imports.
Use a local server for best results.
- JUMP: tap right half of the canvas OR on-screen JUMP button
- SLAM: tap left half of the canvas OR on-screen SLAM button (works in-air when available)
- Space: jump / double-jump\
- (Optional) additional debug keys may be added later
- Start: press JUMP / Space to start a run
- Autorun: the world scrolls continuously
- Jump / Double Jump: second jump in-air increases fatigue
- Fatigue: limits repeated double-jumps; recovers over time (faster on ground)
- Armor: fills up during the run; at full allows SLAM
- SLAM: strong downward attack window to break obstacles / gain advantage
- HP: start with 3 hearts. Hits reduce HP (armor may absorb first). 0 HP = game over
- Victory condition: reach target distance (default 250m)
- Crystals: increase score/currency and may contribute to armor
- Hearts: restore +1 HP up to max
index.html--- canvas shell and minimal UIconfig/balance.json--- single source of truth for tunable parameterssrc/main.js--- bootstraps, loads balance, starts loopsrc/engine/loop.js--- fixed timestep loop + pause/resumeinput.js--- touch + keyboard buffered inputrenderer.js--- DPR scaling + sprite/fallback drawing
src/game/player.js--- player physics & core abilitiesworld.js--- world state, scrolling, distancespawner.js--- segment-based procedural spawning (v0)collision.js--- AABB collision helpers
src/ui/hud.js--- HUD rendering and run/game-over overlayassets/--- sprites (optional, fallback supported)
All gameplay tuning must go through config/balance.json.
Do not hardcode values deep inside game logic.
- Change values in
config/balance.json - Reload the page
- Play 5--10 runs
- Observe average survival time and overall feel
Every PR / change must: - Keep the web build playable - Respect the project structure (no "everything in one file") - Include a short How to verify checklist in the PR description
- Strategic roadmap:
PLAN.md - Step-by-step Codex delivery plan:
EXECUTION_PLAN.md - Contribution/PR process:
CONTRIBUTING.md
- M0 --- Freeze baseline (docs + templates)
- M1 --- Tutorial prompts + Daily run seed + Missions
- M2 --- Android wrapper + analytics
- M3 --- Rewarded ads placements + caps
- M4 --- Upgrades / meta progression