[lane B] Playtest fix: the ship was sluggish, and it measurably was

First human feedback: "ship movement feels sluggish". It was, and the cause was a bug rather
than a taste call.

`disc.damping` is applied every step AFTER accel, so the real cap on lateral speed was never
`maxSpeed` — it was accel/damping. At 78/6.5 that is 12 u/s in theory and a MEASURED 10.16,
which means the authored maxSpeed of 13 was unreachable and had been decorative since round 1.
A full tube crossing took 1.95 s. Against 12-20 u/s of forward flow that is 30+ units of canal
travelled while you cross the lumen once — so anything read late simply cannot be answered,
which is exactly what sluggish feels like from the cockpit.

  accel     78 -> 155   (maxSpeed is now the ACTUAL cap: 155/6.5 = 23.8 > 19)
  maxSpeed  13 -> 19    (crossing 1.95s -> 1.10s, 1.77x faster; ramp to top speed 0.12s)
  damping   6.5 unchanged — it is what makes the ship STOP crisply, and precision was never
            the complaint. Only the ceiling moved.

Knock-ons handled rather than left to rot:
  - bank.gain 0.055 -> 0.04, so 19 u/s lands exactly at bank.max: full deflection still means
    full roll and everything below it stays proportional. At the old gain the ship would have
    been pinned at max roll almost permanently.
  - arena thrust/maxSpeed 44/11 -> 90/16. Those were sized against the old disc; leaving them
    would have made every room feel like treacle next to the corridor leading into it. Still
    deliberately under the tube's flow, per the GDD's "slower, spatial".

Verified no tunnelling at the new speed: pinned at 19 u/s straight into the wall, the ship
reaches rho 10.51 against a wallRho of 11.38 and stays there — 0.32 u of travel per frame at
60 fps, well inside what collideWall resolves.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
type-two 2026-07-26 13:15:50 +10:00
parent 9f6e91fd8f
commit ade419839f

View File

@ -68,9 +68,18 @@ export const TUNING = {
// --- movement inside the cross-section disc ---------------------------------------
disc: {
accel: 78, // u/s²
maxSpeed: 13, // u/s — crosses the ~16 u tube in ~1.2 s: dodgeable, not twitchy
damping: 6.5, // /s exponential drag => coasts to rest in ~0.3 s
// PLAYTEST FIX (round 3): "ship movement feels sluggish", and it measurably was.
// `damping` is applied every step AFTER accel, so the real cap is not `maxSpeed` at all —
// it is accel/damping. At 78/6.5 that made terminal 12 u/s in theory and a MEASURED 10.16,
// so the old maxSpeed 13 was unreachable and a full tube crossing took 1.95 s. Two seconds
// of lateral travel against 12-20 u/s of forward flow means you cannot answer anything you
// read late — which is exactly what "sluggish" feels like from the cockpit.
// Now: accel 155 with maxSpeed 19 makes maxSpeed the ACTUAL cap (155/6.5 = 23.8 > 19),
// reached in 0.12 s, and the crossing drops to ~1.0 s. Damping is untouched on purpose —
// it is what makes the ship stop crisply, and precision was never the complaint.
accel: 155, // u/s²
maxSpeed: 19, // u/s — a full tube crossing in ~1 s
damping: 6.5, // /s exponential drag => still coasts to rest in ~0.3 s
},
// --- arena / 6DOF: in a room, the anatomy stops carrying you -----------------------
@ -79,8 +88,10 @@ export const TUNING = {
// a room (s is the axial one, x/y are the cross-section) — it is that YOU own the forward
// axis. You can stop. You can reverse. Nothing is shoving you at the boss.
arena: {
thrust: 44, // u/s² axial. Softer than disc accel 78: a room is read, not strafed
maxSpeed: 11, // u/s — under the esophagus's 12-20 flow on purpose (GDD: "slower")
thrust: 90, // u/s² axial. Still softer than the disc: a room is read, not strafed
maxSpeed: 16, // u/s — under the esophagus's 12-20 flow on purpose (GDD: "slower"),
// but raised with the disc so a room does not feel like treacle
// next to the corridor that leads into it.
damping: 2.2, // /s — a long coast (no gravity), but it does come to rest
},
@ -96,7 +107,9 @@ export const TUNING = {
// --- attitude: bank into lateral motion -------------------------------------------
bank: {
gain: 0.055, // rad of roll per u/s of lateral disc velocity
gain: 0.04, // rad of roll per u/s. Rescaled for the faster disc: 19 u/s now
// lands right at `max`, so full deflection = full roll and
// everything below it still reads proportionally.
max: 0.75, // rad (~43°)
rate: 7, // /s spring toward target roll
pitchGain: 0.03, // rad of pitch per u/s of vertical disc velocity