Skip to content

Repository files navigation

Turian Engine Logo

Turian Engine

A component-based 3D game engine and editor built entirely in Zig.

pipeline status latest release license: MPLv2 Zig 0.16.0

Turian gives you a Unity-style workflow — scene hierarchy, inspector, drag-and-drop asset management, and live script discovery — without the runtime overhead or licensing fees of commercial engines.

Website · Download · Docs · Discord · Matrix


Screenshots

Turian Studio — editor + viewport
Turian Studio screenshot

Install

Download a binary release (recommended)

Download the latest SDK from the Releases page. You only need Zig 0.16.0 — nothing else.

# 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"

Then create your first project:

turian-cli new-project my-game "My Game"
turian-cli build       my-game

See the SDK guide for more details and the full CLI reference.

Build from source

git lfs install
git clone https://gitlab.com/mass4org/mega4/turian.git && cd turian
zig build run          # compile + launch the editor
zig build test         # run all tests

See docs/install.md for the full developer setup.


Why Turian?

Most engines force a trade-off: the productivity of a visual editor or the control of a low-level systems language. Turian refuses the trade.

  • One language, top to bottom. The engine, the editor, your game logic, and the build tooling are all Zig. No VM, no scripting bridge, no FFI tax.
  • No garbage collector, no hidden allocations. Your game ships as a single native executable with predictable performance.
  • Editor-first, but never locked in. Scenes are human-readable text you can diff and merge; the CLI builds the exact same game headlessly for CI.
  • Free as in freedom. MPLv2, no seats, no revenue share, no per-title fees.

Component scripting

// assets/spinner.zig
const engine = @import("engine");

pub const Spinner = struct {
    pub const is_component = true;

    speed: f32 = 90.0,   // degrees / second — editable in inspector

    pub fn update(self: *Spinner, time: engine.Time) void {
        _ = self.speed * time.delta;
    }
};

Drop spinner.zig in your project's assets/ folder. Turian discovers it automatically on the next Refresh and lists it under Add Component ▾.


Documentation

Guide Description
Getting started Open a project, write a component, build a game
Install / build from source Developer setup
SDK guide Ship games without the engine checkout
ADRs Architecture decision records

Full documentation is at turian.mass4.org/docs.


Community

Contributions are welcome. See CONTRIBUTING.md.


Sponsorship

Turian is developed and maintained by Bruno Massa and contributors. If it saves you time or money, consider supporting the project:

Patreon Ko-fi


License

Turian is free software, licensed under the MPL v2. Copyright © 2026 Bruno Massa.

About

Officia mirror from https://gitlab.com/mass4org/mega4/turian

Resources

Contributing

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages