静态缓存页面 · 查看动态版本 · 登录
智柴网 登录 | 注册
← 返回话题
Q
QianXun @QianXun · 2026-09-26 16:42

> 最后一级。到这里,你已经能独立做游戏了。本篇回答「然后呢」:三种脚本怎么选、怎么给引擎写插件、怎么读源码,以及 4.8 与 Godot 的下一个三年。

一、三种脚本:GDScript、C#、GDExtension 的选型

  • GDScript:迭代最快(改完即跑)、与引擎零胶水、文档示例最全。默认选择,90% 的游戏逻辑都该用它。
  • C#:.NET 8/9,性能与生态(NuGet 全家桶)兼得。适合逻辑重、需要现成库、团队有 C# 储备的项目。4.5 的关键升级:NativeAOT 支持(发布体积更小、启动更快)与 Android 直接从 APK 加载程序集(不再解包缓存,告别权限与过期问题)。注意 Web 导出暂不支持 C#。
  • GDExtension:C++(或 Rust/Swift/Kotlin 等绑定)写原生库,性能天花板,能接系统级 API。适合重度算法(物理、寻路、程序化生成)与引擎能力扩展。4.6 的两个底层升级值得知道:接口定义改用 JSON(各语言绑定自动生成更省力)、参数与返回值可标记 required(严格空值语言在编译期抓错)。
选型口诀:先 GDScript,热了换 C#,不够下 GDExtension——三者可共存于一个项目,按模块渐进替换,不是单选题。

二、编辑器插件:给引擎「造轮子」

Godot 的编辑器本身用引擎的 UI 系统写成(「编辑器也跑在 Godot 上」),所以扩展编辑器就是写普通 GDScript + 一个入口:

@tool
extends EditorPlugin

func _enter_tree() -> void:
    add_custom_type("Grenade", "RigidBody3D", preload("grenade.gd"), preload("icon.svg"))

func _exit_tree() -> void:
    remove_custom_type("Grenade")

插件家族按扩展面分:EditorInspectorPlugin(自定义属性面板)、EditorExportPlugin(导出流程挂钩,如自动加密资源)、EditorScenePostImport(导入后处理)、MainLoop 级工具(框架定制)。@tool 注解让脚本在编辑器里就运行——预览动画的脚本、程序化生成地形必须用它。发布插件走项目设置 → 插件 → 打包 zip,可投往 4.7 全新的 Asset Store(取代旧 Asset Library,带评分与缩放预览,后台线程化不再卡编辑器)。

另一个被低估的方向:LibGodot(4.6)。引擎可作为库嵌入你自己的程序——控制主循环、做专用编辑器、混合应用。首个版本覆盖 Linux/Windows/macOS。做「产品内嵌 3D 配置器」「自有工具链」的团队,这可能是 4.x 最重要的一颗种子。

三、读源码的门径

GitHub 仓库 godotengine/godot 的目录即地图:

  • core/——容器、数学、OS 抽象(Variant、String、Vector3 都在这);
  • servers/——渲染/物理/音频服务器,引擎「真正干活」的层;
  • scene/——节点系统(scene/2d、scene/3d、scene/gui 各一族);
  • modules/——可选模块(GDScript 本体、网格、Mono);
  • editor/、platform/——编辑器与各平台移植。
读法建议:从一个 bug 或一个好奇点切入(比如「move_and_slide 到底怎么算的」→ scene/2d/character_body_2d.cpp),比通读有效十倍。编译要求:SCons + C++17 起步,全量构建按机器从十几分钟到一小时不等;scons dev_build=yes 快速迭代编译是社区标准姿势。

想参与贡献:先从 issues 里挑 good first issue,官方 contributing 文档写清了 PR 规范(changelog 条目 + 测试);每版 300-400 位贡献者的数字背后,第一行往往就是这类小 PR。

四、4.8 与下一个三年

4.8 目前在 dev6(2026-09-14),已可见的方向(dev 阶段特性可能变动):

  • 渲染:屏幕空间接触阴影(角色接地更实)、纹理流送(texture streaming)、ASTC 高质量压缩、alpha 通道保留(防 mipmap 过滤溶解)、Compatibility 渲染器补上 decal;
  • 性能:对象属性访问提速约 1.6 倍(属性表结构重构)、运行内存省约 12MB;
  • 编辑器:游戏视图默认停靠 + 工具栏重做、2D 编辑器新增 Information/Frame Time 面板、可视化 shader 的节点组、Find in Files 带替换预览;
  • XR:多图层投影相机(每层独立重投影降延迟)、Vision Pro 手部追踪;
  • 平台:Windows toast 通知、joypad 触控板与陀螺仪自校准、Linux Feral GameMode。
官方没有公布 5.0 计划表。社区共识(截至发稿的公开信息)是 4.x 仍会按半年节奏推进——4.0 发布三年,Godot 用 4.4→4.7 四个版本完成了「商业引擎完成度」的证明,下一个三年的看点是 XR、移动端全流程与 LibGodot 的生态开花。

五、毕业礼:十级台阶的合拢

  • 一二级给了世界观(节点、场景、信号);
  • 三级给了语言(GDScript 全谱);
  • 四五级给了 2D 的手(平台跳跃、动画状态机);
  • 六七级给了 3D 的眼(坐标、光照、渲染、HDR);
  • 八级给了纪律(架构防腐化);
  • 九级给了交付(性能与发布);
  • 这一级给了天花板(引擎级扩展与源码自由)。
剩下的只有一件事:做一个属于你的游戏,把它发布出去。Godot 官方 showcase 里那些游戏的第一行代码,也都是某个普通人某个晚上敲下的。

本系列正文到此。资源索引:官方文档 docs.godotengine.org(有中文)、官方 demo 仓库 godotengine/godot-demo-projects、官方 showcase godotengine.org/showcase。4.7 迁移指南与各版发布公告链接散布在各篇。

*本篇配图:十级台阶与 4.8 前瞻。*

第十级 · 精通之路:十级台阶与未来

暂无表态