Files
settled-reach/docs/sprints/sprint-17/client.md
T
jpmschweitzerandClaude Opus 4.6 abff69a632 chore(meta): Sprint 17 planning — briefings, workshop brief, close Q-025
- Write sprint 17 briefings for server, client, copy, visual, joint
- Add Knowledge Flow & NPC Boundaries workshop brief
- Close Q-025 (KG cap/eviction not needed at current scale)
- Assign 9 tickets to Sprint 17: Tell

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 23:25:08 +01:00

2.9 KiB

Sprint 17: Tell — Client Tasks

Goal: NPCs volunteer information unprompted and express personality through delivery; the player can read time and orientation at a glance from the insert HUD; POI infrastructure lands on the server.

Branch: client Agents: Stig (UI), Tyre (arch), Hoshe (QA)

Carry-over from Sprint 16

None. Sprint 16 client tickets (#540, #543) will close before Sprint 17.

New Tickets

# Title Blocked by
#263 Time display on insert HUD
#537 UX: E-Talk overlay improvement

Use db/connectors/ticket show <id> for full details.

Key Decisions

  • decisions/perception.md — D-019 (camera angle), D-033 (entity color)
  • decisions/architecture.md — D-020 (Godot client + Rust server via IPC)
  • decisions/scope.md — D-051 (diegetic insert/minimap)

Notes

#263 — Time display on insert HUD

What exists: The client has client/scripts/ui/debug_overlay.gd for debug display. The insert HUD concept is defined in D-051 but no insert UI code exists yet. client/scripts/rendering/world_renderer.gd handles the main rendering pipeline. The server sends SimulationTime data in ObserverSnapshot (see server/src/bridge/types.rs).

What to deliver: A diegetic time display on the player's insert/HUD. The player needs to know the current game time for routine-based investigation (NPC schedules, shift changes). Should show time in the station's local format, not abstract tick counts.

Design dependency: #314 (visual, this sprint) produces the insert/HUD wireframe. Coordinate with Araminta's output for placement and visual style. Can start with a placeholder layout and refine after the wireframe lands.

Integration: Reads SimulationTime from the snapshot. No new server work required — time data is already in the protocol.

#537 — UX: E-Talk overlay improvement

What exists: The E-Talk interaction overlay appears when adjacent to an NPC. Playtester feedback says it doesn't communicate enough value — the overlay appears but doesn't convey what talking will accomplish or what access tier is available.

What to deliver: Improve the overlay to show: NPC name (if known from KG), relationship state color (from RelationshipState in snapshot), and a hint of available dialogue tier (surface/real/secret based on trust level). The goal is to make the player feel informed before committing to a conversation.

Integration: All data needed is already in ObserverSnapshot — the VisibleEntity includes relationship state and known_attributes. No server changes needed.

Dependency Chain

#263 (Time display) → standalone
#537 (E-Talk UX) → standalone
Both can run in parallel.

PR Workflow

When ready to submit, create a PR with tea CLI:

tea pr create --repo jpmschweitzer/settled-reach --login schweitz --title "feat(client): sprint 17 description" --description "body" --base main --head client