Systems
Cross-cutting behaviors — what's implemented today, and what's planned.
Movement
Gravity, jump, step-up collision. Implemented in GEBlupiController — invisible only.
Rendering
Terrain only: cube-per-block, animated tiles. No sprites yet.
Audio
Not implemented. Planned: 93-channel WAV parity with mobile-eggbert.
Input
Arrow keys + Space, polled via CNA Keyboard each frame.
Save System
Not implemented. Save-format reuse is an open decision, not a default.
Level Loading
.vwr binary format (default) and mobile-eggbert .txt parser (secondary).
Game Loop
CNA's Game base class drives LoadContent/Update/Draw.
Gameplay
No hazards, enemies, pickups, or exit condition yet — planned per plan.md's E3D-MIG-100s.
System Interaction Map (GalaxyEggbertCNA today)
| System | Reads from | Writes to | Owner class |
|---|---|---|---|
| Movement | World (blocks), Keyboard | Blupi position/velocity | GEBlupiController |
| World loading | .vwr file, mobile-eggbert .txt (secondary) | Worlds::World | GEWorldRuntime |
| Tile animation | Elapsed time | animPhase_ | GEWorldRuntime |
| Terrain rendering | World blocks, GETileAtlas, anim phase | CNA VertexBuffer/IndexBuffer | GETerrainRenderer |
| Camera | Blupi position | View/Projection matrices | Easy3D::Camera3D |
Audio, HUD, save, and gameplay-event systems (hazards, pickups, enemies, exit) do not exist yet in this table — see Known Issues for the roadmap.