Godot

用於製作2D與3D遊戲的自由與開放原始碼跨平台遊戲引擎

Godot是一款多功能、跨平台的2D與3D開源遊戲引擎。可執行於WindowsmacOSLinux等多種作業系統。而其建立的遊戲可執行於PCAndroidiOSHTML5等平台。

Godot
Godot 3.4編輯器的螢幕截圖
Godot 3.4編輯器的螢幕截圖
開發者Juan Linietsky、Ariel Manzur、Rémi Verschelde及用戶社群
首次釋出2014年1月14日,​10年前​(2014-01-14[1]
目前版本
  • 4.3(2024年8月15日;穩定版本)[2]
  • 3.6(2024年9月9日;長期支援)[3][4]
編輯維基數據連結
原始碼庫github.com/godotengine/godot
程式語言GDScript、VisualScript、C++C#
作業系統WindowsmacOSLinuxAndroid
平台WindowsmacOSLinuxBSDHaikuiOSAndroidHTML5WebAssemblyXbox One通用Windows平台
類型遊戲引擎
特許條款MIT特許條款
網站godotengine.org

特性

編輯

Godot在MIT特許條款下完全自由開源,且受到軟件自由保護組織的支援。改編過的遊戲乃至引擎的每一行代碼,都屬於用戶自己所有。Godot的開發是完全獨立且由社區驅動的,允許用戶按照自己的期望去雕塑他們的引擎。

引擎的架構是圍繞「節點」樹設計的。節點組織在「場景」中,場景可以復用、實例化、繼承。包括指令碼和圖形資產在內的所有遊戲資源都是作為檔案系統中的檔案儲存的,不依賴於資料庫,可以方便使用版本控制的開發團隊進行協同運作。

支援的平台

編輯

Godot支援進行多平台部署,能夠針對不同的平台指定不同的紋理壓縮方法和解像度等設置。官方網站上僅提供適用於編輯器平台的二進制檔案,匯出到其他平台需要通過編輯器進行。

用於開發遊戲的Godot編輯器支援如下平台:

使用Godot製作的遊戲能夠在更多的平台上執行。截止到3.5.1,除了編輯器所支援的平台外,還支援以下平台:

雖然Godot引擎能夠在主機平台執行,但Godot無法提供官方支援。因為Godot是開源專案,無法獲得公司授權,也無法將主機平台所需的相關程式碼按照開源特許釋出。可以使用第三方公司的主機平台的移植服務將Godot遊戲匯出到主機平台。

指令碼

編輯

Godot支援使用不同的程式語言開發遊戲,比如Godot自己的GDScript語言、C#C++等。引擎還提供了GDExtension介面(3.x版本時期為GDNative),可用於建立其他語言的繫結。官方提供的CC++支援就是通過GDExtension實現的。社區支援的語言套件括RustNimJavaScriptHaskellClojureSwiftD

GDScript

編輯
GDScript
編程範型物件導向
實作者Godot社區
目前版本
  • 4.3(2024年8月15日;穩定版本)[2]
  • 3.6(2024年9月9日;長期支援)[3][4]
 
型態系統動態
作業系統跨平臺
副檔名.gd
網站docs.godotengine.org
啟發語言
C, C++, Python

Godot內建的GDScript手稿語言是一種進階動態型別程式語言,語法與Python類似。與Python不同,GDScript是針對Godot的場景架構設計的,一個檔案就是一個類,並且可以為變數限定類型。

開發GDScript之前,Godot的開發者嘗試使用過LuaPythonSquirrel英語Squirrel (programming language)等第三方手稿語言,但最終為了最佳化和編輯器整合選擇使用自訂的語言。

簡單的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的圖形引擎在所有平台上均使用OpenGLOpenGL ES。正在開發的Godot 4中將加入Vulkan支援,可以通過MoltenVK英語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,加入了光線對映導航網格英語Navigation mesh支援、以及許多着色器[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的效能和穩定性,加強了物理和動畫系統,還加入了很多其他功能和問題修復。

釋出歷史

編輯
格式:
舊版本
舊版本,仍被支援
目前版本
最新預覽版本
未來版本
Godot 引擎釋出歷史
版本 釋出日期[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

遊戲作品

編輯

爭議

編輯
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上釋出了一條引起爭議的帖文。

帖文稱Godot接納支援覺醒的開發者並將Godot稱為Wokot,之後遭到部分遊戲開發者和捐助者的批評。[25]

Godot團隊稱[26]此貼文是在評論另一條批評覺醒開發者使用現成遊戲引擎的貼文[27]

另見

編輯

參考資料

編輯
  1. ^ Linietsky, Juan. Godot Engine - First public release!. Godot Engine. 2014-01-14 [2019-07-01]. (原始內容存檔於2019-07-01). 
  2. ^ 2.0 2.1 Godot 4.3, a shared effort. 
  3. ^ 3.0 3.1 https://godotengine.org/article/godot-3-6-finally-released/.
  4. ^ 4.0 4.1 https://github.com/godotengine/godot/releases/tag/3.6-stable.
  5. ^ Godot Engine Web Editor. Godot Engine Web Editor. [2023-11-05]. (原始內容存檔於2023-10-16) (英語). 
  6. ^ StraToN. SteamLUG Cast. [18 June 2016]. (原始內容存檔於2018-06-12). 
  7. ^ reduz. Godot history in images!. [18 June 2016]. (原始內容存檔於2021-05-15). 
  8. ^ Juan Linietsky presentation of Godot at RMLL 2015 in Beauvais, France. 7 July 2015 [2021-03-02]. (原始內容存檔於2015-10-05). 
  9. ^ liamdawe. Godot Game Engine Is Now Open Source. 14 February 2014 [2021-03-02]. (原始內容存檔於2020-06-10). 
  10. ^ Linietsky, Juan. Godot Engine Reaches 1.0, Releases First Stable. Godot Engine. 2014-12-15 [2019-07-01]. (原始內容存檔於2019-07-01). 
  11. ^ Linietsky, Juan. Godot 1.1 Out!!. Godot Engine. 2015-05-21 [2019-07-01]. (原始內容存檔於2019-07-01). 
  12. ^ Godot Game Engine is Conservancy's Newest Member Project. [13 November 2015]. (原始內容存檔於2019-09-18). 
  13. ^ Verschelde, Rémi. Here comes Godot 3.2, with quality as priority. Godot Engine. 2020-01-29 [2021-03-22]. (原始內容存檔於2021-04-22). 
  14. ^ Verschelde, Rémi. Versioning change for Godot 3.x. Godot Engine. 2020-03-17 [2021-03-22]. (原始內容存檔於2021-05-15). 
  15. ^ Announcing Godot's Graduation from SFC!. Software Freedom Conservancy. 1 November 2022 [2022-11-18]. (原始內容存檔於2022-12-01) (英語). 
  16. ^ Godot’s Graduation: Godot moves to a new Foundation. Godot Engine. 1 November 2022 [2022-11-18]. (原始內容存檔於2023-01-05) (英語). 
  17. ^ Godot Release Versions. Godot Release Versions. [2021-05-10]. (原始內容存檔於2022-11-18) (英語). 
  18. ^ Engine, Godot. Dev snapshot: Godot 3.6 beta 4. Godot Engine. [2024-04-23]. (原始內容存檔於2024-03-13) (英語). 
  19. ^ Dev snapshot: Godot 3.6 beta 4. Godot Engine. 2024-01-25 [2023-08-29]. (原始內容存檔於2024-03-13) (英語). 
  20. ^ 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. ^ 21.0 21.1 Maintenance release: Godot 4.2.2 & 4.1.4. Godot Engine. 2024-04-17 [2024-04-18]. (原始內容存檔於2024-04-22) (英語). 
  22. ^ Godot 4.2 arrives in style!. Godot Engine. 2023-11-30 [30 November 2023]. (原始內容存檔於2024-05-10) (英語). 
  23. ^ Banini, Darío. GPU synchronization in Godot 4.3 is getting a major upgrade. Godot Engine. [2024-02-21]. (原始內容存檔於2024-04-05) (英語). 
  24. ^ 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. 
  25. ^ 開源遊戲引擎「Godot覺醒變Wokot」炎上!開發者、捐款者希望別搞政治 下一秒卻遭到封鎖
  26. ^ @1839795089121403320. (context) (推文). 2024-09-28 –透過Twitter. 
  27. ^ @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. 

外部連結

編輯