feat(physics): port retail complete object frame pipeline
Restore the named-retail object update order across local, remote, static, projectile, animation, shadow, teleport, and effect lifetimes. Separate authoritative root commits from spatial rebucketing, preserve per-owner hook/FIFO ordering, and remove update-path allocations with exact lifecycle and residency gates. Add deterministic conformance, adversarial lifetime, GUID-reuse, pending-cell, quaternion, timestamp, and allocation coverage. Release build is warning-free and all 6,446 tests pass with five intentional skips; retail, architecture, and adversarial reviews are clean. Co-authored-by: OpenAI Codex <codex@openai.com>
This commit is contained in:
parent
31a0889f08
commit
f961d70023
77 changed files with 12513 additions and 1871 deletions
|
|
@ -872,9 +872,52 @@ diagnostic scaffolding, not yet the final collision system.
|
|||
183-case/funnel/moveto/chase/sticky suites unmodified. Arc close-out:
|
||||
`docs/research/2026-07-03-r5-managers/r5-wiring-handoff.md`. Open follow-ons
|
||||
carried: #167 (ConstraintManager arming). TS-42's per-tick completion/
|
||||
manager order retired in the first R6 cutover on 2026-07-19; complete-frame
|
||||
plumbing, PositionManager interpolation, quantum ownership, and side-channel
|
||||
deletion remain R6 scope.
|
||||
manager order retired in the first R6 cutover on 2026-07-19. The second R6
|
||||
cutover now carries complete CSequence Frames (translation + DAT omega),
|
||||
one incarnation-stable live-object quantum clock across local, remote,
|
||||
Hidden, and projectile components, complete interpolation orientation, and
|
||||
no ObservedOmega/synthetic-turn side channel. It also ports the 96-unit
|
||||
PartArray Active gate plus immediate-active `prepare_to_enter_world` rebasing
|
||||
and preserves live identity across loaded/pending rebucketing. Semantic
|
||||
AnimationDone is in retail's pre-transition manager slot; TS-50 explicitly
|
||||
carries the remaining pose-dependent hook-router delivery delay. The
|
||||
Setup/state-driven `static_animating_objects` workset is now separate as
|
||||
retail requires for both DAT and live physics-Static owners, including
|
||||
unconditional PartArray default installation, direct 30-fps
|
||||
DefaultAnimation, short residency-gap catch-up, and the greater-than-two-
|
||||
second discard. Live static entries reuse the canonical record PartArray and
|
||||
body; `animate_static_object` applies its raw omega without elapsed scaling
|
||||
and commits changed render/effect/collision roots together without zero-omega
|
||||
refloods or Hidden-shadow resurrection.
|
||||
No-animation live remotes remain in the canonical ordinary-object workset,
|
||||
and one animation-optional inbound dispatcher now owns their same retail
|
||||
UpdateMotion funnel and near-correction consumption. `PerformMovement`
|
||||
reactivates its owner before validation. A shared update-thread inbound FIFO
|
||||
now prevents synchronous App callbacks from interleaving packets or frame
|
||||
tails, while exact-record Position/State/Vector/Movement authority versions
|
||||
preserve retail's independent timestamp channels and a narrow velocity token
|
||||
resolves their one overlapping write. Projectile Begin/Complete prediction,
|
||||
teleport placement, landing callbacks, Hidden transitions, and deferred
|
||||
animation hooks all revalidate those exact ownership boundaries. Pose-owner
|
||||
lifetime versions are captured before AnimationDone and checked before each
|
||||
semantic completion and routed hook, closing delete/local-ID reuse during
|
||||
both capture and drain. Direct frame/packet FIFO dispatch and spatial
|
||||
animation update/render traversal are allocation-free after warmup; only
|
||||
real nested work allocates a retained queue node. TS-51 records
|
||||
the remaining shared particle/PhysicsScript tail timing. The ordinary
|
||||
live-object scheduler and generic body transition path now live outside
|
||||
GameWindow; body-backed animations, retained post-Missile bodies, visibility-
|
||||
edge clock/shadow residency (including initial pending materialization),
|
||||
callback-safe cross-cell rebucketing, and teardown all share the canonical
|
||||
live record. Local and authoritative remote collision publication now occurs
|
||||
only after exact-owner spatial revalidation; remote shadows refresh for
|
||||
translation, complete orientation, or cell change. Folding
|
||||
InterpolationManager into the owned
|
||||
PositionManager facade remains the final R6 ownership cleanup.
|
||||
Final 2026-07-20 gate: three independent retail/architecture/adversarial
|
||||
re-reviews are clean; Release build is warning-free; the repository suite is
|
||||
6,446 passed / 5 skipped. A connected locomotion/collision/projectile/
|
||||
teleport visual and performance rebaseline remains the next gate.
|
||||
- **L.2g — Inbound motion interpretation (remote-entity CMotionInterp funnel).**
|
||||
ACTIVE 2026-07-02. Port retail's inbound motion pipeline verbatim for ALL
|
||||
remote entities (players, NPCs, monsters — one funnel, user-approved):
|
||||
|
|
|
|||
|
|
@ -10,10 +10,15 @@ favorite spell bar, connected casting/enchantment effects, and portal-space
|
|||
presentation have passed their single-client visual gates. The corrective bounded
|
||||
render/resource-lifetime integration passed its seven-destination connected
|
||||
stress gate without a crash or cumulative collapse. The remaining M3 visual
|
||||
requirement is the final two-client portal-out/materialize observer gate.
|
||||
requirement is the final two-client portal-out/materialize observer gate. The
|
||||
new R6 object-update cutover also requires one connected locomotion/collision/
|
||||
projectile/teleport visual and performance rebaseline before that observer gate.
|
||||
Carried:
|
||||
#145-residual, #116 slide-response, the remaining R6 object-pipeline cutover
|
||||
(TS-42 manager order retired 2026-07-19), and Track MP0.
|
||||
#145-residual, #116 slide-response, the remaining R6 ownership cleanup plus
|
||||
registered TS-50/TS-51 timing residuals (the complete-root-Frame/object-workset
|
||||
cutover is automated-test complete 2026-07-20; three independent re-reviews are
|
||||
clean, Release builds with zero warnings, and 6,446 tests pass / 5 skip), and
|
||||
Track MP0.
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue