Back to City Breaker
SOURCE / PINNED RELEASE

Made of little things.

City Breaker

Release
94d2b8664b10…
Author-recorded commit
df23103cbcc1…
License
LICENSE
Author’s source reference
nostr://npub1sj2vketepqw9v6fmge5fdzuj7atj9sv6qv2jss05n2z6rl64lcfqumdsnt/wss%3A%2F%2Fgit.napplet.soy%2F/n-cf8b858653e

Archive hash verified: eeeed725668c1ece…. The source-to-build association is the author’s claim; it has not been independently rebuilt.

docs/city-breaker-prompt.md
# City Breaker — full design prompt

Consolidated from the two-part request (part 1 + part 2), with the final amendment
about player-chosen timing folded in at the end. Kept verbatim where possible.

---

Build me a strategy/simulation game called "City Breaker".

## Setting

Early 1968, a fictional Cold War gone hot. The player commands a Soviet Long-Range Aviation (Dalnyaya Aviatsiya) air wing flying from bases in a friendly neighboring country against "Hafenstadt," a hardened industrial city of 1.2 million in a hostile Western-aligned state — think a blend of Hanoi's defensive cunning, Hamburg's density, and Ruhr-valley industry. The city sits on a major river with rail lines converging from three directions, one bridge-and-tunnel complex, a river port, a thermal power plant, and dispersed satellite factory towns in the surrounding hills. The era: SAMs, supersonic interceptors, dumb bombs, early precision weapons, chaff, and electronic warfare. The tone is DEFCON-style clinical detachment — the horror emerges from the numbers, not gore.

## Game concept

The player is a Soviet air wing commander tasked with neutralizing Hafenstadt's capacity to wage war before the summer offensive begins (a 60-day campaign clock, missions cost days). Two layers: (1) a strategic layer managing aircraft, munitions, and campaign planning, and (2) an action layer where the player personally pilots one chosen aircraft per mission. The city is a living organism that fights to survive: it repairs, disperses, evacuates, deceives, and adapts its defenses to the player's specific patterns — every campaign plays differently.

## The era's toolset — all Soviet/Russian equipment

Use real names and period-correct stats; the enemy flies Western gear.

