From ade419839fbab20f008241ab29acd2519a68bfb2 Mon Sep 17 00:00:00 2001 From: type-two Date: Sun, 26 Jul 2026 13:15:50 +1000 Subject: [PATCH] [lane B] Playtest fix: the ship was sluggish, and it measurably was MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- web/js/flight/tuning.js | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/web/js/flight/tuning.js b/web/js/flight/tuning.js index 2c48f60..73003d5 100644 --- a/web/js/flight/tuning.js +++ b/web/js/flight/tuning.js @@ -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