Getting Started

Everything you need before your first GalaxyEggbertCNA build.

Prerequisites

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:

RepositoryDefault pathOverride variableRole
CNA../cnaCNA_HOMEThe game framework itself (target CNA)
Easy3D../easy-3dEASY3D_HOMESmall helper library beside CNA (target easy3d::easy3d)
mobile-eggbert../mobile-eggbertMOBILE_EGGBERT_HOMERead-only asset source (Content/, worlds/), copied at build time
Configure CNA before Easy3D Order matters: Easy3D auto-detects a parent 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.

Next Steps