Getting Started
This guide walks you through cloning, building, and running Free Eggbert for the first time.
Prerequisites
To build Free Eggbert using the recommended CMake + FreeDirect path, you need:
- Git — with submodule support
- CMake 3.20+
- A C++20 compiler — GCC 11+, Clang 12+, or MSVC v143
- A C++ build environment — make/ninja on Linux/macOS, or MSBuild on Windows
- Game asset files — DATA, IMAGE08, IMAGE16, SOUND directories from an original copy of Speedy Eggbert 2
No System SDL Required
By default, CMake builds vendored SDL3, SDL_image, and SDL_mixer from git submodules.
You do not need to install SDL packages from your system package manager.
Step 1: Clone the Repository
# Clone the repository
git clone <repository-url> free-eggbert
cd free-eggbert
# Initialize all submodules (SDL3, SDL_image, SDL_mixer, dxsdk3)
git submodule update --init --recursive
Submodules Required
The third_party/SDL, third_party/SDL_image, and
third_party/SDL_mixer submodules must be initialized before building.
Without them, CMake configuration will fail.
Step 2: Add Game Assets
Free Eggbert requires the original game asset files. These are not included
in the repository. Obtain them from a legal copy of Speedy Eggbert 2 and place them under
gamefiles/:
free-eggbert/gamefiles/
├── DATA/ ~110 .blp world/demo/config files
├── IMAGE08/ ~68 8-bit palette image files
├── IMAGE16/ ~55 16-bit true-color image files
└── SOUND/ ~103 music and SFX files
See Assets & Files for the full directory contents.
Step 3: Build
# Configure (using FreeDirect / SDL3 backend)
cmake -S . -B build -DSPEEDY_BLUPI_BACKEND=FREEDIRECT
# Build (using all available CPU cores)
cmake --build build -j
The compiled executable will be at build/bin/SPEEDY_BLUPI_WINDOWS
(or SPEEDY_BLUPI_WINDOWS.exe on Windows).
Step 4: Run
# Run from the project root (so relative paths to gamefiles/ work)
./build/bin/SPEEDY_BLUPI_WINDOWS
Working Directory
The game reads assets using relative paths like gamefiles/DATA/config.def.
Run the executable from the root of the repository, not from inside the build directory.
Clean Rebuild
If you have build problems or a stale CMake cache, perform a clean rebuild:
rm -rf build
git submodule update --init --recursive
cmake -S . -B build -DSPEEDY_BLUPI_BACKEND=FREEDIRECT
cmake --build build -j
Other Platforms
For platform-specific instructions, see the dedicated build documentation:
Next Steps
- Full Build System Documentation — all build options and flags
- Running the Game — configuration, command-line options
- Architecture Overview — understand the codebase
- Project Structure — directory and file layout