Files
Project-M/Docs/Vault/06_Roadmap/Roadmap_Lantern_Slice.md
T
kronic d005f140db Docs: LANTERN roadmap index + Phase 4/5 design passes + session log B
- Roadmap_Lantern_Slice: Phase-0 status callout + doc index (all Phase-0 artifacts linked).
- Phase 4 (mutations): mostly a re-theme of the shipped boon overhaul (DR-047) + Gloam gating
  + Tallow fixing (persistence) + raw-socketing + culture library; salvage map + gate.
- Phase 5 (death/recovery): the split, stranded suits (deterministic relocation), body-carry,
  flame-share revive, the Tender solo valve, Selkie tariff; builds on the world-model
  in-pocket-death decision (C4); the slice's 2nd falsifiable-test half.
- Session log Part B: the autonomous design pass + the world-model review record.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-13 23:58:47 -07:00

198 lines
19 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: LANTERN Vertical Slice — high-level implementation roadmap
date: 2026-07-13
tags: [roadmap, lantern, vertical-slice, direction, art-pipeline]
permalink: gamevault/06-roadmap/roadmap-lantern-slice
---
# LANTERN Vertical Slice — Implementation Roadmap (high level)
> Implements the slice tier of [[Identity_Lantern]] (final draft, review-hardened). **High-level by design** — a second pass will deepen each phase technically (per-phase design reviews, DOTS/netcode verification) as it comes up. No time estimates (operator directive). Supersedes [[Iteration_2026-07_CoopHades]] as the operative direction once the adoption DR lands.
>
> **The slice's falsifiable test (the only gate that matters):** *does pinning a pocket feel like winning something, and does a stranded suit feel worth a second descent?*
>
> **Two tracks run in parallel:** the **system phases (07)** and **Workstream A (art, modeling & visual direction)** — a first-class track with its own gates, because this direction lives or dies on custom creatures/characters made by one person. Each system phase names its asset needs; Workstream A names how they get made.
## Standing constraints
- Stack unchanged: Unity DOTS + Netcode for Entities, server-authoritative, input-only clients, client prediction, 24 co-op ([[Pillars]] #4 holds).
- Existing code is quarry, not foundation: strip/reuse freely (combat feel layer, ability plumbing, hub/run lifecycle, save system are all candidate salvage), but no design decision bends to preserve code.
- Netcode-heavy slices get an adversarial design review BEFORE coding (the standing project ritual). Flagged ★ per phase.
- Every phase ends with a play-gate, not a test count.
- **Placeholder-first, art-pass-second:** every system phase may ship its gate on kitbash/greybox placeholders; Workstream A replaces them on its own cadence. Systems never wait on art; art never blocks a gate.
## Phase 0 — Adoption & groundwork
1. **Adoption DR** — LANTERN supersedes the Awakening Engine identity + the Co-op Hades iteration; old fiction/lexicon archived, not deleted. Update [[Pillars]] pointers; CLAUDE.md game-state note.
2. **Strip/mothball pass** — inventory current systems into keep / rework / mothball against the slice list (combat feel layer + telegraphs: keep; boon pipeline: rework into mutations; regions/relevancy, save system, hub lifecycle: rework; sieges/economy leftovers: mothball).
3. **World-model design spike ★review-first** — the pocket-graph + seed-pinning contract: pocket generation as a pure function of (seed, pocket-id); pinning = persist seed + structure deltas; pocket streaming/replication as runtime ghosts; muster/Bell transit contract. The slice's hardest netcode problem — design before any world code.
4. **Art direction lock = Workstream A0** (below) — runs inside this phase; its style-proof gate is part of this phase's exit.
**Gate:** DR merged; world-model design review passed; **A0 style-proof scene approved**.
> **Phase 0 status (2026-07-13):** ✅ 0.1 adoption ([[DR-048_Lantern_Adoption_Full_Pivot]]) · ✅ 0.2 strip/
> mothball ([[Lantern_Strip_Mothball_Inventory]]) · ✅ 0.3 world-model **design review passed** →
> [[World_Model_Build_Spec]] + [[DR-049_Lantern_World_Model_Design]] · ◻ 0.4 A0 material spec written
> ([[Art_Direction_Lantern]] + [[Lantern_Art_Pipeline_Recipes]]) but the **in-engine style-proof scene gate is
> OPEN** (needs a focused editor + operator eyes). **Open gate items = the A0 scene only.** Phase-1 design is
> ready ([[Lantern_Phase1_Combat_Gym_Build_Spec]]); operator decisions parked in [[Lantern_Operator_Questions]].
## Phase 1 — Combat core: two frames that feel like Shape of Dreams
The primary verb first. No world, no lanterns — a gym.
1. **Bathynaut** (anchor-and-crash melee) + **Harpooner** (line-and-iron skillshots incl. reel/drag) as suit-frames — chassis verbs, movement feel, dash.
2. **Skillshot kit plumbing:** 4 socket slots per frame; cooldown/telegraph/aim grammar to the SoD bar (manual aim, real windups, readable hitboxes).
3. **First 45 Sparks** as socketables (decoy-wisp, hook/pull, vortex, blink, one zone) — enough to prove kit variety.
4. **Light-as-information prototype ★review-first:** per-player lamp radius drives netcode relevancy (entities outside your light aren't replicated); dim/bright as the quiet/blind trade.
5. Underwater feel pass: buoyant knockbacks, slow debris, murk fog, hydrophone audio sketch.
**Asset needs:** 2 suit-frames (first-pass: humanoid-pipeline kitbash), Spark VFX set (procedural + palette), gym props. **Pipeline dependency: A1 runs alongside this phase.**
**Gate:** the gym is fun with two players for 15 minutes on kit alone; relevancy-light verified server-side (gamma test: nothing to see).
## Phase 2 — The dark & the pocket-graph
1. **Twilight shelf as a pocket-graph:** 35 generated dark pockets per descent on a graph; seed-fresh re-knot per descent; pocket transitions.
2. **Descent lifecycle:** muster at the Lamp → Bell down → pockets → Bell recall or lit-road walk home; ~3040 min hard session cap.
3. **Enemy roster v1:** Drowners (melee swarm), Grindylow packs (leapers), Wreckers (gloam-casters with counterfeit beacons + scan counter), Wisp-Choir as first named encounter.
4. **Brighter-is-louder:** party Loudness sum drives spawn/aggro pressure; per-Wick Loudness pips on HUD.
5. **Harvest:** Lumen nodes, organ drops, carried-vs-banked cargo distinction.
**Asset needs:** 4 creatures (Drowner, Grindylow, Wrecker, Wisp-Choir — the **A2 creature-factory proving ground**), Lumen node family, pocket dressing set (rocks, wrecks, glow-flora), Bell.
**Gate:** two consecutive descents feel different (re-knot working); the Wrecker fake-beacon moment lands on a first-time player.
## Phase 3 — The tide-line: lanterns, pinning, permanence
1. **Plantable, hand-fed waypoint-lanterns:** planting pins the pocket (seed + deltas persisted); lit pockets persist across descents and sessions; muster moves to the deepest lit waypoint.
2. **Session-only burn:** fuel drains only while a session runs; guttering telegraphs long and loud before the dark un-pins a pocket.
3. **Banked light:** deposit at any lit lantern = home; the Lamp meter brightens the station visibly.
4. **Building v1 (minimal):** a small buildable set inside lit pockets — enough to make a pinned pocket feel *owned* (the slice test hinges here).
**Asset needs:** the waypoint-lantern family (unlit/lit/guttering states — a hero prop; light states do the acting), small buildable set, fuel/feeding VFX.
**Gate:***pinning a pocket feels like winning something* — playtest-judged, the first half of the slice test.
## Phase 4 — Sparks, mutations & the homecoming economy
1. **Culture library:** first organ home = permanently cultured; grafts regrow cheaply from culture (death-proof knowledge floor).
2. **Wild mutations:** Sparks drink Gloam; 2 paced thresholds per descent offering 23 warps, at pocket-clear beats only; mutations evaporate at homecoming.
3. **Tallow fixing:** 1 fix slot per Spark; the **scripted first-evaporation beat** (Keeper names the rule, gifts one Tallow).
4. **Raw-socketing:** wield a fresh organ wild (over-tuned, temporary) vs. bag it for culturing.
5. Fill the Spark catalog to 810.
**Asset needs:** organ/pickup mesh family (blobby, emissive — early Blender wins), graft-socket UI, mutation VFX variants (palette/param variants on Spark VFX, not new effects).
**Gate:** two consecutive descents produce visibly different builds from the same kit; the evaporation beat reads as a gift, not a theft.
## Phase 5 — Death, recovery & the solo valve
1. **The split:** flame returns (rack-spare respawn, cheap regrow); cargo + fixed mutations + raw organs strand with the suit at its death site.
2. **Recovery:** stranded suits persist across descents (deterministic server relocation, never RNG); ally body-carry; carried suits stay loud; one-suit debt cap; party wipe drifts suits one pocket shallower.
3. **Guttering + flame-share revive** (giver pays flame).
4. **Selkie tariff** (menu-level for the slice).
5. **Solo Tender dive-companion:** drags guttering suits toward light, hauls cargo, holds a lantern's feed.
**Asset needs:** stranded-suit prop states (dark/claimed/carried), the Tender companion (small, characterful — a hero-adjacent model worth real time), carry/revive VFX.
**Gate:***a stranded suit feels worth a second descent* — the second half of the slice test; solo death is a story, not a rage-quit.
## Phase 6 — The finale: shelf-boss + the scripted tide
1. **Shelf-boss** (Twilight's warden): a real multi-phase skillshot fight; drops the slice's signature Spark + a schematic beat.
2. **One scripted Serpent-tide as the slice climax:** forecast by the Siren, targeting the party's planted lantern — defend it or lose the pin.
3. Difficulty/co-op scaling pass (14 players; Loudness carries most of it).
**Asset needs:** the shelf-boss (**the slice's hero creature** — silhouette-first, budgeted real modeling time), tide VFX language (the dark moving as weather).
**Gate:** the tide finale generates the clip — a party defending their own light and telling the story afterward.
## Phase 7 — The station & the voices
Runs parallel with 46 where possible.
1. **The Last Lantern hub:** Lamp (meter + radius), rack, graft-bench, culture library, Bell — each a physical place.
2. **The Keeper** (text-first, subtitle lines): tutorializes the loop, the split, the evaporation gift; evasive-warm register per the tone bible.
3. **The Siren:** descent forecast at the Bell + **hydrophone bleed mid-descent** + the tide forecast.
4. **Lamp-morse:** ping wheel, revive plea, greeting — procedural chirp audio.
5. **Tone bible** (one page, register bounds per character) before any bark generation.
**Asset needs:** station set (Mother-Lamp as the hero set-piece whose brightness IS the campaign readout, Bell, rack, benches), the Siren's bell-tank vignette.
**Gate:** a new player completes first descent → death → recovery → pin with no external explanation; the hub reads as a home, not a menu.
---
# Workstream A — Art, Modeling & Visual Direction (first-class track)
> One developer, learning Blender (blendermcp + tooling), shipping custom models, characters, and enemies. The workstream's product is not just assets — it is a **repeatable factory** such that creature N+1 is a routine sitting, not a research project. Gates are real; the deeper technical pass will spec each stage.
## A0 — Art direction lock (runs inside Phase 0)
1. **Style bible (one page, binding):** stylized low-poly, RoR2-lineage. Silhouette-first; faceted geometry; flat/near-flat shading; mood carried by dynamic light in murk. **Poly budgets:** props ≤ ~800 tris · creatures ≤ ~3k · hero/boss/suits ≤ ~6k. The [[Identity_Lantern#Art, audio & the readability law|readability law]] (value-first, flicker-cadence, 200px rule) applies to every asset from day one.
2. **The material decision (the solo-dev keystone): no per-asset texturing, ever.** One shared **palette/gradient atlas** (Imphenzia-style: a single small texture of color bands; UVs are *placed*, not unwrapped) + vertex-color accents, under **three master shaders**: `Lit-Palette` (statics), `Emissive-Gloam` (parameterized warm/cold/lure emissive — one shader is the whole palette rule), `Skinned-Palette` (deformation-aware for creatures/suits). Every asset in the game shares ~3 materials: coherence, batching, and zero texture-painting skill required.
3. **Reference board:** RoR2 (shape language), Dredge (water mood), Hollow Knight (value control in dark), Below (the cautionary legibility case).
4. **Style-proof scene (the gate):** one prop + one creature + one suit, in-engine, under murk + dynamic lights, on the capture grade — judged full-size AND at 200 px AND in grayscale. **Locked before any mass production.**
## A1 — Pipeline proof (runs alongside Phase 1)
1. **Two written recipes, checklist-grade** (this project runs on distilled gotchas; the art pipeline gets the same treatment):
- **Statics:** Blender → export (units/scale settings) → collider policy → entity baking → palette material. Target: minutes per prop.
- **Skinned:** Blender rig → per-action clips (Key All Bones, bake to pose) → FBX → animation-system ingest → `Skinned-Palette` material → prefab. Every step scripted or checklisted via blendermcp where possible.
2. **The three rig families (the amortization decision):** every slice creature maps onto one shared armature family, so *clips are made per family, not per creature*:
- **Drifter** — spine-chain swimmer (Wisp-Choir motes, lure-fish, later serpents/rays): swim-idle, dart, attack, death-sink.
- **Crawler** — legged/scuttling floor unit (Grindylow, later kappa-kin/Tenders): skitter, leap, attack, death.
- **Strider** — biped-ish (Drowner, Wrecker, and the suit-frames themselves): walk, windup, attack, death.
- Clip budget: **45 clips per family** (idle/move/windup/attack/death) + per-creature attack accents only where identity demands.
3. **Suit-frames, pragmatic path:** first pass = kitbash on the existing humanoid pipeline (helmet/tank/plate swaps over a proven rig); custom Wick silhouette sculpt is an A3 upgrade, not a Phase-1 blocker.
4. **Procedural assists:** geometry nodes for glow-gardens/coral/tube-worm sets (parametric families, not hand-modeled instances); blendermcp scripts for the repetitive export/import steps.
**Gate:** one creature goes cube → rigged → animated → fighting in-game **in a single documented sitting — twice** (repeatability is the gate, not beauty).
## A2 — The creature factory (runs alongside Phases 26)
1. **"CreatureKit" workflow/tooling:** one editor tool or hard checklist that takes a Blender export and yields a play-ready enemy — prefab with rig + ghost/network authoring + colliders + a tuning-table entry + spawn-table and bestiary hooks. **The measure: adding enemy N+1 touches zero undocumented steps.**
2. **Variant policy (cheapest content first):** palette-shift / gloam-tint / scale / part-swap variants of existing meshes BEFORE any new mesh. One Drowner mesh should yield 3 visual tiers; the Emissive-Gloam shader's parameters (hue, flicker-cadence, intensity) are a free variant axis that is *also* gameplay information.
3. **VFX-first identity rule:** emissive accents + a dynamic light + silhouette + animation carry a creature's identity in this game's darkness; mesh detail is the last 20%. Budget accordingly — a readable blob with a great light beats a detailed model nobody can see.
4. **Delivery order (matched to system phases):** Drowner (Strider, simplest) → Grindylow (Crawler) → Wrecker (Strider variant + beacon prop) → Wisp-Choir (Drifter motes + VFX — barely a "model" at all, a good early win) → organs/pickups (Phase 4) → Tender companion (Phase 5, characterful) → **shelf-boss (Phase 6 — the hero build: silhouette explorations first, kitbash from family parts where possible, real time budgeted)**.
5. **Throughput rules (solo sanity):** timebox per asset class (a prop is a morning, a creature is days not weeks, the boss is the exception); the done-bar is *"reads at gameplay zoom, under murk, in motion"* — never render-portfolio quality; when stuck, ship the placeholder and log the upgrade.
**Gate (mid-slice checkpoint at Phase 2's gate):** all four Phase-2 creatures in-game through the CreatureKit path; a written retro on the factory's friction points feeds the deeper technical pass.
## A3 — Hero assets & the visual polish pass (runs alongside Phases 67)
1. **The hero set:** the Mother-Lamp (the station's centerpiece whose brightness is the campaign readout — the single most important model in the slice), the waypoint-lantern family (unlit/lit/guttering — light states act, the mesh holds still), the shelf-boss, the custom Wick silhouette upgrade (replacing the A1 kitbash), the Bell.
2. **The world dressing pass:** geometry-node garden/coral/wreck families dressed through the pocket generator; station interior set.
3. **Capture-grade validation:** the readability law audited on real gameplay footage — compressed-bitrate test (does Midnight-adjacent murk survive streaming?), grayscale test, colorblind-sim pass on the warm/cold/lure triad.
4. **Screenshot discipline check:** the slice's store-facing shots pass the 200px + warm-focal-light + legible-silhouette rule.
**Gate:** the slice's finale clip (Phase 6's gate footage) looks like *this game and no other game* — style bible held under real play, not staged shots.
---
## Cross-cutting workstreams (woven through all phases)
- **Audio:** hydrophone bed, lamp-morse chirps, Bell toll, Siren verses (placeholder → authored), silence-with-texture.
- **Dev tooling:** pocket-graph visualizer, seed-pin inspector, Loudness/threat readout, descent-state overlay, screenshot rig on the capture grade, CreatureKit (owned by A2 but serves everyone).
- **Validation culture (unchanged):** EditMode tests for math/economy invariants (pinning determinism, mutation thresholds, Loudness sums, strand/regrow rules); Play-mode server==client checks for every replicated surface; adversarial design reviews for ★ phases; every gate is a playtest.
## Sequence at a glance
| System track | 0 (adoption + world spike ★) | 1 (combat ★) | 2 (dark) | 3 (tide-line) | 4 (mutations) | 5 (death) | 6 (finale) | 7 (hub, parallel) |
|---|---|---|---|---|---|---|---|---|
| **Art track** | A0 style lock | A1 pipeline proof | A2 factory (4 creatures) | A2 (lantern family) | A2 (organs) | A2 (Tender) | A3 (boss + hero set) | A3 (station + polish) |
The deeper technical pass (next sessions) takes each phase in turn: context7-verified API grounding, the ★ design reviews, salvage mapping against the existing codebase, per-phase build specs — and for Workstream A, the concrete recipe documents (export settings, rig conventions, CreatureKit spec) validated against the project's existing animation-pipeline knowledge.
## Related
- [[Identity_Lantern]] — the design this implements (scope ladder = this roadmap's contract; readability law = A-track law)
- **Phase 0 artifacts:** [[DR-048_Lantern_Adoption_Full_Pivot]] · [[Lantern_Strip_Mothball_Inventory]] · [[World_Model_Build_Spec]] + [[DR-049_Lantern_World_Model_Design]] (+ [[Lantern_World_Model_Spike]] / [[Lantern_World_Model_Design_Proposal]]) · [[Art_Direction_Lantern]] + [[Lantern_Art_Pipeline_Recipes]]
- **Phase 1+ design:** [[Lantern_Phase1_Combat_Gym_Build_Spec]] · [[Lantern_Currency_ReMean]] · [[Lantern_Tone_Bible]] (Phase 7)
- **Running:** [[Lantern_Operator_Questions]] — decisions parked for the operator
- [[Theme_Direction_Candidates]] — research underneath the direction
- [[Synty_Asset_Inventory]] — placeholder quarry during the transition
- [[Iteration_2026-07_CoopHades]] — superseded on adoption
- [[Pillars]] — unchanged constraints