diff --git a/CLAUDE.md b/CLAUDE.md index 8f24fe438..73fbf6951 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -33,7 +33,7 @@ db/ skills/ # Skill definitions decisions/ # Decision domain files (source of truth) README.md # Domain index and query examples - architecture.md # D-008, D-009, D-010, D-012, D-020, D-026, D-030, D-031, D-041, D-042, D-054, D-055 + architecture.md # D-008, D-009, D-010, D-012, D-020, D-026, D-030, D-031, D-041, D-042, D-054, D-055, D-066 perception.md # D-011, D-015, D-016, D-017, D-018, D-019, D-033, D-035, D-043-D-049, D-052, D-056-D-061 content.md # D-023, D-024, D-025, D-028, D-029, D-032, D-034-D-037, D-050, D-062-D-064 scope.md # D-001, D-003, D-005, D-006, D-007, D-013, D-014, D-027, D-038, D-039, D-051, D-053, D-065 diff --git a/decisions/README.md b/decisions/README.md index 1c8b31e5c..aab0c6f15 100644 --- a/decisions/README.md +++ b/decisions/README.md @@ -10,7 +10,7 @@ Cross-domain decisions live in one file with cross-reference notes in related fi | File | Domain | Decisions | |------|--------|-----------| -| [architecture.md](architecture.md) | Technical foundation | D-008, D-009, D-010, D-012, D-020, D-026, D-030, D-031, D-041, D-042, D-054, D-055 | +| [architecture.md](architecture.md) | Technical foundation | D-008, D-009, D-010, D-012, D-020, D-026, D-030, D-031, D-041, D-042, D-054, D-055, D-066 | | [perception.md](perception.md) | Player observation | D-011, D-015, D-016, D-017, D-018, D-019, D-033, D-035, D-043, D-044, D-045, D-046, D-047, D-048, D-049, D-052, D-056, D-057, D-058, D-059, D-060, D-061 | | [content.md](content.md) | NPC, dialogue, templates | D-023, D-024, D-025, D-028, D-029, D-032, D-034, D-035, D-036, D-037, D-050, D-062, D-063, D-064 | | [scope.md](scope.md) | Game concept, prototype | D-001, D-003, D-005, D-006, D-007, D-013, D-014, D-027, D-038, D-039, D-051, D-053, D-065 | diff --git a/decisions/architecture.md b/decisions/architecture.md index 8159de306..8ebb9f936 100644 --- a/decisions/architecture.md +++ b/decisions/architecture.md @@ -159,6 +159,25 @@ Technical foundation decisions that constrain implementation: engine, client-ser - **Raised by:** Dudley (explicit suppression), Ozzie (anomaly survival / double-take), Gestalt (interpretation vs data framing) - **Dissent:** Gestalt argued physics handles it naturally (player passes through interaction radius too fast to click). Lead ruled explicit suppression for clarity and determinism. +### D-066: Dual-scale grid — 0.5m simulation, 1m visual (2x retina factor) +- **Date:** 2026-02-14 +- **Decision:** The game uses two coordinate scales with a fixed 2x retina factor: + - **Simulation grid: 0.5m tiles.** All movement, LOS/shadowcasting ([D-035](perception.md#d-035-symmetric-shadowcasting-albert-ford-selected-for-los-computation)), pathfinding, occupancy ([D-054](#d-054-tile-based-movement-with-same-tile-occupancy)), and interaction range operate at 0.5m per sim tile. The server knows only sim tiles. + - **Visual grid: 1m tiles.** The Godot client renders floor art, wall art, and structural tiles as 2x2 blocks of sim tiles. Art is authored at 1m conceptual scale. + - **World geometry: 2x2 sim tile minimum.** All walls, furniture, crates, doors, and environmental objects occupy a minimum of 2x2 sim tiles (= 1 visual tile). This ensures visual truth and sim truth agree on where solid things are — cover, LOS occlusion, and collision map 1:1 with what the player sees. + - **Entities: 1x1 sim tiles.** Characters and small items occupy individual 0.5m sim tiles, giving sub-visual-tile positioning precision. Entities naturally take corners/edges within a visual tile's 1m space. + - **Sprites: 2x2 sim tile footprint.** Entity sprites render across 2x2 sim tiles so they feel proportional to the 1m visual grid. Tween interpolation ([D-054](#d-054-tile-based-movement-with-same-tile-occupancy)) hides half-visual-tile movement increments. +- **Mental model:** "Objects are where they look. I can position myself precisely within open space." The player reads cover and walls at visual scale (always correct). Fine movement granularity is felt, not counted. +- **What the simulation does NOT know:** Visual tiles. The retina factor is purely a client rendering convention. The server operates exclusively on 0.5m sim tiles. +- **Fog shader ([D-059](perception.md#d-059-fog--shader-based-five-layers-knowledge-graph-driven)):** Unaffected — fog is screen-space, driven by PointLight2D vision cone and LOS mask from sim-resolution shadowcasting. Gradient edge "3-4 tiles" is retuned to 6-8 sim tiles (= 3-4 visual tiles) to preserve the intended softness. +- **Cursor/interaction:** No change — cursor already resolves to sim tile from pixel position. Interaction range of ~2 sim tiles = 1m (arm's length). +- **Map authoring:** Author at 1m visual scale. Subdivision tool expands each visual tile to 4 sim tiles (2x2). Validation enforces 2x2 minimum on all world geometry layers. +- **Amends:** OQ-01 resolution (ticket #444). Sim tile size remains 0.5m; visual presentation changes from 1:1 to 2:1 retina factor. +- **Cross-reference:** Tile-based movement ([D-054](#d-054-tile-based-movement-with-same-tile-occupancy)), shadowcasting ([D-035](perception.md#d-035-symmetric-shadowcasting-albert-ford-selected-for-los-computation)), fog ([D-059](perception.md#d-059-fog--shader-based-five-layers-knowledge-graph-driven)), art direction ([D-043](perception.md#d-043-art-direction--visual-style-functional-warmth)), z-stack ([D-049](perception.md#d-049-z-level-rendering-stack-8-layers)), stance system ([D-053](scope.md#d-053-movement-as-stance-toggle-system)) +- **Rationale:** 0.5m sim tiles give stealth-grade granularity for movement stances, cover peeking, and interaction range. 1m visual tiles make spaces feel proportional, sprites look right, and world geometry readable. The 2x2 minimum on geometry eliminates visual/sim mismatch for cover and LOS — the only sub-visual-tile positioning is entity movement, which is communicated through fog feedback, not tile counting. Analogous to macOS Retina: logical resolution (visual) differs from physical resolution (sim), but the system is coherent because both agree on where solid objects are. +- **Raised by:** Team Leader (Jeroen) — proposed retina scaling analogy and 2x2 geometry constraint. Tyre (feasibility: trivial, half-day integration). Gestalt (approved with 2x2 constraint resolving LOS readability concern). Ozzie (approved: solves sprite scale without uncanny mismatch). +- **Dissent:** Gestalt initially objected to dual-scale (mental model mismatch for cover/LOS). Resolved by the 2x2 geometry minimum constraint — all cover maps 1:1 at visual scale. + --- -*12 decisions. Last updated: 2026-02-13* +*13 decisions. Last updated: 2026-02-14* diff --git a/decisions/perception.md b/decisions/perception.md index db6d1483c..847c41072 100644 --- a/decisions/perception.md +++ b/decisions/perception.md @@ -133,7 +133,7 @@ How the player observes and interacts with the world: camera, fog, line-of-sight ### D-043: Art direction — visual style ("functional warmth") - **Date:** 2026-02-12 -- **Decision:** Clean 2D with bold silhouettes, tile-based world composition (64x64 grid), lighting-driven atmosphere. Not pixel art, not painted, not 3D. Godot 4 Light2D pipeline (PointLight2D per fixture, LightOccluder2D on walls, CanvasModulate for global ambient). AI-generated assets via Nano Banana / Gemini 2.5 Flash, rendered through 3D pipeline for perspective consistency. Core production principle: "Sprites are shape templates that the lighting system completes" — no baked shadows, no baked lighting, no baked mood. +- **Decision:** Clean 2D with bold silhouettes, tile-based world composition (64x64px visual tiles on dual-scale grid per [D-066](architecture.md#d-066-dual-scale-grid--05m-simulation-1m-visual-2x-retina-factor)), lighting-driven atmosphere. Not pixel art, not painted, not 3D. Godot 4 Light2D pipeline (PointLight2D per fixture, LightOccluder2D on walls, CanvasModulate for global ambient). AI-generated assets via Nano Banana / Gemini 2.5 Flash, rendered through 3D pipeline for perspective consistency. Core production principle: "Sprites are shape templates that the lighting system completes" — no baked shadows, no baked lighting, no baked mood. - **Label:** "Functional warmth" (Gore). - **Resolution chain:** 1024x1024 source → 256x256 working (outlines applied at 4-8px) → 64x64 runtime. Bilinear interpolation both passes. Outline color: dark blue-grey `#333340`. - **Canonical reference:** `docs/workshops/art-direction-mood-board/workshop-outcomes.md` §1.1, §9.1-9.3 @@ -143,7 +143,7 @@ How the player observes and interacts with the world: camera, fog, line-of-sight ### D-044: Art direction — visual hierarchy (entity > object > structure) - **Date:** 2026-02-12 - **Decision:** Three-layer visual hierarchy: entities (2px outline, D-033 relationship color, highest saturation) > objects (1px outline, era-appropriate palette, moderate saturation) > structure (minimal/no outline, muted zone palette, lowest saturation). Hard rendering rule: entity always wins visual ties — if an entity and object overlap, the entity's D-033 color must remain visible. This is a readability guarantee, not an aesthetic preference. -- **Entity spec:** 24x32 pixel footprint within 64x64 tiles. D-033 color as primary information signal, silhouette as primary identity signal. One identifying silhouette feature per named NPC (Kael's vest, Lera's apron, Sera's uniform). 3-4 template silhouettes for generic NPCs. +- **Entity spec:** 24x32 pixel footprint within 64x64px visual tiles. Entities occupy 1x1 sim tiles (0.5m) but render across a 2x2 sim tile sprite footprint per [D-066](architecture.md#d-066-dual-scale-grid--05m-simulation-1m-visual-2x-retina-factor). D-033 color as primary information signal, silhouette as primary identity signal. One identifying silhouette feature per named NPC (Kael's vest, Lera's apron, Sera's uniform). 3-4 template silhouettes for generic NPCs. - **Canonical reference:** `docs/workshops/art-direction-mood-board/workshop-outcomes.md` §1.4, §1.5 - **Raised by:** Araminta (outline spec), Ozzie (readability priority). Unanimously endorsed. - **Dissent:** None @@ -205,7 +205,7 @@ How the player observes and interacts with the world: camera, fog, line-of-sight - **Object hover:** Ticks rotate 45° to X-shape. Muted grey #8b8ba0 (amber #e8c547 if flagged). Simpler frame than entity. - **Weapon aim:** Hard transition. Ticks extend, center gap widens, lines thicken 1→2px. Warm white #f0e8d8. NO bloom. Entity in sights tints to D-033 color — aiming at a friend (green tint) should feel wrong. - All transitions 150ms linear. z-layer 7. Never changes by zone or narrative state ([D-045](#d-045-art-direction--environmental-neutrality-strict-zero-shift)). -- Cursor changes on LOS, not just proximity. Click interaction range: ~2 tiles. Weapon-selected mode suppresses interaction prompts unless Shift held ("combat intent trumps social intent"). +- Cursor changes on LOS, not just proximity. Click interaction range: ~2 sim tiles (= 1m per [D-066](architecture.md#d-066-dual-scale-grid--05m-simulation-1m-visual-2x-retina-factor)). Weapon-selected mode suppresses interaction prompts unless Shift held ("combat intent trumps social intent"). - **Diegetic test (Stig):** Interaction labels render on z-layer 6 (insert overlay). If the insert is off, labels disappear. Passes the "is this information from the character's implant?" test. - **Rationale:** Diegetic — cursor is the insert's own interface element. Consistent with [D-048](#d-048-neural-insert-overlay--visual-design). Entity in weapon sights tinting to D-033 creates moral friction. - **Cross-reference:** Insert overlay ([D-048](#d-048-neural-insert-overlay--visual-design)), entity color ([D-033](#d-033-entity-color--relationship-to-player)), z-stack ([D-049](#d-049-z-level-rendering-stack-8-layers)) @@ -237,7 +237,7 @@ How the player observes and interacts with the world: camera, fog, line-of-sight ### D-059: Fog — shader-based, five layers, knowledge-graph-driven - **Date:** 2026-02-13 - **Decision:** Fog is a shader-driven system (not particles) with five distinct layers: - 1. **Clear (vision cone):** Soft gradient edge over 3-4 tiles, no hard line. Darkwood approach. + 1. **Clear (vision cone):** Soft gradient edge over 6-8 sim tiles (= 3-4 visual tiles per [D-066](architecture.md#d-066-dual-scale-grid--05m-simulation-1m-visual-2x-retina-factor)), no hard line. Darkwood approach. 2. **Light fog (peripheral):** Desaturated 40-50%, brightness -30%. Animated Perlin noise overlay (8-10s cycle). Entity [D-033](#d-033-entity-color--relationship-to-player) colors visible but reduced. 3. **Deep fog (previously explored):** Near-monochrome with ~10% "zone temperature" tint (bar=warm dark, hub=cool dark, corridor=neutral dark). More pronounced noise (15-20s cycle). Fog breathes. 4. **Unexplored + maps app:** Geometric wireframe outlines #333340. Insert data aesthetic. @@ -275,4 +275,4 @@ How the player observes and interacts with the world: camera, fog, line-of-sight --- -*23 decisions. Last updated: 2026-02-13* +*23 decisions. Last updated: 2026-02-14* diff --git a/decisions/scope.md b/decisions/scope.md index a32f68e6e..06257c9f4 100644 --- a/decisions/scope.md +++ b/decisions/scope.md @@ -134,7 +134,7 @@ What we're building: game concept, design pillars, prototype definition, map spe ### D-051: "Settling is placement" — design principle - **Date:** 2026-02-12 -- **Decision:** Object density in a space correlates with how settled it is. The bar is full because Lera made it home. Empty corridors are unsettled. Investigation reads placement as intention — every placed tile is someone's decision. The tile-based world (D-043, 64x64 grid) is thematically load-bearing: stations are literally built from prefab modular construction, so the tile grid IS the construction grid. +- **Decision:** Object density in a space correlates with how settled it is. The bar is full because Lera made it home. Empty corridors are unsettled. Investigation reads placement as intention — every placed tile is someone's decision. The tile-based world (D-043, 64x64px visual tiles on dual-scale grid per [D-066](architecture.md#d-066-dual-scale-grid--05m-simulation-1m-visual-2x-retina-factor)) is thematically load-bearing: stations are literally built from prefab modular construction, so the tile grid IS the construction grid. - **Corollary — "Investigation is archaeology of intention" (Gore):** Reading the tile world is reading decisions. A cargo crate in the wrong place. A personal item in a maintenance corridor. The mundane environment IS the evidence. - **Cross-reference:** Favorite colors ([D-052](perception.md#d-052-character-favorite-colors--object-layer-identification)) - **Canonical reference:** `docs/workshops/art-direction-mood-board/workshop-outcomes.md` §1.3, §7 diff --git a/docs/sprints/sprint-6/joint.md b/docs/sprints/sprint-6/joint.md index 6e0f1e398..9ea7505c3 100644 --- a/docs/sprints/sprint-6/joint.md +++ b/docs/sprints/sprint-6/joint.md @@ -23,7 +23,7 @@ This sprint emerged from the **Control & Interaction Workshop** (2026-02-13), wh Two open questions were resolved during the workshop and ticket creation: -- **OQ-01: Tile size** — Resolved to 0.5m x 0.5m (ticket #444, done) +- **OQ-01: Tile size** — Resolved to 0.5m x 0.5m sim tiles (ticket #444, done). Amended by D-066: dual-scale grid with 1m visual tiles (2x retina factor). All world geometry 2x2 sim tile minimum. - **OQ-24: Inventory capacity** — Resolved to 3x3 grid = 9 slots universal (ticket #445, done) All blocking decisions are confirmed. No pre-sprint work required. diff --git a/docs/sprints/sprint-6/server.md b/docs/sprints/sprint-6/server.md index 324389458..5c4a1625e 100644 --- a/docs/sprints/sprint-6/server.md +++ b/docs/sprints/sprint-6/server.md @@ -29,7 +29,7 @@ Use `db/connectors/ticket show ` for full details. ## Open Questions Resolved -- **OQ-01: Tile size** — Resolved to 0.5m x 0.5m (ticket #444, done) +- **OQ-01: Tile size** — Resolved to 0.5m x 0.5m sim tiles (ticket #444, done). Amended by D-066: dual-scale grid with 1m visual tiles (2x retina factor). All world geometry 2x2 sim tile minimum. - **OQ-24: Inventory capacity** — Resolved to 3x3 grid = 9 slots universal (ticket #445, done) ## Notes diff --git a/docs/workshops/art-direction-mood-board/workshop-outcomes.md b/docs/workshops/art-direction-mood-board/workshop-outcomes.md index fe2723c02..66d55a253 100644 --- a/docs/workshops/art-direction-mood-board/workshop-outcomes.md +++ b/docs/workshops/art-direction-mood-board/workshop-outcomes.md @@ -54,8 +54,8 @@ Each participant's one-sentence answer to "What is this game's visual identity?" - Entity facing direction becomes readable (see someone's front vs. back) **What doesn't change:** -- Tile grid stays orthogonal (64x64, square) -- Vision cone computed on 2D grid (Rust shadowcasting, D-035) +- Tile grid stays orthogonal (64x64px visual tiles = 2x2 sim tiles per D-066, square) +- Vision cone computed on 2D sim grid (Rust shadowcasting, D-035) - Light2D pipeline unchanged - Fog of perception unchanged - Environmental neutrality unchanged @@ -67,11 +67,12 @@ Each participant's one-sentence answer to "What is this game's visual identity?" ### 1.3 World Composition — Tile-Based -**64x64 tile grid, 1x1 placed objects, base-builder compatible.** +**Dual-scale grid: 0.5m sim tiles, 1m visual tiles (2x retina factor, [D-066](../../decisions/architecture.md#d-066-dual-scale-grid--05m-simulation-1m-visual-2x-retina-factor)). Visual tiles are 64x64px.** -- Structural tiles (walls, floors, doors): 64x64, muted, minimal outlines, zone palette + era differentiation -- Object tiles (furniture, equipment, containers): 64x64 per 1x1, medium outline (1px), Rimworld object detail as target -- Larger objects composed of 1x1 sub-tiles (e.g., 3x1 bar counter, 2x1 desk) +- Structural tiles (walls, floors, doors): 64x64px per visual tile (= 2x2 sim tiles), muted, minimal outlines, zone palette + era differentiation +- Object tiles (furniture, equipment, containers): 64x64px per visual tile, medium outline (1px), Rimworld object detail as target. All world geometry is 2x2 sim tile minimum. +- Larger objects composed of multiple visual tiles (e.g., 3x1 bar counter, 2x1 desk — in visual tile units) +- Entities occupy 1x1 sim tiles (0.5m) for fine positioning within the 1m visual grid - Three construction eras as tile palettes (see §1.8) - Stations are literally built this way — prefab modular construction = tile grid IS the construction grid (Miri) @@ -95,9 +96,9 @@ Each participant's one-sentence answer to "What is this game's visual identity?" ### 1.5 Entity System -**24x32 pixel footprint within 64x64 tiles.** +**24x32 pixel footprint within 64x64px visual tiles. Entities occupy 1x1 sim tiles (0.5m) but render across a 2x2 sim tile sprite footprint per [D-066](../../decisions/architecture.md#d-066-dual-scale-grid--05m-simulation-1m-visual-2x-retina-factor).** -- Entity smaller than tile = clear figure-ground relationship +- Entity smaller than visual tile = clear figure-ground relationship - D-033 color as primary information signal - Silhouette as primary identity signal (I-01: "Silhouette IS identity because color is spoken for" — Ozzie) - One identifying silhouette feature per named NPC (Kael's vest, Lera's apron, Sera's Commission uniform) @@ -490,7 +491,7 @@ Cyberpunk neon / Blade Runner rain-noir, Star Trek antiseptic, Star Wars romanti The following workshop outputs are ready for formal recording in `decisions/` domain files. All have unanimous consensus. Proposed numbering starts at D-042 (D-041 is the current highest). ### Candidate D-042: Art Direction — Visual Style -- **Decision:** Clean 2D with bold silhouettes, tile-based world composition (64x64 grid), lighting-driven atmosphere. "Functional warmth." Not pixel art, not painted, not 3D. Godot 4 Light2D pipeline. Sprites are shape templates that the lighting system completes — no baked shadows, no baked lighting, no baked mood. +- **Decision:** Clean 2D with bold silhouettes, tile-based world composition (64x64px visual tiles on dual-scale grid per D-066), lighting-driven atmosphere. "Functional warmth." Not pixel art, not painted, not 3D. Godot 4 Light2D pipeline. Sprites are shape templates that the lighting system completes — no baked shadows, no baked lighting, no baked mood. - **Rationale:** Four independent agents converged on the same style. Production constraints (Nano Banana), engine capabilities (Godot 4 Light2D), design requirements (D-033 readability), and thematic goals (restraint as confidence) all point to the same solution. - **Domain:** perception.md (cross-ref: architecture.md for Godot pipeline) - **Raised by:** Araminta (lead), endorsed unanimously @@ -608,7 +609,7 @@ The following workshop outputs are ready for formal recording in `decisions/` do |---|---|---| | Source render | 1024x1024 | Archive master. Maximum detail from SubViewport. | | Working | 256x256 | Outlines applied here (4-8px → 1-2px at runtime). Asset QA resolution. | -| Runtime | 64x64 | Final in-game sprite. Must read through silhouette and color, not texture detail. | +| Runtime | 64x64 | Final in-game sprite (= 1 visual tile per D-066). Must read through silhouette and color, not texture detail. | - **Interpolation:** Bilinear for both downscale passes - **Outline application:** At 256 working resolution. 4px outline at 256 = 1px at 64 runtime. Color: dark blue-grey `#333340`. diff --git a/docs/workshops/control-interaction/workshop-outcomes.md b/docs/workshops/control-interaction/workshop-outcomes.md index 836f76483..b21bf58aa 100644 --- a/docs/workshops/control-interaction/workshop-outcomes.md +++ b/docs/workshops/control-interaction/workshop-outcomes.md @@ -40,7 +40,7 @@ This workshop produced 13 decisions ready for formalization. Suggested D-NNN IDs - Object hover: ticks rotate 45 degrees to X-shape, muted grey #8b8ba0 (amber #e8c547 if flagged) - Weapon aim: hard transition, ticks extend, center gap widens, lines thicken 1px to 2px, warm white #f0e8d8, NO bloom. Entity in sights tints to D-033 color. - All transitions 150ms linear, z-layer 7, never changes by zone or narrative state (D-045). - - Cursor changes on LOS, not just proximity (Stig). Click range: ~2 tiles. Weapon-selected mode suppresses interaction prompts unless Shift held (Ozzie: "combat intent trumps social intent"). + - Cursor changes on LOS, not just proximity (Stig). Click range: ~2 sim tiles (= 1m per D-066). Weapon-selected mode suppresses interaction prompts unless Shift held (Ozzie: "combat intent trumps social intent"). - **Rationale:** Diegetic — cursor is the insert's own interface element. Consistent with D-048 (insert overlay aesthetic). Entity in weapon sights tinting to D-033 creates moral friction (aiming at a friend should feel wrong). - **Raised by:** Araminta (visual spec), Stig (UX rules), Ozzie (weapon suppression) - **Dissent:** None. @@ -60,7 +60,7 @@ This workshop produced 13 decisions ready for formalization. Suggested D-NNN IDs ### D-059: Fog — shader-based, five layers, knowledge-graph-driven (perception.md) - **Decision:** Fog is a shader-driven system (not particles) with five distinct layers: - 1. Clear (vision cone): soft gradient edge 3-4 tiles, no hard line (Darkwood approach) + 1. Clear (vision cone): soft gradient edge 6-8 sim tiles (= 3-4 visual tiles per D-066), no hard line (Darkwood approach) 2. Light fog (peripheral): desaturated 40-50%, brightness -30%, animated Perlin noise (8-10s cycle), entity D-033 colors visible but reduced 3. Deep fog (explored): near-monochrome, ~10% zone temperature tint (bar=warm, hub=cool, corridor=neutral), more pronounced noise (15-20s cycle) 4. Unexplored + maps app: geometric wireframe outlines #333340 @@ -173,7 +173,7 @@ These were raised in the workshop and confirmed, but may overlap with or extend | Layer | Treatment | Key Values | |-------|-----------|------------| -| Clear | Soft gradient edge | 3-4 tiles | +| Clear | Soft gradient edge | 6-8 sim tiles (= 3-4 visual tiles, D-066) | | Light fog | Desaturated, Perlin noise | 40-50%, 8-10s cycle | | Deep fog | Near-monochrome, zone temperature | ~10% tint, 15-20s cycle | | Unexplored + maps | Geometric wireframe | #333340 | @@ -186,7 +186,7 @@ These were raised in the workshop and confirmed, but may overlap with or extend | Menu type | Vertical list, insert-styled | | Max options | 2-4, anchored to entity position | | New option highlight | Gradient glow background | -| Trigger | LOS + ~2 tiles proximity | +| Trigger | LOS + ~2 sim tiles proximity (= 1m, D-066) | | Diegetic test | Labels on z-layer 6, disappear if insert off | ### World Menu (D-058) @@ -295,7 +295,7 @@ These questions were not resolved in the workshop and should be addressed during | # | Question | Owner Suggestion | |---|----------|-----------------| -| OQ-01 | Tile size in world units? | Tyre/Dudley | +| OQ-01 | ~~Tile size in world units?~~ **Resolved:** 0.5m sim tiles, 1m visual tiles (D-066) | Tyre/Dudley | | OQ-07 | No insert = no interaction prompts? (Diegetic test implication) | Stig/Gestalt | | OQ-08 | False-positive fog shapes: gameplay or atmospheric? | Gestalt/Araminta | | OQ-09 | Zone temperature memory: server-tracked or client-only? | Tyre/Dudley |