# Dark Pac-Man > A horror-styled browser maze game. Navigate through procedurally generated darkness, evade ghosts, and escape through 10 mazes to achieve the highest score. ## Overview - **URL**: https://www.afire.work/game/darkpacman/ - **Genre**: Arcade / Horror / Stealth - **Platform**: Web browser — desktop and mobile - **Input**: Arrow keys, WASD (desktop) · Swipe (mobile) - **Publisher**: afire.work ## Gameplay The player navigates a dark maze with limited vision. Only the corridor directly ahead and a small peripheral area are illuminated. Previously explored tiles remain as dim shadow fog but hide any enemies within them. There are 10 procedurally generated mazes per run. Clearing all 10 displays the final score. Being caught by a ghost resets the score to zero. ## Core Mechanics - **Vision system**: The player sees to the end of the current corridor plus a short peripheral radius. Direction matters — turning reveals new corridors. - **Hiding (HIDE)**: Standing still for 2 seconds begins a stealth fade. After 7 seconds the player becomes fully hidden and untouchable by ghosts. - **Ghost proximity pulse**: Ghosts outside the vision cone emit a faint sonar-ring indicator. Pulse frequency increases as the ghost approaches. - **Energizer**: Collecting an energizer temporarily frightens ghosts — they turn blue and can be eaten for bonus points. - **Battery / Lamp**: Collecting a battery temporarily expands the player's vision range. ## Scoring - Pellet: 10 points - Energizer: 50 points - Eating a frightened ghost: 200 points - Score carries over between mazes; a death resets it to zero. ## Ghost Behaviour Four ghosts patrol the maze. Each uses line-of-sight detection — a ghost must be facing the player with a clear corridor to initiate a chase. When a player's stealth level exceeds a threshold the ghost can no longer detect them. Ghosts prefer longer corridors when patrolling. ## Technical - Built with TypeScript, HTML5 Canvas, and Vite. No external runtime dependencies. - Fully client-side; no server, no accounts, no data collection.