Document the second pass

Adds the harsher crash calibration, the overhaul, the death cam, the
currency, the traffic rules and why each of them is narrower than it
looks, crewed vehicles, allied convoys, and the building-grid bug that
was letting bullets, line of sight and people through three quarters of
every wall.

Two new gates under Next: whether the crash cost reads as punishing or
as a reason to slow down, and whether the overhaul becomes something
you save for.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
dejvino 2026-08-09 08:28:05 +02:00
parent 5c2778785c
commit b4f8fd6c99

View File

@ -13,6 +13,8 @@ Endless driving survival game.
- **Phase 8** — recognition: being noticed, being hunted, and getting away. - **Phase 8** — recognition: being noticed, being hunted, and getting away.
- **Phase 9** — stakes: a crash that costs something, a death that costs - **Phase 9** — stakes: a crash that costs something, a death that costs
something, a chase you can lose, and a town you can navigate. something, a chase you can lose, and a town you can navigate.
- **Phase 10** — a world that behaves: traffic with lanes, crews you can read,
walls that are actually there, and money you can spend.
## Running ## Running
@ -300,8 +302,13 @@ no way to end.
Everything is now anchored to that measured figure, and damage is capped per Everything is now anchored to that measured figure, and damage is capped per
step — a crash is a pile of contacts across several steps plus whatever the car step — a crash is a pile of contacts across several steps plus whatever the car
scrapes on the way to a standstill, and that sum has no natural bound. A hard scrapes on the way to a standstill, and that sum has no natural bound.
crash costs about 15% of the chassis and 5% of its ceiling.
What it costs is deliberately brutal. That reference head-on leaves the chassis
at **23%**, the tyres at 61% and the engine at 75%, ordered by what a collision
actually ruins. One is a disaster you drive home from; two in a row is the end
of the car. An earlier calibration left it at 65% and perfectly driveable, which
made hitting a building at ninety an inconvenience rather than a decision.
Baseline wear came down with it. Tyres shed 8e-5 per metre, so twelve clean Baseline wear came down with it. Tyres shed 8e-5 per metre, so twelve clean
kilometres took them from new to ruined while a two-kilometre round trip paid kilometres took them from new to ruined while a two-kilometre round trip paid
@ -332,6 +339,21 @@ written off the instant you are handed it, and the only way out of the campaign
is wiping it. A genuinely miserable car you can still drive is the interesting is wiping it. A genuinely miserable car you can still drive is the interesting
version of that ending rather than the broken one. version of that ending rather than the broken one.
### The five seconds before you wake up
The run does not end the instant the car does. Control goes, the camera leaves
the bumper and climbs away to sixty metres — turning slowly — until the street,
whatever you hit and whoever is standing around watching are all in frame. The
point of the shot is not the car; by then the car is a fact. It is *where* this
happened, which is the thing you have to drive back out to.
The world keeps running underneath it, because a death cam over a frozen world
is a screenshot rather than a moment. What stops is the driver: no throttle, no
board, no overhaul, and no quietly finishing the job by virtue of having stopped
moving on top of the target. Anyone shooting stops a quarter of the way in —
the burst that killed you should finish, but standing over a wreck emptying
magazines into it reads as the enemy beating a dead horse.
Nothing about any of it is announced. The front moving against you is something Nothing about any of it is announced. The front moving against you is something
you find out by driving back out there. you find out by driving back out there.
@ -362,6 +384,32 @@ Let the road cool and the whole thing is abandoned.
**Traffic and people.** Civilian cars route across the network with somewhere to **Traffic and people.** Civilian cars route across the network with somewhere to
be; people wander on foot near the buildings. Both scatter when shooting starts. be; people wander on foot near the buildings. Both scatter when shooting starts.
**And they drive like traffic.** Cars hold a line parallel to the centreline,
offset right by a share of the road's own half-width — a track gets a nudge, a
trunk gets a lane — so two meeting head-on are on opposite sides of the road
instead of in the same metre of tarmac. Steering is rate-limited, so a
right-angle junction is a turn rather than one frame of instant pivot. They lift
off for the car in front, and overlapping vehicles are pushed apart, because
following distance does not cover a merge: two cars converging on a junction are
more than ninety degrees apart right up until they both turn onto the same
heading and are already touching.
Each of those rules is narrower than it first looks, and the narrowness is the
point. Only civilians defer, or a patrol queues politely behind a bus and never
reaches the road it was dispatched to. Only for cars going roughly the same way,
or two meeting on a single track each wait forever for the other. And separation
is same-direction only, since oncoming cars are already a lane apart — which on
a narrow road is less than the separation radius, so pushing them apart undid
the lane discipline that put them there.
**Armed vehicles carry a visible crew.** A patrol car used to be an empty box
that occasionally emitted tracers. There is now a man standing up out of it, and
his weapon comes up only once they have decided about you: across his lap
otherwise, levelled and tracking when the car is hunting or when something of
the other army is in range. That difference is the point — being recognised was
a meter filling up in the corner of the screen, and it is now something you can
watch happen across a street.
**Your own side is standing in your own streets.** Liberated territory read as **Your own side is standing in your own streets.** Liberated territory read as
empty — no patrols by design, and nobody else either — so the safest part of the empty — no patrols by design, and nobody else either — so the safest part of the
map was also the deadest, and coming home felt like arriving nowhere rather than map was also the deadest, and coming home felt like arriving nowhere rather than
@ -376,6 +424,13 @@ They are placed by checking who holds the ground they would *stand* on rather
than the band the player is in, since near a border those are different answers, than the band the player is in, since near a border those are different answers,
and they leave when the line moves over them. and they leave when the line moves over them.
**Your own side has vehicles too.** Convoys route the network like traffic, so
they inherit lane discipline and following distance for nothing, but only
between junctions your side holds: 4 at home, 2 in contested ground, none past
it. Fewer than the men on foot, because a truck is scarcer than a rifle and
because friendly traffic outnumbering the civilian kind would turn every road
into a convoy. They carry the same crew the enemy cars do.
### The war you are driving through ### The war you are driving through
Skirmishes break out between the two armies on contested and occupied ground, Skirmishes break out between the two armies on contested and occupied ground,
@ -392,6 +447,23 @@ Buildings stop bullets, which is what makes cover worth anything. Hits are route
through the same wear model as a crash, so being shot costs you ceiling too — it through the same wear model as a crash, so being shot costs you ceiling too — it
is permanent in the same way everything else is. is permanent in the same way everything else is.
**Nothing shoots or walks through a wall.** Rounds always died against
buildings, but nothing checked before pulling a trigger, so units emptied
magazines into the concrete between them and a target they could not see — what
you saw from the car was tracers coming out of a solid wall. Firing now needs
the same line of sight the round does. Free movement wrote straight into x and z
too, so pedestrians, militia, fighters and fleeing civilians all walked through
buildings; they now take the same detour the hunters do, and spawns retry rather
than dropping somebody inside a wall on the first frame.
Underneath both was one bug worth recording. The building lookup grid stepped
the world coordinate by the cell size from `x-reach` to `x+reach`, but a
building's reach is about 7 m and a cell is 24 m — so the loop always took
exactly one step, every building registered a single cell, and it silently
vanished from the other three it straddled. Points in those cells read as open
ground for bullets, for line of sight and for people. Six units in ninety were
standing inside buildings; now none are.
**The enemy does not shoot at you by default.** You are an undercover driver, not **The enemy does not shoot at you by default.** You are an undercover driver, not
a target. They open up only past the line *and* on a road they have already a target. They open up only past the line *and* on a road they have already
checkpointed — that is, a road you personally made notorious. checkpointed — that is, a road you personally made notorious.
@ -451,6 +523,9 @@ corner. The panel has `` / `+` buttons for the car's condition, because
"drive a wrecked car for a minute" is something you want to do *while driving* "drive a wrecked car for a minute" is something you want to do *while driving*
rather than while typing into a console. rather than while typing into a console.
The panel also has `−¤` / `+¤`, so the workshop and the board can be exercised
without first driving eight missions to afford looking at them.
The handle also steps the simulation by hand, renders on demand, and writes The handle also steps the simulation by hand, renders on demand, and writes
frames to `shots/` via a dev-only endpoint — which is how this build gets looked frames to `shots/` via a dev-only endpoint — which is how this build gets looked
at at all when the tab is not compositing. `__dbtl.state` exposes the live sim. at at all when the tab is not compositing. `__dbtl.state` exposes the live sim.
@ -696,12 +771,23 @@ and people you have no reason to interact with, and a war that is obviously not
about you. If firefights read as encounters staged for the player, the spacing about you. If firefights read as encounters staged for the player, the spacing
and spawn rules in `sim/units.ts` are the dial. and spawn rules in `sim/units.ts` are the dial.
**Phase 10:** the world should hold up to being *looked at* rather than only
driven through. Park somewhere busy and watch for a minute: traffic should
queue and pass rather than interpenetrate, crews should be relaxed until they
are not, and nothing should be standing in a wall. If any of that fails it is
visible immediately, which is the point of putting it in the list.
**Phase 9:** three gates, and all of them are about whether anything is at **Phase 9:** three gates, and all of them are about whether anything is at
stake. stake.
- You slow down for a corner you would previously have taken flat, because the - You slow down for a corner you would previously have taken flat, because the
car is worth protecting. If you still drive like it is a rental, `IMPACT_REFERENCE` car is worth protecting. One serious crash should be a disaster you drive home
is too forgiving; if a single mistake ends the run, it is too harsh. from and two should end the car; if that reads as too punishing, the dial is
the coefficients in `applyWear` rather than `IMPACT_REFERENCE`, which is
measured rather than chosen.
- Money accumulates faster than you can spend it on repairs, and the overhaul
becomes the thing you save for. If you never press `C`, `CEILING_PER_FUND` is
too mean; if the ceiling stops mattering, it is too generous.
- Being hunted makes you think about *where* rather than only about the - Being hunted makes you think about *where* rather than only about the
throttle. If you still escape by holding `W` on any road at all, raise throttle. If you still escape by holding `W` on any road at all, raise
`HUNT_SPEED`; if the chase is unloseable, the answer is more militia near home `HUNT_SPEED`; if the chase is unloseable, the answer is more militia near home