Godot

Godot是一款多功能、跨平台的2D与3D开源游戏引擎。可运行于Windows、macOS、Linux等多种操作系统。而其创建的游戏可运行于PC、Android、iOS、HTML5等平台。

## 特性

Godot在MIT许可证下完全自由开源，且受到软件自由保护组织的支持。改编过的游戏乃至引擎的每一行代码，都属于用户自己所有。Godot的开发是完全独立且由社区驱动的，允许使用者按照自己的期望去雕塑他们的引擎。

引擎的架构是围绕“节点”树设计的。节点组织在“场景”中，场景可以复用、实例化、继承。包括脚本和图形资产在内的所有游戏资源都是作为文件系统中的文件保存的，不依赖于数据库，可以方便使用版本控制的开发团队进行协作。

### 支持的平台

Godot支持进行多平台部署，能够针对不同的平台指定不同的纹理压缩方法和分辨率等设置。官方网站上仅提供适用于编辑器平台的二进制文件，导出到其他平台需要通过编辑器进行。

用于开发游戏的Godot编辑器支持如下平台：

- Linux、macOS、Windows等桌面平台。通过官网、Steam、Itch.io分发。支持BSD，但必须手动编译。
- HTML5平台，提供有Web编辑器。
- Android手机和平板（实验性质，Godot 3.5起提供）。

使用Godot制作的游戏能够在更多的平台上运行。截止到3.5.1，除了编辑器所支持的平台外，还支持以下平台：

- 移动平台iOS。
- 桌面平台通用Windows平台。
- 虚拟/增强现实平台HTC Vive、Valve Index、Oculus Rift、Oculus Go、Oculus Quest，以及微软MR头戴式设备、苹果的ARKit等。

虽然Godot引擎能够在主机平台运行，但Godot无法提供官方支持。因为Godot是开源项目，无法获得公司授权，也无法将主机平台所需的相关代码按照开源授权发布。可以使用第三方公司的主机平台的移植服务将Godot游戏导出到主机平台。

### 脚本

Godot支持使用不同的编程语言开发游戏，比如Godot自己的GDScript语言、C#、C++等。引擎还提供了GDExtension接口（3.x版本时期为GDNative），可用于创建其他语言的绑定。官方提供的C、C++支持就是通过GDExtension实现的。社区支持的语言包括Rust、Nim、JavaScript、Haskell、Clojure、Swift、D。

#### GDScript

Godot内置的GDScript脚本语言是一种高级动态类型编程语言，语法与Python类似。与Python不同，GDScript是针对Godot的场景架构设计的，一个文件就是一个类，并且可以为变量限定类型。

开发GDScript之前，Godot的开发者尝试使用过Lua、Python、Squirrel等第三方脚本语言，但最终为了优化和编辑器集成选择使用自定义的语言。

简单的Hello World程序如下：

```gdscript
func _ready():
	print("Hello World")
```

而更为复杂的，用于生成斐波那契数列的程序可以写为：

```gdscript
func _ready():
	var nterms = 5
	print("Fibonacci sequence:")
	for i in range(nterms):
		print(fibonacci(i))

func fibonacci(n):
	if n <= 1:
		return n
	else:
		return fibonacci(n - 1) + fibonacci(n - 2)
```

### 渲染

Godot的图形引擎主要使用Vulkan（自4.0来），也具备对OpenGL与OpenGL ES的兼容选项。并可以通过MoltenVK支持Metal。

着色器语言使用的是一种自定义的语言，与GLSL类似。着色器可用于材质和渲染。

Godot的2D图形引擎与3D图形引擎是独立的。可以使用“视口节点（Viewport node）”混合2D和3D内容。

### 其他特性

Godot拥有强大的动画系统，可以通过可视化的方式实现骨骼动画、混合、动画树、实时过场动画。游戏实体上的几乎所有变量都能够进行动画。

其他特性包括：

## 历史

### 封闭源代码时代（2001–2014）

