章节摘要:本章跟着"同一个功能用两种语言各写一遍"的对照走——GDScript 贴着引擎长,写得快;C# 带着生态来,撑得住。两种语言之外还有第三条轨道:GDExtension 原生扩展与着色器语言,负责把性能顶到上限。读完你能为自己的项目做出语言决策,并掌握所选语言的工程习惯。
主线是一个具体的决策困境:团队要开工了,逻辑层用 GDScript 还是 C#?这个决策不能靠信仰,要靠对照。所以本章的走法是:先把 GDScript 这门"为引擎定制的语言"的脾性摸透——类型系统、异步等待、注解驱动(4.1);再请 C# 上场,同样的任务用另一种语法重写,对照两者的开发体验、性能画像与生态半径(4.2);最后越过脚本层看第三轨道——原生扩展与着色器各在什么时刻才值得请出场(4.3)。三节看完,"用什么语言"从站队问题变成场景问题。
两个转折值得标记。其一,GDScript 的"慢"被高估了——游戏逻辑的瓶颈几乎从不在语言解释层,而在你让每帧做了多少事(第 2 章帧预算);先测量再换语言,是省钱的顺序。其二,双语言不是二选一,混用是受支持的正路:原型用 GDScript 快速长,热区用 C# 或原生扩展定点加固。结论:语言选择的正确粒度是"模块"而不是"项目"。
还有一个容易忽略的视角:语言决策的半衰期比想象中长,返工成本比想象中高。因为语言渗透进团队习惯、构建脚本与工具链,中途切换的代价以周计。所以这章的对照值得认真读完——它影响的不只是代码风格,而是未来一年团队每天的肌肉记忆。
顺带一提本章的实践建议:语法层面看会了不等于会写,每节末尾的对照代码值得亲手敲一遍——敲的过程会暴露所有"以为懂了"的细节,从类型标注的位置到等待的返回值处理。语言学习里,手指的记忆比眼睛可靠。
语言就位,该让知识经受实战检验了。第 5 章是一场完整的小游戏开发复盘,双语言的取舍将在真实项目里再演练一遍——顺便把 2D 渲染与物理一并打穿。
逐条自查:静态类型标注的三重收益与渐进式启用方法;类型化信号与类型化数组的写法;协程的暂停恢复模型与两条使用边界;长协程恢复后的存活检查;导出变量的分组、范围与资源类型标注;工具注解的双态执行前提;字符串名与枚举的适用场景;性能排查中语言与算法的先后次序;双语言的概念映射表(信号、导出、基类、异步);桥费与批量过桥原则;混用项目的四条结构约定;迁移五步法;GDExtension 的进场标准与维护成本清单;着色器的输入输出通道与统一变量;三条轨道的分工地图与不可跳级原则。