You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Run the canonical-box benchmark comparison for the door collider ray merge #113
Expected. A closed DOOR or BUTTON contributes to both the line-of-sight and collision rays the same way cmangos' GameObjectModel/DynamicTree does, and adding that dynamic pass does not measurably slow the existing static ray or movement collision gate.
Actual (at 87109e3c). The code is done. game_go_collider registers door and button geometry per map and instance (go_collider.rs#L1-L40), and los_ray/collision_ray consult it after the static pass and take the nearest hit (vmap.rs#L811-L824). A private durable fixture covers open, closed, and despawned state, sibling-instance isolation, and hit ordering against both static and dynamic geometry. debug_bench_los and debug_bench_collision_gate exist, but nobody has run them against the canonical box to confirm the dynamic pass adds no regression.
How to check. On the canonical Elwynn/Westfall import, run debug_bench_collision_gate and debug_bench_los exact=true before and after registering door colliders, and compare the timings.
Done when. Both benchmark results are recorded here, with the commit and whether the dynamic pass stayed within acceptable overhead.
Source implemented in #477, merged as ef33da57990e71dbace256ff025f4673dd818c5e.
The private collider registry now follows GameObject and instance lifecycle changes. Closed DOOR and BUTTON meshes participate in both ray flavors with scale, quaternion or yaw transforms, state and liveness checks, and nearest-hit selection. The original debug_vmap_ray command still probes instance 0.
The private durable fixture passed closed/open/despawned checks for both rays, transform and hit-order cases, sibling isolation, imports, Package replay, pools and instance reap. All six CI jobs passed on 37d1a1e, including the durable suite in 17m54s. CodeRabbit confirmed the fixture rollback correction on 37d1a1e in its review reply; the fixture reaches its success marker and preserves seeded rows.
This issue remains open for the specified canonical-box comparison with debug_bench_collision_gate and debug_bench_los exact=true. Those benchmarks were not run as part of this source change.
changed the title [-]vmap/go: door collider registry + state-gated ray merge (instance 0)[/-][+]Run the canonical-box benchmark comparison for the door collider ray merge[/+]on Oct 8, 2026
Activity
Mathih13 commentedon Sep 8, 2026
Source implemented in #477, merged as
ef33da57990e71dbace256ff025f4673dd818c5e.The private collider registry now follows GameObject and instance lifecycle changes. Closed DOOR and BUTTON meshes participate in both ray flavors with scale, quaternion or yaw transforms, state and liveness checks, and nearest-hit selection. The original
debug_vmap_raycommand still probes instance 0.The private durable fixture passed closed/open/despawned checks for both rays, transform and hit-order cases, sibling isolation, imports, Package replay, pools and instance reap. All six CI jobs passed on
37d1a1e, including the durable suite in 17m54s. CodeRabbit confirmed the fixture rollback correction on37d1a1ein its review reply; the fixture reaches its success marker and preserves seeded rows.This issue remains open for the specified canonical-box comparison with
debug_bench_collision_gateanddebug_bench_los exact=true. Those benchmarks were not run as part of this source change.[-]vmap/go: door collider registry + state-gated ray merge (instance 0)[/-][+]Run the canonical-box benchmark comparison for the door collider ray merge[/+]