Juan 'reduz' Linietsky 与 Ariel 'punto' Manzur 在 1999 年共同创立了 Codenix，一家游戏开发顾问公司。早在 2001 年，他们便开始开发一套代号为“Larvotor”的引擎，并授权给阿根廷的第三方公司使用。在接下来的十年间，该引擎数度更名，包括“Legacy”、“NG3D”、“Larvita”，最后定名为“Godot”。选用“Godot”这个名称是参考 Samuel Beckett 的剧作《等待果陀》，象征着不断想加入更多功能、使引擎更趋完整的永无止境愿望，即使永远无法真正达到。Linietsky 与 Manzur 加入 OKAM 后，公司在封闭源代码时代与多家工作室合作，其中包括 Square Enix。然而，Linietsky 表示，他们的工作受到当时阿根廷政治与经济不稳定 的影响。

### 自由与开源时代（2014–至今）

到了 2014 年，Linietsky 计划离开阿根廷，他便在 GitHub 上以 MIT License 将 Godot 的 源代码 公开释出。Godot 在 2015 年 11 月 4 日加入 Software Freedom Conservancy（SFC）。2016 年 6 月 22 日，Godot 获得了来自 Mozilla 的 20,000 美元 MOSS“Mission Partners”补助，用于加入 WebSocket、WebAssembly 与 WebGL 2.0 支援。

Godot 3.0 的更新涉及大量需求已久的功能，需对引擎进行重大重构，这在封闭源代码时代难以实现。在 Miguel de Icaza 的支持下，Godot 在 2017 年收到微软 24,000 美元捐款，用于在 Godot 中加入 C# 脚本语言支援。同时启动的 Patreon 让 Linietsky 与 Verschelde 能全职投入专案开发。3.0 版本于 2018 年正式推出。后续的 3.1 版本加入了针对移动设备硬件的 OpenGL ES 2.0 渲染器，当时移动设备对 ES 3.0 的支援仍有限。

2019 年起，Godot 形成两个团队：Linietsky 的团队负责 Vulkan 分支（后来成为 4.0），而 Verschelde 的团队维护 3.x 分支。Linietsky 指出其中一个问题是，3.x 分支仍采用较老的架构理念，例如单核心处理器，因此 4.0 的目标是重新打造核心架构，以符合现代需求。2020 年，Godot 获得 Epic Games 25 万美元补助，用于提升图形渲染与改进引擎内建脚本语言 GDScript，该补助让 Linietsky 与 George Marques 得以投入两年工作，并将捐款释放给其他用途。Godot 也在 2020 与 2021 年获得来自 Meta Platforms 的 Reality Labs 补助。4.0 分支于 2022 年初推出 alpha 版本，并在同年持续打磨。8 月，Linietsky 与多位 Godot 团队成员成立 W4 Games，提供基于该引擎的商业服务，包括由于授权原因无法纳入开源程式码库的主机平台移植服务。11 月，Godot 宣布从 SFC 过渡至新成立的 Godot Foundation。

4.0 的 Vulkan 支援版本于 2023 年正式推出，同年 Godot 引擎登上 Epic Games Store。Epic 版本的内容与授权皆与其他版本相同，仅作为分发与更新管道使用。不过，.NET／C# 版本并未在 Epic Games Store、Itch 或 Steam 上提供。同年 9 月，Unity Technologies 宣布对 Unity 引擎 授权模式做出重大更动，包括新增基于安装数量的“执行时费用”。因此，Re-Logic 宣布捐赠 100,000 美元给 Godot，并承诺之后每月再捐 1,000 美元，以支持作为 Unity 替代方案的开源引擎。

## 版本历史

Godot 于 2014 年 12 月 15 日达到 1.0 版本，标志着首次稳定版发布，并加入了lightmap 灯光贴图、导航网格（navmesh）支援，以及更多 shader 着色器。1.1 版于 2015 年 5 月 21 日发布，新增改良后的程式码编辑器自动完成、视觉化着色器编辑器、一个用于管理萤幕与视窗的操作系统新API、改良的 2D 物理与重写后的 2D 引擎、更好的 Blender Collada 支援，以及新的深色主题。

Godot 2.0 于 2016 年 2 月 23 日发布，加入了更好的场景实例化与继承、新的档案系统浏览器、多场景编辑，以及强化的除错器。随后在 2016 年 8 月推出的 2.1 版中，引入了资产数据库、效能分析器（profiler），以及外挂 API。

Godot 3

