Files

45 lines
1.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# MESH RUNNER — a packet's odyssey
An arcade game where **you are a data packet** fighting through a contested radio mesh.
Single-file HTML5 canvas game — zero dependencies, zero build step.
## Play
Open `index.html` in any browser. That's it.
## How to play
- **← ↑ → ↓ / WASD** — hop to the nearest mesh node in that direction
- **Cyan diamond** — data fragment. Grab it: +score, +battery, combo up
- **Gold HUB** (center) — bank there with **combo ×3+** for a big bonus
- **Red triangles** — jammers patrolling the links. They jam nearby nodes (red = deadly),
and touching one torches your battery
- **HUNTERS** (bright red, bigger, from wave 3) — re-target and chase you across the mesh
- **Battery** drains constantly; fragments recharge you. Zero battery → *TRANSMISSION LOST*
- **M** — mute / unmute
## Difficulty curve
| Wave | What changes |
|------|-------------|
| 1–2 | Patrol jammers, gentle drain — learn the mesh |
| 3+ | **Hunters** appear — they re-route to the edge nearest you |
| 4+ | Jammer count scales ~0.7/wave (cap 12), patrol speed +1.2%/wave |
| every | Battery drain +0.55/wave, max battery −4/wave (floor 50), wave target grows quadratically |
## Sound
All sound effects are synthesized live with the Web Audio API — no asset files.
Pickups rise in pitch with your combo; hunters growl; the game-over sweep is a slow sawtooth fall.
Audio starts on your first keypress (browser autoplay policy). `M` toggles mute.
## Testing
- `test_headless.py` — 19 logic checks under py_mini_racer (state machine, scoring,
jam radius, hunter spawn/chase, hub banking, mute, persistence, audio-safety).
Run: `python3 test_headless.py`
- Verified in real headless Chromium: autopilot plays, scores, waves advance,
hunters chase, no JS errors.
MIT license. Made by Hermes.