mirror of
https://github.com/Xevion/Pac-Man.git
synced 2026-01-31 00:24:59 -06:00
5.7 KiB
5.7 KiB
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
- Core Ghost System Architecture
- Ghost entity types (Blinky, Pinky, Inky, Clyde)
- Ghost state management (Normal, Frightened, Eyes)
- 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
- Frightened mode transitions
- Ghost house entry/exit mechanics
- Ghost House Behavior
- Basic spawning in ghost house
- Proper exit timing sequence
- Dot counter for ghost release
- Global dot counter reset
- House-specific pathfinding
Fruit Bonus System
- Fruit Spawning Mechanics
- Spawn at pellet counts 5 and 170 (TODO: verify if should be 70 and 170 for arcade accuracy)
- Fruit display in bottom-right corner
- Fruit collection and scoring
- 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
- Core Audio Infrastructure
- Audio event system
- Sound effect playback
- Audio muting controls
- Background Music
- Intro jingle
- Continuous gameplay music
- Escalating siren based on remaining pellets
- Power pellet mode music
- Intermission music
- Sound Effects
- Pellet eating sounds
- Fruit collection sounds
- Ghost eaten sounds
- Pac-Man Death
- Ghost movement sounds
- Level completion fanfare
Game Mechanics
- Bonus Lives
- Extra life at 10,000 points
- Life counter display
- High Score System
- High score tracking
- High score display
- Score persistence
Secondary Features (Medium Priority)
Game Polish
- Core Input System
- Keyboard controls (WASD + Arrow keys)
- Direction buffering for responsive controls
- Touch controls for mobile
- Mouse controls (mouse-as-touch for desktop testing)
- Pause System
- Pause/unpause functionality (Escape key)
- 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
- Core Web Support
- WASM compilation and deployment
- Emscripten platform integration
- Browser autoplay policy compliance (click-to-start)
- WASM loading states and smooth transitions
- Mobile Web Support
- Touch controls for mobile browsers
- Responsive touch input handling
- 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
- Performance details
- Core Debug Infrastructure
- Debug mode toggle (Space key)
- Comprehensive game event logging
- Per-system performance profiling with timing breakdown
- FPS and frame timing display
- Single-tick stepping (T key for frame-by-frame)
- Maze Visualization
- Navigation graph rendering (red lines)
- Node visualization (blue dots)
- Node hover inspection with ID display
- 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
- Core Rendering System
- Sprite-based rendering
- Layered rendering system
- Animation system
- HUD rendering
- Display Options
- Fullscreen support (Desktop only - F key toggle)
- Fullscreen support (Web - F key + pinch-to-zoom gestures)
- 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
- Backend Infrastructure
- Axum server with PostgreSQL database
- Optional OAuth2 authentication (GitHub/Discord)
- Session management with cookies
- 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