3.0 版于 2018 年 1 月 29 日发布，加入新的PBR 渲染器（基于 OpenGL ES 3.0 实作）、虚拟现实相容性，以及透过 Mono 实作的 C# 支援，这要感谢微软捐赠的 24,000 美元。3.0 版也在内建 3D 物理后端之外加入了 Bullet 物理引擎，并成为第一个被纳入 Debian 的 Godot 版本。

Godot 3.1 于 2019 年 3 月 13 日发布，其最显著的功能包括加入静态型别、GDScript 的脚本类别系统，以及OpenGL ES 2.0 渲染器。Godot 3.2 于 2020 年 1 月 29 日发布，最重要的变化包括大幅度改善的文件、显著提升的 C# 支援，以及对 glTF 2.0 档案的支援。

首席开发者 Juan Linietsky 将大部分时间投入在一个独立的 Vulkan 分支上，该分支后来合并进主分支作为 4.0 的基础，因此 3.2 的开发主要由其他贡献者完成。3.2 也作为一个为期一年的长期支援版本持续更新，其中包括于 2020 年 6 月 26 日发布的 3.2.2，这是一次大型修补版本，加入了OpenGL ES 2.0 批次渲染，以及 iOS 的 C# 支援。2021 年 3 月 17 日，版本策略被调整以更贴近语意化版本控制，引入 3.3 稳定分支以及用于未来 3.4 功能向后移植的 3.x 分支。

Godot 3.3 于 2021 年 4 月 21 日发布，新增功能包括 macOS 的 ARM 支援、Android App Bundle 支援、MP3 支援、Autodesk FBX 支援、WebXR 支援，以及一个网页版编辑器。

Godot 3.4 于 2021 年 11 月 6 日发布，经过六个月的开发，补上对使用 Godot 3 制作的 2D 与 3D 游戏至关重要的缺失功能与修复 bug，使既有功能更加优化与稳定。

Godot 3.5 于 2022 年 8 月 5 日发布，经历九个月的开发。与 Godot 3.4 类似，此版本聚焦于补上对 2D 与 3D 游戏重要的缺失功能与修复。其功能包括 3D 物理插值、异步着色器编译等。

Godot 3.x 在 4.0 beta 初次释出后进入更缓慢的开发节奏，因此 Godot 3.6 于 2024 年 9 月 9 日发布，经过两年开发。此更新加入 2D 物理插值与阶层式裁剪，以及 3D 网格合并、细节层次（LOD）、更紧密的阴影裁剪、ORM 材质等新功能。

Godot 4

Godot 4 于 2023 年 3 月 1 日发布。此为一次重大更新，全面翻新渲染系统、加入 Vulkan graphics API 支援、改善 GDScript 的效能与可用性、强化物理与动画系统，并加入许多其他功能与修复。Godot 4 的开发始于 2019 年，由 Linietsky 进行渲染器重写以使用 Vulkan。2020 年起，多位贡献者加入开发团队，致力于 GDScript 改进、物理引擎重构、动画系统重写、编辑器可用性增强等部分。

Godot 4 的第一个 alpha 版本于 2022 年 1 月提供给先行测试者使用。其中包含许多新功能，例如基于 SDF 的全域照明、GPU 粒子系统，以及动态柔和阴影。2022 年 9 月，Godot 4 进入 beta 阶段，并带来更佳稳定性与效能。此外也加入 WebXR 支援、Android 与 iOS 的 C# 支援，以及新的音讯功能。2023 年 3 月 1 日，Godot 4 在多个 beta 版本及错误修正后正式作为稳定版发布。它提升了图形品质、渲染最佳化技术，并加入无障碍功能。

接下来于 2023 年稍晚推出的 Godot 4.1，加入了实验性的场景多执行绪、编辑器改良，以及 C# 的进一步增强。

Godot 4.2 于 2023 年 11 月 30 日发布，重作了动画工具与粒子系统、加入 GDExtension、改进汇入流程，并加入 FSR 2.2 支援。

Godot 4.3 于 2024 年 8 月 15 日发布，新增透过非循环图（acyclic graphs）的 GPU 同步、渲染管线合成器效果，以及改良的 3D 动画重定向。

Godot 4.4 于 2025 年 3 月 5 日发布，并引入 Jolt 物理引擎整合。此版本聚焦于持续提升开发者体验与跨平台效能。

