wip(assembler): round S9 -- collision look-ahead: ground ring ready on arrival up to 40 m/s and 50 m/s falls
voxel.StreamingCollisionLookahead (default on) predicts the support tile 350 ms ahead along full 3D velocity and prioritises its 9-tile collision ring. Owner plan, BuildHost actor: 40 m/s arrival-ready 25/74 -> 74/74 (CVar-off control 15/74); 6/12/25 m/s stay 100%; -Z 50 m/s 93/93. Spawn unchanged (~7.7 s). Critical LOD0 path at 40 m/s: generation 67 ms p50, RMC body update 38 ms p50. LOD8 cost counted (native horizon 48 ms of 60), optimisation deferred. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MmSoF64BbRFmk9C3p1VsBJ
This commit is contained in:
1 parent
8440adc742
commit
e7586a1256
7 files changed
+507
-70
No files matched your search
@@ -1609,6 +1609,45 @@ The cap kept the observed backlog finite without reinstating the S6/S7 finished-
|
||||
decline. Full timings, per-center records, quality checks and hashes are in
|
||||
[`Standalone/Research/WorldAssemblerM3/Round12/REPORT.md`](Standalone/Research/WorldAssemblerM3/Round12/REPORT.md).
|
||||
|
||||
### 8.30 Velocity-scaled support-ring lookahead — World Assembler S9 / M3 Round 13
|
||||
|
||||
The ring gate uses the support tile, which can sit one tile below the clipmap center on a surface
|
||||
world. Both scheduler branches must use the same `GetPlayerSupportTile` result for the active 3x3
|
||||
collision-critical ring and its predicted rings. Predicting from the stream center can spend work on
|
||||
the wrong vertical slice, so the trace includes both `center` and `walkable_center`.
|
||||
|
||||
`voxel.StreamingCollisionLookahead` defaults to `1`; `0` disables only the prediction and is the
|
||||
negative control. `GetStreamingHeadingStep` transforms velocity into actor space and selects its
|
||||
dominant axis, including Z for a fall; when motion is zero it falls back to pawn forward. The
|
||||
lookahead targets 350 ms of travel, rounds up to whole active LOD0 tiles, and clamps the lead to one
|
||||
or two rings. The scheduler adds the future 3x3 keys only when they already belong to the desired
|
||||
clipmap, then moves those collision keys into `CriticalDesiredTiles`. It does not reserve more worker
|
||||
slots, expand the clipmap, cancel in-flight jobs, or change tile arithmetic. `collision_lookahead`
|
||||
records speed, direction, stream/support centers, promoted-key count and missing desired keys.
|
||||
|
||||
On the staged SurfaceWorld owner plan at 25 cm, the S9 `+Y` trace found the ring ready at all 74/74
|
||||
support-center arrivals through 40 m/s; the corrected-source CVar-off control found 15/74. The
|
||||
S8 no-lookahead baseline was 25/74. At 50 m/s scripted downward motion, 93/93 support-center
|
||||
arrivals were ready. The 40 m/s matched on/off initial-ready times were 7.743/7.778 s, so the
|
||||
prediction did not slow spawn in this pair. These figures support 40 m/s as the highest horizontal
|
||||
speed tested; they do not measure a higher horizontal ceiling. The vertical trace is a scripted
|
||||
actor move through the owner plan, not a free-fall physics replay.
|
||||
|
||||
For 108 critical LOD0 tile jobs with complete stage joins at 40 m/s, request-to-worker start was
|
||||
0.02/9.59 ms p50/p95, generation 66.6/84.0 ms, result wait 9.3/17.7 ms, game-thread apply to mesh
|
||||
submit 0.17/0.24 ms, RMC collision submit 0.01/0.02 ms, and RMC submit-to-body-update 37.6/85.9 ms.
|
||||
The latter is the observable body-ready interval, not a Chaos-only CPU timer. The current trace saw
|
||||
no scheduler skips, a 113-result peak under the 256 cap and 33 ms maximum region-page compile with
|
||||
concurrent admission. Generation and body update dominate the measured tile path; the lookahead
|
||||
gives those stages time to finish before the support center changes. LOD0-missing clipmap frames
|
||||
remain separately visible in the Round 13 table; they are not equivalent to a missing support ring.
|
||||
|
||||
The scheduler change does not alter field, mesh or collision output, so `WorldAssemblerPlanV1` and
|
||||
the far-horizon recipe versions stay unchanged. Core-off legacy, M2 fixtures, SurfaceWorld and
|
||||
FloatingIslands checks passed; the S3/S4 ground, cap and coverage audit passed. The full sweep,
|
||||
negative control, hashes, stage ledger and the deferred LOD8 optimization plan are in
|
||||
[`Standalone/Research/WorldAssemblerM3/Round13/REPORT.md`](Standalone/Research/WorldAssemblerM3/Round13/REPORT.md).
|
||||
|
||||
## 9. Multiplayer model (listen-server first, dedicated-friendly)
|
||||
|
||||
> **Status: transport is DESIGN ONLY — nothing is networked in-tree yet** (no `Replicated`/`HasAuthority`/RPCs; a
|
||||
|
||||
Reference in new issue
Block a user