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