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