純粋な Zig でゲームを作る。
const engine = @import("engine");
pub const Spinner = struct {
pub const is_component = true;
speed: f32 = 90.0, // editable in inspector
pub fn update(self: *Spinner, time: engine.Time) void { _ =
self.speed * time.delta;
};
ランタイムのオーバーヘッドがない、本物のエディター
Turian は、Unity スタイルのビジュアルなワークフローと、システム言語の予測可能性を両立します。VM も、スクリプティングブリッジも、隠れたメモリ割り当て(アロケーション)もありません。
Visual editor
Scene hierarchy, inspector, asset browser and a live 3D viewport — all in a single window powered by SDL3 GPU.
Component system
Declare pub const is_component = true; in any struct and it appears in the Add Component menu with full field inspection.
Live script discovery
Drop a .zig file into assets/ and your component shows up immediately — fields introspected at edit-time.
Asset pipeline
Loads OBJ, glTF 2.0 / GLB, PNG, JPG and more, with GUID-stable references that survive moves and renames.
Headless CLI
turian-cli build compiles your game without opening the GUI — the same artifact your editor produces, ideal for CI.
Pure Zig
No garbage collector, no hidden allocations, no runtime surprises. Compiles to a single executable on every Zig-supported platform.
コンポーネントは単なる Zig の構造体
目印となる定数を一行書くだけで、構造体がエディターコンポーネントに変わります。パブリックフィールドは自動的にインスペクター上の操作コントロールになり、ライフサイクルフックは必要なときにだけ実装する単純なメソッドです。
- コード駆動型の検出 — エディターは正規表現ではなく本物の Zig コードを解析するため、コメントや条件付きコンパイルによって検出が壊れることはありません。
- 型定義されたインスペクターフィールド — f32、i32、bool、Vec3、オブジェクト/アセットへの参照が自動的にレンダリングされます。
- おなじみのライフサイクル — awake, enable, start, update, disable, destroy。
const std = @import("std");
const engine = @import("engine");
pub const Follower = struct {
pub const is_component = true;
// Drag a GameObject from the Hierarchy here.
target: engine.GameObjectRef = .{},
speed: f32 = 4.0,
pub fn start(self: *Follower) void {
const name = self.target.slice();
if (name.len > 0) std.debug.print("following '{s}'\n", .{name});
}
pub fn update(self: *Follower, time: engine.Time) void {
_ = self.speed * time.delta;
};
};
3 つのコマンド。1 つのバイナリ。
プロジェクトの作成
turian-cli new-project を実行して、アセットフォルダと初期シーンを含むプロジェクトを生成します。
スクリプトと配置
Turian Studio を開き、コンポーネントを追加し、シーンを構成し、インスペクターでフィールドの値をリアルタイムに調整します。
ビルドと共有
turian-cli build がアセットをクックし、誰にでもそのまま配布できる自己完結型の実行ファイルを生成します。
コミュニティに参加する
質問の投稿、作品の共有、エンジンの方向性への提案など、どなたでも大歓迎です。
Turian の開発を支援する
Turian は有志のボランティアによって開発されています。皆様のご支援は、継続的な活動と、エンジンを無料でオープンに保つために役立てられます。