Godot
此條目的語調或風格或許不適合百科全書。 (2019年5月22日) |
Godot是一款多功能、跨平台的2D與3D開源遊戲引擎。可運行於Windows、macOS、Linux等多種操作系統。而其創建的遊戲可運行於PC、Android、iOS、HTML5等平台。
開發者 | Juan Linietsky、Ariel Manzur、Rémi Verschelde及使用者社群 |
---|---|
首次發布 | 2014年1月14日[1] |
當前版本 | |
源代碼庫 | github |
編程語言 | GDScript、VisualScript、C++、C# |
操作系統 | Windows、macOS、Linux、Android |
平台 | Windows、macOS、Linux、BSD、Haiku、iOS、Android、HTML5、WebAssembly、Xbox One、通用Windows平台 |
類型 | 遊戲引擎 |
許可協議 | MIT許可證 |
網站 | godotengine |
特性
Godot在MIT許可證下完全自由開源,且受到軟體自由保護組織的支持。改編過的遊戲乃至引擎的每一行代碼,都屬於用戶自己所有。Godot的開發是完全獨立且由社區驅動的,允許使用者按照自己的期望去雕塑他們的引擎。
引擎的架構是圍繞「節點」樹設計的。節點組織在「場景」中,場景可以復用、實例化、繼承。包括腳本和圖形資產在內的所有遊戲資源都是作為文件系統中的文件保存的,不依賴於數據庫,可以方便使用版本控制的開發團隊進行協作。
支持的平台
Godot支持進行多平台部署,能夠針對不同的平台指定不同的紋理壓縮方法和分辨率等設置。官方網站上僅提供適用於編輯器平台的二進制文件,導出到其他平台需要通過編輯器進行。
用於開發遊戲的Godot編輯器支持如下平台:
- Linux、macOS、Windows等桌面平台。通過官網、Steam、Itch.io分發。支持BSD,但必須手動編譯。
- HTML5平台,提供有Web編輯器[1]。 (頁面存檔備份,存於網際網路檔案館)[5]
- 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社區 |
當前版本 | |
型態系統 | 動態 |
操作系統 | 跨平臺 |
文件擴展名 | .gd |
網站 | docs.godotengine.org |
啟發語言 | |
C, C++, Python |
Godot內置的GDScript腳本語言是一種高級動態類型編程語言,語法與Python類似。與Python不同,GDScript是針對Godot的場景架構設計的,一個文件就是一個類,並且可以為變量限定類型。
開發GDScript之前,Godot的開發者嘗試使用過Lua、Python、Squirrel等第三方腳本語言,但最終為了優化和編輯器集成選擇使用自定義的語言。
簡單的Hello World程序如下:
func _ready():
print("Hello World")
而更為複雜的,用於生成斐波那契數列的程序可以寫為:
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的圖形引擎在所有平台上均使用OpenGL或OpenGL ES。正在開發的Godot 4中將加入Vulkan支持,可以通過MoltenVK支持Metal。
着色器語言使用的是一種自定義的語言,與GLSL類似。着色器可用於材質和渲染。
Godot的2D圖形引擎與3D圖形引擎是獨立的。可以使用「視口節點(Viewport node)」混合2D和3D內容。
其他特性
Godot擁有強大的動畫系統,可以通過可視化的方式實現骨骼動畫、混合、動畫樹、實時過場動畫。遊戲實體上的幾乎所有變量都能夠進行動畫。
其他特性包括:
歷史
Godot最初於2007年由Juan Linietsky(reduz)和Ariel Manzur(punto)開發[6][7]。Linietsky在一次演講中表示Godot的名稱來源於薩繆爾·貝克特的戲劇《等待戈多》,代表向引擎中不斷加入新功能的願望,可以讓引擎無限接近全能的狀態[8]。2014年2月,Godot在GitHub上開源,使用MIT協議[9]。
2014年12月15日,Godot迎來了首個穩定版本1.0,加入了光線映射、導航網格支持、以及許多着色器[10]。
2015年5月21日,1.1版本發布,重寫了2D引擎,完善了代碼編輯器的自動補全功能和Blender Collada導出器,加入了可視化着色器編輯器、全新的操作系統窗口及屏幕管理API、全新的2D導航多邊形支持、以及暗色主題。[11]重寫後的2D引擎支持着色器、材質、各節點獨立的Z排序、燈光、基於多邊形遮擋的陰影、法線映射、以及距離場字體。2015年11月4日,Godot加入了軟件自由保護組織[12]。
2020年1月29日,3.2版本發布,大幅優化了文檔以及對C#和glTF 2.0的支持。與此同時,開發組決定正式開始投入4.0版本的開發,3.2版本將作為長期支持版本維護[13]。
由于越來越多4.0版本的功能被移植回3.2開發分支,遠遠超出了3.2.X版本僅作維護、不添加新功能的意圖,開發組於2021年3月17日決定將長期支持版本從3.2改為3.X[14]。原本正處於RC狀態的預覽版3.2.4 RC 5在後續發布時也隨之將版本號改成了3.3 RC 6。
2022年11月1日,Godot建立了自己的基金會,離開了軟件自由保護組織[15][16]。
2023年3月1日,在經歷了許多beta版本和問題修復後,Godot 4正式發布。這是一次主版本的更新,重寫了渲染系統,加入了對Vulkan圖形API的支持,提升了GDScript的性能和穩定性,加強了物理和動畫系統,還加入了很多其他功能和問題修復。
發布歷史
舊版本,仍被支援
當前版本
最新預覽版本
未來版本
版本 | 發布日期[17] | 備註 | 最新補丁發布 |
---|---|---|---|
1.0 | 2014年12月 | 首個穩定版本 | 1.0 |
1.1 | 2015年5月 | 優化了代碼編輯器的自動補全功能,加入了可視化着色器編輯器和2D導航多邊形支持,重寫了2D引擎。 | 1.1 |
2.0 | 2016年2月 | 更新了UI,增強了調試器 | 2.0.4.1 |
2.1 | 2016年7月 | 加入了素材數據庫、性能分析器、以及插件API。 | 2.1.6 |
3.0 | 2018年1月 | 加入了PBR渲染器以及對Mono(C#)的支持。使用Bullet作為默認物理引擎。 | 3.0.6 |
3.1 | 2019年3月 | 為GDScript加入了靜態類型支持及腳本類系統,並且加入了OpenGL ES 2.0渲染器。 | 3.1.2 |
3.2 | 2020年1月 | 支持glTF 2.0文件,加入了OpenGL ES 2.0 批量渲染、iOS的C#支持,優化了大量文檔。 | 3.2.3 |
3.3 | 2021年4月 | 加入了對ARM macOS、Android AAB、MP3、FBX、WebXR的支持,並且開始提供網頁版編輯器。 | 3.3.4 |
3.4 | 2021年11月 | 重寫了主題編輯器,優化了ACES色調映射、加入了對PWA、物理輸入、glTF 2.0導出的支持。 | 3.4.5 |
3.5 | 2022年8月 | 加入了Android編輯器、着色器異步編譯、物理插值、材質覆蓋層,改進了導航系統。 | 3.5.2 |
3.6 | 未定[18] | Godot 3.x的下一個次版本更新,為LTS版本。 | 3.6 beta 4[19] |
4.0 | 2023年3月 | 支持Vulkan圖形API及最新版Mono。加入基於SDF的全局光照,以及很多編輯器修改和性能提升。 | 4.0.4 |
4.1 | 2023年7月 | 新增實驗性的場景多執行緒功能、編輯器強化、和C#性能提升[20] | 4.1.4[21]。 |
4.2 | 2023年11月 | 重新設計動畫工具和粒子系統、新增GDExtension功能、改善匯入管線、支援FSR 2.2[22]。 | 4.2.2[21] |
4.3 | 2024年8月15日 | 透過無環圖實現GPU同步[23]。 | 4.3.beta1 |
遊戲作品
- RPG in a Box (2019)
- Brotato (2022)
- Lumencraft (2022)
- Dome Keeper (2022)
- HAYAI (2022)
- Swords and Sandals Immortals (2022)
- Endoparasitic (2022)
- 魔導書倖存者 (2022)
- 文字遊戲 (2022)
- 租戶賭財運 (2023)
- 週五放克夜 (VR)
- Cruelty Squad (頁面存檔備份,存於網際網路檔案館)
- Kingdoms of the Dump (頁面存檔備份,存於網際網路檔案館)
- Gawr Gura: Quest for Bread
- 刺蝟索尼克 繽紛色彩(採用部分引擎原始碼)
爭議
Godot Engine | |
---|---|
@godotengine |
Apparently game engines are woke now? Well then, we won't complain 🌈
Show us your #Wokot games below 👇
27 Sept 2024[24]
2024年9月27日,Godot團隊在X上發布了一條引起爭議的帖文。
另見
參考資料
- ^ Linietsky, Juan. Godot Engine - First public release!. Godot Engine. 2014-01-14 [2019-07-01]. (原始內容存檔於2019-07-01).
- ^ 2.0 2.1 Godot 4.3, a shared effort.
- ^ 3.0 3.1 https://godotengine.org/article/godot-3-6-finally-released/.
- ^ 4.0 4.1 https://github.com/godotengine/godot/releases/tag/3.6-stable.
- ^ Godot Engine Web Editor. Godot Engine Web Editor. [2023-11-05]. (原始內容存檔於2023-10-16) (英語).
- ^ StraToN. SteamLUG Cast. [18 June 2016]. (原始內容存檔於2018-06-12).
- ^ reduz. Godot history in images!. [18 June 2016]. (原始內容存檔於2021-05-15).
- ^ Juan Linietsky presentation of Godot at RMLL 2015 in Beauvais, France. 7 July 2015 [2021-03-02]. (原始內容存檔於2015-10-05).
- ^ liamdawe. Godot Game Engine Is Now Open Source. 14 February 2014 [2021-03-02]. (原始內容存檔於2020-06-10).
- ^ Linietsky, Juan. Godot Engine Reaches 1.0, Releases First Stable. Godot Engine. 2014-12-15 [2019-07-01]. (原始內容存檔於2019-07-01).
- ^ Linietsky, Juan. Godot 1.1 Out!!. Godot Engine. 2015-05-21 [2019-07-01]. (原始內容存檔於2019-07-01).
- ^ Godot Game Engine is Conservancy's Newest Member Project. [13 November 2015]. (原始內容存檔於2019-09-18).
- ^ Verschelde, Rémi. Here comes Godot 3.2, with quality as priority. Godot Engine. 2020-01-29 [2021-03-22]. (原始內容存檔於2021-04-22).
- ^ Verschelde, Rémi. Versioning change for Godot 3.x. Godot Engine. 2020-03-17 [2021-03-22]. (原始內容存檔於2021-05-15).
- ^ Announcing Godot's Graduation from SFC!. Software Freedom Conservancy. 1 November 2022 [2022-11-18]. (原始內容存檔於2022-12-01) (英語).
- ^ Godot’s Graduation: Godot moves to a new Foundation. Godot Engine. 1 November 2022 [2022-11-18]. (原始內容存檔於2023-01-05) (英語).
- ^ Godot Release Versions. Godot Release Versions. [2021-05-10]. (原始內容存檔於2022-11-18) (英語).
- ^ Engine, Godot. Dev snapshot: Godot 3.6 beta 4. Godot Engine. [2024-04-23]. (原始內容存檔於2024-03-13) (英語).
- ^ Dev snapshot: Godot 3.6 beta 4. Godot Engine. 2024-01-25 [2023-08-29]. (原始內容存檔於2024-03-13) (英語).
- ^ Larabel, Michael. Godot 4.1 Released With More Improvements To This Open-Source Game Engine. Phoronix. 6 July 2023 [9 September 2023]. (原始內容存檔於2024-04-17) (英語).
- ^ 21.0 21.1 Maintenance release: Godot 4.2.2 & 4.1.4. Godot Engine. 2024-04-17 [2024-04-18]. (原始內容存檔於2024-04-22) (英語).
- ^ Godot 4.2 arrives in style!. Godot Engine. 2023-11-30 [30 November 2023]. (原始內容存檔於2024-05-10) (英語).
- ^ Banini, Darío. GPU synchronization in Godot 4.3 is getting a major upgrade. Godot Engine. [2024-02-21]. (原始內容存檔於2024-04-05) (英語).
- ^ Godot Engine [@godotengine]. Apparently game engines are woke now? Well then, we won't complain 🌈 Show us your #Wokot games below 👇 (推文). 27 Sept 2024 –透過Twitter.
- ^ 開源遊戲引擎「Godot覺醒變Wokot」炎上!開發者、捐款者希望別搞政治 下一秒卻遭到封鎖
- ^ @1839795089121403320. (context) (推文). 2024-09-28 –透過Twitter.
- ^ @kryztofcheski. It makes sense doesn't it? Woke studios always use pre built engines to make games because they can't build their own engines. (推文). 2024-09-25 –透過Twitter.
外部連結
- 官方網站(英文)
- Godot Docs文件 (繁體中文)
- Godot Docs文件 (簡體中文)
- Godot Docs文件 (英文)