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]。 (頁面存檔備份,存於網際網路檔案館)[4]
- 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)開發[5][6]。Linietsky在一次演講中表示Godot的名稱來源於薩繆爾·貝克特的戲劇《等待戈多》,代表向引擎中不斷加入新功能的願望,可以讓引擎無限接近全能的狀態[7]。2014年2月,Godot在GitHub上開源,使用MIT協定[8]。
2014年12月15日,Godot迎來了首個穩定版本1.0,加入了光線對映、導航網格支援、以及許多著色器[9]。
2015年5月21日,1.1版本釋出,重寫了2D引擎,完善了程式碼編輯器的自動補全功能和Blender Collada匯出器,加入了視覺化著色器編輯器、全新的作業系統窗口及螢幕管理API、全新的2D導航多邊形支援、以及暗色主題。[10]重寫後的2D引擎支援著色器、材質、各節點獨立的Z排序、燈光、基於多邊形遮擋的陰影、法線對映、以及距離場字型。2015年11月4日,Godot加入了軟體自由保護組織[11]。
2020年1月29日,3.2版本釋出,大幅最佳化了文件以及對C#和glTF 2.0的支援。與此同時,開發組決定正式開始投入4.0版本的開發,3.2版本將作為長期支援版本維護[12]。
由于越來越多4.0版本的功能被移植回3.2開發分支,遠遠超出了3.2.X版本僅作維護、不添加新功能的意圖,開發組於2021年3月17日決定將長期支援版本從3.2改為3.X[13]。原本正處於RC狀態的預覽版3.2.4 RC 5在後續釋出時也隨之將版本號改成了3.3 RC 6。
2022年11月1日,Godot建立了自己的基金會,離開了軟體自由保護組織[14][15]。
2023年3月1日,在經歷了許多beta版本和問題修復後,Godot 4正式釋出。這是一次主版本的更新,重寫了彩現系統,加入了對Vulkan圖形API的支援,提升了GDScript的效能和穩定性,加強了物理和動畫系統,還加入了很多其他功能和問題修復。
釋出歷史
編輯舊版本,仍被支援
目前版本
最新預覽版本
未來版本
版本 | 釋出日期[16] | 備註 | 最新修補程式釋出 |
---|---|---|---|
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 | 未定[17] | Godot 3.x的下一個次版本更新,為LTS版本。 | 3.6 beta 4[18] |
4.0 | 2023年3月 | 支援Vulkan圖形API及最新版Mono。加入基於SDF的全域光照,以及很多編輯器修改和效能提升。 | 4.0.4 |
4.1 | 2023年7月 | 新增實驗性的場景多執行緒功能、編輯器強化、和C#效能提升[19] | 4.1.4[20]。 |
4.2 | 2023年11月 | 重新設計動畫工具和粒子系統、新增GDExtension功能、改善匯入管線、支援FSR 2.2[21]。 | 4.2.2[20] |
4.3 | 2024年8月15日 | 透過無環圖實現GPU同步[22]。 | 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
- 音速小子 繽紛色彩(採用部分引擎原始碼)
另見
編輯參考資料
編輯- ^ Linietsky, Juan. Godot Engine - First public release!. Godot Engine. 2014-01-14 [2019-07-01]. (原始內容存檔於2019-07-01).
- ^ 2.0 2.1 https://godotengine.org/article/maintenance-release-godot-3-5-3/.
- ^ 3.0 3.1 Godot 4.3, a shared effort.
- ^ 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) (英語).
- ^ 20.0 20.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 Docs檔案 (繁體中文)
- Godot Docs檔案 (簡體中文)
- Godot Docs檔案 (英文)