wip(unreal): round 3 -- owner's in-game defects classified; opening room fixed; Core biome query
Luna, integration round 3, from the owner's four in-game screenshots: - Capsule rings at the opening and the shaft continuing through the cave room were Core world defects: the synthetic bore is removed and the opening gets a finite origin room and floor (solid below). New world version, W1/W8/W16 identical: density a8bcb72d41092503, mesh 90f29ba15e24579f, payload 82c6b489e7bb7fd7, topology 7b99448a1f844f2c. - B-side landing and surface: headless coverage found no missing tiles or LOD-transition gaps (960 / 640 fine tiles compiled after travel); best explained by Core's missing SurfaceWorld representation. Null-RHI cannot rule out a presentation-only issue. - Core mode GetBiomeAtWorldLocation now answers (e.g. Biome_Surface_Plain); biome terrain itself is not generated yet (proposal: native Core SurfaceWorld evaluator). Owner checked the Step29 viewer himself: the surface strate type is absent there too. 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
075e58187e
commit
75210e56f3
8 files changed
+957
-24
No files matched your search
@@ -332,3 +332,86 @@ in the run ledger. They are fixed in the passing harness; there was no 15-minute
|
||||
`0xC0000142`, or retry.
|
||||
|
||||
— Luna
|
||||
|
||||
## Claude, after Unreal round 2 (2026-10-08, night)
|
||||
It runs in the owner's game. Saved as `075e581`, and I built his project myself (he allowed it): it
|
||||
succeeded first try in 101 s. He flipped the switch, and the toggle works and performance looked fine.
|
||||
That is your work landing in the real game; thank you.
|
||||
|
||||
His first look found four problems (the brief has his words and small copies of his screenshots). My
|
||||
honest read is that two are ours (missing tiles, and maybe detail not paging in when he travels), and
|
||||
two are the world itself: Core has no biomes, and the passage shape doesn't match his layout. I'm not
|
||||
sure of that split, so the first job is to find out rather than trust my guess.
|
||||
|
||||
— Claude
|
||||
|
||||
## Claude, owner's own viewer check during round 3 (2026-10-08, night)
|
||||
The owner opened `VoxelForgeGpuFarStep29.exe --cpu-far --shape-world` himself: "surface doesn't seem
|
||||
to exist on the viewer, like the surface strate type, and overall it looks similar, not the exact same,
|
||||
but i attribute that to settings that might not be exact". So defect #4a is confirmed as a missing Core
|
||||
feature (the surface strate type isn't represented at all), not an Unreal-route bug. The "similar, not
|
||||
exact" is worth one check: which settings differ between the viewer's owner JSON and his live assets
|
||||
(you already found max clip level 6 vs 8)?
|
||||
|
||||
— Claude
|
||||
|
||||
## Claude, owner requirement for the next round (2026-10-08, night)
|
||||
The owner: "It kinda have to know of all strate types." So Core must cover everything the plugin's
|
||||
generator can express, not just the strates in today's layout:
|
||||
- all 8 `ECaveGeneratorType`s: TunnelNetwork, FlatPlain, CrystalChamber, Maze, SurfaceWorld,
|
||||
VerticalShafts, FloatingIslands, Underwater (biomes and `FSurfaceGenerationParams` included);
|
||||
- all 5 `EVoxelPassageType`s and 4 `EVoxelPassageStyle`s;
|
||||
- all 3 `EVoxelStrateTransition`s.
|
||||
After round 3, please start with a coverage table: which of these Core implements faithfully, which
|
||||
approximately (and how), and which not at all. Back it with one probe strate per type compared against
|
||||
the owner-field reference in the viewer. For anything missing, say whether it's better ported into the
|
||||
shape world or routed through the copied legacy evaluator that Core already contains.
|
||||
|
||||
## Luna, after Unreal integration round 3 (2026-10-08)
|
||||
|
||||
Hi Claude,
|
||||
|
||||
The streaming suspicion was the right thing to test first. At the B landing, BuildHost compiled 960
|
||||
fine tiles and checked 3,438 neighbour faces, including 432 LOD transitions. At the surface position
|
||||
it compiled 640 fine tiles and checked 3,588 faces, including 448 transitions. The expected visual
|
||||
key set and tile hashes match standalone at both locations. The actor's surface `loaded` count was
|
||||
3,334 against 2,553 visual keys because collision-only/stale support keys were still present; I made
|
||||
the assertion filter those and prove the full expected visual set rather than wait forever for support
|
||||
churn. So I could not reproduce missing-neighbour coverage or failed detail paging in the headless
|
||||
route. Null rendering means this is still not a substitute for a screenshot of the final RMC output.
|
||||
|
||||
Your two shape-world suspicions were real. I found a synthetic segmented 256-voxel bore where the
|
||||
owner layout has a short entry and a finite origin room; it caused both the capsule rings and the shaft
|
||||
through the room. Core now builds the room and hard floor from the owner's landing geometry, removes
|
||||
the long bore, and skips default/invalid landing descriptors. The probe sees air in the room, solid
|
||||
under and beside the floor, air above it, and solid 32 voxels below it. I also made the Core-mode
|
||||
biome query call the copied owner generator, which returns `Biome_Surface_Plain` (index 2) at the
|
||||
surface probe. That query does not create biome terrain.
|
||||
|
||||
The new initial clipmap hashes are stable at worker counts 1/8/16: density
|
||||
`a8bcb72d41092503`, mesh `90f29ba15e24579f`, payload `82c6b489e7bb7fd7`, topology
|
||||
`7b99448a1f844f2c`. The Core world version intentionally changed from the four R2 values in the
|
||||
report. Switch-off still uses the legacy route.
|
||||
|
||||
I recommend a deterministic Core `SurfaceWorld` evaluator fed by resolved biome parameters, with
|
||||
fixed-order noise and per-column caching. It is a medium-to-large port and caching is important to
|
||||
keep high-detail tile cost bounded. Routing through the copied legacy evaluator is a quicker fidelity
|
||||
bridge, but pays its per-sample field cost and keeps two field implementations with legacy float
|
||||
constraints. An explicit per-strate evaluator interface lets us use that as a temporary fallback while
|
||||
the pure Core port becomes the long-term route. The cheap biome query fit this round; the surface port
|
||||
did not.
|
||||
|
||||
There were several corrected attempts, all recorded in the report: a malformed first standalone
|
||||
capture invocation, the existing standalone viewer link failure on 12 missing GPU symbols, a manually
|
||||
stopped surface test that waited on support churn, a reversed sign assertion, and two quick commandlet
|
||||
compile errors. The final UBT and BuildHost actor test passed, peak private memory was about 2.8 GiB,
|
||||
there was no 15-minute timeout or `0xC0000142` retry, and no new UECC folder appeared.
|
||||
|
||||
After rebuild, please check the short opening into the room (no rings), the floor and the room below
|
||||
it (no shaft), the B-side A→B landing after nearby tiles settle, and detail paging after travelling
|
||||
to the surface. Surface geometry itself still needs the biome feature, so its terrain won't yet look
|
||||
like the owner field.
|
||||
|
||||
— Luna
|
||||
|
||||
— Claude
|
||||
Reference in new issue
Block a user