docs(#182): crowd-collision investigation outcome + velocity-model rebuild design
The #182 CSphere port (96ae2740) failed its visual gate and introduced an
airborne "stuck in the falling animation" regression. A player-attributed retail
cdb trace (tools/cdb/retail-crowd-jump3.cdb) proved retail's LOCAL client fully
runs player-vs-creature collision (76 land_on_sphere, 188 COLLIDED, 130 SLID,
~78% OK, glides across) -- NOT server-authoritative (an earlier unfiltered
land_on_sphere=0 read was a false lead the attributed trace refuted).
acdream's same-repro capture: 50.9% OK, 22.4% stuck, 115 airborne-stuck. Root
divergence: retail CPhysicsObj::UpdateObjectInternal (0x005156b0, pc:283688) sets
cached_velocity = (resolved - old)/dt -- velocity from ACTUAL movement, so a
blocked jump collapses to ~0 -> gravity -> the player falls/glides. acdream
integrates velocity + reflects on collision (PlayerMovementController ~:1008-1069),
so the jump velocity (~18) persists against the creature -> hang.
Fix = verbatim rebuild of the per-frame player-physics loop (UpdateObjectInternal
chain), velocity model first, transition internals kept. Full design +
retail function inventory + the capture apparatus + retail target numbers:
docs/superpowers/specs/2026-07-07-player-physics-update-verbatim-rebuild-design.md.
Implementation deferred to a fresh session (user decision). Also files #183
(floating distant scenery, observed during testing). #182 stays as the base.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
96ae274081
commit
80881ed6f1
5 changed files with 305 additions and 1 deletions
|
|
@ -46,13 +46,50 @@ Copy this block when adding a new issue:
|
|||
|
||||
---
|
||||
|
||||
## #183 — Floating distant scenery: trees from another biome hover in the distance
|
||||
|
||||
**Status:** OPEN
|
||||
**Severity:** LOW
|
||||
**Filed:** 2026-07-07
|
||||
**Component:** rendering / scenery / streaming
|
||||
|
||||
**Description:** Observed during #182 crowd testing (Holtburg area, `+Acdream`): trees
|
||||
that appear to belong to a different biome render **floating** in the distance —
|
||||
detached from the ground, at the wrong Z and/or wrong placement. Distant/far-radius
|
||||
scenery only; unrelated to the collision work.
|
||||
|
||||
**Root cause / status:** Unknown. Candidates: far-tier streaming placing scenery
|
||||
before its terrain Z is resolved (procedural scenery Z uses the terrain height at the
|
||||
cell — a stale/zero height would float it), a biome/terrain-type mismatch selecting
|
||||
the wrong scene set, or a far-LOD placement offset. Not yet investigated.
|
||||
|
||||
**Files:** likely `src/AcDream.App/Rendering/Wb/` scenery pipeline
|
||||
(SceneryRenderManager / SceneryHelpers) + the two-tier streamer's far tier.
|
||||
|
||||
**Acceptance:** distant scenery sits on the ground with correct biome/placement.
|
||||
|
||||
---
|
||||
|
||||
## #182 — Player wedges in a packed monster crowd, can't wiggle free (hand-rolled SphereCollision)
|
||||
|
||||
**Status:** DONE (fix landed; pending user visual gate)
|
||||
**Status:** IN-PROGRESS — CSphere port shipped (`96ae2740`) but **visual-gate FAILED**;
|
||||
the real fix is a velocity-model rebuild (see design spec), deferred to a new session.
|
||||
**Severity:** MEDIUM
|
||||
**Filed:** 2026-07-07
|
||||
**Component:** physics / collision
|
||||
|
||||
**GATE OUTCOME (2026-07-07):** The CSphere-family port below was faithful but did NOT
|
||||
fix the crowd feel and INTRODUCED an airborne "stuck in the falling animation"
|
||||
regression. Player-attributed retail cdb trace proved retail's local client fully runs
|
||||
player-vs-creature collision (~78% OK, glides) — NOT server-authoritative. Root
|
||||
divergence: retail's per-frame `UpdateObjectInternal` sets velocity = ACTUAL movement/dt
|
||||
(blocked → velocity collapses → gravity → glide); acdream integrates+reflects (jump
|
||||
velocity persists → hang). Fix = verbatim rebuild of the per-frame player-physics loop,
|
||||
velocity model first. Design:
|
||||
`docs/superpowers/specs/2026-07-07-player-physics-update-verbatim-rebuild-design.md`.
|
||||
#182 stays as the base (user), so the codebase carries the airborne regression until
|
||||
the rebuild lands.
|
||||
|
||||
**Description:** In a large group of monsters packed around the player it was too
|
||||
easy to get stuck — the player couldn't shuffle/slide out. Retail leaves room to
|
||||
wiggle free.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue