How vlwu/parkour-hero works
Parkour Hero is a browser-based 2D platform game, launched from its browser entry point: assets and saved settings/state initialize an Engine, which loads levels, runs gameplay systems, and presents results through the renderer and UI. Players progress through movement, hazards, collectibles and completion, with unlocks and settings persisted. A separate level-editor workflow builds and previews custom levels. README capabilities guide the subsystem coverage; only sampled excerpts support specific call edges, so other relationships are omitted rather than inferred.
Main entry points: engine.js Engine · gameplay-system.js Gameplay systems · main.js Game entry · UIManager.js Editor interface
Components 29
Game runtime
- Game entry
main.js - Engine
src/core/engine.js - Entity manager
src/core/entity-manager.js - Gameplay systems
src/systems/gameplay-system.js - Movement and states
src/systems/movement-system.js - Collision and combat
src/systems/collision-system.js - Enemy behavior
src/ai-behaviors/ai-behavior-factory.js - Traps and hazards
src/traps/index.js - Rendering
src/systems/renderer.js - Assets and sound
src/managers/asset-manager.js - Input system
src/systems/input-system.js - Game flow
src/systems/game-flow-system.js
Levels and actors
- Level manager
src/managers/level-manager.js - Level data
src/entities/level.js - Entity factories
src/entities/entity-factory.js
Progress and interface
- Game state
src/managers/game-state.js - Save and settings
src/managers/storage-manager.js - Game interface
src/ui/ui-main.js - HUD
src/ui/hud.js
Level editor
- Editor entry
src/editor/editor.main.js - Editor interface
src/editor/ui/UIManager.js - Editing tools
src/editor/tools/ToolManager.js - Object manager
src/editor/core/ObjectManager.js - Tile grid
src/editor/grid/Grid.js - Edit history
src/editor/core/HistoryManager.js - Level import export
src/editor/io/LevelExporter.js - Level preview
src/editor/core/PreviewManager.js
Other components
- Player
- Browser storage
Connections 31
- Player → Game entry: opens game
- Game entry → Save and settings: loads state
- Save and settings → Browser storage: reads writes
- Game entry → Engine: starts
- Game entry → Assets and sound: loads assets
- Engine → Level manager: requests levels
- Level manager → Level data: loads data
- Engine → Level data: constructs level
- Engine → Entity factories: creates player
- Entity factories → Entity manager: adds components
- Engine → Entity manager: manages entities
- Engine → Input system: updates input
- Engine → Gameplay systems: runs systems
- Gameplay systems → Movement and states: updates motion
- Gameplay systems → Collision and combat: checks collisions
- Gameplay systems → Enemy behavior: updates enemies
- Gameplay systems → Traps and hazards: updates hazards
- Engine → Rendering: renders frame
- Rendering → Assets and sound: uses assets
- Engine → Game state: updates progress
- Engine → HUD: updates HUD
- Game interface → Engine: game controls
- Game interface → Save and settings: saves preferences
- Editor entry → Editor interface: initializes editor
- Editor interface → Editing tools: routes actions
- Editing tools → Tile grid: edits tiles
- Editing tools → Object manager: edits objects
- Editor interface → Edit history: records edits
- Editor interface → Level import export: imports exports
- Level preview → Engine: runs preview
- Level preview → Level import export: builds level data