Docs: LANTERN Phase 0 — full pivot adoption + all-doc sweep
Adopt LANTERN as the operative direction (co-op action-RPG, light-as-territory), superseding the Awakening Engine fiction + the Co-op Hades iteration. Existing code becomes salvage quarry; the mechanical pillars hold. Phase 0 deliverables (doc portions): - DR-048 adoption decision record (0.1) - Lantern_Strip_Mothball_Inventory — system-by-system keep/rework/mothball (0.2) - Lantern_World_Model_Spike — pocket-graph + seed-pinning BRIEF, review-first (0.3) - Art_Direction_Lantern — style bible + material decision + A0 gate (0.4) Docs/skills sweep: Pillars pointers + LANTERN locked decisions; superseded banners on Identity, Iteration_CoopHades, Path_to_Fun, Milestones, Backlog, End_Of_Month (all redirect to the LANTERN roadmap); Home MoC + current-direction callout (and stale serena line fixed); Systems_Index era note; CLAUDE.md core-loop line -> LANTERN direction pointer (verbose co-op-Hades invariants archived to the gotchas archive, net-neutral under the 40 KB budget); dots-dev validation-harness expedition-run recipe flagged era-specific. Two Phase-0 gate items remain OPEN (not doc work): the 0.3 world-model design review and the 0.4 in-engine style-proof scene. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -7,8 +7,9 @@ updated: 2026-06-13
|
||||
permalink: gamevault/06-roadmap/backlog
|
||||
---
|
||||
|
||||
> [!warning] SUPERSEDED as the operative plan (2026-07-06 Co-op Hades conversion, banner added 2026-07-07).
|
||||
> Current direction + phases: [[Iteration_2026-07_CoopHades]]. This doc is kept as history.
|
||||
> [!warning] SUPERSEDED as the operative plan. Now **LANTERN** (2026-07-13, [[DR-048_Lantern_Adoption_Full_Pivot]]).
|
||||
> Current direction: [[Roadmap_Lantern_Slice]]. (Intermediate history: the 2026-07-06 Co-op Hades conversion,
|
||||
> [[Iteration_2026-07_CoopHades]].) This doc is kept as history.
|
||||
|
||||
# Backlog
|
||||
|
||||
|
||||
@@ -12,8 +12,9 @@ updated: 2026-06-17
|
||||
permalink: gamevault/06-roadmap/end-of-month-game-jam-slice
|
||||
---
|
||||
|
||||
> [!warning] SUPERSEDED as the operative plan (2026-07-06 Co-op Hades conversion, banner added 2026-07-07).
|
||||
> Current direction + phases: [[Iteration_2026-07_CoopHades]]. This doc is kept as history.
|
||||
> [!warning] SUPERSEDED as the operative plan. Now **LANTERN** (2026-07-13, [[DR-048_Lantern_Adoption_Full_Pivot]]).
|
||||
> Current direction: [[Roadmap_Lantern_Slice]]. (Intermediate history: the 2026-07-06 Co-op Hades conversion,
|
||||
> [[Iteration_2026-07_CoopHades]].) This doc is kept as history.
|
||||
|
||||
# End-of-Month Game Jam Slice
|
||||
|
||||
|
||||
@@ -7,6 +7,12 @@ permalink: gamevault/06-roadmap/iteration-2026-07-coophades
|
||||
|
||||
# Iteration 2026-07 — Co-op Hades Conversion
|
||||
|
||||
> [!warning] SUPERSEDED as the operative direction (2026-07-13, [[DR-048_Lantern_Adoption_Full_Pivot]]).
|
||||
> The project pivoted to **LANTERN** — operative roadmap [[Roadmap_Lantern_Slice]], design [[Identity_Lantern]].
|
||||
> Everything below shipped and is **kept as history + salvage quarry** (see [[Lantern_Strip_Mothball_Inventory]]
|
||||
> for the keep/rework/mothball calls on this iteration's systems — the combat feel layer, boon pipeline,
|
||||
> world-alive presentation, and run/hub lifecycle are all salvage). Nothing here is deleted.
|
||||
|
||||
**Operator decision (2026-07-06, dev-loop iteration session):** commit the *Fix-the-Fight-in-Place trunk* PLUS the full
|
||||
*Co-op Hades* direction — cut/mothball the tower-defense layer, base becomes a Hades-house hub, boons become
|
||||
mechanic-changers, kit gains a second ability, real node types, second boss, co-op revive. **Depth folds in now** (not
|
||||
|
||||
@@ -0,0 +1,88 @@
|
||||
---
|
||||
title: LANTERN — Strip / Rework / Mothball Inventory (Phase 0.2)
|
||||
date: 2026-07-13
|
||||
tags: [roadmap, lantern, salvage, inventory, phase-0]
|
||||
permalink: gamevault/06-roadmap/lantern-strip-mothball-inventory
|
||||
---
|
||||
|
||||
# LANTERN — Strip / Rework / Mothball Inventory
|
||||
|
||||
> Phase 0.2 of [[Roadmap_Lantern_Slice]], adopted under [[DR-048_Lantern_Adoption_Full_Pivot]]. Inventories
|
||||
> every current subsystem against the LANTERN vertical slice. **Existing code is quarry, not foundation** —
|
||||
> this table records the salvage call, not a migration contract. The per-phase build specs (deeper technical
|
||||
> pass) own the actual rework; this is the map.
|
||||
>
|
||||
> **Legend:** **KEEP** = ports ~as-is (re-theme only). **REWORK** = the chassis/plumbing survives, the design
|
||||
> on top changes. **MOTHBALL** = retire from the flow via baked toggles (`ScheduleEnabled` pattern), code +
|
||||
> tests keep compiling for reversibility — do not delete. **CUT** = the design is gone from the slice (code
|
||||
> may still be mothballed).
|
||||
>
|
||||
> Headline calls (roadmap standing constraints): combat feel layer + telegraphs → **KEEP**; boon pipeline →
|
||||
> **REWORK into mutations**; regions/relevancy, save, hub lifecycle → **REWORK**; sieges/economy leftovers →
|
||||
> **MOTHBALL**.
|
||||
|
||||
## Combat & player (the primary verb — strongest salvage)
|
||||
|
||||
| Subsystem (current) | Verdict | LANTERN target / note |
|
||||
|---|---|---|
|
||||
| **Combat feel layer** — `CombatFeedbackSystem` (+ split siblings), per-kind telegraph colours/voices/lights, hit-stop (camera punch), dash juice, damage numbers | **KEEP** | The single strongest asset. Roadmap: "combat feel layer + telegraphs: keep." Re-palette to warm/cold/lure; feed the SoD skillshot bar. |
|
||||
| **Player mover** — CharacterController kinematic (collide-and-slide), `PlayerControlSystem`, `CharacterProcessor`, planar Y-lock, predicted-physics infra | **KEEP** | Suit-frames are weighted seafloor infantry (no swimming) — the top-down CC config is exactly right. |
|
||||
| **Camera** — `PrototypeCameraRig` (ARPG follow, look-ahead, zoom, shake/`Hold`) | **KEEP** | Unchanged; the warm-cone-in-dark framing is a camera+light job. |
|
||||
| **Projectile/melee plumbing** — predicted `AbilityFireSystem`, `ProjectileMoveSystem`/`ClassificationSystem`, **swept** `ProjectileDamageSystem`, `HealthApplyDamageSystem`, MC-4 combo `Step` | **REWORK** | Keep the predicted-spawn + swept-hit + server-damage spine. Rebuild the ability grammar as **4-socket skillshot kits** with real windups/telegraphs/aim. |
|
||||
| **Aim** — `PlayerAimSystem` (client-derived), `AimReticleSystem`, scheme byte, **soft auto-target** | **REWORK** (auto-target **CUT**) | SoD-grade **manual aim** is the feel target — the in-arc soft auto-target ends. Reticle + client-derived aim plumbing reused. |
|
||||
| **Ability data model** — `AbilityDatabase` blob, `AbilityRef`, `StatModifier`/`EffectiveAbilityStats`, `StatRecomputeSystem` (every-tick fold, rollback-correct) | **KEEP / REWORK** | The substrate for **Sparks** (abilities-as-organs) + **mutations** — `StatModifier→EffectiveAbilityStats` is exactly what buffs/tiers/mutations ride ([[Identity_Lantern]]). |
|
||||
| **Boon pipeline** — `BoonEffects` (SendToOwner Pierce/Fork/Chain/Flags), `BoonOffer`, offer dedup / dominated-protection / `Family` bias, `KillRewardSystem`, `ProjectileEffectState` | **REWORK → wild mutations** | The mechanic-changer architecture IS the **wild-mutation warp** substrate. Layer on: paced thresholds (pocket-clear beats), evaporate-at-homecoming, Tallow **fix slots** (1/Spark), culture library, raw-socketing. [[DR-047_Phase17_Boon_Overhaul_Mechanic_Changers]] is the salvage seed. |
|
||||
| **Enemy AI + directors** — server-only `EnemyAISystem` (no-pathfinding collide-and-slide + `Depenetrate`/tangent-slide/`EnemyNavState` nudge backstop), `RoomEnemyDirectorSystem`, kind-indexed roster, `Dying` window, separation pass, poise byte | **REWORK** | Chassis kept (sole-position-writer, cover-aware nudge). Re-theme the roster to the bestiary: **Drowners** (Strider), **Grindylow** (Crawler leapers), **Wreckers** (Strider + fake-beacon/scan), **Wisp-Choir** (Drifter motes). Formalize spawn/rig path into **CreatureKit** (Workstream A2). |
|
||||
| **Boss** — server-only `BossState`/`BossAISystem` (sole mover, telegraphed radial SLAM, phase-2 speed + summon), `Health.Max` `[GhostField]`, party-HP scale | **REWORK** | Reused for the **shelf-boss** (Phase 6) — a real multi-phase skillshot fight. |
|
||||
|
||||
## World, netcode & lifecycle (the ★review-first zone)
|
||||
|
||||
| Subsystem (current) | Verdict | LANTERN target / note |
|
||||
|---|---|---|
|
||||
| **Regions / relevancy** — `RegionTag{byte}` (server-only), `GhostRelevancy` (`SetIsIrrelevant`), `RegionRelevancySystem`, untagged-global-ghost rule | **REWORK** | The seed for LANTERN's hardest idea: **light-as-information** relevancy (entities outside your lamp radius aren't replicated) + **pocket streaming**. Coordinate-region split → **pocket-graph**. Owned by the ★review-first [[Lantern_World_Model_Spike]] — no world code until that review passes. |
|
||||
| **Run / room lifecycle** — `RunDirectorSystem` (sole `RunInfo` writer), `RunLifecycle`/`RoomExplore`, `RoomEpoch`/`RoomTag` teardown, `PortalCommand`/`PortalInteractRequest`, ready-check, `ClassSwapUtil`, `PrepCatalog`/`PrepPurchaseRequest` | **REWORK** | Maps onto the **descent lifecycle**: muster at deepest lit waypoint → **Bell** down → pockets → Bell recall / lit-road walk home; ~30–40 min cap. Rooms→**pockets** (seed-fresh re-knot); portal→Bell/waypoint transit; class-at-base→**suit-frame** pick; per-run prep kept. State machine is salvage; the pocket-graph replaces the linear route map. |
|
||||
| **Save system** — `SaveData` (single-slot atomic JSON, versioned/additive, `[MinLoadableVersion,Current]`), `SaveService`, born-correct `CycleDirectorSpawnSystem` staging, `BaseRestoreSystem` (charge-free replay + remaining-tick cooldowns + HP) | **REWORK** | Persistence = **seed-pinning**: persist pinned-pocket **seed + structure deltas** + banked light + culture library. The versioned-additive JSON + **born-correct load** pattern is exactly what pinning needs — keep the HOW, change the WHAT. Hosting = "**Wicks travel; worlds are saves**" (Valheim contract). |
|
||||
| **Frontend / on-demand worlds** — `GameBootstrap`, `WorldLauncher`/`SessionRunner`/`MainMenuController`, UITK menu (Single/Host/Join), `CreateClientWorld`/`CreateServerWorld` | **KEEP** | The Valheim hosting model needs exactly this on-demand world lifecycle + menu flow. Re-skin the menu to the station. |
|
||||
| **Build / structures / grid** — `BaseGridMath` (locked coord space), `StructureCatalog`, co-op-atomic `BuildPlaceSystem`, `PlacedStructure`, EB-1 `Health`/`Destructible` structure loss-state | **REWORK** | **Building v1** inside lit pockets (Phase 3) — the grid + atomic-placement RPC + catalog reused; structure-death (EB-1) reused for **tide defense** (severable fuel lines, garrisoned junctions). |
|
||||
|
||||
## Economy, resources & harvest
|
||||
|
||||
| Subsystem (current) | Verdict | LANTERN target / note |
|
||||
|---|---|---|
|
||||
| **Ledger + harvest** — global `StorageEntry` ledger (`ResourceLedger` tag), personal `InventorySlot` bag (`OwnerSendType.All`), unified **swept** `ResourceHarvestSystem` (nodes + clutter, immortal-sink guard), `G`-deposit RPC | **REWORK** | Re-mean the currencies: **Flame / Lumen / Gloam / Loudness / Salvage / Chum / Tallow** ([[Identity_Lantern]]). Ledger + personal bag + swept harvest plumbing kept; **carried-vs-banked cargo** distinction is new; harvest = **Lumen nodes + organ drops**. |
|
||||
| **Resource ids** — Ore / Aether / Biomass / Charge (`ResourceId` bytes) | **REWORK** | Re-meaned to the LANTERN currency set (bytes, not enums — Burst rule holds). |
|
||||
| **Inventory / equipment** — `EquipmentSlot`→`AbilityRef` swap, `ItemDatabase` blob, `EquipSystem` (atomic bag↔slot) | **REWORK / PARTIAL** | Already PAUSED. The slot→ability swap is the **graft-into-socket** substrate for Sparks; **culture library** (permanent per-station collection) is new. |
|
||||
| **Automation** — `Harvester`/`Conveyor`/`Fabricator` chain, `ProductionMath`/`ConveyorMath`, deterministic offline catch-up, server-only I/O buffers | **MOTHBALL** | LANTERN **cuts spatial production machinery** ([[Identity_Lantern]] scope ladder). v1.0 automation is **assignment-based** (Tenders under the Klabautermann), not conveyors. Mothball the chain; keep the deterministic-catch-up math as reference for assignment production. |
|
||||
|
||||
## Sieges / win-condition (tower-defense layer — mothball-bound)
|
||||
|
||||
| Subsystem (current) | Verdict | LANTERN target / note |
|
||||
|---|---|---|
|
||||
| **Base-siege win** — END-2 final siege + latching Victory/Loss, `GoalReachedSystem`, `RunOutcome` (`[GhostField]` server-only) | **MOTHBALL / REWORK-meter** | No base-siege win in LANTERN. `GoalProgress`/`RunOutcome` **win-meter** reworks into the **Lamp brightness = campaign meter**. The **Dawn** (final carry) is the v1.0 win, not the slice. |
|
||||
| **Losable Core** — END-1 `CoreIntegrity`, `CoreDamageSystem`/`CoreRestoreSystem`, Core as AI fallback target | **MOTHBALL** | Already mothball-bound (Phase 2). No Core in LANTERN; the station is never destroyed — **loss ceiling = frontier pockets, never a shelf**. |
|
||||
| **Turret defense** — EB-2 turret-ammo `Charge`, `TurretFireSystem` soft-fail spend, ledger-fed Fabricator mint | **MOTHBALL** | No turret auto-defense in the slice. **Tide defense** (defend a planted lantern / fuel line) is a different, later beat (Phase 6 scripted tide). |
|
||||
| **Cycle/phase director** — `CyclePhaseSystem` (sole Phase writer), scheduled-siege / retaliation | **MOTHBALL / REWORK** | The auto-cycle retires. The **forecast** model (Siren sings tide windows in advance) replaces sprung sieges — a planned event, not an interrupt. |
|
||||
|
||||
## Presentation, world-feel & art (the LANTERN look is already here)
|
||||
|
||||
| Subsystem (current) | Verdict | LANTERN target / note |
|
||||
|---|---|---|
|
||||
| **Rendering identity** — dark-ambient + dynamic-light-first (clean dark-Synty), `DynamicLightSystem` (projectile/portal/node/impact lights), per-biome dark palettes, ACES/HDR grade | **KEEP** | *This is LANTERN.* The rendering pipeline stops being a style and becomes the fiction (light carves playable space). Add the **capture/photo grade** (lifted profile for clips) + the **readability law** (value-first, flicker-cadence, 200px). |
|
||||
| **Atmosphere / ambient** — `WorldAtmosphereSystem` (fog/ambient cross-fade), `AmbientMotionSystem` (drift/sway/rustle), `AmbientLifeSystem` (critters + cloud shadows + weather beats) | **KEEP / REWORK** | Ports as **water-column atmosphere** (murk, silt-outs, plankton blooms, currents, whale-falls). Critters → light's-edge fauna; weather beats → the dark-as-weather language. |
|
||||
| **Hazards / breakables / decals / cover** — `HazardExplosionSystem` (barrels), `GeyserEruptSystem` (periodic AoE, born-correct tick), `BlightClutter` breakables, destructible cover (env-collider ghost), `ScorchDecalSystem`/`CoverDamageSystem` | **KEEP / REWORK** | The both-sides-telegraphed AoE chassis (barrels/geyser) ports to **vent fields**; breakables/cover → wreck/coral dressing; decals reused. `BlightClutter` → **pocket clutter** (glow-flora/wrecks). |
|
||||
| **HUD / UI** — `HudSystem` (UITK, split siblings), `MenuUi` palette/`PanelSettings`/`EventSystem`, build palette, `PauseMenuController`, `HudTheme` SO | **REWORK** | UITK chassis + build palette kept; re-mean to **Flame / Lumen / Gloam / Loudness pips** + **lamp-morse** ping wheel. Station panels (Lamp meter, rack, graft-bench) are Phase 7. |
|
||||
| **Animation** — Rukhanka 2.9 client-derived (`PlayerAnimationDriveSystem`, `EnemyAnimationDriveSystem`, `ServerStripAnimationSystem`), `AnimatedLitShader`, `EnemyRigTools`, humanoid muscle-clip pipeline | **KEEP / REWORK** | Client-derived pipeline kept wholesale (netcode replication OFF). Formalize into the **3 rig families** (Drifter/Crawler/Strider, Workstream A1); `AnimatedLitShader` → the deformation-aware **`Skinned-Palette`** master shader (palette-atlas material decision). |
|
||||
| **World art assets** — Synty biomes (`BaseBiome` Meadow / `ExpeditionBiome` Arid), `ColliderFitTools`, `EnvArtTools` (HDRP→URP) | **REWORK / QUARRY** | Synty = **placeholder quarry** during transition ([[Synty_Asset_Inventory]]). LANTERN's abyssal look is custom Blender + the 3 master shaders + one palette atlas (Workstream A0). `ColliderFitTools` reused for pocket collider fitting. |
|
||||
| **Dev tooling** — `DebugOverlay`/`TuningConfig`, `DebugCommandSendSystem`, class-switch, screenshot rig, validation-harness | **KEEP / REWORK** | Retooled per roadmap cross-cutting: **pocket-graph visualizer, seed-pin inspector, Loudness/threat readout, descent-state overlay**. The server-inject validation harness pattern stays. |
|
||||
|
||||
## What this leaves for Phase 1
|
||||
|
||||
The **combat gym** (Phase 1) can be built almost entirely from KEEP + light REWORK: player mover + camera + combat feel + projectile/melee spine + ability data model + telegraphs, with two suit-frames on the existing humanoid pipeline and 4–5 Sparks on the reworked boon substrate. The ★review-first items (relevancy → light-as-information, pocket streaming) are quarantined behind [[Lantern_World_Model_Spike]] and do not block the gym.
|
||||
|
||||
## Related
|
||||
|
||||
- [[DR-048_Lantern_Adoption_Full_Pivot]] — the adoption this delivers 0.2 for
|
||||
- [[Roadmap_Lantern_Slice]] — the phase roadmap each verdict feeds
|
||||
- [[Lantern_World_Model_Spike]] — owns the REWORK of relevancy/lifecycle/save (★review-first)
|
||||
- [[Systems_Index]] — the per-system design docs being inventoried
|
||||
- [[Synty_Asset_Inventory]] — the placeholder quarry
|
||||
@@ -0,0 +1,91 @@
|
||||
---
|
||||
title: LANTERN — World-Model Design Spike (Phase 0.3, ★review-first)
|
||||
date: 2026-07-13
|
||||
tags: [roadmap, lantern, netcode, world-model, design-spike, phase-0, review-first]
|
||||
status: brief-review-pending
|
||||
permalink: gamevault/06-roadmap/lantern-world-model-spike
|
||||
---
|
||||
|
||||
# LANTERN — World-Model Design Spike (pocket-graph + seed-pinning)
|
||||
|
||||
> **★ REVIEW-FIRST — this is a BRIEF, not a design.** Phase 0.3 of [[Roadmap_Lantern_Slice]], adopted under
|
||||
> [[DR-048_Lantern_Adoption_Full_Pivot]]. This frames the slice's **hardest netcode problem** and its open
|
||||
> questions so the adversarial design review has a target. **No world code is written until that review
|
||||
> passes** (the standing project ritual — [[validate-netcode-design-before-coding]]). This doc feeds the
|
||||
> review; the review produces the durable Build Spec that feeds the eventual DR.
|
||||
>
|
||||
> **This gate is one of Phase 0's three exit conditions** (with the adoption DR and the A0 style-proof scene).
|
||||
> It is currently **OPEN** — the review has not been run.
|
||||
|
||||
## The problem in one sentence
|
||||
|
||||
Permanence is **territory made of light**: what a lamp holds is fixed and saved; what is dark **re-knots**
|
||||
every descent — and this must hold across 2–4 co-op clients under server authority, client prediction, and a
|
||||
per-player light-based information radius, without shipping a determinism nightmare.
|
||||
|
||||
## The design commitments to honour (from [[Identity_Lantern]])
|
||||
|
||||
- **The world is a pocket-graph** — discrete generated pockets on a graph, **not open stitched terrain**.
|
||||
- **Permanence = seed-pinning.** Dark pockets generate from a per-descent seed; **lighting one pins its seed
|
||||
and saves structure deltas.** "The dark re-knots" is a seed change, nearly free.
|
||||
- **Light is information, server-enforced.** A client is not sent entities outside its lamp radius — relevancy,
|
||||
not gamma. Dimming is a true trade (quiet for blind).
|
||||
- **Session shape:** muster at the deepest lit waypoint → Bell down → pockets → Bell recall or lit-road walk
|
||||
home; **~30–40 min hard cap**. Lighting a lantern is a save point.
|
||||
- **Loss ceiling:** the dark takes frontier *pockets*, never a whole shelf.
|
||||
|
||||
## The contract to design (the review's agenda)
|
||||
|
||||
1. **Pocket generation as a pure function of `(worldSeed, pocketId, descentSalt)`.** Deterministic, server-
|
||||
authored. The seed never needs replicating cross-client (the DR-037 feasibility insight holds: **the server
|
||||
spawns procedural content as runtime ghosts and clients just receive them** — no cross-client determinism
|
||||
problem). Question: what is `pocketId` (graph node id) and how is the graph itself generated/pinned?
|
||||
2. **Pinning = persist `seed + structure deltas`.** Lighting a waypoint-lantern writes the pocket's seed +
|
||||
its building/harvest deltas to the save. Re-entry regenerates from seed then replays deltas (the
|
||||
**born-correct** load pattern already proven in [[Lantern_Strip_Mothball_Inventory|the save rework]]).
|
||||
Question: delta granularity (full structure list vs diff), and how banked-light/Lamp state composes.
|
||||
3. **Pocket streaming / replication as runtime ghosts.** Only the current + adjacent pockets are live; a
|
||||
pocket's entities spawn as server ghosts when the party enters and despawn on exit. Reuses the
|
||||
`GhostRelevancy` (`SetIsIrrelevant`) machinery from the region split — but keyed on **pocket occupancy +
|
||||
lamp radius**, not a coordinate region. Question: the transit/handoff moment (Bell down, walk between
|
||||
pockets) and how relevancy composes with light radius without a per-tick cost blowup.
|
||||
4. **Muster / Bell transit contract.** Muster relocates to the deepest lit waypoint; the Bell is the
|
||||
depth-lock transit. Reuses the run/room lifecycle state machine ([[Lantern_Strip_Mothball_Inventory]]).
|
||||
Question: co-op semantics (does the whole party transit together? partial-party descents?).
|
||||
5. **Light-as-information relevancy.** Per-player lamp radius drives what is replicated to that client. This
|
||||
is the Phase-1 "relevancy-light prototype" — the ★review-first item flagged there too. Question: is this
|
||||
the SAME mechanism as pocket streaming or a second layer on top, and how do they interact.
|
||||
|
||||
## Known hazards the review must attack (from CLAUDE.md + prior DRs)
|
||||
|
||||
- **Relevancy cull re-audit:** a 2nd concept sharing an existing tag has repeatedly wiped/blocked cross-region
|
||||
state (DR-031, DR-040). Any pocket/light relevancy scheme must re-audit every query/cull over the tag.
|
||||
- **Shared GLOBAL state rides an UNTAGGED ghost** (never a relevancy-tagged one) — the Lamp meter, campaign
|
||||
readout, party Loudness must stay relevant everywhere.
|
||||
- **Prediction determinism:** no wall-clock / `Time.deltaTime` / `System.Random` in predicted sim; pocket gen
|
||||
is server-authored (not predicted). Tick sentinels through `TickUtil.NonZero`.
|
||||
- **Per-tick relevancy cost:** the region relevancy system already needs cosmetic props to be non-ghost;
|
||||
light-radius relevancy recomputed per player per tick is a cost the review must bound.
|
||||
- **Save additivity:** seed-pin schema must be additive/versioned (`[MinLoadableVersion, Current]`) so old
|
||||
saves load.
|
||||
|
||||
## Explicit non-goals for the spike
|
||||
|
||||
Not designing: the full v1.0 severable fuel-net, the doppelganger relocation AI, shelf-regression, or open
|
||||
terrain (cut). The spike designs **the slice's** pocket-graph + pinning + streaming + transit only.
|
||||
|
||||
## Status & next action
|
||||
|
||||
**OPEN.** Next action (not doc work): run the **adversarial design-review Workflow** (lenses:
|
||||
netcode/relevancy · determinism/prediction · reuse/scope → adversarial critics → synthesis) over this brief +
|
||||
the ground-truth relevancy/lifecycle/save code, producing `World_Model_Build_Spec.md`. Only then does any
|
||||
world code begin (Phase 2 in the roadmap; Phase 1's combat gym has **no world** and is not blocked by this).
|
||||
|
||||
## Related
|
||||
|
||||
- [[Roadmap_Lantern_Slice]] — Phase 0.3 (this) and Phase 2 (the dark & the pocket-graph, which this gates)
|
||||
- [[DR-048_Lantern_Adoption_Full_Pivot]] — the adoption
|
||||
- [[Lantern_Strip_Mothball_Inventory]] — the relevancy/lifecycle/save salvage this reworks
|
||||
- [[Identity_Lantern]] — the world-model commitments (the tide-line)
|
||||
- [[DR-013_M6_Aether_Cycle_Region_Split]] — the region/relevancy machinery being reworked
|
||||
- [[validate-netcode-design-before-coding]] — the ritual this doc sets up
|
||||
@@ -6,8 +6,9 @@ updated: 2026-06-13
|
||||
permalink: gamevault/06-roadmap/milestones
|
||||
---
|
||||
|
||||
> [!warning] SUPERSEDED as the operative plan (2026-07-06 Co-op Hades conversion, banner added 2026-07-07).
|
||||
> Current direction + phases: [[Iteration_2026-07_CoopHades]]. This doc is kept as history.
|
||||
> [!warning] SUPERSEDED as the operative plan. Now **LANTERN** (2026-07-13, [[DR-048_Lantern_Adoption_Full_Pivot]]).
|
||||
> Current direction: [[Roadmap_Lantern_Slice]]. (Intermediate history: the 2026-07-06 Co-op Hades conversion,
|
||||
> [[Iteration_2026-07_CoopHades]].) This doc is kept as history.
|
||||
|
||||
# Milestones
|
||||
|
||||
|
||||
@@ -6,13 +6,14 @@ tags:
|
||||
- economy
|
||||
- endgame
|
||||
- north-star
|
||||
status: active
|
||||
updated: 2026-06-24
|
||||
status: superseded
|
||||
updated: 2026-07-13
|
||||
permalink: gamevault/06-roadmap/path-to-fun
|
||||
---
|
||||
|
||||
> [!warning] SUPERSEDED as the operative plan (2026-07-06 Co-op Hades conversion, banner added 2026-07-07).
|
||||
> Current direction + phases: [[Iteration_2026-07_CoopHades]]. This doc is kept as history.
|
||||
> [!warning] SUPERSEDED (2026-07-13, [[DR-048_Lantern_Adoption_Full_Pivot]]).
|
||||
> The project pivoted to **LANTERN** — operative roadmap [[Roadmap_Lantern_Slice]], design [[Identity_Lantern]].
|
||||
> This north-star doc (and the Co-op Hades plan that first superseded it, 2026-07-06) are **kept as history**.
|
||||
|
||||
# Path to Fun — the north-star roadmap
|
||||
|
||||
|
||||
Reference in New Issue
Block a user