時隔 5 年,3 年匠心打造的 Godot Engine 4.0 都帶來了哪些驚喜?

csdn 發佈 2024-04-07T01:17:38.474506+00:00

【CSDN 編者按】語言經歷了漫長的等待,萬眾矚目的 Godot Engine 4.0 正式版在其 3.0 版本發布 5 年以後,終於帶著海量令人興奮的新功能橫空出世!

【CSDN 編者按】語言

經歷了漫長的等待,萬眾矚目的 Godot Engine 4.0 正式版在其 3.0 版本發布 5 年以後,終於帶著海量令人興奮的新功能橫空出世!

整理 | 開發遊戲的老王 責編 | 王子彧

出品 | CSDN(ID:CSDNnews)

什麼是Godot Engine?

它是一款完全免費的輕量級、開源、跨平台、2D/3D遊戲引擎。Godot Engine 最初由它的創始人阿根廷資深遊戲開發者 Juan Linietsky 在 2014 年開源,歷經近十年的打磨,在其 2.0、3.0 版本問世以後逐漸廣為人知,近幾年 Godot Engine 更是成為了遊戲開發界的「網紅」產品,在國內外技術媒體的遊戲引擎評測專題中,Godot 經常成為 Unreal Engine 以及 Unity 等重量級遊戲引擎的比較對象。

筆者近幾年也先後為 Godot Engine 撰寫了一系列的開發教程,並且還曾基於 Godot Engine 復刻過「羊了個羊」。

近幾年由 Godot Engine 開發的商業遊戲作品更是不斷湧現:

Primal Light - Fat Gem

Fist of the Forgotten - Lone Wulf Studio

Pingo Adventure - Orb Square Studio

您可能很好奇:為什麼一個由小團隊開發的遊戲引擎能夠在今天這個強手如林的遊戲引擎戰場被人們如此津津樂道?作為 Godot Engine 的小迷弟,老王很自豪地告訴您:Godot 是資深遊戲匠人為遊戲開發者量身定製的一款簡約而不簡單的匠心之作!它的核心理念就是「專治遊戲開發中的各種痛點」,簡單地說就是「友好」。單論「友好」二字,如果 Godot 在引擎界排第二,那麼絕沒有哪個引擎敢自稱第一。

Godot 很「友好」

Godot 的友好性主要體現在如下幾個方面:

  • 免費:而且是絕對的免費,正如 Godot 在 2015 年聲明免費時提出的口號 「Your game is all yours」。

  • 輕量:不足百兆的體積里包含著真正意義上的 All-in-One 遊戲引擎(引擎編輯器以及代碼編輯器),並且它是無需安裝的綠色軟體,開箱即用,對初學者友好至極。

  • 開源:Godot Engine的Github地址

  • 跨平台:支持 Windows、macOS、Linux,還擁有基於瀏覽器的版本。Godot 甚至在蘋果剛發布 M1 晶片不久就第一時間提供支持該晶片的引擎版本。

  • 簡單易用的腳本語言:Godot 內置了一種名為 GDScript 的自研腳本語言,完全針對 Godot Engine 並且極其簡單易用,即便對於編程零基礎的小白也非常容易上手。(附《GDScript官方文檔》)

  • 基於節點(Node)的開發模式:Godot 的工作邏輯也非常簡單清晰,概括成一句話,那就是:「開發節點、使用節點」,只要理解了節點,Godot 的工作邏輯也就掌握得八九不離十了。因為在 Godot 中,萬事萬物皆為節點。

Godot 的節點模式幾乎可以等價轉換成 Unity 中的遊戲體-組件模式,所以有 Unity 使用經驗的遊戲開發者幾乎可以無縫過渡到 Godot 引擎。

  • 高度可擴展性:Godot Engine 不僅擁有完善的插件擴展系統,它的語言擴展系統也是非常優秀的,除了上文提到的內置 GDScript 以及原生的 C++ 和可視化編程的支持。社區開發者還為 Godot 提供了諸如 C#、JS、TS、Rust、Lua 等第三方開發語言的支持。

綜上所述,Godot Engine 的體貼友好會讓每一個遊戲開發者愛不釋手,即使它尚未成為您的主要開發工具,這個引擎的發展也絕對值得您的關注。

全新升級版本驚喜不斷

