wip(assembler): round L13 -- one density field for every route (multiplayer determinism fix)
Region pages fell back to the legacy GetDensityAt evaluator while the base shape used the Core manifest field, so a tile's density (and sometimes mesh) depended on streaming history. Pages are now bound to their world's base FStandaloneShapeWorld evaluator before publication; density, lattice, detail, classification and solid queries all delegate to it. WorldAssemblyEvaluatorVersion 5 -> 6. Route-parity audit: fails on L12 (5/5); after the fix 0 mismatches over 87 tile pairs (base/page, base/native-only, edited, two histories), 56 exact-query pairs, 2.3M page samples, 4 seeds/recipes. Page-tile proof audit: 1,274 blocks, 0 violations. The spawn and island worlds are unchanged; crossing output changed as intended. Reviewer interleaved spawn: +1.1% (noise). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CSFYgsdW8ejZSyiMf4qRSX
This commit is contained in:
1 parent
32b8670833
commit
976d012a86
10 files changed
+767
-11
No files matched your search
@@ -1823,6 +1823,23 @@ column metrics. All W1/W12 L1 hashes, exact queries, and the seed-0 FloatingIsla
|
||||
the pre-L7 binary with Clang FP contraction off and GCC defaults. See
|
||||
[`Standalone/Research/WorldAssemblerM3/Linux7/REPORT.md`](Standalone/Research/WorldAssemblerM3/Linux7/REPORT.md).
|
||||
|
||||
### 8.36 Route-invariant Core density — World Assembler M3 L13
|
||||
|
||||
For an unedited Core world, tile density, mesh, payload, and topology are a function of the world
|
||||
manifest/recipe, seed, and tile key. The reviewed manifest field is authoritative: SurfaceWorld uses
|
||||
its `Heightfield2D`, while FloatingIslands uses its `FloatingIslandFieldV1`. `World::densityAt` and
|
||||
tile generation read the same `FStandaloneShapeWorld` instance. A compiled analytic region page
|
||||
retains bounded spatial bins for page ownership and routing, but `SetSharedDensitySource` binds it to
|
||||
that base shape before publication; density, lattice, detail, classification, and solid queries
|
||||
delegate to the shared evaluator. This keeps exact queries, collision occupancy signs, page tiles,
|
||||
and base tiles on one field. Player edits remain explicit versioned overlays on that world state.
|
||||
|
||||
The route-binding change increments `WorldAssemblyEvaluatorVersion` from 5 to 6. Do not restore a
|
||||
page-local legacy evaluator: it disagrees with the reviewed field. Uniform-block proof audits must
|
||||
fill and check page tiles against the evaluator they actually sample. This is the shared Core path;
|
||||
the Unreal adapter and its asynchronous MPSC/Epoch flow are unchanged. See
|
||||
[`Standalone/Research/WorldAssemblerM3/Linux13/REPORT.md`](Standalone/Research/WorldAssemblerM3/Linux13/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