Tutorial: Building the Game
From a fresh clone to a running binary on Linux.
Step 1 — Clone the Repository
git clone https://github.com/openeggbert/galaxy-eggbert.git
cd galaxy-eggbert
git submodule update --init --recursive
Step 2 — Verify Engine Availability
The default build uses U3D. Check that U3D is pre-built at the expected path:
ls /rv/data/library/github.com/u3d-community/U3D/cmake-build-debug
If U3D is elsewhere, set the U3D_HOME CMake variable (see Build Guide).
Step 3 — Configure with CMake
cmake -B cmake-build-debug \
-DCMAKE_BUILD_TYPE=Debug \
-DGALAXY_EGGBERT_ENGINE=U3D
This creates a cmake-build-debug/ directory.
Use -DCMAKE_BUILD_TYPE=Release for optimised builds.
Step 4 — Build
cmake --build cmake-build-debug --parallel
Expected output: cmake-build-debug/bin/GalaxyEggbert.
Build time is typically 30–120 seconds depending on hardware.
Step 5 — Run
cd cmake-build-debug/bin
./GalaxyEggbert
Important: Run from within
cmake-build-debug/bin/ so that
Urho3D can find CoreData/ and Data/ relative to the executable.
Step 6 — Run Tests
cd cmake-build-debug
ctest --output-on-failure
Expected: 54 tests pass. Tests are engine-agnostic and do not require a display.
Troubleshooting
| Problem | Fix |
|---|---|
| CMake can't find U3D | Add -DU3D_HOME=/path/to/U3D/cmake-build-debug |
| Binary crashes on startup | Ensure you launch from cmake-build-debug/bin/; check GalaxyEggbert.log |
| Missing Content/ assets | Verify Content/ symlink or copy exists next to binary |
| Compiler errors about C++23 features | Upgrade GCC to ≥13 or Clang to ≥17 |