The third Boomer game: Boomer is a flat 1v1 arena, Boomer World bends the arena into a hollow ring — Boomer Cave fills the ring in. Each world is a solid little planet honeycombed with caves, with a molten core at its heart, and you go down into it.
Built with vanilla JS (ES6 modules), WebGL2, and Canvas 2D — no external dependencies, no build step.
ES6 modules need an HTTP server. From the repo root:
python3 -m http.server 8000
# then open http://localhost:8000Requires a browser with WebGL2 (any recent Chrome / Firefox / Safari).
Not a duel. In a labyrinth, 1v1 breaks down — encounters become blind ambushes and everything interesting is between you and the world — so Boomer Cave is an explore / retrieve / escape game:
- Descend through generated cave networks: worm tunnels dropping from the daylight, open caverns at depth, winding galleries between them.
- Recover the 3 power crystals glowing in the deepest caverns.
- Climb back out to the extraction beacon, against the clock. Best times per world configuration are kept in localStorage.
You die to the world, not to a bot: magma, the core, your own explosives.
Every world has one, and it wants out:
- Spontaneous seeps (menu-scaled: Dormant / Calm / Restless): a weak point on the core shell gives way and magma pushes up into the caves, pooling inward and rising as it fills.
- Breaches: blast or dig inside the crust shell around the core and the core may answer through the wound — with a bigger budget.
- Obsidian: a seep that stops being fed sets after ~26 s into hard but diggable obsidian — cooled magma is new terrain, and sometimes the bridge you needed.
- Contact with molten magma costs ~54 hp/s. It is escapable. Briefly.
The full Boomer World movement kit, retuned for verticality:
| Tool | Use |
|---|---|
| Grapple hook (F) | The cave's primary tool: hook a shaft lip and descend on the rope (W reels), swing across chasms and magma pools, haul yourself back up walls that took you seconds to fall down. 620 px of rope. |
| Dig (E) | The universal fallback — every material yields eventually (rock and obsidian take multiple hits). Dig greedily near the core at your peril. |
| Clamber | Jump at a near-vertical face to grip it for a beat; tap jump to scale it. |
| Blast Charge (1) / Grenade (2) | Terrain surgery — open shortcuts, drop floors. Self-damage applies, and blasting near the core shell is how breaches happen. |
Your head-lamp is the only reliable light below the daylight line; the rest comes from crystals, muzzle flashes, and things you'd rather not stand next to.
- World Size — Small / Medium / Large (640 / 850 / 1100 px radius, filled crust all the way down).
- Cave Style — Sparse / Winding / Labyrinth (tunnel + cavern density).
- Magma Activity — Dormant (only provoked) / Calm / Restless.
| Input | Action |
|---|---|
| A / D or ←/→ | Move |
| W / ↑ / Space | Jump; tap at a wall to clamber; hold to reel the grapple |
| Mouse | Aim |
| Click / hold | Fire / charge (grenade) |
| E | Dig |
| F | Grapple hook: throw / release |
| 1 / 2 | Blast Charge / Grenade |
| Q | Next weapon |
| R | Restart the delve |
| Esc | Menu |
Two stacked canvases, as in Boomer World: a WebGL2 fragment shader renders the polar terrain grid per pixel (strata, cave darkness, the emissive core and magma, up to 16 point lights); the 2D overlay draws sprites and UI through the same rigid camera transform. Physics runs in world Cartesian coordinates with gravity towards the core; terrain storage, destruction and the magma flow simulation are all polar.
See FEATURES.md for the design log and CLAUDE.md for agent handover
notes.
- British spellings in comments and user-facing text
- Conventional commits (
feat:,fix:, …) - All tuning constants live in
js/constants.js - No build step — just serve the directory