Godot Engine 在它的 3.0 時代可以說已經賺足了開發者們的眼球,但作為一個「小作坊」開發的遊戲引擎,必須誠實地講,它的渲染性能、精度以及高級遊戲內容製作能力方面還有很大的提升空間。這也是為什麼截至目前,市面上的 3A 級遊戲鮮有使用 Godot 開發的原因。然而,Godot Engine 4.0 作為近 5 年來體量最大的一次版本升級,可以說再次為開發者帶來了巨大的驚喜。接下來,本文就為大家簡單介紹一下 4.0 版本中有哪些值得大家矚目的亮點。

以下內容參考了Godot官方文章《Godot 4.0 sets sail: All aboard for new horizons 》

3D 遊戲及渲染方面的提升

基於 Vulkan 的渲染模塊

Godot Engine 4.0 最大亮點無疑是重新構建了自身的渲染模塊。面向高性能終端設備 Godot 加入了號稱性能怪獸的 Vulkan 渲染庫,Vulkan 的引入讓Godot 的渲染效果有了前所未有的巨大提升,更加高質量的光照以及更加乾淨通透的陰影效果,讓人簡直不敢相信這是曾經的 Godot。

而面向低性能終端及行動裝置,Godot 也重構了底層的 OpenGL 封裝,並且在未來還會增加陰影及反射探頭等功能的支持。專門面向 Windows 和 XBox 的 DirectX 12 支持,也將在下一個版本更新中於大家見面。

全新的全局光照系統(SDFGI – Signed Distance Field Global Illumination)

Godot 4.0 從零開始構建了新的基於有向距離場(SDF 即 Signed Distance Field)的實時全局光照系統,該系統主要面向大型開放場景的全局光照。筆者曾經在 2020 年翻譯過 Godot 關於 SDF 的官方文檔,有興趣的朋友歡迎進一步閱讀(詳見《Godot 4.0 中的基於有向距離場 SDF(Signed Distance Field)的實時全局光照技術》)

基於體素的全局光照(Voxel Based Global Illumination)

面向中小型場景全新的基於體素的實時全局光照系統代替了原有的 GIProbe,這使得諸如室內這樣的場景中,實時全局光照的細節有了巨大的提升,即使你依然使用烘焙光照貼圖的傳統方式,4.0 版本採用的 GPU 烘焙方式,也可以大大提升你的處理速度。

新的渲染優化技術

新的遮擋剔除(Occlusion Culling)技術可以動態檢測被其它物體遮擋的模型並從渲染隊列里將其移除,從而提升 CPU 和 GPU 的效率。

在大型開放場景中由於只有少數對象互相重疊,遮擋剔除的效果並不明顯,此時我們可以選擇使用新的自動網格 LOD 或手動 HLOD 以達到對可視範圍的全面掌控。

中期及後期處理能力的提升

面向高性能終端,Godot 4.0提供 SSIL(Screen Space Indirect Lighting)即:屏幕空間間接光照技術,該技術可以通過對屏幕空間的採樣提升可視範圍內的暗部以及間接光照的效果。另外,通過強大的 SSAO(Screen Space Ambient Occlusion) 即屏幕空間環境光遮蔽技術,開發者可以訪問諸如光效(即:受直射光影響的程度)等設置,並通過環境光遮蔽貼圖來忽略指定對象,從而達到優化的目的。

對於攝影向的用戶,可以通過 Godot 4.0 提供的擬真光照單位(Realistic Light Units)來調節光照強度,並使用標準照相機設置(諸如:光圈、快門和 ISO)等參數場景的最終亮度。在默認情況下,物理光照單位(Physical Light Units)是被關閉的,但你可以在項目設置中將它開啟。

2D 遊戲及渲染方面的提升

Godot 4.0 對 2D 遊戲開發的提升主要體現在工作流的顯著改善。

新的關卡編輯器

綜合了廣大用戶的諸多反饋和建議以後,Godot 新版本中重新設計了瓦塊地圖編輯器,在新的編輯器中開發者可以更加自由地編輯地圖以及為瓦塊添加元數據和動畫,並且可以更加高效地調整碰撞盒、導航、錨點等屬性。

新的編輯器還擁有一個自動地形生成系統,用以提高大型場景繪製效率。還有一個隨機繪製系統用以隨機擺放諸如植物、石頭這類東西。我們還可以把選擇的對象以圖章的形式保存並復用。瓦塊的貼圖還可以自動延展以避免縫隙。這個全新的地圖編輯器雖然可能會帶來一點學習上的門檻,但真的很值得!

