← 博客

Turian 1.0:回到 C#

Turian 1.0:回到 C#

2026-09-23
本页面为自动翻译,可能包含错误。如果发现问题,请通过“编辑此页面”链接帮助修正。

我最初用 C# 开发 Turian,后来花了六个月用 Zig 从头重建它。现在,我把 Turian 这个名字带回 C#,并发布 Turian 1.0.0。

听起来像是绕了一个大圈,确实如此。但 Zig 引擎不是让我后悔的弯路。我为它做出了渲染器、场景、预制体、资产流水线和编辑器。这段经历也让我更清楚,希望使用 Turian 制作游戏的日常过程是什么样。

为什么回到 C#

我喜欢写 Zig,尤其喜欢 comptime 和对内存的控制。不过,Studio 需要在游戏运行时找到组件并显示它们的字段。在 Zig 中,我必须不断添加元数据和注册代码。制作游戏时还得把整个引擎的源码一起编译。真正用这个引擎做游戏之后,这些额外工作就很难忽视了。

与此同时,我还在其他项目中使用 C#,而且写得很开心。某个周末更新 Guinevere 时,我重新翻出了原来的 Turian 代码。接下来的一个月,我把它升级到 .NET 10,并带回 Zig 版本中的想法,包括 Open Asset Package 格式和编辑器工作流的一些做法。这里展示的 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 能做什么

Turian Studio 展示示例 11 的 Bistro 场景

画面中的 Bistro 场景来自 Amazon Lumberyard Bistro 数据集,采用 CC BY 4.0 许可。

Turian Studio 把场景、资产和 C# 组件放在一起编辑。它有场景树、Inspector、资产浏览器、场景和游戏视图、文档标签、主题、命令面板以及可重新绑定的快捷键。Studio 作为 Gaya 插件运行,界面由 Guinevere 绘制。

用 C# 编写组件后,你可以在 Inspector 中调整字段。Studio 运行时可以重新编译并热替换脚本。Play Mode 在场景副本上测试,因此不会改动正在编辑的场景。Build & Run 会在独立窗口中打开游戏。需要分享时,可以导出自包含可执行文件,玩家不用另装 .NET。

引擎有支持 PBR 材质的 Vulkan 1.3 渲染器,并能导入 glTF 2.0、FBX 和 OBJ。它还包含数据资产、预制体、输入操作映射、本地化,以及用 .ui 文档和 .uss 样式表制作的游戏界面。

在 Play Mode 中运行的 .ui 文档

如果更喜欢终端,turian-cli 可以创建、编译、运行、检查和导出项目。它也提供用于 CI 的容器镜像。教程会带你从新建项目走到导出游戏。

Turian 是 MEGA4 的一部分。Guinevere 负责界面,Gaya 承载编辑器。接下来,我会开始开发 MYSTERY,把它作为整套工具的概念验证。我想亲自用这些工具做一款真正的游戏,找出不顺手的地方,再让这些经验决定下一步做什么。

试试看

[发布页面]({{< param releases >}})提供 Windows 安装程序、Debian 和 Ubuntu 软件包,以及适用于其他 Linux 发行版的 zip。安装 .NET 10 SDK 后运行:

turian-cli new MyGame
turian-studio --project MyGame

文档也已经为 C# 引擎重写。

仍需改进的地方

1.0 已经能制作并导出游戏,但我每天也会碰到不足。渲染器尚无阴影、基于图像的光照或后期处理。Studio 还没有撤销功能,预制体副本不会与原件保持链接,目前也没有 macOS 版本。

我正在快速尝试新想法。如果某项实验会破坏已有项目,我会按发布政策提高主版本号。照这个速度,几个月后到了 v23 我也不会惊讶。MYSTERY 会成为检验标准:哪些想法真的有助于做游戏,哪些只是纸面上看起来不错,它会给我答案。

Turian 使用 Mozilla Public License 2.0。你的游戏可以采用你选择的任何许可证。如果修改引擎自身的文件并分发,修改部分仍须遵循 MPL。

我独立开发 Turian。如果你试用了它,请在 GitHub 告诉我哪里出了问题。如果愿意资助下一次发布,可以通过 Patreon 或 Ko-fi 支持我。

最后,谢谢 Zig 社区。过去六个月帮助过我的人,尤其是 DVUI 的开发者,为 TurianZ 打下了基础,也教会我很多。Turian 因为这段经历和你们的慷慨帮助而变得更好。

#release#announcement#engine#studio#dotnet