Galaxy Eggbert Documentation
A faithful 3D remake of Speedy Blupi — C++ · CNA · Easy3D · CMake
GalaxyEggbertCNA), per the project's "Current Direction Lock" (see
Architecture). The previous documentation described an
Urho3D-based architecture (GalaxyEggbertApp, Blupi, Decor, …)
that no longer exists in the source tree. The older, currently-playable
GalaxyEggbertSimple3D target (built on Simple3D/U3D) still exists as a reference
implementation and is mentioned where relevant, but is not the subject of this rewrite.
What is Galaxy Eggbert?
Galaxy Eggbert is a 3D remake of Speedy Blupi, originally a Windows Phone XNA platformer game from 2013,
itself later ported to C++ as mobile-eggbert.
Galaxy Eggbert's long-term target, GalaxyEggbertCNA, is built directly on CNA
(an XNA-compatible, SDL3-based C++ game framework) with Easy3D as a small helper
library beside it (cameras, texture atlas, cube/billboard batching) — Easy3D does not hide CNA.
GalaxyEggbertCNA is real, buildable code today (opt-in via CMake), not a future plan:
it opens a window, loads a genuinely 3D, hand-authored .vwr voxel world, renders
textured animated terrain across all Y layers, and moves an invisible collision-only Blupi
placeholder through it with gravity and step-up traversal. It does not yet render
Blupi's sprite, objects/pickups, a HUD, or play sound — see the status table below.
Quick Navigation
🚀 Getting Started
Prerequisites and first build steps for GalaxyEggbertCNA.
🔧 Build Guide
CMake options, the CNA/Easy3D/mobile-eggbert sibling repo layout.
🏛 Architecture
The Direction Lock, layering, and how CNA/Easy3D/mobile-eggbert relate.
🎮 Gameplay Status
What actually works today vs. what's planned, faithfully to mobile-eggbert.
🌎 Worlds & the .vwr Format
The genuinely-3D voxel world format and how it differs from mobile-eggbert's flat levels.
📄 Class Reference
GEWorldRuntime, GETerrainRenderer, GEBlupiController, GETileAtlas, and the Worlds data model.
📖 Tutorials
Building GalaxyEggbertCNA and exploring the world/terrain pipeline.
🚧 Known Issues
What's not implemented yet, and the E3D-MIG task roadmap.
Technology Stack
| Component | Technology |
|---|---|
| Language | C++ (CMake ≥ 3.21) |
| Game framework | CNA — XNA-compatible, SDL3-based C++ framework (../CNA) |
| Helper library | Easy3D — cameras, texture atlas, cube/billboard batching (../easy-3d) |
| Reference implementation | GalaxyEggbertSimple3D — built on Simple3D/U3D, the currently-playable target |
| Reference game | mobile-eggbert — read-only C++ port of the original Speedy Blupi; source of assets and behavioral truth |
| Testing | GoogleTest (world/voxel data model) |
| Graphics backend (CNA, Linux default) | EasyGL (OpenGL); SDL Renderer elsewhere |
GalaxyEggbertCNA Status (2026-07-04)
| Feature | Status |
|---|---|
CMake build (GALAXY_EGGBERT_BUILD_CNA=ON) | Done |
Load a genuinely 3D, hand-authored .vwr world | Done |
| Textured terrain rendering (one cube per non-air block) | Done |
| Animated tiles (lava/crusher/saw/spike/water/fan/marine/temp, 6 fps) | Done |
| Invisible collision-only Blupi movement (gravity, step-up, jump) | Done |
| Blupi rendered as a sprite/billboard | Planned |
| Object/pickup rendering | Planned |
| HUD | Planned |
| Sound | Planned |
| Real gameplay (hazards, enemies, pickups, exit, save/load) | Planned |
| Chunk-radius world streaming / face culling | Planned |
Full task-by-task roadmap: Known Issues.
How to Open This Documentation
This is a static website — no server required. Open index.html directly in any modern browser.
All links use relative paths, so the site works from any local directory or when hosted on GitHub Pages.