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

ProblemFix
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