Godot 4.5 于 2025 年 9 月 15 日发布，新增多项功能，例如模板测试（stencil buffer）支援，以及重新设计的 TileMapLayer 碰撞系统，该系统会在可能时将多个 cell 的碰撞形状合并成较大的碰撞体。

### 发布历史

版本｜发布日期｜备注｜最新补丁发布

o｜2014年12月｜首个稳定版本｜1.0

o｜2015年5月｜优化了代码编辑器的自动补全功能，加入了可视化着色器编辑器和2D导航多边形支持，重写了2D引擎。｜1.1

o｜2016年2月｜更新了UI，增强了调试器｜2.0.4.1

o｜2016年7月｜加入了素材数据库、性能分析器、以及插件API。｜2.1.6

o｜2018年1月｜加入了PBR渲染器以及对Mono（C#）的支持。使用Bullet作为默认物理引擎。｜3.0.6

o｜2019年3月｜为GDScript加入了静态类型支持及脚本类系统，并且加入了OpenGL ES 2.0渲染器。｜3.1.2

o｜2020年1月｜支持glTF 2.0文件，加入了OpenGL ES 2.0 批量渲染、iOS的C#支持，优化了大量文档。｜3.2.3

o｜2021年4月｜加入了对ARM macOS、Android AAB、MP3、FBX、WebXR的支持，并且开始提供网页版编辑器。｜3.3.4

o｜2021年11月｜重写了主题编辑器，优化了ACES色调映射、加入了对PWA、物理输入、glTF 2.0导出的支持。｜3.4.5

2022年8月｜加入了Android编辑器、着色器异步编译、物理插值、材质覆盖层，改进了导航系统。｜3.5.2

c｜2024年9月｜2D物理插值、网格合并、离散LOD。为LTS版本。｜3.6.2

o｜2023年3月｜支持Vulkan图形API及最新版Mono。加入基于SDF的全局光照，以及很多编辑器修改和性能提升。｜4.0.4

o｜2023年7月｜新增实验性的场景多执行绪功能、编辑器强化、和C#性能提升｜4.1.4

2023年11月｜重新设计动画工具和粒子系统、新增GDExtension功能、改善汇入管线、支援FSR 2.2。｜4.2.2

2024年8月15日｜透过无环图实现GPU同步。｜4.3

2025年3月｜Metal渲染后端、游戏内交互式编辑、超级着色器、管线预编译、Jolt物理引擎。｜4.4.1

2025年9月｜支持Wayland、NativeAOT，3D物理插值改进、模板缓冲、着色器预编译。｜4.5.1

c｜2026年1月｜库构建，ObjectDB 分析，现代化主题等。｜4.6

## 游戏作品

- RPG in a Box（2019）
- en （2021）
- 刺猬索尼克 缤纷色彩（2021）（采用部分引擎源代码）
- Lumencraft（2022）
- Dome Keeper （2022）
- HAYAI（2022）
- Swords and Sandals Immortals（2022）
- Endoparasitic（2022）
- 魔导书幸存者（2022）
- 文字游戏（2022）
- Brotato（2023）
- 恶魔轮盘（2023）
- 租户赌财运（2023）
- 直到那时（2024）
- 背包乱斗 (2024)
- 杀戮尖塔2（2026）

## 争议

2024年9月27日，Godot团队在X上发布了一条引起争议的帖文。

帖文称Godot接纳支持觉醒的开发者并将Godot称为Wokot，之后遭到部分游戏开发者和捐助者的批评。

Godot团队称此贴文是在评论另一条批评觉醒开发者使用现成游戏引擎的贴文。

## 基本资料

- 开发者：Juan Linietsky、Ariel Manzur、Rémi Verschelde及使用者社群
- 发行日期：2014年1月14日
- 编程语言：GDScript、VisualScript、C++、C♯
- 操作系统：Windows、macOS、Linux、Android
- 平台：Windows、macOS、Linux、BSD、Haiku、iOS、Android、HTML5、WebAssembly、Xbox One、通用Windows平台
- 类型：游戏引擎
- 许可协议：MIT许可证
- 日语原文：GDScript
- 编程范型：面向对象
- 开发者：Godot社区
- 类型系统：动态
- 受影响于：C语言, C++, Python
- 操作系统：跨平台
- 网站： docs.godotengine.org
- 文件扩展名：.gd