Turian 1.0: C# への帰還
Turian は C# で作り始めました。その後、6か月をかけて Zig で作り直しました。そして今、Turian という名前を C# に戻し、Turian 1.0.0 をリリースします。
ずいぶん方向転換したように見えると思います。実際そうです。ただ、Zig 版は後悔している寄り道ではありません。レンダラー、シーン、プレハブ、アセットパイプライン、エディターまで作りました。その経験から、Turian でゲームを作る毎日をどういうものにしたいかが見えてきました。
C# に戻った理由
Zig を書くのは好きでした。特に comptime と、メモリを細かく制御できるところが好きです。でも Studio は、実行中のゲームからコンポーネントを見つけ、そのフィールドを表示する必要があります。Zig ではそのためのメタデータや登録処理を増やし続けていました。ゲームを作るたびにエンジンのソースも一緒にコンパイルする必要がありました。実際にエンジンを使ってゲームを作ると、その手間は無視できなくなりました。
一方、ほかのプロジェクトでは C# を書き続けていて、それが楽しかったのです。週末に Guinevere を更新したことをきっかけに、元の Turian のコードを見直しました。その後の1か月で .NET 10 に合わせて更新し、Open Asset Package 形式やエディターの作業手順など、Zig 版で得たアイデアを取り込みました。1.0 で紹介する機能は、どれも C# と Zig を行き来する中で形になりました。一方で生まれたアイデアがもう一方で実際の問題にぶつかり、よりよい形で戻ってきたのです。
この判断と、Zig の好きだったところについては、MASS4 ブログの The 180° Turn に詳しく書きました。
二つのエンジン、二つの名前
Zig 版は TurianZ と呼びます。利用したい人、フォークしたい人、開発を続けたい人のために保存します。このサイトの以前の記事は TurianZ について書かれたものです。Turian と TurianZ のページで違いを説明しています。
C# 版を 1.0.0 としたのは、TurianZ のプロジェクトをそのまま開けないからです。4.0.0 と呼べば、存在しないアップグレード経路があるように見えてしまいます。既存の TurianZ プロジェクトには TurianZ を使い続けてください。新しいプロジェクトには Turian 1.0 を使えます。今後はリリース方針に従い、小さなリリースを頻繁に行い、プロジェクトを壊す変更にはメジャーバージョンを付けます。
1.0 でできること

Amazon Lumberyard Bistro データセットのシーン。CC BY 4.0。
Turian Studio では、シーン、アセット、C# コンポーネントを一か所で扱えます。シーンツリー、Inspector、アセットブラウザー、シーンとゲームのビュー、ドキュメントタブ、テーマ、コマンドパレット、変更可能なショートカットがあります。Studio は Gaya のプラグインとして動き、UI には Guinevere を使います。
C# でコンポーネントを書き、Inspector でフィールドを調整できます。Studio の実行中にスクリプトを再コンパイルして差し替えることもできます。Play Mode はシーンのコピーで試すので、編集中のシーンは変わりません。Build & Run ではゲームを別ウィンドウで開きます。配布時には、プレイヤーが .NET をインストールしなくても動く自己完結型の実行ファイルを出力できます。
エンジンには PBR マテリアルを扱う Vulkan 1.3 レンダラーがあり、glTF 2.0、FBX、OBJ を読み込めます。データアセット、プレハブ、入力アクションマップ、ローカライズ、.ui ドキュメントと .uss スタイルシートによるゲーム UI も備えています。

ターミナルを使いたい場合は、turian-cli でプロジェクトの作成、コンパイル、実行、調査、エクスポートができます。CI 向けのコンテナーイメージもあります。チュートリアルでは、新規プロジェクトからゲームの出力までを試せます。
Turian は MEGA4 の一部です。Guinevere が UI を担い、Gaya がエディターをホストします。次は、スタック全体の実証として MYSTERY の開発を始めます。自分でこれらのツールを使って本物のゲームを作り、使いにくいところを見つけ、その経験を次の開発につなげたいと思っています。
試してみる
[リリースページ]({{< param releases >}})には、Windows インストーラー、Debian と Ubuntu 向けパッケージ、その他の Linux ディストリビューション向け zip があります。.NET 10 SDK をインストールして、次を実行してください。
turian-cli new MyGame
turian-studio --project MyGame
ドキュメントも C# 版に合わせて書き直しました。
まだ必要なもの
1.0 でゲームを作って出力できますが、日々不足を感じる部分もあります。レンダラーにはまだ影、イメージベースライティング、ポストプロセスがありません。Studio には Undo がなく、プレハブのコピーは元とリンクされません。macOS 版もまだありません。
私はかなり速いペースでアイデアを試しています。実験によってプロジェクトが壊れるなら、リリース方針どおり新しいメジャーバージョンを付けます。この調子なら数か月後に v23 になっていても驚きません。MYSTERY はその試金石です。ゲーム制作に本当に役立つアイデアと、紙の上でよく見えただけのアイデアを見分けられるはずです。
Turian は Mozilla Public License 2.0 で公開しています。あなたのゲームには好きなライセンスを選べます。エンジン自体のファイルを変更して配布する場合、その変更部分は MPL のままです。
Turian は私が独立して開発しています。使ってみて問題があれば GitHub で教えてください。次のリリースを支援したい場合は、Patreon または Ko-fi からお願いします。
最後に、Zig コミュニティの皆さん、ありがとう。6か月の間に助けてくれた人たち、とりわけ DVUI の開発者の皆さんのおかげで、TurianZ にしっかりした土台ができ、私も多くを学びました。皆さんの寛大な助けと、Zig に費やした時間があったからこそ、今の Turian があります。
#release#announcement#engine#studio#dotnet