**Aircraft (player's inventory):**

- Tu-16 "Badger" — medium jet bomber: 9-ton load, moderate range, tail guns, decent speed. The early workhorse.
- Tu-22 "Blinder" — supersonic heavy striker: fast on the run-in, poor low-speed handling, carries 3–9 tons including a big standoff missile.
- Tu-95 "Bear" — turboprop strategic bomber: enormous load and endurance, slow and loud, only survives deep raids with heavy jamming escort.
- Il-28 "Beagle" — light jet bomber: cheap, nimble at low level, small load — the tactical filler and night raider.
- MiG-21 "Fishbed" — short-legged escort/interceptor: blistering speed, cannon + R-3S (AA-2 Atoll) missiles, drop tanks required. Fragile, no radar depth.
- Su-7 "Fitter" — fighter-bomber: low-level strike escort and flak-suppression runs with rockets and cannon.
- Yak-28 "Brewer" — the "Wild Weasel" analog: radiation-seeking KSR-11 (AS-5 Kelt) anti-radar missiles, hunts SAM radars.
- Tu-16PP "Badger-J" — EW variant: massive jammers and chaff dispensers, carves corridors for the raid.
- MiG-25R "Foxbat-B" — recon: untouchable at Mach 3 at altitude, brings back the imagery (arrives mid-campaign as a reward).

**Munitions:**

- FAB-250 / FAB-500 / FAB-1500 general-purpose bombs (the tonnage backbone; FAB-1500 = the city-block eraser)
- RBK cluster bombs (devastating vs. SAM sites, AAA positions, rail yards, truck parks)
- ZAB incendiaries (the firestorm mechanic)
- Long-delay bombs (deny runway/rail repair for hours–days)
- KSR-11/AS-5 Kelt and K-10S standoff missiles (launch outside the AAA ring; big, expensive, finite)
- S-24 rockets and cannon pods (Su-7 flak-suppression)
- Pres (chaff) bundles — blind SAM radars in a corridor for minutes
- Tu-123 drone decoys (draw SAM launches — SAM reload stock is finite)
- Early TV/radio-guided bombs in VERY limited numbers (expensive, scarce, near-pinpoint, the carrier must loiter and steer them in under fire)

**Enemy defenses (Western, period-correct):**

- Nike Hercules / Bloodhound SAM batteries (radar-guided; can be destroyed, but they relocate between raids and build cheap decoy launchers)
- F-104 / F-4 / Lightning interceptors with Falcon and Sidewinder missiles (scramble on detected raid size/direction; some orbit barrier patrols, some hunt)
- AAA: 40mm Bofors and 90mm radar-directed guns in dense rings around priority targets, plus 20mm Vulcan spouts
- Searchlight-radar night guidance net
- The "barrier" — a picket line of radars, interceptors, and missile sites the ingress route must cross or go around

Electronic warfare is a duel: Tu-16PP jammers and chaff corridors vs. the enemy's frequency-hopping and home-on-jam modes. Model radar detection → launch decision → guidance → seeker acquisition as discrete states the player's EW choices interrupt.

## City as organism — interdependent systems, each with a live simulation

**Districts:** steel works, machine works, chemical plant, rail marshalling yards, river port + dockside fuel depot, thermal power plant, transformer substations (high-value, quick to repair — the Ukraine lesson), warehousing, worker housing (khrushchyovka apartment blocks: concrete, fire-resistant, but 40% of factory output happens in small neighborhood workshops embedded in them — the Tokyo "cottage industry" lesson), military district (SAM garrisons, interceptor base on the outskirts), government/comms node.

**Population & workforce:** 1.2M residents, ~400k workers. Casualties and terror reduce factory output, repair speed, and crewed AAA/SAM staffing. Morale model (Blitz lesson): sustained bombing does NOT collapse morale — it HARDENS it early, raising repair mobilization; only catastrophic annihilation levels (Hamburg/Tokyo thresholds: >25% city destruction in a short window) trigger mass evacuation, which removes workforce but empties the target. Bombing civilians is a strategic trap that also costs political capital.

**Critical infrastructure cascades (USSBS bottleneck logic):** power plant offline → factories and SAM radar degrade after battery reserves drain (hours), searchlights dead, water pumping fails → firefighting crippled; marshalling yards destroyed → coal and ore stop → steel output collapses within days → repair steel rationed; bridge complex dropped → road/rail traffic reroutes at reduced throughput over a pontoon ferry the city builds (days to install — plan to re-strike); fuel depot burning → SAM reload trucks and interceptor sorties rationed.

**Supply lines:** three inbound rail lines + river barges + one road convoy route, all interdictable — but the city stockpiles and disperses fuel into drum farms (hard to find, tedious to kill). Incoming SAM reloads and interceptor replacements flow along these lines: interdiction starves the DEFENSE, not just industry.

**Emergency services:** fire brigades, rail repair battalions, generator farms, and mass labor mobilization as finite pools the city AI allocates each turn — mutual-aid crews can arrive from other towns (interdictable on the roads).

**City adaptation AI — the signature system.** The city keeps a profile of the player's last 5 raids (ingress direction, altitude, timing, weapon types, target types) and spends adaptation points on counters, with realistic lag:

- High altitude → more SAM batteries, denser AAA rings
- Low-level daylight → interceptor barrier patrols + radar-directed low AAA
- Night → searchlight-radar net, night-interceptor tactics
- Rail strikes → pontoon ferries, rolling-stock dispersal, repair battalions on 24h standby
- Firebombing → firebreaks, rooftop firewatchers, water bombers on the river
- Successful guided bombs → real hardware moved into schools/apartment courtyards (moral event), buried fuel drums, DECOYS

**Decoy economy (Kosovo lesson):** fake SAM sites, dummy marshalling yards, smoke generators and false radar emitters. Unverified targets have a decoy chance that RISES with adaptation level — recon goes STALE; the player must keep paying for fresh recon.

**Rebuild reshapes the city (Hamburg lesson):** destroyed districts rebuild DIFFERENTLY — dispersed satellite workshops, widened firebreaks, relocated fuel storage.

## Fleet & campaign management

Persistent resources: aircraft (finite; replacements only if the campaign is going well), aircrews with experience (veterans survive and hit accurately; dead crews become green replacements), munitions stockpiles (guided bombs ~4 per week), fuel, and POLITICAL CAPITAL.

**Mission planning:** target selection (primary + alternates), package composition (bombers, escorts, weasels, jammers, recon), munitions per aircraft, altitude profile (LOW: accurate, AAA-exposed; HIGH: safer from guns, scattered bombing, SAM-exposed), time of day, ingress route (cross the barrier or go around — longer means fuel math and night falling), chaff corridors and drone waves, tanker rendezvous for short-legged escorts, and which aircraft the player personally flies.

**Restrictions meter (Rolling Thunder as difficulty):** civilian deaths, restricted targets (hospitals, dams), and lost aircraft on the nightly news drain capital. Low capital → ROE: no-go districts, minimum altitudes, daytime-only, multi-day stand-downs. The player CAN ignore restrictions for a Linebacker II–style finale — maximum damage, maximum political cost, possibly ending the campaign early.

## Player piloting — "Into the warzone" (the emotional core; overdo it)

Top-down/2.5D action view, deliberately simple and clean everywhere EXCEPT the warzone effects — the contrast IS the aesthetic.

- **Strike bomber:** terrain-following low-level runs, SAM launch detection (launch flash → ~20 s of maneuvering — beam it, dive, pop chaff), flak walking onto the formation, CCIP-style manual bombing (release timing + lead, drift with wind and speed).
- **Weasel:** hunt radar emissions, time the KSR-11 off the SAM's guidance cycle.
- **Escort:** dogfight F-104s and F-4s (energy fighting, cannon, missiles that need a clean lock and sometimes miss).
- **Shot down:** mission continues under AI; crew lost or captured (rescue helicopter side-mission — or not).

**Chaos & effects layer:** threat-scaled camera shake; white flash on bomb release; red vignette pulse when damaged; half-second slow-mo on missile near-miss and on your bombs impacting. Flak: black puffs with rings that drift with the wind, fragment streaks, tracer streams that CONVERGE on you, bursts walking across your path. SAMs: ground flash, visible rising smoke trail, 15–25 s of terminal guidance with the RWR screaming, chaff blooming silver, fragment rings. The RWR as audio centerpiece: soft ping (search), fast tone (lock), growl (AAA radar), louder and higher as missiles close; heartbeat/breathing when critical. Environmental scale: chaff streams, decoy drones peeling off, other flights visible with their own contrails, flak and shootdowns; radio calls synced to real events; dead silence when the wingman doesn't answer. Over the target: searchlights (white-out glare), tracer curtains, fires from earlier waves, smoke columns, bombs-away camera tracking the stick, secondary explosions, night going from black to apocalyptic orange. Progressive damage: instruments flicker, hydraulic trails, engine fires, control surfaces pulling you into turns; battle-damage landing as a mini-event.

**Performance rule:** hundreds of particles max, simple shapes, additive blending, pooling. A 1968-era radio filter on all voice/audio lines.

## Technical

Save games (requested as localStorage — see note below). Keep ALL tuning constants (damage, SAM ranges/accuracy, repair rates, adaptation costs, political capital, effect intensities) in one exported CONFIG object. Model the city simulation tick-based so the strategy layer advances in 6-hour turns between missions.

## Win / lose (60-day clock)

- **Win:** WAR OUTPUT index (industry × logistics × power × workforce, with bottleneck multipliers) below 15% at day 60, OR all critical infrastructure nodes inoperative for 5 consecutive days.
- **Partial:** output reduced but the offensive goes in anyway with penalties.
- **Lose:** aircraft/crew pools exhausted, output above threshold at day 60, or political capital hits zero.
- **End report:** missions flown, tonnage, military vs. civilian destruction ratio, crews lost, final adaptation level, and an honest USSBS-style after-action summary of which strategy the historical record says would have worked (bottlenecks, compression, patience on decoys).

## UI

- **Strategic map:** dark vector DEFCON aesthetic. Districts as glowing blocks (glow = power on; dimming as the grid dies), animated supply flows that reroute, known SAM rings (stale intel dashed), raid heat markings, decoys identical to real sites until struck or reconned.
- **Planning:** package builder, loadouts, route with altitude lanes, tankers, chaff corridors, an ETA timeline — weasels ahead, bombers on target together.
- **Mission:** canvas action view, HUD (altitude, speed, stores, damage, RWR), SAM tracers, flak walk, chaff, fires with spread physics, the city burning and going dark in real time.
- **Aftermath:** BDA photos (some showing plywood decoys), casualty/repair report, enemy-newspaper adaptation ticker ("Railmen restored the eastern line in 36 hours. Vigilance!"), political capital meter.
- **Visual & audio:** clean vector lines; city lights dying district by district as the core visual reward; fires and smoke visible on the strategic map next turn; sparse ambient radio chatter, RWR, sirens.

## Amendment

The player determines the in-game time between bombing missions and the time of day or night each raid launches.

---

**Implementation note on saves.** Napplets run sandboxed and may not use
`localStorage`; City Breaker saves through the shell's napplet-scoped storage
(`@napplet/sdk` `storage`) instead, which persists the same way from the
player's point of view.