Install

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:

  1. Scans mygame/assets/ for user scripts (@component files).
  2. Cooks all assets into mygame/.cache/game.oap.
  3. Generates build.zig + main.zig in mygame/.cache/ and compiles them with Zig.
  4. Produces mygame/.cache/zig-out/bin/game[.exe] alongside game.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.


← All docs Edit this page