Two-round workshop producing D-041 (Knowledge Graph Data Model): - Round 1: independent analyses from Dudley, Gestalt, SI, Tyre, Paula - Round 2: synthesis resolving debates + Gestalt mechanics validation Key decisions: - 4-level confidence hierarchy (Suspects < KnowsOf < KnowsDetails < Direct) - BTreeMap for deterministic iteration (D-010 principle 4) - Per-entity Component model, not centralized Resource - StableEntityId + EntityRegistry for save/load stability (partial Q-019) - Sprint 2 stub: structs + direct observation + basic decay (~6.5 dev-days) Resolved Q-016 (knowledge hierarchy), raised Q-024/Q-025/Q-026. Created tickets #361-#368 under epic #351, reconciled #49 children. Updated sprint 2 briefings, agent briefings, and decision files. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
72 lines
3.9 KiB
Markdown
72 lines
3.9 KiB
Markdown
# 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 (partially resolved by #362) |
|
|
| #358 | Design ObserverSnapshot v2 schema | joint (Tyre) | #112, #113, #25 |
|
|
|
|
## Knowledge Graph Integration Tickets (from Workshop #351, D-041)
|
|
|
|
| # | Title | Priority | Est. | Blocks |
|
|
|---|-------|----------|------|--------|
|
|
| #366 | Observer snapshot knowledge integration | critical | 1d | #356 |
|
|
| #368 | Knowledge vocabulary for v0.1 content | high | 0.5d | #309 |
|
|
|
|
**#366** integrates KnowledgeGraph queries into ObserverSnapshot: entity color from relationship state + remembered entities as ghosts. Assign to Oscar to avoid blocking Dudley on server critical path.
|
|
|
|
**#368** provides the content authoring vocabulary from D-041 Appendix A, unblocking Mellanie on #309.
|
|
|
|
## Integration Tickets
|
|
|
|
| # | Title | Blocked by |
|
|
|---|-------|------------|
|
|
| #356 | Fog data through bridge | #112, #113, #366 |
|
|
| #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), D-041 (Knowledge Graph Data Model)
|
|
- `decisions/perception.md` — D-011 (fog non-negotiable), D-015 (vision cone)
|
|
- `docs/workshops/knowledge-graph-information-boundaries/round2-synthesis.md` — canonical reference for D-041
|
|
|
|
## Sprint Completion Proof
|
|
|
|
**"Walk into a room and see the fog"** — the sprint is done when:
|
|
|
|
1. Player character moves on screen (Sprint 1 baseline, maintained)
|
|
2. Camera follows the player character (no panning)
|
|
3. Tiles render from snapshot data (floor + walls visible)
|
|
4. Entities appear/disappear based on line-of-sight
|
|
5. Fog covers areas outside the vision cone
|
|
6. Walking behind a wall hides what's on the other side
|
|
7. Walking around a corner reveals what's there
|
|
8. Entity color reflects relationship state from knowledge graph (#361, #366)
|
|
9. Remembered (not visible) entities appear as ghosts with faded color (#361, #366)
|
|
|
|
**Knowledge graph proof:** Observe an NPC, walk away, return. The NPC appears as a ghost at last-known position while not in LOS. Color shifts based on relationship state (green = known, amber = flagged).
|
|
|
|
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 has `tick` + `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):
|
|
```bash
|
|
tea pr create --repo jpmschweitzer/settled-reach --login schweitz --title "feat(scope): description" --description "body" --base main --head <branch>
|
|
```
|