/中文/
/中文/
/中文/
/中文/
/中文/
/中文/
/中文/
/中文/
/中文/
/中文/
Godot Engine(遊戲引擎)是一款開源且功能齊全的遊戲引擎軟件,軟件支持部分3D遊戲的開發,同時軟件的開發代碼簡單,用戶可以利用軟件製作出自己喜歡的遊戲。
Godot Engine是功能比較齊全的一個遊戲引擎軟件,其開發方式簡易,上手比較輕鬆,對於剛入門的遊戲開發者來說十分友好,而且開源引擎底層代碼完全開源,非常推薦給想學習遊戲開發的小夥伴們使用,下載後打開軟件,點擊OPEN打開文件根據自身需求,輸入代碼和帶入文件,打包遊戲就可以使用啦。
輕量級
構建好的 Godot 隻需要占用你的硬盤的 30M 空間,包含(幾乎)了所有內容。如果你需要構建手機版本,你需要下載額外的 200M 的構建模板,僅此而已。
這裏我並不是因為下載速度快或者因為其他引擎占用了 3 到 30GB 的大空間而提出這點,而是為了說明 Godot 團隊對性能的關注程度。 Godot 打開隻需要一眨眼的功夫,我那用了 4 年的舊筆記本打開或者加載時間甚至都沒超過 5 秒鍾。我所等待過的最長時間大約是 1 分鍾,那是發生在點擊一個按鈕發布到安卓手平台的 Debug 版本之間的時間開銷。
當然,最重要的是:它能反應出你的遊戲的性能。當我發現 Godot 引擎本身就是一個 Godot 開發的遊戲的時候,我被深深地震驚了!
友好的版本控製
你是否曾經遇到過在使用 Unity 或者 Unreal 的時候發生了場景或者預製體或者其他的對象文件在倉庫的版本衝突問題?如果有的話,難麼你應該知道這是多麼痛苦的一件事了,特別是在大型團隊裏。
在 Godot 中任何對象都是以文本文檔的形式保存,對於合並衝突來說是絕對是一種非常友好而且可讀性強的文件格式。因為我們能非常輕鬆地區別開多個場景中的多個對象(關於這個之後會談論更多),使得每一個團隊成員都能夠專注於自己的工作。
動畫係統
Godot 的動畫係統是我見過的最強大而又簡單易用的一個係統,我曾經使用過的所有動畫工具具有的功能設置它都包含了。你可以對某個對象的任意屬性進行動畫設置,甚至包括函數的調用。除此之外,它還包含了一個非常簡易的動畫創建工具。
動手比解釋更能體會它的工作原理,我推薦你訪問 GDQuest 和 Heartbeast 的視頻,兩位大牛利用他們的業餘時間講授創建遊戲相關經驗的視頻,大部分是免費的。
一、下載打開軟件,點擊OPEN打開文件。
二、根據自身需求,輸入代碼和帶入文件。
三、打包遊戲即可使用。
真實2D vs 假2D
經常會遇到 Rock Milk 的哲學理論問題。為了弄清楚這個東西,我們創建了一個小而簡單的遊戲,嚐試突破未開發的那些區域和一些創新機製。由於我們是兩個家庭的普通人,經常一天隻能抽出個把小時來開發我們的遊戲,所以我們隻專注於 2D 遊戲開發。
Godot 的 2D 引擎可圈可點,它不是假的 2D ,就像在 3D 空間把 Z 軸*平放*一樣的假 2D 。對於 Godot 來說這意味著什麼呢?
像素作為坐標和單位使用,包括物理引擎中的使用
更加高效、更加易用地 API ,無需在第三個軸上處理邏輯或者數學問題
某些其他引擎上的典型解決方案在這裏都變得沒必要(例如:把 1 個像素設為一個單元,完美像素渲染, Z 軸分層和相機縮放問題等)
換句話說,我們能很好的控製每個遊戲物體的尺寸、位置、速度和碰撞,包括皮膚( HUD ),這經常是需要進行一個完整的 PITA 設置。(不過我們還是蠻喜歡 Unity 的新 GUI 係統的說)
GDScript 腳本和 API
GDScript 是 Godot 中代碼處理的默認編程語言,能和引擎的相關特性非常吻合的結合在一起。
通常隻需要編寫一點點代碼就能做出一大堆動作效果,這是由於它那豐富的 API 。我曾以為每個對象都需要從頭開始創建,但是 Godot 已經幫我們做好了,包括每一個操作和我所需要的自定義功能。
另外,我覺得 GDScript 是讓新用戶拒而遠之的最主要原因。我重點列舉以下我所聽見的抱怨中的幾條:
我是不是必須要學習一門隻能在 Godot 中使用的編程語言?
是的,朋友,但是這並不會多花費你多於兩天的時間。這門語言非常簡單,就像 Python 的兄弟版。
最糟糕的情況是:至少你也將會學會另一門編程語言,而且學習新的語言能有助於你進行和別人不一樣的思考方式(那是更好的方式)。
我討厭編程語言
好吧,沒有理由一定要嚐試,我也沒有什麼可抱怨的。但是,如果你願意的話,你可以完全使用 C++ 模塊來編寫代碼然後輕鬆地導出為 GDScript 腳本。
或許,你可能更希望等待 Godot 3.0 版本的發布(其實它就在 Godot 的社區……開個玩笑),因為 3.0 版將會支持 C# 以及 GDNative 腳本,也就是說到時候你可以使用Python , Go , D , Rust 甚至 Nim (或者任意其他你想綁定的編程語言)等語言編寫代碼。
那麼它的性能怎樣呢?遊戲代碼如何?額
一般對於你所能想到的 95% 的遊戲我相信性能都足夠滿足了。如果你還是持有懷疑態度,那麼像我剛才提到的,你完全可以使用 C++ 模塊編寫然後獲得 C++ 的性能。
如果在你的遊戲裏,某個部分算法有著極高的性能需求,那麼你可以在此部分上單獨使用 C++ 進行編程,在其他部分繼續采用 GDScript 腳本。
你可以閱讀更多 Shin-Nil 的關於性能測試之類的文章。
我的編程工具和軟件並支持 GDScript 腳本
Godot 有一個集成的代碼編輯器,而且除了基本的腳本編寫之外它還具有漂亮的智能代碼提示功能(也就是說代碼自動完成功能),以及強大的 debug 功能,另外包括運行時編輯功能,你可以看看 Juan Linietsky ( 也叫 Reduzio )的視頻,他是 Godot 的主要開發者,視頻地址在此:
https://www.youtube.com/embed/50Vw4e6JPOI
到目前為止,對於外部代碼編輯器,完全支持的隻有 Visual Studio Code ,使用的是Godot 工具,由 Geequlim 開發,但是其他軟件包括 Sublime Text , Atom 以及GEdit 都能支持語法高亮功能。
我的建議是:在批評之前先嚐試使用 GDScript 腳本吧。如果你在一周之後還是不能順利上手,效率也不高,那我賠你一顆糖吧。哈哈。(?)
到這裏還是不相信?那看一看 Juan 關於創造 GDScript 腳本的理由吧,或許它能讓你改變主意:
https://www.redditmedia.com/r/gamedev/comments/36u80q/godot_engine_11_out/crhjrw6/?embed=true&context=0&depth=1&showedits=false&created=null&uuid=null&showmore=false
節點和場景係統
節點是遊戲中能夠進行屬性編輯的一個基本對象。它可以使一個 2D 精靈,一個 3D 模型,一些 GUI 控件元素或者僅聲音的播放功能。 Godot 包含了大量節點可供使用和擴展,因此你可以完全創建屬於你自己的節點類型。場景是由一組節點有層次的組織在一起構建而成,如同一棵大樹。