Files
Pac-Man/ROADMAP.md
2025-09-11 09:41:21 -05:00

4.2 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
    • Proper spawning sequence
    • Exit timing and patterns
    • House-specific movement rules

Fruit Bonus System

  • Fruit Spawning Mechanics
    • Spawn at pellet counts 70 and 170
    • 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
    • Direction buffering for responsive controls
    • 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

  • Performance details
  • Core Debug Infrastructure
    • Debug mode toggle
    • Comprehensive game event logging
    • 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 & Extensions

Visual Customization

  • Core Rendering System
    • Sprite-based rendering
    • Layered rendering system
    • Animation system
    • HUD rendering
  • Display Options
    • Fullscreen support
    • Window resizing
      • 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 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