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:
parent
5c2778785c
commit
b4f8fd6c99
94
README.md
94
README.md
@ -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
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user