Build on Linux
The build is SDL2-based with two renderer targets: SDL for the desktop and GLES2 for PortMaster/handheld builds. pkg-config is used for dependency discovery.
Dependencies
- C++ compiler with C++11 support
- CMake 3.16+
- pkg-config
- SDL2
- SDL2_mixer
- SDL2_image
- OpenGLESv2 / GLESv2 development library (GLES2 build only)
Linux desktop build
Recommended development build:
cmake -S . -B build -DWIZBALL_PORTMASTER=OFF -DWIZBALL_RENDER_BACKEND=SDL
cmake --build build -j
Release build (recommended for playtesting):
cmake -S . -B build_release -DCMAKE_BUILD_TYPE=Release -DWIZBALL_PORTMASTER=OFF -DWIZBALL_RENDER_BACKEND=SDL
cmake --build build_release -j
AddressSanitizer build:
cmake -S . -B build_asan -DWIZBALL_PORTMASTER=OFF -DWIZBALL_ENABLE_ASAN=ON -DWIZBALL_RENDER_BACKEND=SDL
cmake --build build_asan -j
Local GLES2 build
To test the GLES2 renderer locally on Linux:
cmake -S . -B build-gles2-local -DCMAKE_BUILD_TYPE=Release -DWIZBALL_PORTMASTER=OFF -DWIZBALL_RENDER_BACKEND=GLES2
cmake --build build-gles2-local -j
Run
Run from the wizball/ data directory:
cd wizball
../build/wizball
Useful flags:
-debug— enables extra logging-dat— enables the compiled data mode used by the PortMaster launcher
Rebuild generated data
Generated .dat files are rebuilt by running the binary directly with rebuild flags. There is no separate packfile tool.
Direct commands from the wizball/ data directory:
cd wizball
../build/wizball -rebuildscripts wizball
../build/wizball -rebuildtilesets wizball
../build/wizball -rebuildtilemaps wizball
CMake also exposes thin wrapper targets for the same commands:
cmake --build build --target rebuild_wizball_scripts
cmake --build build --target rebuild_wizball_tilesets
cmake --build build --target rebuild_wizball_tilemaps
PortMaster package build
The PortMaster packaging path builds a GLES2-targeted aarch64 binary inside the builder container and assembles the output into a distributable zip.
Prerequisites: Docker and Docker Compose.
./scripts/build_portmaster.sh
That script will:
- pull the
portmaster-builder:aarch64-latestimage viadocker compose - start the
qemu-user-statichelper - configure and build with
-DWIZBALL_RENDER_BACKEND=GLES2 - install into
staging/ - write the final archive to
WizBall.zip
For an interactive builder shell instead:
./setup_docker.sh
The staging install excludes generated .dat files — rebuild them explicitly with the binary commands above before packaging or local -dat testing.