A source-available, native 64-bit Linux runtime for the Genesis3D 1.x engine lineage.
This repository descends from the RealityFactory/Genesis3D tree. It contains Genesis3D 1.1 code released in 1999, subsequent inherited source snapshots, and Kadaken's 2026 Linux port. The Linux port was developed by Zito with assistance from Gemini and Codex; no outside community contributors to the port are claimed. Kadaken did not create the original engine and is not affiliated with or endorsed by Eclipse Entertainment, WildTangent, Reality Factory, or the owners of games made with Genesis3D.
The native target is an engine runtime and validation sandbox, not a complete game or a finished replacement for every historical Genesis3D SDK tool.
Verified on one Fedora KDE system with AMD/Mesa:
- native x86-64 C/C++ build;
- SDL2-owned X11/XWayland window and input;
- OpenGL BSP geometry, textures, baked lightmaps, PVS selection, and translucent ordering;
- ACT/BODY loading, skeletal posing, and fixed-step animation playback;
- runtime lightmap updates;
- swept-hull BSP collision, gravity, jumping, stairs, slopes, wall sliding, and ceiling rejection in deterministic real-map fixtures;
- 60 and 120 FPS presentation targets on the tested machine; and
- normal SIGINT/SIGTERM teardown under the documented sanitizer checks.
Known limitations and the exact evidence boundary are documented in Reports/VERIFICATION_SCOPE.md. In particular, the project has not established exact pixel equivalence with the original Windows renderer, broad GPU/distribution support, or completion of every legacy engine subsystem.
The covered source is distributed under the Genesis3D Public License v1.01. Read the complete, controlling text in g3dlicense.txt before using, modifying, or redistributing this code. This is a custom source-available licence; the project does not represent it as an OSI-approved licence.
Important obligations include publishing covered engine modifications under the same terms, documenting modifications, retaining required notices, and using the original Genesis3D logo as specified by the licence. The native validation executable does not yet implement the required original animated startup logo. Therefore this repository currently publishes source only and does not offer a redistributable binary release. Do not redistribute a compiled product, demo, or application from this branch without independently satisfying every licence condition.
See LICENSE, LEGAL.md, NOTICE.md, and MODIFICATIONS.md for discoverability, provenance, and release safeguards. Those summaries do not replace the controlling licence.
No commercial game, map, actor, music, voice, or other legacy game asset is distributed in this repository. You must provide compatible assets that you are legally entitled to use.
At runtime, the engine selects the alphabetically first readable compiled level
from Assets/Maps/ (.bsp or .gbsp) and requires at least one readable
.act file in Assets/Actors/. Point GENESIS3D_PROJECT_ROOT at a directory
containing that Assets/ layout. If the variable is unset, the development
harness uses ./Assets when present and otherwise checks the legacy local
./PurificationWorkspace/Assets layout. Neither directory is tracked.
Fedora dependencies:
sudo dnf install gcc gcc-c++ cmake make pkgconf-pkg-config \
mesa-libGL-devel libX11-devel SDL2-develUbuntu/Debian dependencies:
sudo apt install build-essential cmake pkg-config libgl1-mesa-dev \
libx11-dev libsdl2-devConfigure and compile out of tree:
cmake -S . -B build
cmake --build build --parallelCompilation alone does not require proprietary game assets. Runtime validation does.
Headless or agent-run checks must never capture the desktop's keyboard or mouse:
GENESIS3D_NO_INPUT_CAPTURE=1 \
GENESIS3D_PROJECT_ROOT=/path/to/compatible-assets \
./build/genesis3d_linuxFor a person intentionally testing input on their own desktop:
GENESIS3D_ENABLE_INPUT_CAPTURE=1 \
GENESIS3D_PROJECT_ROOT=/path/to/compatible-assets \
./build/genesis3d_linuxControls are W/A/S/D or arrow keys to move, Shift to sprint, Space to jump, mouse motion to look, and Escape to exit. Interactive mode captures the mouse only while the engine window has focus and releases it when focus is lost.
Issues and pull requests are welcome. Start with CONTRIBUTING.md and the community engine roadmap. Contributions must be original or properly licensed, must not include commercial game data, and are subject to the Contributor Grant in the Genesis3D Public License.
Some excluded Windows driver/project files are retained only as historical reference and are not part of the native build. Files carrying restrictive third-party SDK/header notices that were unnecessary for the Linux target have been removed from the current branch. Their former presence in inherited Git history is disclosed in LEGAL.md.