Joint tasks with ticket IDs (#356-#360), dependency chains, and sprint completion proof criteria for client team reference. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2.8 KiB
2.8 KiB
Sprint 2: See — Joint Tasks
Goal: Fog of perception working through the bridge — server computes LOS visibility, client renders fog.
Branches: server + client (merge to main for integration)
Design Tasks
| # | Title | Owner | Blocks |
|---|---|---|---|
| #359 | Resolve Q-018: shadowcasting algorithm selection | server (Tyre, Dudley) | #110 |
| #360 | Resolve Q-019: entity ID stability | joint (Tyre, Dudley) | #130 |
| #358 | Design ObserverSnapshot v2 schema | joint (Tyre) | #112, #113, #25 |
Integration Tickets
| # | Title | Blocked by |
|---|---|---|
| #356 | Fog data through bridge | #112, #113 |
| #357 | Sprint 2 proof: fog of perception | #356, #116, #25 |
Use db/connectors/ticket show <id> for full details.
Key Decisions
decisions/architecture.md— D-020 (IPC protocol, ObserverSnapshot), D-010 (information boundaries)decisions/perception.md— D-011 (fog non-negotiable), D-015 (vision cone)
Sprint Completion Proof
"Walk into a room and see the fog" — the sprint is done when:
- Player character moves on screen (Sprint 1 baseline, maintained)
- Camera follows the player character (no panning)
- Tiles render from snapshot data (floor + walls visible)
- Entities appear/disappear based on line-of-sight
- Fog covers areas outside the vision cone
- Walking behind a wall hides what's on the other side
- Walking around a corner reveals what's there
This is the first moment the game feels like an immersive sim — you can't see behind walls, and that constraint IS the game.
Notes
- #81 (done): End-to-end connection test completed in Sprint 1. IPC bridge is operational.
- #358 (ObserverSnapshot v2): The current
ObserverSnapshot(server/src/bridge/types.rs) only hastick+entities: Vec<VisibleEntity>. Sprint 2 needs: tile visibility data, facing direction, time-of-day. Design the expanded schema before both teams start, so the contract is clear. - #356 (Fog data through bridge): Server #112 produces visibility-filtered snapshots. Client #113 consumes them. The bridge already handles MessagePack serialization — new fields just need to be added to both sides.
- Test plan per D-030 Phase 1: Sprint 2 aligns with D-030's "Phase 1 (sprint 1-2): test infra + collision/pathfinding/time." Collision tests exist (
movement.rs). Shadowcasting (#110) needs unit tests for known LOS scenarios (corridor, corner peek, wall block). Vision cone (#111) needs sector boundary tests.
PR Workflow
When ready to submit, create a PR with tea CLI. All flags are required to avoid TTY prompts (see CLAUDE.md "Gitea access" section):
tea pr create --repo jpmschweitzer/settled-reach --login schweitz --title "feat(scope): description" --description "body" --base main --head <branch>