docs(#171): file the group-melee interpenetration issue + R5-V3 handoff/pickup
User report during the #170 gate: pack-melee monsters partly inside each other with slightly stale facings vs retail on the same ACE. Investigation (report-only) pinned two code-grounded causes, both already-tracked R5-V3 scope, fix APPROVED by the user: 1. TS-39 — sticky melee is a no-op: ACE arms melee chases with Sticky (Monster_Navigation.cs:416); retail's arrival hands off to PositionManager::StickTo -> StickyManager::adjust_offset (0x00555430, per-tick 0.3m edge gap + facing tracking); acdream's StickTo/Unstick seams are unbound so attackers freeze at stale arrival poses. 2. Arrival radii are zero: getOwnRadius () => 0f (the R5-V3 pin) and RouteServerMoveTo never sets MovementStruct.Radius/Height — retail/ACE arrive edge-to-edge with setup-derived radii (ACE PhysicsObj.MoveToObject reads the TARGET's PartArray radius/height). Ruled out: the between-snap collision sweep (remotes run full ResolveWithTransition; CollisionExemption keeps creatures collidable). Caveat recorded: ACE has no server-side monster avoidance — acceptance is retail PARITY, not zero overlap. ISSUES #171 filed; handoff docs/research/2026-07-04-171-sticky-melee-handoff.md + pickup docs/research/2026-07-04-171-pickup-prompt.md; memory index updated. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
4cad626ff5
commit
d413ac2a29
3 changed files with 222 additions and 0 deletions
|
|
@ -46,6 +46,50 @@ Copy this block when adding a new issue:
|
|||
|
||||
---
|
||||
|
||||
## #171 — Group melee: monsters interpenetrate + facing drifts (sticky melee unbound, arrival radii = 0)
|
||||
|
||||
**Status:** OPEN — investigated + fix APPROVED 2026-07-04 (user: "Ok I approve").
|
||||
**Severity:** MEDIUM (visual — group combat feel vs retail)
|
||||
**Filed:** 2026-07-04 (user report during the #170 visual gate: "some monsters were
|
||||
partly inside other monsters while hitting me… some orientation of the monsters
|
||||
are a bit off")
|
||||
**Component:** remote entity, MoveTo/PositionManager, R5-V3
|
||||
|
||||
**Description:** in a pack melee, acdream attackers end up partly inside each
|
||||
other with slightly stale facings vs retail on the same ACE. Two code-grounded
|
||||
causes (both already-tracked R5-V3 scope), plus one server-side caveat:
|
||||
|
||||
1. **Sticky melee is a no-op (register TS-39).** ACE arms every melee chase with
|
||||
`Sticky|UseFinalHeading|MoveAway|FailWalk`
|
||||
(`references/ACE/…/Monster_Navigation.cs:416`). Retail's sticky arrival hands
|
||||
off to `PositionManager::StickTo` → `StickyManager::adjust_offset`
|
||||
(0x00555430): per-tick 0.3 m edge-gap + facing tracking against the moving
|
||||
target. Our `MoveToManager.BeginNextNode` invokes the `StickTo` seam — unbound
|
||||
— so attackers complete-and-freeze at stale arrival poses until the next wire
|
||||
re-arm.
|
||||
2. **Arrival radii are zero.** ACE/retail arrive edge-to-edge
|
||||
(`cylinder_distance`, own + target radii from the PartArray/setup —
|
||||
`ACE PhysicsObj.MoveToObject` reads `GetRadius()/GetHeight()` from the TARGET).
|
||||
acdream binds `getOwnRadius: () => 0f` (GameWindow `EnsureRemoteMotionBindings`,
|
||||
the explicit R5-V3 pin) AND `RouteServerMoveTo` never sets
|
||||
`MovementStruct.Radius/Height` → both radii 0 → every attacker closes ~one
|
||||
body-radius deeper than retail → dogpile.
|
||||
3. Caveat: ACE has no server-side monster-vs-monster avoidance — some overlap is
|
||||
server-authoritative and shows on retail too. Acceptance = retail parity, not
|
||||
zero overlap.
|
||||
|
||||
Ruled out: the between-snap collision sweep (remotes run full
|
||||
`ResolveWithTransition`; `CollisionExemption` keeps creature cylinders collidable
|
||||
for non-viewer movers).
|
||||
|
||||
**Approved fix (R5-V3):** port `StickyManager` + bind `PositionManager`
|
||||
`StickTo`/`UnStick` seams + thread setup-derived cylsphere radii through the
|
||||
MoveTo distance math. **SSOT:** `docs/research/2026-07-04-171-sticky-melee-handoff.md`
|
||||
+ pickup `docs/research/2026-07-04-171-pickup-prompt.md`.
|
||||
|
||||
**Acceptance:** side-by-side vs retail in a scamp pack: attackers hold separation
|
||||
+ face the player while it strafes; user visual gate.
|
||||
|
||||
## #170 — Remote creature chase+attack renders wrong vs retail (glide, over-frequency, uniform attack anims)
|
||||
|
||||
**Status:** DONE (2026-07-04) — **user visual gate PASSED** ("looks good, as close
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue