Files
settled-reach/docs/sprints/sprint-23/visual.md
T
jpmschweitzer 23d9ff0a58 Merge remote-tracking branch 'origin/main' into planning
# 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
2026-03-14 00:24:53 +01:00

8.1 KiB
Raw Blame History

title, description, type, status, sprint, team
title description type status sprint team
Sprint 23 — Visual Briefing Author tile maps for The Terminal, The Last Shift, maintenance and gate corridors sprint archived 23 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 12): 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:

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, 35 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 23 days of authoring work per ticket given the complexity of the gate corridor.


PR Workflow

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.