diff --git a/ROADMAP.md b/ROADMAP.md index 3861481..d2c2474 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -1,30 +1,161 @@ # Roadmap -A list of ideas and features that I might implement in the future. +A comprehensive list of features needed to complete the Pac-Man emulation, organized by priority and implementation complexity. -## Debug Tooling +## Core Game Features + +### Ghost AI & Behavior + +- [x] Core Ghost System Architecture + - [x] Ghost entity types (Blinky, Pinky, Inky, Clyde) + - [x] Ghost state management (Normal, Frightened, Eyes) + - [x] Ghost movement and pathfinding systems +- [ ] Authentic Ghost AI Personalities + - [ ] Blinky (Red): Direct chase behavior + - [ ] Pinky (Pink): Target 4 tiles ahead of Pac-Man + - [ ] Inky (Cyan): Complex behavior based on Blinky's position + - [ ] Clyde (Orange): Chase when far, flee when close +- [x] Mode Switching System + - [ ] Scatter/Chase pattern with proper timing + - [x] Frightened mode transitions + - [ ] Ghost house entry/exit mechanics +- [x] Ghost House Behavior + - [x] Proper spawning sequence + - [ ] Exit timing and patterns + - [ ] House-specific movement rules + +### Fruit Bonus System + +- [x] Fruit Spawning Mechanics + - [x] Spawn at pellet counts 70 and 170 + - [ ] Fruit display in bottom-right corner + - [x] Fruit collection and scoring + - [x] Bonus point display system + +### Level Progression + +- [ ] Multiple Levels + - [ ] Level completion detection + - [ ] Progressive difficulty scaling + - [ ] Ghost speed increases per level + - [ ] Power pellet duration decreases +- [ ] Intermission Screens + - [ ] Between-level cutscenes + - [ ] Proper graphics and timing + +### Audio System Completion + +- [x] Core Audio Infrastructure + - [x] Audio event system + - [x] Sound effect playback + - [x] Audio muting controls +- [ ] Background Music + - [ ] Continuous gameplay music + - [ ] Escalating siren based on remaining pellets + - [ ] Power pellet mode music + - [ ] Intermission music +- [x] Sound Effects + - [x] Pellet eating sounds + - [x] Fruit collection sounds + - [ ] Ghost movement sounds + - [ ] Level completion fanfare + +### Game Mechanics + +- [ ] Bonus Lives + - [ ] Extra life at 10,000 points + - [x] Life counter display +- [ ] High Score System + - [ ] High score tracking + - [x] High score display + - [ ] Score persistence + +## Secondary Features (Medium Priority) + +### Game Polish + +- [x] Core Input System + - [x] Keyboard controls + - [x] Direction buffering for responsive controls + - [x] Touch controls for mobile +- [ ] Pause System + - [ ] Pause/unpause functionality + - [ ] Pause menu with options +- [ ] Input System + - [ ] Input remapping + - [ ] Multiple input methods + +## Advanced Features (Lower Priority) + +### Difficulty Options + +- [ ] Easy/Normal/Hard modes +- [ ] Customizable ghost speeds + +### Data Persistence + +- [ ] High Score Persistence + - [ ] Save high scores to file + - [ ] High score table display +- [ ] Settings Storage + - [ ] Save user preferences + - [ ] Audio/visual settings +- [ ] Statistics Tracking + - [ ] Game statistics + - [ ] Achievement system + +### Debug & Development Tools -- [ ] Game state visualization -- [ ] Game speed controls + pausing -- [ ] Log tracing - [x] Performance details +- [x] Core Debug Infrastructure + - [x] Debug mode toggle + - [x] Comprehensive game event logging + - [x] Performance profiling tools +- [ ] Game State Visualization + - [ ] Ghost AI state display + - [ ] Pathfinding visualization + - [ ] Collision detection display +- [ ] Game Speed Controls + - [ ] Variable game speed for testing + - [ ] Frame-by-frame stepping -## Customization +## Customization & Extensions -- [ ] Themes & Colors - - Color-blind friendly options -- [ ] Perfected ghost AI algorithms -- [ ] Support for >4 ghosts -- [ ] Custom level generation with multi-map tunneling +### Visual Customization -## Online Features +- [x] Core Rendering System + - [x] Sprite-based rendering + - [x] Layered rendering system + - [x] Animation system + - [x] HUD rendering +- [ ] Display Options + - [ ] Fullscreen support + - [x] Window resizing + - [ ] Pause while resizing (SDL2 limitation mitigation) + - [ ] Multiple resolution support -- [ ] Scoreboard system - - Axum server with database and OAuth2 auth - - Authentication via GitHub/Discord/Google - - Profile features: - - [ ] Optional avatars (downscaled to match 8-bit aesthetic) - - Custom names (3-14 chars, filtered for abuse) - - Zero-config client implementation - - Uses default API endpoint - - Manual override available +### Gameplay Extensions + +- [ ] Advanced Ghost AI + - [ ] Support for >4 ghosts + - [ ] Custom ghost behaviors +- [ ] Level Generation + - [ ] Custom level creation + - [ ] Multi-map tunneling + - [ ] Level editor + +## Online Features (Future) + +### Scoreboard System + +- [ ] Backend Infrastructure + - [ ] Axum server with database + - [ ] OAuth2 authentication + - [ ] GitHub/Discord/Google auth +- [ ] Profile Features + - [ ] Optional avatars (8-bit aesthetic) + - [ ] Custom names (3-14 chars, filtered) +- [ ] Client Implementation + - [ ] Zero-config client + - [ ] Default API endpoint + - [ ] Manual override available