Systems
Cross-cutting game systems — how major runtime behaviours are implemented.
While the Classes reference describes individual types, this section explains how multiple classes work together to produce runtime behaviour.
Physics & Movement
Gravity, jump, AABB collision, fall death. Implemented in Blupi.
Rendering
Scene graph, terrain, billboards, sky dome, HUD. Urho3D backend.
Audio
93-channel WAV playback via SoundManager.
Input
Keyboard polling via Urho3D Input subsystem.
Save System
640-byte binary save file, 3 gamer slots, cross-platform paths.
Level Loading
VWR binary format and mobile-eggbert .txt format parsers.
Game Loop
Urho3D E_UPDATE event, per-frame dt, phase dispatch.
Phase State Machine
Init → Play → Pause → Win/Lost → Resume transitions.
System Interaction Map
| System | Reads from | Writes to | Owner class |
|---|---|---|---|
| Physics | World (blocks), Input | Blupi position/velocity | Blupi |
| Object system | Level file (ObjectType), Blupi position | Scene nodes, event flags | Decor |
| Rendering | World, Blupi pos, Decor nodes | Urho3D scene graph | GalaxyEggbertGame |
| Audio | Game events (jump, collect, die) | Urho3D SoundSource | SoundManager |
| HUD | lives_, Decor events, phase | Urho3D UI elements | HUD |
| Camera | Blupi node position | Camera node transform | CameraController |
| Save | GameData (memory) | Disk / IDBFS | GameData |
| Phase | Decor events, Input, timer | GamePhase, overlays | PhaseManager, GalaxyEggbertGame |