How bradygaster/brickbreak works
BRICKBREAK is a browser Breakout game. A player uses keyboard controls, or enables demo mode; the browser entry point advances the deterministic game, renders each frame, and turns game events into optional sound. Separate branches provide keyboard input, saved sound/theme preferences, and accessible theme and motion behavior. The README documents the play, demo, sound, and light/dark capabilities. Some setup and rendering details are unsampled, so only documented or excerpt-supported connections are shown.
Main entry points: main.js Game Loop · step.js Game Step · constants.js Game Tuning · index.html HTML Page
Components 17
Game Simulation
- Game API
src/game/index.js - Game Step
src/game/step.js - Game State
src/game/state.js - Collision Physics
src/game/physics.js - Seeded RNG
src/game/rng.js - Game Tuning
src/game/constants.js - Demo Autopilot
src/game/autopilot.js
Rendering and Themes
- Canvas Renderer
src/render/renderer.js - Theme Roles
src/render/themes.js - Color Palette
src/render/palette.js
Input, Preferences, Audio
- Keyboard Input
src/input.js - Saved Preferences
src/prefs.js - Sound Cues
src/audio/cues.js - Web Audio Engine
src/audio/engine.js
Other components
- Player
Connections 20
- Player → HTML Page: opens
README.md - HTML Page → Game Loop: loads game
- Game Loop → Game API: calls step, demo
src/main.js - Game Loop → Keyboard Input: reads controls
src/main.js - Game Loop → Canvas Renderer: renders frames
src/main.js - Game Loop → Saved Preferences: resolves preferences
src/main.js - Game Loop → Sound Cues: maps events
src/main.js - Game Loop → Web Audio Engine: plays cues
src/main.js - Game Loop → Demo Autopilot: gets demo input
src/main.js - Game Loop → Game Step: advances state
src/main.js - Game Step → Game State: builds game state
src/game/step.js - Game Step → Collision Physics: calculates collisions
src/game/step.js - Game Step → Seeded RNG: gets random values
src/game/step.js - Game Step → Game Tuning: uses tuning
src/game/step.js - Game State → Seeded RNG: normalizes seed
src/game/state.js - Collision Physics → Game Tuning: uses dimensions
src/game/physics.js - Demo Autopilot → Game Tuning: uses deadzone
src/game/autopilot.js - Canvas Renderer → Theme Roles: selects theme
src/render/renderer.js - Theme Roles → Color Palette: uses colors
src/render/themes.js - Web Audio Engine → Sound Cues: validates notes
src/audio/engine.js