How rajexl-sketch/pips-peril works
Pip’s Peril is a browser-based, procedural 8-bit platform game. A player starts from the title flow, selects or continues a run, and plays through levels assembled from chunk recipes; gameplay coordinates Pip, enemies, hazards, scoring, and transitions to pause, game-over, or victory. Separate scenes provide settings and HUD, while generated graphics and synthesized audio support the experience. The graph reflects documented capabilities and sampled call sites; some scene wiring and unsampled implementations are represented only where README or tree evidence supports the subsystem, not as guessed calls.
Main entry points: main.ts Phaser entry · GameScene.ts Gameplay scene · Menu.ts Menu widget · Chiptune.ts Chiptune synth
Components 29
Game flow
- Phaser entry
src/main.ts - Boot scene
src/scenes/BootScene.ts - Title scene
src/scenes/TitleScene.ts - Level intro
src/scenes/LevelIntroScene.ts - Pause scene
src/scenes/PauseScene.ts - Settings scene
src/scenes/SettingsScene.ts - Game over
src/scenes/GameOverScene.ts - Victory scene
src/scenes/VictoryScene.ts - Menu widget
src/scenes/ui/Menu.ts
Gameplay
- Gameplay scene
src/scenes/GameScene.ts - HUD scene
src/scenes/UIScene.ts - Run state
src/systems/GameState.ts - Pip controller
src/entities/Player.ts - Enemies and boss
src/entities/enemies
Procedural content
- Level recipes
src/levels/levels.ts - Terrain chunks
src/levels/chunks.ts - Level parser
src/levels/LevelBuilder.ts - Texture factory
src/gfx/TextureFactory.ts - Grid renderer
src/gfx/render.ts - Pixel art data
src/gfx/art
Player services
- Input manager
src/systems/InputManager.ts - Save system
src/systems/SaveSystem.ts - Chiptune synth
src/audio/Chiptune.ts - Music notation
src/audio/notes.ts - Music tracks
src/audio/tracks.ts - Sound effects
src/audio/Sfx.ts
Other components
- Player
- Browser storage
- Web Audio
Connections 32
- Player → Phaser entry: starts game
- Phaser entry → Boot scene: registers scenes
- Phaser entry → Title scene: registers scenes
- Phaser entry → Level intro: registers scenes
- Phaser entry → Gameplay scene: registers scenes
- Phaser entry → HUD scene: registers scenes
- Phaser entry → Pause scene: registers scenes
- Phaser entry → Settings scene: registers scenes
- Phaser entry → Game over: registers scenes
- Phaser entry → Victory scene: registers scenes
- Title scene → Menu widget: uses menu
- Pause scene → Menu widget: uses menu
- Settings scene → Menu widget: uses menu
- Game over → Menu widget: uses menu
- Gameplay scene → Level recipes: gets recipe
- Gameplay scene → Level parser: parses level
- Level parser → Terrain chunks: assembles rows
- Gameplay scene → Pip controller: creates player
- Gameplay scene → Enemies and boss: creates enemies
- Gameplay scene → Input manager: polls input
- Gameplay scene → Run state: updates run state
- Pip controller → Sound effects: plays effects
- Gameplay scene → Sound effects: plays effects
- Boot scene → Texture factory: builds assets
- Texture factory → Grid renderer: renders grids
- Texture factory → Pixel art data: reads art
- Input manager → Save system: reads bindings
- Save system → Browser storage: persists settings
- Chiptune synth → Music notation: parses notation
- Chiptune synth → Music tracks: plays compositions
- Chiptune synth → Web Audio: synthesizes audio
- Sound effects → Web Audio: synthesizes effects