您的位置:首頁>遊戲>正文

「遊戲開發」Godot 3 beta 上手體驗

關注“indienova”, 挖掘獨立遊戲的更多樂趣

引言

本人已經入手了 Godot 3 beta 閱讀了文檔並做了一些深度體驗, 總結4個字:相當期待!

終於除了 Unity 和 UE 以外, 又多了一個可選的帶編輯器的多平臺發佈免費引擎了!

廢話不多說, 我先說說適用人群並從中去介紹它的優點吧:

新手開發者

我覺得 Godot 的上手門檻相對於 Unity 來說更為簡單, Godot 使用的是自家研發的類 Python 的指令碼語言:GDscript, 上手難度是低於 C#的, 而且還支持腳本更改即時同步, 不需要重新編譯就可以立即看到效果, 這對新手開發者理解 API 及運算的敏銳度等都能夠帶來相當直觀的提升。

還有, 相信用過 Unity 的人都知道 Inspector 的拓展其實是比較麻煩的, 你苦讀多日好不容易熟悉了大體的 API 之後, 當需要拓展 Editor 之後才發現打開了另一扇罪之門, 這得多可怕?像什麼 PropertyDrawer, EditorWindow 等, 深入到工具層面的什麼 EditorGUI, EditorUtility 等等, 才有你好受的。

Godot 就不會有這問題, 首先你是不需要單純為了某個 getset 去搞一個 CustomEditor 的, 你只需要在腳本的開頭寫上一個 tool:

tool 可以理解為強大版的 ExecuteInEditMode, 之後你所有 Inspector 裡的數值都可以觸發 set 方法了!是不是很簡單?

如果你想要搞什麼自訂視窗, 那不要太簡單, 你也不需要去學什麼新的 API, 像那個某 U 還要學 GUI, 還有相對簡單點的什麼 GUILayout, 多麻煩!

在 Godot 裡, 你只要知道怎麼做遊戲 UI, 就知道怎麼搞自訂視窗, 因為整個編輯器和遊戲 UI 都是一個框架底下的產物!

不想寫程式?沒關係, Godot 的第二種類藍圖的視覺化程式設計就是你的最佳選擇啦!而且 Shader 都有視覺化編輯器(不過3.0先暫時拿掉了, 3.1才會回歸)!再看看旁邊那個某 U, 嗯……沒事, 人家資源商店強悍嘛, 你有錢也有一堆外掛程式任你選。

想要完全免費遊戲引擎的開發團隊

想要相對成熟, 並且更規範 2D 遊戲開發環境的開發團隊

用過 GMS 等 2D 引擎的人再去用 Unity2D 開發遊戲都肯定會掙扎過, 因為 Unity2D 始終不是正經的 2D 遊戲開發環境, 而是基於 3D 空間的偽 2D 開發環境, 很多時候想要實現一個 Pixel Perfect 的開發環境, 什麼以圖元點為移動單位, 還有獲取 Sprite 在空間中的絕對寬高都是相對麻煩的。

Godot 除了提供了獨立的 2D 開發環境以外, 也有自帶的 Tilemap 製作工具, 甚至能夠勝任六邊形, 2.5D 等的開發流程, 而且在 Shader 程式設計方面, 2D 也有相對簡化的版本, 所以在開發上可以節省不少時間和勞力成本。

此外, Godot 也有比 Unity 強大的動畫編輯工具, 不僅支援骨骼 Rig, 還支援紅藍的洋蔥模式, 往後也會支援 FFD, 整體來說對 2D 遊戲開發提供了相當不錯的開發環境。

非3A 級開發, 並對運行效率有追求的開發團隊

Unity 始終是個閉源的引擎, 一旦遇到了難以逾越的效率瓶頸就很難處理, 而且很多時候外掛程式也都是基於 c# 腳本開發的, 運行效率相比原生的肯定會大打折扣。 而 Godot 呢?Godot 開源!Godot 開源!Godot 開源!重要的事情說三遍!開源意味著什麼?可定制化啊!先不說直接把 Godot 作為固件 C++開發這種極端的方式, Godot 本身提供了 GDNative 這一管道。 這是啥呢?GDNative 允許開發者在引擎裡直接通過 C, C++, 或者 Python 等語言直接調用引擎所有的 API, 或是使用協力廠商外掛程式, 其效率可以說十分趨近于原生開發了!Procedural Generation 等等那些運算量極大的機制, 你在 Godot 裡效率真是想提高多少就能提高多少好嗎?

非土豪的中小型獨立的 Unity 開發者

沒錯, 說的就是我你他這些中小型獨立開發者,

不想學 GDScript?也不想用視覺化編輯器?嗯, 告訴你, Godot3.0 允許你用第三種語言開發, 那就是你常用, 陪伴你數載的 C#!驚不驚喜?意不意外?Godot 3.0 使用了最新版本的 Mono, 並且由微軟內部的研發人員直接參與(這是微軟贊助 Godot 的附加條件, 為了讓更多人使用 C#), 表現自然十分穩定!如果你和我一樣, 並不是所有外掛程式都能想買就買, 在空曠的環境底下, 我真的十分建議嘗試一下 Godot。 而且, Unity 的 Prefab 真的是讓人十分無奈, 為什麼 Nested Prefab 等了 N 個版本了到現在都沒有?而 Godot 的 Scene System 就真的有驚喜了, Unity 是 Scene + Prefab 的框架, 而 Godot 所有的物體和場景都是 Scene, 而且所有的 Scene 都可以繼承, 所以什麼基礎 Scene 啊, Nested Prefab 啊, 到了 Godot 都不是問題!你只需要個別決定哪個 Node(類似於 Unity 裡的 Component)是要獨立於其他的同類就可以了, 是不是很簡單?