2D 光照和陰影的提升

在著色器中使用有向距離場,可以使我們獲得很多諸如長陰影、光暈、清晰描邊等高級效果。我們還可以使用法線貼圖讓畫面更具立體感。

著色器和特效方面的提升

新的大氣效果

體積霧 (Volumetric fog )在 Godot 4.0 中第一次亮相。通過 FogVolume 節點,我們可以定義全局體積霧效果或者指定區域的體積霧效果,甚至還可以通過編寫 FogVolume 節點上的著色器創造更複雜的動態體積霧效果。

Godot4.0 中還引入了天空著色器(Sky Shader),通過它我們可以創建可以實時更新的動態天空效果。

紋理和材質投影(貼花)

Godot 也有動態貼花了,為模型增加一些表面細節,甚至做一些塗鴉以及血跡效果,太方便了!

腳本語言方面的提升

GDScript

依然是在接受了眾多用戶反饋的基礎上,Godot 4.0 中的 GDScript 語言增加了很多大家期待已久的功能。提升了靜態類型系統的穩定性,並且消除了循環依賴的問題,而且可以定義靜態數組類型了。增加了屬性(Property)句法,以及 await 和 super 關鍵字等等。

雖然功能增強了,但運行效率和穩定性反而大大提升。

C#

Godot 4.0 對 C# 的支持也進一步提升,.Net 的版本升級到了 .Net 6,同時 C# 10 也成為默認的 C# 版本。

GDExtension(實驗性功能)

GDExtension 是 Godot 4.0 推出的一個新系統,旨在創建 GDNative 擴展以及使用 C、C++、Rust 等高性能語言自定義引擎模塊。需要注意的是,該系統目前處於實驗性階段,其 API 有可能變更。

物理方面的提升

自研的遊戲專用物理引擎

Godot 4.0 中拋棄了原先使用的 Bullet 物理引擎,重新自研了一套暫定名為Godot Physics 的遊戲專用物理引擎。說實話這一點頗讓筆者意外,這個決定無疑是大膽且充滿野心的。但是我還是相信 Godot 團隊的思路,正如他們最初放棄市面上所有現成的程式語言,為自己的引擎量身定製了 GDScript 一樣。相信遊戲專用物理引擎會帶來更大的靈活性。目前這個物理引擎正在逐一實現Bullet 的原有功能。

物理方面其它的提升

  • 多線程支持及性能優化;

  • 更好的 API 接口;

  • 更好的物理模擬穩定性。

動畫方面的提升

  • 動畫編輯器現在支持混合形變軌道,以及提升了貝塞爾曲線的工作流可以選擇並編輯多個曲線;

  • 改進了 3D 動畫的工作流;

  • 實現了動畫庫以及重定向系統;

  • 提供了對混合複雜動畫的支持;

  • 重寫了 Tween 動畫系統,API 更加簡潔易用,甚至無需再創建 Tween 節點了。

其它方面的提升

這次 Godot Engine 4.0 帶來的驚喜實在太多了,上面僅僅列舉了一部分,還有諸如:UI、Editor、XR、Networking、Audio、Platform Support 等方面的更新和提升筆者就不一一列舉了。意猶未盡的朋友敬請移步到 Godot官方文檔,了解更加詳細的內容。

Godot:只是開始,未來可期

看完上述令人興奮的新功能,各位看官意下如何?筆者真是迫不及待地想用 Godot 4.0 開發一個新項目了。然而,開發團隊在其官網中說雖然 4.0 是漫長的三年等待的結束,但對於 Godot 來講它只是一個開始,未來他們將繼續打磨引擎並且更加快速地疊代。來,大家一起喊:「 Godot,Yes!不負眾望,未來可期!」

參考連結:

  • Godot 4.0 sets sail: All aboard for new horizons:https://godotengine.org/article/godot-4-0-sets-sail/

  • 【手把手帶你Godot遊戲開發 第一彈】零基礎入門案例:FlappyBird(教程目錄及原始碼)https://orzgame.blog.csdn.net/article/details/105266192

  • 【手把手帶你Godot遊戲開發 第二彈】名場面臨摹https://orzgame.blog.csdn.net/article/details/105342392

  • Godot 4.0中的基於有向距離場SDF(Signed Distance Field)的實時全局光照技術:https://orzgame.blog.csdn.net/article/details/107008958

關鍵字: