Install
Download a binary release (recommended)
No build step needed — download the SDK, add it to your PATH, and start making games.
Requirement: Zig 0.16.0 must be on your PATH. Nothing else — no C compiler, no system SDK, no extra dependencies.
→ **[Download the latest release]({{< param releases >}}) **
Linux / macOS
tar xf turian-sdk-linux-x86_64-v0.1.0.tar.gz
export PATH="$PWD/turian-sdk-linux-x86_64-v0.1.0:$PATH"
Windows (PowerShell)
Expand-Archive turian-sdk-windows-x86_64-v0.1.0.zip
$env:Path += ";$PWD\turian-sdk-windows-x86_64-v0.1.0"
Extract anywhere — nothing is written to your system. The bundle is fully relocatable.
Platform support
| Platform | Studio | CLI | Build windowed games |
|---|---|---|---|
| linux-x86_64 | ✓ | ✓ | ✓ |
| windows-x86_64 | ✓ | ✓ | ✓ |
| macos-aarch64 | — | ✓ | not yet |
macOS SDK is CLI-only; Turian Studio and SDL3 are not yet included.
The Turian SDK
A portable, self-contained bundle. It includes the engine and editor Zig sources, all dependencies, the CLI tool, and (on desktop platforms) the studio and the SDL3 library. You build games against it without ever checking out the engine repository.
Why Zig is not bundled
Zig has no stable ABI, so the engine cannot be shipped as a precompiled library — your game is compiled together with the engine source. The SDK ships that source; you supply the compiler. (The one exception is SDL3, a C library, which is shipped precompiled in lib/.)
SDK layout
turian-sdk-<platform>-v<version>/
turian-cli[.exe] headless build tool
turian-studio[.exe] GUI editor (desktop platforms only)
turian-sdk.json SDK marker (used by the CLI for path resolution)
engine/ engine Zig source + vendored C (cgltf, stb)
editor/ editor Zig source
deps/
math3d/src/ math library
guid/src/ UUID library
serde/src/ serialization library
open_asset_package/src/ .oap reader/writer
lib/
libSDL3.a SDL3 static library (desktop platforms only)
Multiple SDK versions
Each release extracts to its own turian-sdk-<platform>-v<version>/ folder, and they can coexist freely. The CLI locates the engine sources via the turian-sdk.json marker next to its own binary, so each turian-cli always uses its own sibling sources. To pick a version, put its folder on PATH or invoke it by full path:
~/sdks/turian-sdk-linux-x86_64-v1.0.0/turian-cli build mygame # 1.0.0
~/sdks/turian-sdk-linux-x86_64-v1.1.0/turian-cli build mygame # 1.1.0
Create and build a game
turian-cli new-project mygame # scaffold a project
turian-cli build mygame # compile it into a standalone game
mygame/.cache/zig-out/bin/game # run it
turian-cli build:
- Scans
mygame/assets/for user scripts (@componentfiles). - Cooks all assets into
mygame/.cache/game.oap. - Generates
build.zig+main.ziginmygame/.cache/and compiles them with Zig. - Produces
mygame/.cache/zig-out/bin/game[.exe]alongsidegame.oap.
The resulting game executable is self-contained: it reads every asset from game.oap in its own directory and needs no engine source tree.
Environment variable overrides
Override the paths the CLI resolves automatically (useful for CI or multi-version setups). Env vars take priority over SDK-relative paths, which take priority over build-time baked paths (only present in in-tree dev builds).
| Variable | Overrides |
|---|---|
TURIAN_ENGINE_ROOT |
engine/root.zig |
TURIAN_EDITOR_ROOT |
editor/root.zig |
TURIAN_BUILD_ROOT |
SDK root directory |
TURIAN_MATH3D_ROOT |
deps/math3d/src/root.zig |
TURIAN_GUID_ROOT |
deps/guid/src/root.zig |
TURIAN_OAP_ROOT |
deps/open_asset_package/src/root.zig |
TURIAN_SERDE_ROOT |
deps/serde/src/root.zig |
TURIAN_SDL3_LIB |
lib/libSDL3.a |
TURIAN_CGLTF_WRAP_C |
engine/vendor/cgltf_wrap.c |
TURIAN_VENDOR_INCLUDE |
engine/vendor/ |
Build from source
Building from source is covered in the Development section.