A portable C99 engine library adapted from Wolfenstein 3D v1.4. It preserves original gameplay, fixed-point rendering, data formats and timing behind a small public host callback API.
Want to play? Use wolf3d-portable, which provides the GDI, SDL3, Linux KMS/fbdev and DOS VGA applications. This repository provides the engine SDK and deterministic test host. Original game data is required and is not distributed here.
git clone https://github.com/bobapplemac/wolf3d-lib.git
cd wolf3d-libRun the guided entry point for your build machine:
| Environment | Command |
|---|---|
| Linux | ./build.sh |
| Modern Windows PowerShell | .\build.ps1 |
| Legacy Windows Command Prompt | build.cmd |
The scripts detect available tools and offer source updates for confirmation.
Decline to build your existing checkout. Packages are written under dist/;
intermediate output stays under build/.
For automation, use make help on Linux or the documented CMake presets.
See building, supported compilers/platforms,
and source-update behavior for requirements and options.
Include WOLF3D.h, fill wolf3d_platform_api_t, and call
wolf3d_SetPlatform, wolf3d_Create, wolf3d_Run, then wolf3d_Shutdown.
CMake consumers link wolf3d::wolf3d; private src/ headers are not a host API.
The porting guide covers lifecycle, input, video and audio ownership. Architecture explains the engine; supported data lists game profiles, hashes and demo downloads.
Start at the documentation index for the complete guide. Useful references include repository layout, distribution naming, package contents, versioning, and the changelog.
See LICENSE, third-party notices, and licensing history for terms and provenance.