mirror of
https://github.com/Xevion/Pac-Man.git
synced 2026-01-31 06:25:09 -06:00
196 lines
5.7 KiB
Markdown
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
|