docs: Update README to reflect actual implementation status

- Clarify InputModule: mouse/keyboard only (gamepad Phase 2 TODO)
- Mark ThreadedModuleSystem and MultithreadedModuleSystem as TODO
- Specify BgfxRenderer has debug text, not full text rendering
- Replace 'Implemented & Validated' with detailed 'Production-Ready Components'
- Add concrete Roadmap section for future features
- Update Progressive Evolution to show current vs future vision

Improves accuracy: README now reflects what's actually implemented vs planned.
This commit is contained in:
StillHammer 2026-01-15 09:16:34 +07:00
parent bb6b3118ab
commit 2e4b0fed9b

View File

@ -18,38 +18,51 @@ GroveEngine is a lightweight, modular engine architecture designed for blazing-f
``` ```
grove::IEngine (Orchestration) grove::IEngine (Orchestration)
├── grove::IModuleSystem (Execution strategy) ├── grove::IModuleSystem (Execution strategy)
│ ├── SequentialModuleSystem (Debug/test - 1 module at a time) │ ├── SequentialModuleSystem (✅ Implemented - 1 module at a time)
│ ├── ThreadedModuleSystem (Each module in thread - TODO) │ ├── ThreadedModuleSystem (🚧 TODO - Each module in thread)
│ └── MultithreadedModuleSystem (Thread pool - TODO) │ └── MultithreadedModuleSystem (🚧 TODO - Thread pool)
├── grove::IModule (Business logic - 200-300 lines) ├── grove::IModule (Business logic - 200-300 lines)
│ └── Your modules (.so/.dll hot-reloadable) │ └── Your modules (.so/.dll hot-reloadable)
└── grove::IIO (Communication) └── grove::IIO (Communication)
├── IntraIO (Same process - validated) ├── IntraIO (✅ Implemented - Same process pub/sub)
├── LocalIO (Same machine - TODO) ├── LocalIO (🚧 TODO - Same machine IPC)
└── NetworkIO (Distributed - TODO) └── NetworkIO (🚧 TODO - Distributed messaging)
``` ```
## Current Status ## Current Status
### ✅ Implemented & Validated ### ✅ Production-Ready Components
- **Core Interfaces** (13): IEngine, IModule, IModuleSystem, IIO, ICoordinationModule, ITaskScheduler, IDataTree, IDataNode, IUI, ISerializable - **Core Engine**:
- **Debug Implementations** (Phase 2 - Pre-IDataTree):
- `DebugEngine` - Comprehensive logging and health monitoring - `DebugEngine` - Comprehensive logging and health monitoring
- `SequentialModuleSystem` - Ultra-lightweight execution - `SequentialModuleSystem` - Single-threaded module execution
- `IntraIO` + `IntraIOManager` - Sub-millisecond pub/sub with pattern matching - `IntraIO` + `IntraIOManager` - Sub-millisecond pub/sub with pattern matching
- `ModuleFactory` - Dynamic .so/.dll loading system - `ModuleLoader` - Hot-reload system (0.4ms average, 0.055ms best)
- `EngineFactory`, `ModuleSystemFactory`, `IOFactory` - Factory patterns
- **Hot-Reload System** - 0.4ms average, 0.055ms best performance, perfect state preservation
- **UI System** - ImGuiUI implementation with hybrid sizing
### ⚠️ Compatibility Note - **Rendering Stack** (BgfxRenderer):
Current implementations use **pre-IDataTree API** (`json` config). The architecture evolved to use `IDataNode` for configuration. Implementations need adaptation or recreation for full IDataTree compatibility. - Sprite rendering with automatic batching
- Tilemap rendering with instancing
- Particle effects system
- Debug text overlay (8x8 bitmap font)
- RHI abstraction over bgfx
### 🚧 TODO - **UI System** (UIModule):
- Adapt implementations to use IDataTree/IDataNode instead of json - 10 widget types (button, panel, label, checkbox, slider, text input, progress bar, image, scroll panel, tooltip)
- Implement ThreadedModuleSystem and MultithreadedModuleSystem - JSON layout loading
- Implement LocalIO and NetworkIO - Retained mode rendering (85%+ IIO reduction)
- Create concrete IDataTree implementations (JSONDataTree, etc.) - Thread-safe input handling
- **Input System** (InputModule):
- Mouse (movement, buttons, wheel)
- Keyboard (keys, text input)
- SDL2 backend
- **Test Suite**: 20+ integration tests + visual demos
### 🚧 Roadmap
- **Module Systems**: ThreadedModuleSystem, MultithreadedModuleSystem
- **IO Systems**: LocalIO (IPC), NetworkIO (distributed)
- **Input**: Gamepad support (Phase 2)
- **Renderer**: Advanced text rendering, post-processing effects
## Quick Start ## Quick Start
@ -144,9 +157,9 @@ public:
### Module Documentation ### Module Documentation
- **[BgfxRenderer](modules/BgfxRenderer/README.md)** - 2D rendering (sprites, text, tilemap, particles) - **[BgfxRenderer](modules/BgfxRenderer/README.md)** - 2D rendering (sprites, tilemap, particles, debug text)
- **[UIModule](modules/UIModule/README.md)** - User interface (10 widget types, layout, scrolling) - **[UIModule](modules/UIModule/README.md)** - User interface (10 widget types, layout, scrolling)
- **[InputModule](modules/InputModule/README.md)** - Input handling (mouse, keyboard, gamepad) - **[InputModule](modules/InputModule/README.md)** - Input handling (mouse, keyboard via SDL)
### Architecture & Internals ### Architecture & Internals
@ -163,11 +176,12 @@ public:
### Progressive Evolution ### Progressive Evolution
```cpp ```cpp
// Start simple (MVP) // Current (Production-Ready)
DebugEngine + SequentialModuleSystem + IntraIO DebugEngine + SequentialModuleSystem + IntraIO
// Scale transparently (same module code) // Future Vision (Roadmap)
HighPerfEngine + MultithreadedModuleSystem + NetworkIO HighPerfEngine + MultithreadedModuleSystem + NetworkIO
// Same module code - just swap the infrastructure
``` ```
### Complexity Through Simplicity ### Complexity Through Simplicity