From e1a39130606bb44e01e1058a515161dbe7491928 Mon Sep 17 00:00:00 2001 From: Jeroen Schweitzer Date: Wed, 11 Feb 2026 21:35:56 +0100 Subject: [PATCH] docs(decisions): add Q-018 through Q-023 from architecture audit Six new open questions identified by the Tyre/Troblum architecture review: shadowcasting algorithm selection, entity ID stability, multi-entity collision resolution, tick budget overflow policy, pathfinding cache eviction, and debug visualization scope. Co-Authored-By: Claude Opus 4.6 --- decisions/questions.md | 44 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) diff --git a/decisions/questions.md b/decisions/questions.md index 3c2e55a25..ec0ed065b 100644 --- a/decisions/questions.md +++ b/decisions/questions.md @@ -88,6 +88,48 @@ Tracked questions awaiting discussion or resolution. - **Assigned to:** Gestalt, Paula - **Source:** Content Gap Analysis Workshop (Gestalt R2) +### Q-018: Shadowcasting algorithm selection +- **Status:** Open +- **Question:** Which line-of-sight algorithm should be used? Symmetric shadowcasting (Albert Ford) vs recursive shadowcasting. Both are proven but differ in symmetry properties (symmetric: if A sees B, then B sees A) and implementation complexity. Requires benchmarking at 150x150 map scale with 30 entities to validate performance within 100ms tick budget. +- **Context:** D-011 mandates LOS shadowcasting for fog of perception. Architecture review identified this as unspecified (audit section 2.2). Critical for Sprint 2 perception pipeline. +- **Assigned to:** Tyre, Dudley +- **Source:** Architecture Review Audit 2026-02-11 + +### Q-019: Entity ID stability strategy +- **Status:** Open +- **Question:** How are stable `entity_id: u64` values generated from bevy_ecs `Entity` handles? Must IDs be stable across save/load cycles? How does the client map entity IDs to scene nodes for entity lifecycle management (creation, updates, despawning)? +- **Context:** `VisibleEntity.entity_id` is a `u64` in the protocol (server/src/bridge/types.rs). bevy_ecs `Entity` is a generational index that may not be stable. Architecture review flagged this as MEDIUM severity gap (audit section 2.2). +- **Assigned to:** Tyre, Dudley +- **Source:** Architecture Review Audit 2026-02-11 + +### Q-020: Multi-entity collision resolution +- **Status:** Open +- **Question:** When two NPCs attempt to move to the same tile on the same tick, what is the resolution policy? Options: first-write-wins (deterministic with system ordering), both fail (conservative), priority-based (e.g., player > NPC, Active tier > Background tier). +- **Context:** D-012 defines tile collision. WalkabilityMap exists (server/src/simulation/movement.rs) but handles single-entity validation. Architecture review identified multi-entity collision as unspecified. +- **Assigned to:** Gestalt, Dudley +- **Source:** Architecture Review Audit 2026-02-11 + +### Q-021: Tick budget overflow policy +- **Status:** Open +- **Question:** When a simulation tick exceeds the 100ms budget, what happens? Options: (1) slow down real-time and preserve determinism (tick completes fully before next), (2) skip ticks and break determinism, (3) cap work per tick and defer to next tick. Must align with D-010 principle 4 (deterministic simulation). +- **Context:** D-026 defines 100ms tick budget for Active tier at 10 tps. Architecture review consensus recommendation proposes "slow real-time, don't skip ticks." Needs formal decision. +- **Assigned to:** Tyre, Dudley +- **Source:** Architecture Review Audit 2026-02-11 + +### Q-022: NPC pathfinding cache eviction +- **Status:** Open +- **Question:** With 80 Active-tier NPCs each caching ~3 pathfinding routes, the cache holds ~240 paths. What is the eviction policy? LRU? Time-based expiration? Fixed size per NPC? How are paths invalidated when walkability changes (doors lock, areas become restricted)? +- **Context:** Architecture review identified pathfinding as MEDIUM gap (audit section 2.2). Cache management needs specification regardless of algorithm choice. +- **Assigned to:** Tyre, Dudley +- **Source:** Architecture Review Audit 2026-02-11 + +### Q-023: Debug visualization scope +- **Status:** Open +- **Question:** What information should the debug overlay display? Candidates: LOS rays, pathfinding waypoints, vision cones, information boundary tags (who knows what), tick timing breakdown, spatial partition grid cells. Dev-only tool, or accessible for mod development? +- **Context:** Architecture review (Troblum) identifies debug visualization as missing operational infrastructure. Needed for debugging perception system, information boundaries, and performance issues. +- **Assigned to:** Tyre, Stig +- **Source:** Architecture Review Audit 2026-02-11 + --- -*17 questions (3 resolved, 2 partially resolved, 12 open). Last updated: 2026-02-11* +*23 questions (3 resolved, 2 partially resolved, 18 open). Last updated: 2026-02-11*