SOURCE / PINNED RELEASE
Made of little things.
Big Rig Rush
- Release
- ec9b6549f752…
- Author-recorded commit
- 74b729258b1a…
- License
- LICENSE
- Author’s source reference
- nostr://npub1sj2vketepqw9v6fmge5fdzuj7atj9sv6qv2jss05n2z6rl64lcfqumdsnt/wss%3A%2F%2Fgit.napplet.soy%2F/n-0a99f0cae40
Archive hash verified: 900e22810340ccb1…. The source-to-build association is the author’s claim; it has not been independently rebuilt.
# Big Rig Rush — design brief
**Job:** drive a semi-truck through a busy top-down city, picking up cargo in
downtown and delivering it uptown, to the hood or across downtown, using the Loop
highway, while rude drivers get in the way. There is no clock.
## Must-have flows
- The BULLDOZER (3): about 28 tonnes on tracks. W drives forward and S stops then backs
up (no gears to shift), A/D spin it on its tracks even standing still, and it never
slides sideways. Brisker than a real dozer: about 40 km/h flat out (30 on grass),
24 in reverse, taking a couple of seconds to get there and stopping almost
dead when you let go. It's armour plate (about a tenth of the damage) and shoves cars,
wrecks and service units aside. Its blade grinds into any building it's pushed
against: a timber house goes in well under a second, a big stone block in a few
seconds of shoving (backing into one works too, slower).
- The A-10 WARTHOG (4): level flight at a fixed working height (about 40 m) over the
map, with a steady camera that hangs above the jet and leads it.
- Flight (src/game/a10.ts): two TF34s (40.3 kN each) that spool with a lag against
parasite and lift-induced drag from the 47 m² wing, so the speed settles where
thrust meets drag (about 720 km/h flat out, never below about 245 km/h). A / D
roll it into a bank (let go and the wings level) and the bank turns it, tighter
than real for the map's scale; turning costs lift and bleeds speed. W / S, the
arrows or N / M move the throttle lever (hold, or tap N / M to nudge). The
autopilot turns it back at the map edge. Stores lighten it as they go.
- The jet (src/game/a10-model.ts) is drawn in the game's vehicle style on the real
airframe's proportions, with the stores still aboard; banking shows which way:
the low wing shortens and darkens, the high wing catches the light and the fins
lean into the turn. Its shadow races over the ground below.
- GAU-8 (hold G): 1,150 rounds at 3,900 a minute after a 0.5 s spin-up, the 5:1
armour-piercing / high-explosive mix, a stream walking across the ground ahead of
the nose with real spread, about 45 kN of recoil, gun gas from the nose.
Armour-piercing rounds spark, hole and only kill a car through its engine or fuel
tank; explosive ones burst and can set alight what they bring down.
- Bombs (B, hold to ripple at 0.12 s; V picks the mode): 6 × Mk 82 AIR (high drag:
the ballute pops and the bomb drops steeply behind the jet; low drag: it flies on
ahead) and 1 × GBU-31 JDAM steered onto the pipper. About 1.3 s to fall.
- AGM-65 Maverick (Space, 2): locks the vehicle nearest the line of flight within
15° and dives onto it, smoke trail and all. R re-arms (5 s, weapons cold).
- HUD (src/game/hud.ts): airspeed, g and Mach, heading tape, throttle lever and
spool, stores, the bomb pipper with its fall line and the gun cross.
- Screen shake from explosions is cut to a fifth from the air (it's far below).
- The city fights back (src/game/civil.ts): anti-aircraft guns and SAM sites round
Fort Dunmore and the vital sites go weapons free once it's under attack, and the
National Guard brings mobile ones as it escalates. F pops flares (30; each pair
decoys most missiles tracking the jet). Hits damage the jet (DMG); at 100 % it rolls
over and goes in: SHOT DOWN. R re-arms and the ground crew patch 40 % of the damage.
- The goal is to leave the city in ruins: CITY IN RUINS gauge, destruction points
(car 25, service unit 60, building 120, tree 5, infrastructure 500, air defences
250). On touch: THR+ / THR− (the
pedals), ◀ ▶, GUN, BOMB, FIRE, WPN and ARM.
Every explosion depends on what it hits: grass and dirt erupt in a column of soil,
clods and torn turf (a brown-rimmed crater); tarmac throws broken asphalt, grit and
sparks (a dark pit); sidewalks and concrete a pale dust; water a geyser of spray and
steam (no crater, nothing burning); timber buildings splinters and a blaze; stone
ones masonry chunks and grey dust; vehicles torn metal, a shower of sparks and a fuel
fireball with oily black smoke. Cannon rounds likewise gouge earth, pock tarmac, spout
water or chip buildings. Fire only starts where something burns: dry grass, timber,
trees and spilt fuel (which burns out quickly). Bare dirt, tarmac, concrete and water
don't burn, grass fires only creep across grass, and brick and stone buildings catch
only rarely.
Smoke climbs and is carried off downwind; dust is heavy, billowing out fast then
hanging low and settling, coloured by its source (grey masonry, brown timber, earth).
The A-10 trails subtle streaks: vapour off the wingtips that thickens as it pulls hard,
and a heat shimmer behind each engine.
Explosions are layered fireballs drawn as soft glowing particles: a white flash and
shock ring, flame that rolls out and cools from yellow to orange to deep red, black
smoke rolling in behind and hanging, burning embers and debris trailing smoke,
sparks, a crater, ground fires. Bombs add a ring of dust racing outward along the
ground, a dark mushroom of smoke, an APOCALYPSE shockwave that flings every car and
person nearby, most buildings in reach flattened and set alight, and a 24-second
smoke column. Buildings visibly cave in (the roof slumps and cracks apart over about
a second) inside a billowing dust cloud, throwing out big slabs of wall and roof that
stay as rubble, and the falling masonry batters whatever stands right next door
(stone hardest). Trees fall away from whatever knocked them down. Bombs freeze the
frame for an instant as they go off (hit-stop; close collapses too), fling cars high,
and leave a wide charred blast mark that fades over minutes; burning buildings throw
up drifting embers.
Sounds follow the real aircraft: twin TF34 turbofans (a broad roar under a high
fan whine and a hollow "hog whistle", all lagging the throttle as they spool, with
the rush of air swelling with speed and in hard banks), the GAU-8's continuous tearing
BRRRRT (its pitch is the firing rate, rising as the barrels spin up) with the shells'
crackle a beat behind, a bomb's crack, deep boom, rolling rumble and falling debris,
Explosions are kept simple and punchy: a noise burst whose filter sweeps from bright
to dark plus a sub-bass thump falling in pitch (a crack when close); collapses are a
dark rumble with a few heavy thuds and snapping timber or masonry. They're heard
where they happen: sound takes about a second to cross 1,000 units, and distance
dulls the top end and adds echo. Fires add a steady roar that grows with how much is
burning around you, over the crackle. The A-10 has its own jet voice: a deep rumble, a
broad exhaust roar, the TF34 fan whine as two slightly detuned tones beating into a
hollow, wavering whistle, and air rush that swells with speed and in hard banks, all
spooling up with lag (with a rising whoosh when the throttle is slammed open). Also
a missile's ignition crack and rocket roar falling away as it streaks off, its
warhead's crack and boom, a bomb's clunk off the rack and whistle growing as it
falls, and the roar
and pop of fires nearby.
- Air raid (src/game/raider.ts): for the rig, sports car and dozer, a switch on the
title sign (key 5) sends in a computer-flown A-10 a few seconds into the shift. It
flies the player's flight model and weapons, hunting round wherever the player is:
infrastructure first (the JDAM for power stations, waterworks and shelters), then
buildings (Mk 82 ripples, high or low drag, aimed with its own pipper), Mavericks at
service vehicles and gun runs on the traffic, swinging wide when a target's inside
its turn and leaving to re-arm when it's out. Its bombs and rounds hurt the player's
ride too. The air defences target it; shot down, it rolls over and crashes, and
another comes in 40 s later. A flyby roar and its delayed BRRRT are heard from the
ground; the city panel shows during the raid.
- The living city (src/game/civil.ts), modelled on real incident command (life safety,
then incident stabilisation, then property) and on how cities have burned and
failed after bombing and earthquakes:
- Critical infrastructure: three power stations (the Steelworks plant, Bayside and
the dam's hydro) feed a substation in every district; when capacity falls short
the grid sheds load, keeping hospital and City Hall districts lit first. A dark
district has no street lamps or window lights, and dead traffic signals that
drivers treat as all-way stops. Two waterworks pump only with power; water towers
drain without them, hydrant pressure falls (more with fires to fight and burst
mains), and fire crews on low pressure take far longer. Three masts and City Hall's
emergency operations centre set how fast the city can coordinate anything. Shelters
(the stadium, schools, halls) hold the evacuated, so hitting one is a massacre.
- People: each district has its population; buildings that come down kill and trap
the people inside (more by night in homes, by day in offices and shops, fewer once
evacuated). Heavy rescue units (one per fire station) dig out the trapped, who go to
the ambulances; the trapped not reached within four minutes are lost. Districts
under sustained attack are evacuated to the shelters. The panel shows power, water,
comms, hospitals, engines, fires, evacuated, trapped, rescued and killed.
- Escalation: ELEVATED (air-raid sirens, air defences weapons free), EMERGENCY
(evacuations, mutual aid and water-bombing helicopters that fill at the bay, the
lakes and the reservoir and drop on the biggest fires), DISASTER (National Guard
mobile air defence) and CATASTROPHE; mutual aid keeps coming in waves while the
city's units are run ragged, to surviving stations or a staging area.
- Fire only where something that burns is destroyed by an explosion: a tree, a
building (timber always, brick and stone usually, on what was inside), a vehicle's
fuel. Anything else an explosion hits is left cratered, scorched, littered with
debris and smoking, not burning; grass doesn't catch. Then fire spreads the way it
does through a city: flames and radiant heat to the buildings next door, more
readily downwind; embers on the wind start spot fires well ahead of the front; and
where ten or more fires merge they feed each other in a FIRESTORM that spreads
faster and further with whirling columns of flame. Gas mains rupture in collapsed
buildings (jets of flame), bombs in the road burst water mains (fountains, and the
pressure goes), wrecked substations and power stations arc. With enough of the city
burning a smoke pall darkens the sky and ash drifts across. Burning ruins throw thick
smoke downwind and smoulder for a while after. Fuel tanks, tank cars, aircraft, tanks, ammunition bunkers and the
tanker go up when they're destroyed, and can set off their neighbours (a tank farm
chain-reacts). Fire trucks go to every blaze and hose it out. At night burning
buildings light up the dark.
- Explosions (from the research): a white-hot core, the fireball, fragments
peppering the ground far beyond it, the ejecta cone raining back as a ring of dirt,
the dust column slumping into a low rolling skirt, a vapour ring in damp air, a
crater and blast mark, and plenty of dust and smoke: thick smoke rolling away, a
smoke column, and a haze of dust that hangs over the site for a long time.
- Everything is destructible: every building including the stations (a destroyed
station's fleet and helicopter are out of action until it's rebuilt), every tree
(felled to a scorched stump; they stay down), cars, service units, street furniture,
stalls and party gear, roads (craters).
- Ground matters, felt under each axle: asphalt grips; sidewalks nearly as well, with a
jolt off the curbs; packed dirt lots are loose, draggy and rutted; grass is slippery,
soft and lumpy; the shallows at the shore bog you down. Soft ground drags harder the
faster you go and kicks up dust or spray. Measured on each: the rig does 191 km/h on
road, 111 on dirt, 85 on grass (stopping from 100 in 21 / 35 / 38 m); the sports car
does 261 / 168 / 77 km/h (15 / 23 / 23 m) and is a handful off the tarmac: its track
tyres lose most of their grip and its low nose ploughs. The interstate deck is always
asphalt.
- Pick your ride on the title (and end-of-shift) sign: the BIG RIG (articulated, manual
8-speed, rolls over) or a SPORTS CAR (1 or 2, or tap). The sports car is a light
rear-drive coupe with traction control and sticky tyres: a six-speed automatic
(it holds gears to near the redline under full throttle, short-shifts when cruising,
kicks down, and drops through the gears when braking; N/M do nothing and the touch shift
pads hide) that revs to 7,600 (0-100 km/h in about 2 s, top
speed about 260 km/h), sticky tyres (about 2.5 g before they let go), quick steering,
strong brakes, wheelspin and oversteer under power in the low gears, no rollover, and
a snarling engine instead of the diesel. It's fragile: crashes hurt it about twice as
much, it needs real speed to smash through a wall, and its cargo is a parcel on the
passenger seat (no extra weight). It carries missiles: Space (or the red FIRE pad)
launches one from the nose about every half second; it locks on to the nearest car or
service unit in a narrow cone ahead and homes in a little, and explodes on whatever it
hits (or after about 2 s): a fireball, wrecked and flung cars, burning fuel tanks, a
scorched crater, and a bite out of any building.
- Title → drive → pick up cargo downtown (stop in the green LOAD zone; the trailer
gets heavier) → deliver uptown, to the hood, the port or across downtown → repeat
until the truck is totaled. No timer; deliveries score base + distance + a
clean-delivery bonus. Hitting a pedestrian costs a $50 insurance claim.
- Driving: articulated rigid-body physics (cab + trailer joined at the fifth wheel),
tyre grip with a friction circle, wheelspin, sliding, jackknifing. Manual 8-speed
gearbox: N shifts down, M shifts up, W is the throttle and S brakes; hold S at a standstill
and it drops into reverse and backs up, and W in reverse brakes and then pulls away in first. Rev limiter, engine braking, refused/grinding over-rev shifts.
- Crashes are impulse-based and scale with closing speed, and differ every time:
each model has its own mass, fragility, rollover stability and fire/explosion risk,
each car its own build quality, and the material hit (truck, car, concrete,
barrier, shoreline) changes debris, dust and sparks. Outcomes run from scuffs to
dents and glass, torn-off wheels and panels, alarms, physics-based rollovers
(tripping when sliding sideways, tumbling until friction stops it), fires, fuel-tank
explosions with shockwaves, and slow motion. Smoke only comes from engine damage
(radiator steam or oily black smoke). Wrecks drift on locked wheels. Wrecks,
debris, skid marks and blood stay on the road; wrecks cause pileups.
- The rig can roll over: cornering beyond about 0.45 g loaded (0.7 g empty) lifts the
wheels (warning), then it goes onto its side and slides; the shift ends.
- Map (16,400 × 29,200, ten times the old area; src/game/expansion.ts adds the new
country): the old city in the north-west, with the elevated six-lane I-90 and its
diamond interchanges at Route 9 (ground expressway), Grand Avenue and Harbor Road,
plus the I-190 spur to the port; downtown, uptown, the hood, the port, the lakeside
park, the farms and the bay. Across the bay the docks (quays, gantry cranes, moored
container ships and a tanker, container stacks), north-east the steelworks (cooling
towers, refinery tank farms, a steel mill, a gas holder), the rail yard the width of
the map (fourteen tracks of standing trains, an engine shed), Maple Grove (suburb),
the Strip (big stores and the stadium), Fort Dunmore (runway, taxiway, apron with
hangars and parked jets, barracks and HQ, a tank park, ammunition bunkers, a fuel
depot, the control tower and radar, a perimeter fence), and the backcountry: farms
in clusters, wide woods, rolling hills, the reservoir and its dam, a wind farm, the
market town of Harlan, all joined by Route 9 south, Route 50, Route 101 and long
country roads. The truck and traffic drive under and over the deck on separate layers.
- Countryside: winding country roads (Old Mill Road through the north-west woods and
round the lake, Ridge Road to uptown, Farm Road to the port), dense forests with
solid trunks, farmsteads (house, red barn, silo) and fields.
- Wildlife (deer, moose, bears, foxes, raccoons, rabbits) grazes by country roads and
crosses them; deer freeze in headlights. Struck animals fly, bleed and stay dead
by the road; moose and bears slow and damage the truck.
- Vehicle types: sedan, taxi, sports, SUV, beater, compact, pickup (cargo), van,
city bus, motorcycle (rider is thrown), police (lightbar), limo and ice-cream
truck, mixed per district. Each has its own crash debris and sound layer.
- Venues: farmer's markets (smashable stalls, produce everywhere) and wild parties
(disco lights, speakers, music you can hear nearby); shoppers carry bags.
- Day/night: a 4-minute day with a HUD clock, warm dawn/dusk and dark nights lit by
street lamps, headlights, taillights, fires and venue lights. Traffic, pedestrians
and wildlife follow the clock (rush hours, empty small hours). Markets open by day,
parties in the evening and raves (port warehouse, forest clearing) through the night.
- Groups: joggers, dog walkers, tour groups, protest marches, buskers, picnics, yoga
classes and late-night bar crawls, scheduled by hour.
- Pedestrian hits are physical: contact point and vehicle velocity decide the throw;
low car noses scoop people up, flat truck/bus fronts shove them down and can run
them over; bodies bounce off walls and slide, smearing blood.
- The south of the map is rural: Millbrook village, orchards, pastures with cows,
hay and crop fields, Mirror Lake, a quarry, forests and Orchard, Quarry and Pine
Hollow roads.
- A stable city: traffic and city crews are careful drivers who never injure anyone
(people and animals jump clear), never wreck each other and only bump stopped wrecks,
service units or a parked rig. Without the player the city has essentially no
accidents; the player (and what the player sets off) is the source of chaos.
- Calm, cautious drivers: they cruise below the limit, accelerate gently, leave long
gaps, take turns slowly and look far ahead; rude drivers are rare and rarely act up.
Everyone ahead of a siren (same way, oncoming or at the next junction) pulls right
over and waits.
- Traffic lights at every town junction where three or more streets meet: 9 s green,
2.5 s amber, all-red, then the cross street. Drivers stop on red (and on amber when
they can), queue behind each other, and don't enter a junction unless there's room
on the far side. Emergency units and the player can run reds.
- The city monitors every accident and emergency and works each scene in stages:
1. Police and paramedics first (and the fire brigade for fires): police pull across
the lane and close the road (traffic detours, changes lane or is waved slowly
past); ambulances load the injured and take them to hospital (the medevac
helicopter for the badly hurt or when no ambulance is free).
2. Once the scene is secure and the injured are gone, tow trucks hook every wreck
and haul it to the junkyard in the industrial park.
3. Only once emergency response and towing are finished do cleanup and repair
crews enter the scene. Sweepers back up road crews and wait for 12 seconds
without fresh debris; scene margins stay clear, and renewed danger cancels
cleanup assignments. A new wreck returns the scene to towing.
Garbage collection waits until the scene reopens; new emergencies cancel
nearby pickup assignments, while collections elsewhere continue.
A road crew sweeps up the debris, glass and blood and
patches the road (sweepers help when no road crew is free).
4. The road reopens: the police leave. Toasts report each stage near the player.
Elsewhere crews still handle breakdowns, stray debris, holes, fixtures, roadkill,
bins and building repairs, and the police helicopter circles the biggest disasters.
- Effective crews: a unit that finishes takes the next job of its kind nearby instead of
driving home; a unit sent a long way starts its last stretch just out of sight (it was
out on patrol); a unit heading home is back the moment it's out of sight (its towed
wreck delivered). Jammed units squeeze through slowly instead of gridlocking.
- Stations with fixed fleets: hospitals (3 ambulances, medevac helicopter), police
stations (3 cars; two keep a helicopter), fire stations (2 trucks), roadside depots
(3 tow trucks, 2 roadside vans) and public works yards (2 each of garbage trucks,
sweepers, repair trucks and road-crew dump trucks), spread over every district.
Free units wait parked at their station.
- Service vehicles are physical: tyre grip and steering along the shortest lane route,
collisions with walls, traffic, wrecks, each other and the rig. Sirens make traffic
ahead pull over; units go round wrecks and jams, across the verge if they must, leave
the road to reach a scene in a field, and back up and retry when stuck. The player
can ram them: a unit written off becomes a wreck the city then tows, and the fleet
gets a replacement after a while.
- Street furniture: lamp posts (lit at night), trash cans that fill through the day and
hydrants line the sidewalks. The rig and sliding wrecks knock them over (lamps go dark,
bins spill trash, hydrants gush) until a crew puts them right.
- Your own tow truck (R): in the rig's colours, it comes from just behind you out of
sight, drives straight through traffic, and repairs and/or puts the rig back on the
road in about a second, at mates' rates. Rolling the rig no longer ends the shift.
- Taxis and buses: people hail cabs, which pull over, carry the fare and drop them at
another curb; city buses stop along the streets to let people off and take on anyone
waiting.
- Blood is finite: each person only has so much to lose. Once it's gone they lie still,
can no longer be run over, and wait for the paramedics (who top them back up).
- The family (mob) runs the hood: their black cars cruise it, goons stand on the corners
and at their social club, and the police don't come in. With cargo loaded, the club is
an alternative drop (purple zone and arrow): delivering there earns a favor (max 3)
instead of the delivery fee. Wrecking a family car or running down a goon costs a
favor. F (or tapping the FAVORS chip) calls in a favor:
- Hit a car: pick a car on screen; a black sedan comes after it (it's marked with
crosshairs and panics), shoots out its glass, rams it, and it goes up in a chain of
explosions (APOCALYPSE tier, police helicopter).
- Blow up a building: the family's van crew drives to the nearest building on screen
and plants a bomb (6-second countdown, or goons on foot if the van's held up); every
wall is blown out, fireballs at each corner, a shockwave, fires; it stays a gutted,
smoking ruin until a repair crew rebuilds it.
- Workplaces: farmers in fields, orchards and pastures; tractors ploughing (and
wreckable); construction sites with tower cranes and hard-hat crews; the industrial
park (south-east) with factories, smokestacks, tank farms, a scrapyard, rail yard,
cooling towers, forklifts and workers. The player always starts in the country or
the industrial park; pickups come from farms, factories, the port and downtown.
- Buildings take damage: cracks, knocked-in holes with rubble and dust, and fires on
the hardest hits, from the truck, from wrecks or from a service unit sliding into them.
- Buildings can be destroyed, depending on construction: timber houses, barns and shops
(hood, village, country) give way to the rig at speed, and it smashes straight
through in a burst of planks; brick, stone and concrete (downtown, uptown, port,
industry) take several flat-out hits or explosions. A collapsed building is rubble you
can drive across until a repair crew rebuilds it. Everything is destroyable,
stations, hangars, cranes, ships, rail cars and the stadium included.
Explosions blast holes in the road and fires leave scorch marks.
- Severe crashes always catch fire; fuel-tank fireballs leave spilt fuel burning briefly.
- Crash drama tiers by closing speed: CRUNCH! → WRECKED! → CARNAGE!! (shockwave) →
APOCALYPSE!!! (chain explosions), with slow motion, flashes and a camera punch.
- Pedestrians walk sidewalks and crosswalks, flee speeding trucks and the horn, and
are knocked flying, leaving red blood splats on the road, then get up limping.
- Minimap on frames of at least 480×400.
- Keys: 1-4 pick the ride on the title sign, Space fires missiles (sports car) or a Maverick (A-10), B bombs (hold to ripple), V bomb mode and hold G for the gun (A-10), W/S/A/D (in the A-10 Up/W climb, Down/S dive), N/M shift (the A-10's throttle), H horn, R tow, F mob favor, K mute, P/Esc pause. Touch: steering, pedals,
shift and horn buttons on coarse pointers (configurable).
## Optional flows
- Best score is saved through `@napplet/sdk` storage when the `storage` domain is
present; otherwise it lasts for the session only.
- Settings through the optional `config` domain: traffic density, rude-driver
share, touch controls, screen shake.
No Nostr reads or publishes. No hard `requires`.
## Visual direction
- **Character:** late-afternoon rush hour drawn as smooth, flat vector art. The
distinguishing idea is that all UI is road furniture: menus are green interstate
signs, buttons are yellow warning plates, the HUD is a dashboard of asphalt chips.
It keeps the player "on the road" even in menus.
- **Main surface:** a device-resolution canvas; the static city is painted in
cached vector chunks matched to the zoom, which pulls back at highway speed.
Grey asphalt with yellow centre lines, white lane dashes and crosswalks, warm
sidewalks, varied rooftops with AC units and drop shadows, parks and parking lots.
Bright red cab with a white trailer; traffic styled per district.
- **Interface:** bold uppercase monospace, hard 2–3px borders, hard offset shadows
instead of soft blurs. Semantic colours: green = pickup, orange = drop-off,
red = damage/danger, yellow = timer/score. Status also uses text labels.
- **Theme policy:** app-owned. `FOLLOW_HOST_THEME` stays off; the host theme never
recolours the city, vehicles or signs.
- **Proof:** a truck mid-turn at an intersection with a rude driver's speech bubble
and the delivery arrow visible, at 200×160, 320×560, 900×600 and full screen, plus
touch portrait/landscape. Listing cover: mid-delivery in traffic at 1200×750.
