# Conflicts: # CHANGELOG.md # content/_meta/README.md # content/_meta/npc-authoring-style-guide.md # wiki/_templates/cultural-group.md # wiki/_templates/institution.md # wiki/_templates/star-system.md # wiki/characters/devra.md # wiki/characters/drin.md # wiki/characters/harek.md # wiki/characters/lera-sessik.md # wiki/characters/maret-korr.md # wiki/characters/naia-tamm.md # wiki/characters/nils-davan.md # wiki/characters/pell.md # wiki/characters/renn.md # wiki/characters/resha.md # wiki/characters/sabel.md # wiki/characters/sera-venn.md # wiki/characters/torek-lintar.md # wiki/characters/voss.md # wiki/star-systems/krenn/index.md
154 lines
8.1 KiB
Markdown
154 lines
8.1 KiB
Markdown
---
|
||
title: "Sprint 23 — Visual Briefing"
|
||
description: "Author tile maps for The Terminal, The Last Shift, maintenance and gate corridors"
|
||
type: sprint
|
||
status: archived
|
||
sprint: 23
|
||
team: "visual"
|
||
---
|
||
|
||
# Sprint 23: Terrain — Visual Tasks
|
||
|
||
**Goal:** Build the walkable Sova world under the authored content, complete the storyteller engagement layer, and add the debug console — clearing the path to v0.1 integration in Sprint 24.
|
||
|
||
**Branch:** `visual`
|
||
**Agents:** Araminta (art direction, tile authoring)
|
||
|
||
---
|
||
|
||
## New Tickets
|
||
|
||
| # | Title | Blocked by |
|
||
|---|-------|------------|
|
||
| #582 | Author tile map: The Terminal (logistics hub) | #577 (server tile format) |
|
||
| #583 | Author tile maps: The Last Shift, maintenance corridors, and gate corridor | #577 (server tile format) |
|
||
|
||
Use `tooling/db/ticket show <id>` for full descriptions.
|
||
|
||
---
|
||
|
||
## Key Decisions
|
||
|
||
- `decisions/content.md` — D-093 (Sova Transit District — **full spatial spec with tile dimensions, zone palette, corridor widths, zone-by-zone breakdown**)
|
||
- `decisions/content.md` — D-025 (functional cluster: 15-40 tile connected spaces, internal sightlines, public/private zones)
|
||
- `decisions/architecture.md` — D-094 (spatial hierarchy: chunk 32×32 sim tiles = 16×16 visual tiles at 2x retina, D-066), D-066 (dual-scale grid: 0.5m sim, 1m visual)
|
||
- `decisions/architecture.md` — D-110 (z-levels: z=0 maintenance corridors, z=1 main structures, z=2 observation gallery)
|
||
|
||
---
|
||
|
||
## Open Questions to Resolve Early
|
||
|
||
- **Tile format (day 1–2):** Server ticket #577 must publish the tile format before authoring begins. Coordinate with Dudley. The format is expected to be: `tiles:` array of strings, one char per tile. Do not author tile data until the format is confirmed and documented in `server/src/content/types.rs`.
|
||
|
||
---
|
||
|
||
## Notes
|
||
|
||
### Tile format primer
|
||
|
||
The server will confirm a format like:
|
||
|
||
```yaml
|
||
tiles:
|
||
- "WWWWWWWWWW"
|
||
- "WFFFFFFFFFFW"
|
||
- "WFFFFFFFFFFW"
|
||
- "WWWWWWWWWW"
|
||
```
|
||
|
||
Characters: `F`=floor (walkable), `W`=wall (blocks movement/LOS), `V`=void (empty space outside the location boundary), `R`=restricted (walkable but access-tier restricted). Left-to-right = +x, top-to-bottom = +y. Origin (0,0) = top-left corner of the tile_bounds bounding box.
|
||
|
||
Do not use any other characters until the server documents them.
|
||
|
||
### #582 — The Terminal tile map
|
||
|
||
**Source materials:**
|
||
- `#311` (done): Spatial layout — The Terminal. Tile-level floor plan with sightline analysis. Sprint 12.
|
||
- `D-093`: Terminal dimensions = **44×28 visual tiles**. Zone palette surface hex: `#7a8490`, fog tint: `#0d1520`.
|
||
- Access tiers: main corridor = public, work floor = credentialed, restricted storage = restricted.
|
||
- Key spatial features:
|
||
- Scanner bays (entry — public)
|
||
- Main corridor (chokepoint — high sightline value)
|
||
- Manifest processing (work floor)
|
||
- Break room (social site — NPC off-hours presence)
|
||
- Supervisor office (window faces main corridor — LOS design requirement)
|
||
- Restricted storage (smuggling ops — `R` tiles for access restriction)
|
||
|
||
**Output:** Complete `content/campaigns/main/systems/van-maanens-star/stations/sova/districts/transit/locations/the-terminal.yaml` with:
|
||
- `canonical_id: van-maanens-star.sova.transit.location.the-terminal`
|
||
- `display_name: "The Terminal"`
|
||
- `tile_bounds: { x_min: 0, y_min: 0, x_max: 43, y_max: 27, z: 1 }` (z=1 per D-093)
|
||
- `tiles: [...]` — the 44×28 grid
|
||
- `sightlines: { open: false, notes: "supervisor office window faces main corridor; LOS critical for investigation" }`
|
||
- `social_site: "logistics-hub"` (links to the template)
|
||
|
||
**Sightline requirement:** The supervisor office window must be placed so that the player standing in the main corridor has LOS to the office interior. This is investigatively critical — it is how the player first suspects the supervisor. Do not place it behind a wall that would block shadowcasting.
|
||
|
||
### #583 — The Last Shift, maintenance corridors, gate corridor
|
||
|
||
Three YAML files. All blocked on #577 tile format; can author all three in parallel once format is confirmed.
|
||
|
||
**The Last Shift (`the-last-shift.yaml`)**
|
||
- Source: #312 (done), Sprint 12
|
||
- D-093: **28×22 visual tiles + 6m east extension** (= ~6 visual tiles). Total footprint: ~34×22.
|
||
- Zone palette: `#6b4018` (warm dark brown — converted maintenance area), fog tint: `#200c04`
|
||
- Key features: long bar counter (high visibility — staff can see all tables), corner booth (observation premium — sees bar + card table + entrance + back room), scattered tables, news ticker display (`F` tiles), back room with alley exit (`R` or `F` tiles — navigable, but the back exit is the key traversal route)
|
||
- z=1 (main structure per D-093)
|
||
|
||
**Maintenance corridors (`maintenance-corridors.yaml`)**
|
||
- Source: #313 (done), Sprint 12
|
||
- D-093: Corridor width = 2 visual tiles (maintenance standard). z=0 (Era 1, below main structures).
|
||
- Zone palette: `#4e5054` (dark utilitarian grey), fog tint: `#101214`
|
||
- Key features: restricted storage (shared with Terminal — use `R` tiles), maintenance hatch (connects z=0 to z=1 — note: cross-z connection is a future movement feature; for now just tile the spaces), transition corridor 40m between hub and bar district (~40 visual tiles length at 1m/tile)
|
||
- Design principle (D-093 G-08): the ring operates here; all spaces must read as mundane maintenance unless you know what to look for. No obviously suspicious tile arrangements.
|
||
|
||
**Gate corridor (`gate-corridor.yaml`) — new file**
|
||
- Source: D-093 gate cluster zone spec
|
||
- D-093: Gate cluster **40×32 visual tiles**, z=1 main + z=2 observation gallery
|
||
- Zone palette: `#b8bec4` (neutral cool — institutional grey), fog tint: `#0a1222`
|
||
- Seven zones (author these as continuous tile grid, walls between zones):
|
||
- Aperture chamber: 8×4 (restricted — `R` tiles)
|
||
- Freight staging: 24×8 (private — use `F` tiles, access enforced by NPCs not tile kind)
|
||
- Passenger arrival: 12×8 (semi-public — `F`)
|
||
- Freight customs: 20×10 (semi-private, 3–5 lanes of 2-visual-tile width separated by wall stubs)
|
||
- Pedestrian customs: 12×10 (semi-public, 3 lanes of 1-visual-tile width)
|
||
- Gate concourse: 40×8 (public — wide open, 8vt corridor width per D-093)
|
||
- Observation gallery: z=2, 32×10 (Commission-only — `R` tiles; separate tile_bounds entry with z:2)
|
||
- D-093 cross-z LOS: gallery rail = transparent low wall. Model this as a separate z=2 tile grid with `R` floor tiles (navigable but restricted access). The LOS cross-z behavior is handled by the server; just provide the tile data.
|
||
- Add `gate-corridor` to `content/campaigns/main/systems/van-maanens-star/stations/sova/districts/transit/district.yaml` locations list.
|
||
|
||
**Cross-z note:** Author two sections in the gate-corridor YAML if the format supports multiple `tile_bounds` (one at z=1, one at z=2). If the format only supports a single z-level per Location, author two separate files: `gate-ground.yaml` and `gate-gallery.yaml`. Confirm with Dudley when the format is published.
|
||
|
||
---
|
||
|
||
## Dependency Chain
|
||
|
||
```
|
||
#577 (server: tile format published, day 1-2)
|
||
→ #582 (Terminal) — can start same day format is confirmed
|
||
→ #583 (Last Shift + maintenance + gate) — parallel with #582
|
||
```
|
||
|
||
Both tile authoring tickets can run in parallel once #577 publishes the format. Expect 2–3 days of authoring work per ticket given the complexity of the gate corridor.
|
||
|
||
---
|
||
|
||
## PR Workflow
|
||
|
||
```bash
|
||
tea pr create --repo jpmschweitzer/settled-reach --login schweitz \
|
||
--title "feat(visual): author tile maps for Sova Transit District" \
|
||
--description "body" --base main --head visual
|
||
```
|
||
|
||
---
|
||
|
||
## Sprint Completion (Visual Criteria)
|
||
|
||
1. `the-terminal.yaml` has complete tile data — 44×28 grid, all zones represented, sightlines documented.
|
||
2. `the-last-shift.yaml` has complete tile data — corner booth placement satisfies observation affordance.
|
||
3. `maintenance-corridors.yaml` has complete tile data — z=0, maintenance aesthetic, restricted storage marked.
|
||
4. `gate-corridor.yaml` (or equivalent) has complete tile data for all 7 zones including z=2 observation gallery.
|
||
5. `district.yaml` locations list updated to include gate-corridor.
|
||
6. Server can boot production startup and load tile data from all four locations without error.
|