From 9be3161a2494ebb619590542dd765c2035e1944b Mon Sep 17 00:00:00 2001 From: John McCardle Date: Wed, 9 Jul 2025 22:19:38 -0400 Subject: [PATCH] docs: update ROADMAP with FOV, A* pathfinding, and GUI text widget completions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Mark TCOD Integration Sprint as complete - Document FOV system with perspective rendering implementation - Update UIEntity pathfinding status to complete with A* and caching - Add comprehensive achievement entry for July 10 work - Reflect current engine capabilities accurately The engine now has all core roguelike mechanics: - Field of View with per-entity visibility - Pathfinding (both Dijkstra and A*) - Text input for in-game consoles - Performance optimizations throughout πŸ€– Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- ROADMAP.md | 36 +++++++++++++++++++++++++++++------- 1 file changed, 29 insertions(+), 7 deletions(-) diff --git a/ROADMAP.md b/ROADMAP.md index 029a633..4d00996 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -22,19 +22,19 @@ - Mass entity choreography (100+ entities) - Performance stress test with 1000+ entities -#### 2. TCOD Integration Sprint +#### 2. TCOD Integration Sprint βœ… COMPLETE! - [x] **UIGrid TCOD Integration** (8 hours) βœ… COMPLETED! - βœ… Add TCODMap* to UIGrid constructor with proper lifecycle - βœ… Implement complete Dijkstra pathfinding system - βœ… Create mcrfpy.libtcod submodule with Python bindings - βœ… Fix critical PyArg bug preventing Color object assignments - - [ ] Implement mcrfpy.libtcod.compute_fov() (still needed for tutorial) - - [ ] Add batch operations for NumPy-style access - - [ ] Create CellView for ergonomic .at((x,y)) access -- [~] **UIEntity Pathfinding** (4 hours) - 50% COMPLETE + - βœ… Implement FOV with perspective rendering + - [ ] Add batch operations for NumPy-style access (deferred) + - [ ] Create CellView for ergonomic .at((x,y)) access (deferred) +- [x] **UIEntity Pathfinding** (4 hours) βœ… COMPLETED! - βœ… Implement Dijkstra maps for multiple targets in UIGrid - - [ ] Add path_to(target) method using A* to UIEntity - - [ ] Cache paths in UIEntity for performance + - βœ… Add path_to(target) method using A* to UIEntity + - βœ… Cache paths in UIEntity for performance #### 3. Performance Critical Path - [ ] **Implement SpatialHash** for 10,000+ entities (2 hours) @@ -124,6 +124,28 @@ entity.can_see(other_entity) # FOV check ## Recent Achievements +### 2025-07-10: Complete FOV, A* Pathfinding & GUI Text Widgets! πŸ‘οΈπŸ—ΊοΈβŒ¨οΈ +**Engine Feature Sprint - Major Capabilities Added** +- βœ… Complete FOV (Field of View) system with perspective rendering + - UIGrid.perspective property controls which entity's view to render + - Three-layer overlay system: unexplored (black), explored (dark), visible (normal) + - Per-entity visibility state tracking with UIGridPointState + - Perfect knowledge updates - only explored areas persist +- βœ… A* Pathfinding implementation + - Entity.path_to(x, y) method for direct pathfinding + - UIGrid compute_astar() and get_astar_path() methods + - Path caching in entities for performance + - Complete test suite comparing A* vs Dijkstra performance +- βœ… GUI Text Input Widget System + - Full-featured TextInputWidget class with cursor, selection, scrolling + - Improved widget with proper text rendering and multi-line support + - Example showcase demonstrating multiple input fields + - Foundation for in-game consoles, chat systems, and text entry +- βœ… Sizzle Reel Demos + - path_vision_sizzle_reel.py combines pathfinding with FOV + - Interactive visibility demos showing real-time FOV updates + - Performance demonstrations with multiple entities + ### 2025-07-09: Dijkstra Pathfinding & Critical Bug Fix! πŸ—ΊοΈ **TCOD Integration Sprint - Major Progress** - βœ… Complete Dijkstra pathfinding implementation in UIGrid