ResolvedLayoutSnapshotV3::finalize maps each strate's generator and interface once into capability records (FI gradient air-gap, surface/FI landing support, passage-anchor columns, SW-to-TN floor); ApplyResolvedStrateBoundaryBand and passage composition read those instead of generator kinds. Derived records stay out of canonical JSON, so layout identity is unchanged. Owner hashes identical to L41; fast/medium/full PASS on clean Clang and GCC builds; cost within noise. Research R9 (read-only): player-visible roadmap refresh. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016dhxM43dnWvUu2B5Ph1iG1
14 KiB
I couldn’t write to the requested path because the standing instruction says read-only and “Don’t touch the tree.” Here is the report text for Standalone/Research/WorldAssemblerM3/Research9/REPORT.md. No scripts, builds, tests, probes, or binaries were run.
Research R9 — What should the player see next?
Done, partly done, obsolete
| Area | Status | Readout |
|---|---|---|
| Fable performance work and preview tools | Done, with one caveat | Instrumentation, most Tier 1–2 optimizations, preview, and determinism tools are marked complete. Tile classification was later turned off on the game path; don’t assume every “done” item is still active there. fable-idea.md |
| Biomes, materials, decorations | Done in the legacy Unreal path; partly carried into Core | F5/F6/F16 are marked done. The Core integration documents still identify gaps in water presentation, biome material palette, decoration, and atmosphere. fable-idea.md · ARCHITECTURE.md §8.19 |
| POIs, water, cave materials, terrain ops | Partly done | F7 has deterministic landmark placement, passage-mouth anchors, conditions, and companions; SDF carve/fill stamps remain open. The legacy water plane is strata-wide and visual; swimming is open, and Core does not yet present native water. F17’s cap/ground split exists, but cave material identity is not a general semantic channel. F20’s surface phases 1–2 are built; spikes/holes remain open. fable-idea.md · ARCHITECTURE.md §8.5 |
| Save/load, ore, audio, HUD, weather, carve UX, transport gameplay, ambient life | Open or parked | The Core has edit and layout foundations, but these player-facing systems are not delivered by them. fable-idea.md · fable-idea.md §Experience polish |
| F18 far-field sheets | Obsolete | The owner removed the sheet path in the September cleanup. F20’s proposed SurfaceOps[] data shape was also replaced by fields on FSurfaceGenerationParams. fable-idea.md |
| Strata, passages, transitions | Partly done | The Core resolves physical strata bounds, boundary bands, inter-strate passages, walkable landings, and Hard/Gradient/Interleaved boundary transitions. These do not make every composed season satisfy the entrance-to-exit law. The transition blends boundary bands; it does not blend unrelated generator fields. ARCHITECTURE.md §8.41 · ARCHITECTURE.md §8.46 |
| Lateral within-strate regions | Implemented, gated | The region blend exists, but its passage-law audit is still 4/16; region-zero controls are also 4/16. It is not ready to promote as the route to tunnel/chamber mixing. ARCHITECTURE.md §8.1a |
| Composer and GDD game | Partly done / mostly design | Candidate rolling, measurement, selection, preview, and promotion exist. The season artifact does not yet carry generated passages or the full visual/content payload; tagged draws for materials, creatures, and audio remain open. City, economy, combat, death, housing, and multiplayer are game design, not delivered VoxelForge features. COMPOSER-NOTES.md §4 · COMPOSER-NOTES.md §7 · GDD.md |
The GDD’s geometry contract—bounded strata, passages, and transitions—has a substantial implementation base. The long-term loop, guaranteed resource progression, boss content, named discoveries, seasonal play, and the opening remain design goals, not a playable game loop. The first strate is explicitly meant to be hand-built and story-significant. GDD.md §§6–8 · GDD.md §§9–15
Ranked next player-visible features
Ranked for payoff against delivery cost and risk. Costs and risks are qualitative.
-
Landmarks and set-pieces — very high payoff; medium cost/risk. Core: add deterministic bounded SDF stamp records for carved or filled structures, with stable IDs and passage-safe placement. Unreal: connect those records to the existing landmark streamer and mesh/actor paths. Owner: author a few shrine, ruin, crystal-garden, and boss-entry kits with tags and loot hooks. Placement exists; stamps do not. fable-idea.md F7
-
Cave lighting identity — high payoff; small-to-medium cost, low-to-medium risk. Core: no field change for lights attached to existing ceiling or landmark placements; a real skylight opening needs a bounded geometry feature. Unreal: add cave atmosphere profiles, emissive HISM clusters, and a few local lights or artificial light wells. Owner: author gem-star, bioluminescent, and shaft-light kits plus color/exposure profiles. The existing atmosphere manager is strate/biome-oriented, but this needs an enclosed-cave profile.
-
Depth, place names, and an explored-chunks map — high payoff; small cost/risk. Core: expose resolved strate IDs, depth, passage endpoints, and stable landmark IDs; no density change. Unreal: UMG depth/name cards, route cues, and a lightweight explored-area map. Owner: provide name pools, map symbols, and discovery rules. This also improves orientation before a full quest system exists. fable-idea.md F11 · GDD.md §14
-
Ore veins and dig rewards — very high payoff; medium cost/risk. Core: add a deterministic resource/material channel or bounded vein records, separate from rock density. Unreal: show vein identity through mesh attributes/materials and award resources through the carve path. Owner: author ore looks, rarity/yield, depth eligibility, and guarantees for recipe-critical materials. This directly supports the GDD’s gather-and-return loop. fable-idea.md F8 · GDD.md §9
-
Mixed-scale caves: tunnels opening into chambers — very high payoff; large cost/high risk. Core: build a composite cavern-network recipe whose room graph and bounds are resolved before sampling; keep the strata’s entrance/exit and boundary posts shared. Prefer one evaluator with internal room/tunnel structure over promoting the currently gated lateral blend. Unreal: expose the recipe and a walkable preview, then support its materials, lighting, and collision. Owner: author chamber/tunnel motifs, size ranges, and rules for wide arenas versus narrow connectors.
-
Local streams and pools — high payoff; large cost/high risk. Core: add a bounded watercourse path, pool surface, and liquid-query output. Existing Core fields include water channels and a per-stratum water surface, but that is not a cave stream or pool. Unreal: render water surfaces, add swim/collision volumes, underwater post-process, sound, and effects. Owner: author water materials, flow/pool profiles, sound, and themed edge content. Start with deterministic static flow and local pools; leave fluid simulation for later. VoxelForgeCore.h · ARCHITECTURE.md §8.5
-
Save/load for edits and homes — very high payoff; large cost/high risk. Core: persist edits against the resolved world identity and generation version. Unreal: serialize diffs and house snapshots, with the game’s authority deciding what survives a season. Owner: settle the persistence boundary: GDD says housing survives wipes, while underground building is still open. fable-idea.md F4 · GDD.md §§11, 13
-
Full tagged-content composer — strategic payoff is very high; extra-large cost/very high risk. Core/build box: expand from density recipes to reviewed passage, feature, and content records; preserve deterministic IDs and selection evidence. Unreal: author tags, import reviewed manifests, and spawn the selected content at runtime. Owner: tag raw meshes, materials, sounds, creatures, and structures with overlapping themes and veto composed seasons. This should follow a small authored content library and a proven mixed-cave recipe; otherwise it composes an empty world. COMPOSER-NOTES.md §1 · COMPOSER-NOTES.md §7
Fit with Research6 §2 contract
R6’s scalar field contract is a good fit for a new single composite cave generator, provided its complete plan is immutable and bound before tile jobs. The contract still needs its broader migration: R6 identifies remaining dispatch, unit, policy, passage, and mesher leaks. Recent Core binding/layout work advances that migration, but does not make every generator a native field yet. Research6/REPORT.md §2 · ARCHITECTURE.md §8.50
- Fits without a generator/mesher extension: Unreal-only lighting, actor/HISM landmarks, HUD/map, and edit persistence. A visual landmark can reuse the current content path.
- Fits the evaluator contract, but needs data/implementation: A composite cave generator can return one
densityAtfield. Its room graph and feature bounds must be in the resolved snapshot before sampling. Static SDF stamps need bounded feature records and conservative interval behavior. - Needs the contract extended: Water needs a liquid surface/query payload separate from rock density. Visible ores need a material/resource semantic channel. A physically open skylight needs geometry and a light-opening descriptor.
- Composer scope: Offline composition can keep the runtime evaluator contract; the resolved season manifest must grow to carry passages and selected content/feature records. The current six-slot artifact is not the complete world manifest.
Prior art: design principles
-
Give the player a readable route rhythm. Deep Rock Galactic connects curated rooms with narrow, winding tunnels; designers shape rooms to funnel players naturally toward exits and balance traversal with dramatic spaces. Spelunky 2 pairs a guaranteed safe route with optional layers and alternate routes. DRG developer cave-generation article, Spelunky 2 interview
-
Alternate scale and local hazards. Minecraft deliberately mixes huge “cheese” chambers, long “spaghetti” caves, narrow “noodle” passages, and local-level aquifers. This supports alternating tunnels, chambers, and occasional pools instead of filling a whole strate with water. Minecraft Caves & Cliffs features
-
Curate the structure; randomize inside it. DRG uses designed room templates with internal randomizers. Astroneer uses artist-designed biomes and constrains randomization; Enshrouded’s world team describes handcrafted locations and procedural tools as support for meaningful discovery and lore. DRG, Astroneer developer interview, Keen Games on Enshrouded’s world
-
Use lighting and vistas as orientation, not decoration alone. DRG varies cave geometry, fog, and lighting by biome. Enshrouded’s 1.0 notes emphasize distinct biome lighting and atmosphere and improved distant vistas; No Man’s Sky’s update notes call out more navigable caves and underground ruins. DRG, Enshrouded 1.0 notes, No Man’s Sky
-
Make exploration teachable and reactive. Spelunky 2 preserves a safe route while adding layers and liquids; Noita’s developers describe physical materials as a source of emergent encounters; Valheim’s official overview emphasizes biome-specific challenges, resources, secrets, and caves as optional exploration. Spelunky 2, Noita GDC talk, Valheim FAQ
Owner questions
- Should the first slice prioritize a lit landmark chamber or a gather-and-return loop with ore and persistence?
- Is a static, bounded stream and pool acceptable for the water MVP, with simulation deferred?