Ride the Bomb
README.md
RideTheBomb
The whole "Ride the Bomb" game in one component: a Dr. Strangelove-style bomb-riding campaign across six procedurally generated cities.
Attach it to one entity in the scene. In play mode it runs the full game:
- Menus — main / city select / settings / credits / pause / results, rendered as zui screens over a slow orbit of the current city.
- FLY — pilot the bomber over the city (A/D steer, W/S throttle), line up the drop with the projected impact reticle, Space releases.
- RIDE — chase-cam behind the falling nuke and its hat-waving rider. A/D + W/S nudge the fall against the per-city crosswind, and Space command-detonates at any height: an airburst in the prime band (around 0.4 blast radii up) boosts the blast up to x1.25, way too high and it fizzles. The HUD shows the live blast factor.
- BLAST — the shockwave ring flattens and ignites everything in radius, scorching trees on the way; damage vs the city quota decides pass/fail, proximity to the gold target ring multiplies score.
Each city carries a bigger bomb (30 kt up to 25 Mt) — the casing under the plane grows with it and the blast radius follows. Cities are built on themed terrain: desert mesas and dry washes, a canyon gulch with a creek, a river town with bridges, forested hills under a waterfall, a harbor bay with docks and boats, and a delta metropolis where the river meets the sea. Buildings are detailed procedural meshes — gabled houses, parapet shops, setback midrises with water towers, pilastered slabs, deco towers, and glass octagon skyscrapers — with tree-lined parks between them.
Campaign progress (best score per city, furthest unlocked city, settings)
saves to /zero/source/rtb_save.json. Save writes are locked while a
play session runs; the component stashes the pending save and flushes it
on the next edit-mode load.
Meshes come from rtbmesh (procedural bomber / bomb / cowboy / rings);
sound effects are synthesized WAVs under /zero/source/rtb_audio/.
In edit mode the component does nothing beyond flushing pending saves, so the scene stays clean for authoring.