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:
@@ -0,0 +1,98 @@
|
||||
---
|
||||
tags: [vision, art-direction, lantern, style-bible, workstream-a]
|
||||
status: draft-binding
|
||||
updated: 2026-07-13
|
||||
permalink: gamevault/01-vision/art-direction-lantern
|
||||
---
|
||||
|
||||
# LANTERN — Art Direction Lock (Workstream A0)
|
||||
|
||||
> The binding one-page style bible for [[Roadmap_Lantern_Slice]]'s art track (Workstream A0, runs inside
|
||||
> Phase 0). Adopted under [[DR-048_Lantern_Adoption_Full_Pivot]]. This is the **written** half of A0; the
|
||||
> gate is the **in-engine style-proof scene** (below), which is **not yet built** — Phase 0 does not exit
|
||||
> until it is approved. The readability law is lifted verbatim from [[Identity_Lantern#Art, audio & the
|
||||
> readability law|the identity]] and applies to every asset from day one.
|
||||
>
|
||||
> **Why this matters more than usual:** one developer, learning Blender, shipping custom creatures. This
|
||||
> direction lives or dies on a **repeatable factory**, not on any single beautiful asset. Every rule here is
|
||||
> chosen so that creature N+1 is a routine sitting, not a research project.
|
||||
|
||||
## Style bible (binding)
|
||||
|
||||
- **Stylized low-poly, RoR2-lineage.** Silhouette-first; faceted geometry; flat / near-flat shading. Mood is
|
||||
carried by **dynamic light in murk**, never by texture detail. A readable blob with a great light beats a
|
||||
detailed model nobody can see in the dark.
|
||||
- **Poly budgets (hard):** props **≤ ~800 tris** · creatures **≤ ~3k** · hero / boss / suit-frames **≤ ~6k**.
|
||||
- **The palette is the ontology** (the fiction rule made visible): **warm gold/amber = light (ours, true) ·
|
||||
cold corpse-green/blue = gloam (the deep's counterfeit) · lure-red = bait · white-hot = conversion.**
|
||||
- **The readability law (binding, from the three reviews):**
|
||||
1. **Value first, hue second.** Every warm/cold distinction is *also* carried by luminance value, shape
|
||||
language, and **flicker-cadence** (steady = true, flicker = false — the load-bearing channel; hue is the
|
||||
garnish). This is the colorblind answer (gold-vs-green is a worst-case red-green pair).
|
||||
2. **Design the dark floor for the video encoder, not the OLED.** Bioluminescent ground-clutter density is
|
||||
the streamability dial; dark scenes must survive 6–8 Mbps without macroblocking. A separate **capture /
|
||||
photo grade** (lifted, saturated profile) ships for clips and screenshots.
|
||||
3. **Screenshot discipline.** Every promotional frame reads at **200 px** with a warm focal light AND a
|
||||
legible silhouette.
|
||||
|
||||
## The material decision (the solo-dev keystone)
|
||||
|
||||
**No per-asset texturing, ever.** This is the single most important production rule in the project.
|
||||
|
||||
- **One shared palette / gradient atlas** — Imphenzia-style: a single small texture of colour bands. UVs are
|
||||
*placed onto bands*, not unwrapped. Zero texture-painting skill required; perfect style coherence; batches
|
||||
hard.
|
||||
- **Vertex-colour accents** for per-asset variation on top of the atlas.
|
||||
- **Three master shaders — the whole rendering surface of the game:**
|
||||
1. **`Lit-Palette`** — statics (props, dressing, environment, station).
|
||||
2. **`Emissive-Gloam`** — parameterized warm/cold/lure emissive. **One shader is the entire palette rule:**
|
||||
its parameters (hue, **flicker-cadence**, intensity) are *both* the look *and* gameplay information
|
||||
(true-vs-false light). Every glow in the game is this shader.
|
||||
3. **`Skinned-Palette`** — deformation-aware (the Rukhanka-skinned creatures/suits). Replaces the current
|
||||
`AnimatedLitShader` role as the palette-atlas creature material.
|
||||
|
||||
**Every asset in the game shares ~3 materials.** Coherence, batching, and no per-asset UV/texture work — that
|
||||
is the amortization that makes a one-person creature factory possible.
|
||||
|
||||
> ⚠ **Carry-over gotcha ([[material-property-body-flash-rukhanka]]):** a per-instance `URPMaterialPropertyBaseColor`
|
||||
> tint only renders if the shader declares `_BaseColor` **Hybrid-Per-Instance** (ShaderGraph
|
||||
> `overrideHLSLDeclaration:true` + `hlslDeclarationOverride:2`). The three master shaders must be authored
|
||||
> Hybrid-Per-Instance if we want per-instance gloam-tint variants (a free variant axis — see A2 variant policy).
|
||||
|
||||
## Reference board
|
||||
|
||||
- **RoR2** — shape language, faceted low-poly, dynamic-light-first in dark ambient.
|
||||
- **Dredge** — water mood, dread, the sea-as-atmosphere.
|
||||
- **Hollow Knight** — value control in darkness (how to stay legible with almost no light).
|
||||
- **Below** — the **cautionary** case: solo dread + screenshot-illegible darkness killed it. The readability
|
||||
law exists specifically against this failure.
|
||||
|
||||
## The style-proof scene — THE GATE (not yet built)
|
||||
|
||||
**One prop + one creature + one suit**, in-engine, under murk + dynamic lights, on the capture grade. Judged
|
||||
three ways, all of which must pass:
|
||||
|
||||
1. **Full-size** — reads as *this game and no other*.
|
||||
2. **At 200 px** — silhouette + warm focal light legible (screenshot-discipline rule).
|
||||
3. **In grayscale** — value-first / flicker-cadence carries the true-vs-false read with hue removed.
|
||||
|
||||
**Locked before any mass production.** This gate + [[DR-048_Lantern_Adoption_Full_Pivot]] + the world-model
|
||||
review ([[Lantern_World_Model_Spike]]) together are Phase 0's exit. Until this scene is approved, Workstream A
|
||||
stays in A0 (no A1 pipeline proof, no A2 factory).
|
||||
|
||||
## Handoff to the deeper pass (A1 recipes)
|
||||
|
||||
The concrete recipe documents are **A1 work** (Phase 1), not A0: the **statics recipe** (Blender → export
|
||||
units/scale → collider policy → entity baking → palette material) and the **skinned recipe** (rig → per-action
|
||||
clips, Key All Bones, bake-to-pose → FBX → Rukhanka ingest → `Skinned-Palette` → prefab). Both build on the
|
||||
project's proven animation pipeline ([[DR-022_Animation_Pipeline_Rukhanka_Synty]] / [[DR-023_Enemy_Animation_MonsterMash]]
|
||||
+ the machine-local Blender recipe) and the **three rig families** (Drifter / Crawler / Strider). This doc is
|
||||
the constitution; the recipes are the operating manuals.
|
||||
|
||||
## Related
|
||||
|
||||
- [[Identity_Lantern]] — the fiction the palette encodes (the readability law lives there too)
|
||||
- [[Roadmap_Lantern_Slice]] — Workstream A (A0 → A1 → A2 → A3) gates
|
||||
- [[DR-048_Lantern_Adoption_Full_Pivot]] — the adoption
|
||||
- [[Synty_Asset_Inventory]] — placeholder quarry until custom assets land
|
||||
- [[DR-022_Animation_Pipeline_Rukhanka_Synty]] — the skinned-material lineage `Skinned-Palette` inherits
|
||||
@@ -9,6 +9,11 @@ permalink: gamevault/01-vision/identity
|
||||
|
||||
# Game Identity — The Awakening Engine (Aether-colony sci-fi)
|
||||
|
||||
> [!warning] SUPERSEDED as the operative fiction (2026-07-13, [[DR-048_Lantern_Adoption_Full_Pivot]]).
|
||||
> The game pivoted to **LANTERN** — see [[Identity_Lantern]]. This Awakening-Engine fiction is **kept as
|
||||
> history and as salvage quarry** (the code it skins is now inventoried in [[Lantern_Strip_Mothball_Inventory]]).
|
||||
> Nothing here is deleted; it is no longer the target.
|
||||
|
||||
> The fiction that turns the [[Pillars|mechanical pillars]] into a *place*. Originally the "frontier colony" skin (2026-06-02, [[DR-009_GameFeel_Identity_FirstBlood]]); **evolved 2026-06-03** to absorb the magic + sci-fi premise (amnesiac Sleeper, a guiding voice, a goal called THEM) into one coherent world — recorded in [[DR-014_M6_Build_Structures_Automation_Foundation|the M6 build slice]] and the fiction-adoption decision. It remains a **skin over the locked pillars — no mechanical rework**: every M1–M6 system keeps its code and gains a fictional role. The frontier colony is *recontextualised, not replaced*.
|
||||
|
||||
## One-sentence pitch
|
||||
|
||||
@@ -11,6 +11,14 @@ permalink: gamevault/01-vision/pillars
|
||||
|
||||
> The few non-negotiables every system must serve. Keep this short; promote only decisions that are truly locked.
|
||||
|
||||
> [!info] Direction: **LANTERN** (locked 2026-07-13, [[DR-048_Lantern_Adoption_Full_Pivot]]).
|
||||
> The **mechanical pillars below still hold** (Unity DOTS + Netcode, server-authoritative, 2–4 co-op,
|
||||
> skill-expression combat, persistent base, automation-as-progression). What changed is the **fiction + three
|
||||
> subsystems**: the fiction is now [[Identity_Lantern]] (not the Awakening Engine); combat sharpens to
|
||||
> **SoD-grade manual-aim skillshots** (the soft auto-target era ends); the world becomes a seed-pinned
|
||||
> **pocket-graph** where **light is territory**; the build layer becomes suit-frames + cultured Sparks + wild
|
||||
> mutations. See the LANTERN locked decisions at the bottom.
|
||||
|
||||
## Pillars
|
||||
|
||||
> **Combat is the primary verb; base + automation braid around it** (locked 2026-06-08, [[DR-028_Combat_Primary_Verb_Depth_First]]). The fusion of all three is the identity — but as ONE braided loop with a single primary verb, never three co-equal, independently-deep modes. Roadmap: [[Path_to_Fun]].
|
||||
@@ -30,7 +38,27 @@ permalink: gamevault/01-vision/pillars
|
||||
- **Combat-primary + depth-before-breadth (locked 2026-06-08):** combat is the primary braided verb; **no new system until one braided loop is genuinely fun**, and every milestone ends with a play/fun-gate (not just green tests). [[DR-028_Combat_Primary_Verb_Depth_First]] · roadmap [[Path_to_Fun]].
|
||||
- **Classes + persistent meta (locked 2026-06-17, [[DR-037_Procedural_Expedition_Spine_Two_Classes_Persistent_Meta]]):** **two classes** — **Warrior** (melee anchor) + **Ranger** (ranged, manually aimed — *not* auto-fire, which would break skill-expression). Class identity = the **primary-attack archetype**; run-acquired **meta-buffs ride the existing `StatModifier`/`TimedModifier` pipeline**. A **persistent meta-progression layer** (SaveData v6) funds permanent growth at the hub; run combat-buffs are run-scoped. **Reverses [[DR-031_Base_Mining_Loop_Cohesion]]'s expedition pause** (a real playtest — [[Scratch Notes 6152026]] — showed the single arena goes stale).
|
||||
|
||||
## LANTERN direction — locked decisions (2026-07-13, [[DR-048_Lantern_Adoption_Full_Pivot]])
|
||||
|
||||
These sit *on top of* the mechanical pillars above (which are unchanged). Full design: [[Identity_Lantern]];
|
||||
roadmap: [[Roadmap_Lantern_Slice]].
|
||||
|
||||
- **The one rule:** *what the light holds, stays; what the dark holds, changes.* Applied to the world =
|
||||
persistence; to the body = death; to the kit = builds; to the story = stakes.
|
||||
- **World = seed-pinned pocket-graph** (light is territory). Permanence is spendable: lit pockets persist,
|
||||
dark pockets re-knot. The hardest netcode problem — [[Lantern_World_Model_Spike]] (★review-first).
|
||||
- **Combat feel = SoD-grade manual-aim skillshots** (telegraphs, dashes, cooldown kits; **soft auto-target
|
||||
cut**). Suit-frames = chassis/class; **Sparks** (abilities-as-organs, cultured) graft into sockets; **wild
|
||||
mutations** are the augment layer (paced thresholds, evaporate at homecoming, Tallow fix-slots).
|
||||
- **Death = the split:** flame returns cheap (kit works within minutes); cargo + fixed mutations + raw organs
|
||||
strand with the suit — recovery runs are optional value-runs, never mandatory kit-repair.
|
||||
- **Session-only burn** (the Lamp burns only while a session runs — no offline punishment). **Hosting = Wicks
|
||||
travel; worlds are saves** (Valheim contract). **Loss ceiling = pockets, never a shelf.**
|
||||
- **The slice's falsifiable test:** *does pinning a pocket feel like winning, and does a stranded suit feel
|
||||
worth a second descent?* — the only gate that matters.
|
||||
|
||||
## Related
|
||||
|
||||
- [[Identity]] — the **fiction** that skins these pillars: **The Awakening Engine** (Aether-colony sci-fi), evolved 2026-06-03 ([[DR-015_The_Awakening_Engine_Fiction_Adoption]]) from the original frontier-colony skin ([[DR-009_GameFeel_Identity_FirstBlood]], 2026-06-02). Skin-only — no mechanical rework; **Aether** is the one substance unifying magic + tech (cyan = ordered / orange = wild Blight), with an amnesiac-**Sleeper** / **Echo** (the guiding voice) / **THEM** spine.
|
||||
- [[Identity_Lantern]] — the **operative fiction** these pillars now skin (co-op action-RPG; light-as-territory).
|
||||
- [[Identity]] — the **prior** fiction (The Awakening Engine, Aether-colony sci-fi) — **superseded** as operative by [[DR-048_Lantern_Adoption_Full_Pivot]], kept as history/quarry. Skinned via [[DR-015_The_Awakening_Engine_Fiction_Adoption]] / [[DR-009_GameFeel_Identity_FirstBlood]] (amnesiac Sleeper / Echo / THEM · Aether cyan=ordered / orange=wild Blight).
|
||||
- Decision records: `07_Sessions/_Decisions/`
|
||||
Reference in New Issue
Block a user