Files
Pac-Man/ROADMAP.md

196 lines
5.7 KiB
Markdown

# Roadmap
A comprehensive list of features needed to complete the Pac-Man emulation, organized by priority and implementation complexity.
## 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
- [ ] Mode Switching System
- [ ] Scatter/Chase pattern with proper timing
- [x] Frightened mode transitions
- [ ] Ghost house entry/exit mechanics
- [ ] Ghost House Behavior
- [x] Basic spawning in ghost house
- [ ] Proper exit timing sequence
- [ ] Dot counter for ghost release
- [ ] Global dot counter reset
- [ ] House-specific pathfinding
### Fruit Bonus System
- [x] Fruit Spawning Mechanics
- [x] Spawn at pellet counts 5 and 170 (TODO: verify if should be 70 and 170 for arcade accuracy)
- [x] 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
- [x] Intro jingle
- [ ] 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
- [x] Ghost eaten sounds
- [x] Pac-Man Death
- [ ] 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 (WASD + Arrow keys)
- [x] Direction buffering for responsive controls
- [x] Touch controls for mobile
- [x] Mouse controls (mouse-as-touch for desktop testing)
- [x] Pause System
- [x] Pause/unpause functionality (Escape key)
- [x] Visual pause overlay with semi-transparent background
- [ ] Interactive pause menu with options
- [ ] Advanced Input System
- [ ] Input remapping/key rebinding
- [ ] Customizable control schemes
## Web Platform Features
### Browser Compatibility
- [x] Core Web Support
- [x] WASM compilation and deployment
- [x] Emscripten platform integration
- [x] Browser autoplay policy compliance (click-to-start)
- [x] WASM loading states and smooth transitions
- [x] Mobile Web Support
- [x] Touch controls for mobile browsers
- [x] Responsive touch input handling
- [x] Mobile-optimized UI
## 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
- [x] Performance details
- [x] Core Debug Infrastructure
- [x] Debug mode toggle (Space key)
- [x] Comprehensive game event logging
- [x] Per-system performance profiling with timing breakdown
- [x] FPS and frame timing display
- [x] Single-tick stepping (T key for frame-by-frame)
- [x] Maze Visualization
- [x] Navigation graph rendering (red lines)
- [x] Node visualization (blue dots)
- [x] Node hover inspection with ID display
- [x] Collision hitbox display (green boxes)
- [ ] Game State Visualization
- [ ] Ghost AI state display (target tiles, modes)
- [ ] Ghost pathfinding visualization (current path)
- [ ] Ghost personality indicators
- [ ] Game Speed Controls
- [ ] Variable game speed for testing
## Customization & Extensions
### Visual Customization
- [x] Core Rendering System
- [x] Sprite-based rendering
- [x] Layered rendering system
- [x] Animation system
- [x] HUD rendering
- [ ] Display Options
- [x] Fullscreen support (Desktop only - F key toggle)
- [ ] Fullscreen support (Web - F key + pinch-to-zoom gestures)
- [x] Window resizing with aspect ratio preservation
- [ ] Pause while resizing (SDL2 limitation mitigation)
- [ ] Multiple resolution support
### 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
- [x] Backend Infrastructure
- [x] Axum server with PostgreSQL database
- [x] Optional OAuth2 authentication (GitHub/Discord)
- [x] Session management with cookies
- [x] Health check and API endpoints
- [ ] Profile Features
- [ ] Optional avatars (8-bit aesthetic)
- [ ] Custom names (3-14 chars, filtered)
- [ ] User profile pages
- [ ] Leaderboard Features
- [ ] Global high score board
- [ ] Personal best tracking
- [ ] Score submission from game client
- [ ] Client Implementation
- [ ] Zero-config client with default endpoint
- [ ] Score upload integration
- [ ] Manual API endpoint override