除了上述所說的優點,其實 Godot 還有很多優點,例如可發佈 Html5,發佈體積小,引擎體積才20多 MB,PBR,全域光照,GPU Based 粒子系統,還有今天公佈的 LightMapping等等,都能成為各大開發者入坑的理由。

缺點

好了,吹了一堆,是時候也要來說一些不好聽的了:

一、太年輕

是的,3.0加了一堆新功能,甚至整個渲染底層都改了一遍,可想而知 Bug 自然會多如山,而且部分的編輯器體驗也不太友好,不過目前畢竟是 Beta 版本,希望正式版可以有或多或少的進步吧。

二、在國內發佈很繁瑣

引擎的體積會如此之小,原因是 Godot 把發佈的編譯器先拿掉了,所以當需要發佈時候,需要重新聯網去下載 Godot 發佈範本(Export Template),這時候問題就來了……下載速度會極慢!不科學上網的還真的很難解決。當然你也可以通過官方教程,去下載一個又一個的編譯器再使用命令列去完成編譯,但不管怎麼說,還是比較麻煩的。

三、2DSprite 不支持 sliced,tiled 等類型

這點還是比較傷心的,尤其在 Unity 加入這些功能以後再過來用,就會覺得有些失望。雖然可以用腳本去實現這個效果,但是用起來始終不太舒服,感覺也會有些混亂。

四、使用者較少,社區活躍度不足,缺乏有說服力的 Showcase

相比 Unity 和 Unreal 這些使用者較多的並更為成熟的引擎來說,Godot 遇到問題很難找到解決方案,尤其是最新的 Godot3.0,雖然目前可以通過 IRC,Reddit,Discord 的方式向社區提問,但是回饋一般比較慢,而且這些管道國內都不常用,再加上始終沒有說服力強大的 Showcase,所以也很難說服更多的人去使用 Godot,這可能會陷入不良的迴圈。

總結

其實從各種層面來說,Godot 都還是十分年輕的引擎,雖然問題有很多,但是他還是相當適合對某些方面有特殊需求或者真的很需要絕對免費的遊戲引擎的獨立開發者。如果單從引擎的功能來說,Godot3 不見得比 Unity 落後多少,但是 Unity 的資源商店太過於強大了,使得建立原型實在太過於便利,這是缺乏 Showcase 的 Godot 望塵莫及的。但是我相信隨著時間的反覆運算以及優秀的 Showcase 出現,Godot 肯定會在獨立遊戲圈帶起不小的旋風的。(也有人說用 Unity 做原型再到 Godot 裡做遊戲,我覺得這也是不錯的選擇哦)

Godot Engine 官網

https://godotengine.org/

©indienova

長按下方二維碼關注我們

indienvoa 獨立精神

是不是很簡單?

除了上述所說的優點,其實 Godot 還有很多優點,例如可發佈 Html5,發佈體積小,引擎體積才20多 MB,PBR,全域光照,GPU Based 粒子系統,還有今天公佈的 LightMapping等等,都能成為各大開發者入坑的理由。

缺點

好了,吹了一堆,是時候也要來說一些不好聽的了:

一、太年輕

是的,3.0加了一堆新功能,甚至整個渲染底層都改了一遍,可想而知 Bug 自然會多如山,而且部分的編輯器體驗也不太友好,不過目前畢竟是 Beta 版本,希望正式版可以有或多或少的進步吧。

二、在國內發佈很繁瑣

引擎的體積會如此之小,原因是 Godot 把發佈的編譯器先拿掉了,所以當需要發佈時候,需要重新聯網去下載 Godot 發佈範本(Export Template),這時候問題就來了……下載速度會極慢!不科學上網的還真的很難解決。當然你也可以通過官方教程,去下載一個又一個的編譯器再使用命令列去完成編譯,但不管怎麼說,還是比較麻煩的。

三、2DSprite 不支持 sliced,tiled 等類型

這點還是比較傷心的,尤其在 Unity 加入這些功能以後再過來用,就會覺得有些失望。雖然可以用腳本去實現這個效果,但是用起來始終不太舒服,感覺也會有些混亂。

四、使用者較少,社區活躍度不足,缺乏有說服力的 Showcase

相比 Unity 和 Unreal 這些使用者較多的並更為成熟的引擎來說,Godot 遇到問題很難找到解決方案,尤其是最新的 Godot3.0,雖然目前可以通過 IRC,Reddit,Discord 的方式向社區提問,但是回饋一般比較慢,而且這些管道國內都不常用,再加上始終沒有說服力強大的 Showcase,所以也很難說服更多的人去使用 Godot,這可能會陷入不良的迴圈。

總結

其實從各種層面來說,Godot 都還是十分年輕的引擎,雖然問題有很多,但是他還是相當適合對某些方面有特殊需求或者真的很需要絕對免費的遊戲引擎的獨立開發者。如果單從引擎的功能來說,Godot3 不見得比 Unity 落後多少,但是 Unity 的資源商店太過於強大了,使得建立原型實在太過於便利,這是缺乏 Showcase 的 Godot 望塵莫及的。但是我相信隨著時間的反覆運算以及優秀的 Showcase 出現,Godot 肯定會在獨立遊戲圈帶起不小的旋風的。(也有人說用 Unity 做原型再到 Godot 裡做遊戲,我覺得這也是不錯的選擇哦)

Godot Engine 官網

https://godotengine.org/

©indienova

長按下方二維碼關注我們

indienvoa 獨立精神

Next Article
喜欢就按个赞吧!!!
点击关闭提示