How eiz3n/flip-prototype works
Flip is a one-button browser game. The player progresses from title and stage selection through timed rooms, earning stars on stage clear and reaching a win screen. The main loop connects input, game-state orchestration, pure simulation, effects, and canvas rendering; levels and saved per-stage progress support the run. The README and source index document major capabilities, but several implementation details were not excerpted, so some subsystem links are omitted rather than inferred.
Main entry points: main.js Browser loop · world.js World simulation · game.js Game state · render.js Frame renderer
Components 22
Game runtime
- Browser loop
game/src/main.js - Input binding
game/src/input.js - Game state
game/src/game.js - Gameplay config
game/src/config.js
Simulation
- World simulation
game/src/sim/world.js - Motion physics
game/src/sim/physics.js - Collision checks
game/src/sim/collision.js - Room model
game/src/sim/room.js - Player entities
game/src/sim/entities.js - Wall polarity wave
game/src/sim/wave.js
Levels and progress
- Room definitions
game/src/levels - Level validation
game/src/levels/validate.js - Stage rating
game/src/stars.js - Saved progress
game/src/progress.js
Presentation
- Visual theme
game/src/theme.js - Game effects
game/src/view/anim/effects.js - Particles
game/src/view/particles.js - Camera
game/src/view/camera.js - Frame renderer
game/src/view/render.js - Game screens
game/src/view/screens.js - Canvas artwork
game/src/view/art
Other components
- Player
Connections 25
- Player → Browser loop: plays
README.md - Browser loop → Input binding: binds controls
game/src/main.js - Browser loop → Game state: creates and updates
game/src/main.js - Browser loop → Room definitions: loads rooms
game/src/main.js - Browser loop → Gameplay config: configures
game/src/main.js - Browser loop → Visual theme: configures visuals
game/src/main.js - Browser loop → Game effects: updates effects
game/src/main.js - Browser loop → Frame renderer: renders frames
game/src/main.js - Browser loop → Camera: updates camera
game/src/main.js - Game state → World simulation: steps simulation
game/src/game.js - Game state → Stage rating: rates stages
game/src/game.js - Game state → Saved progress: loads and saves
game/src/game.js - World simulation → Room model: builds rooms
game/src/sim/world.js - World simulation → Player entities: creates player
game/src/sim/world.js - World simulation → Wall polarity wave: reads polarity
game/src/sim/world.js - World simulation → Motion physics: advances motion
game/src/sim/world.js - World simulation → Collision checks: checks contacts
game/src/sim/world.js - Level validation → Room model: builds posts
game/src/levels/validate.js - Frame renderer → Wall polarity wave: reads wave
game/src/view/render.js - Frame renderer → Canvas artwork: draws room
game/src/view/render.js - Frame renderer → Game screens: draws screens
game/src/view/render.js - Game screens → Canvas artwork: draws screen elements
game/src/view/screens.js - Game screens → Stage rating: shows ratings
game/src/view/screens.js - Game screens → Saved progress: shows bests
game/src/view/screens.js - Game effects → Particles: spawns and updates
game/src/view/anim/effects.js