Getting Started
Everything you need before your first GalaxyEggbertCNA build.
Prerequisites
- CMake ≥ 3.21 and a modern C++ compiler (GCC or Clang)
- Git
- OpenGL development libraries on Linux (for the default EasyGL backend)
Required Sibling Repositories
Galaxy Eggbert is not self-contained: CMakeLists.txt expects three sibling
directories next to the galaxy-eggbert checkout, each overridable via a CMake
cache variable:
| Repository | Default path | Override variable | Role |
|---|---|---|---|
| CNA | ../cna | CNA_HOME | The game framework itself (target CNA) |
| Easy3D | ../easy-3d | EASY3D_HOME | Small helper library beside CNA (target easy3d::easy3d) |
| mobile-eggbert | ../mobile-eggbert | MOBILE_EGGBERT_HOME | Read-only asset source (Content/, worlds/), copied at build time |
CNA target and links against it instead
of building its own copy. Configuring in the wrong order can produce duplicate-symbol errors.
Clone the Repository
git clone https://github.com/openeggbert/galaxy-eggbert.git
cd galaxy-eggbert
Configure and Build GalaxyEggbertCNA
cmake -S . -B build-cna -DGALAXY_EGGBERT_BUILD_CNA=ON -DGALAXY_EGGBERT_BUILD_SIMPLE3D=OFF
cmake --build build-cna --target GalaxyEggbertCNA -j2
GALAXY_EGGBERT_BUILD_CNA defaults to OFF (it is opt-in);
GALAXY_EGGBERT_BUILD_SIMPLE3D defaults to ON and builds the older,
currently-playable Simple3D reference target. See Build Guide for the
full CMake variable reference.
What Gets Copied at Build Time
Post-build CMake commands copy ../mobile-eggbert/Content/ and
../mobile-eggbert/worlds/ (read-only source, not committed to galaxy-eggbert)
plus this repo's own committed worlds3d/ directory next to the
GalaxyEggbertCNA binary. This step is skipped under Emscripten or Android.