一、引擎的介紹
隨著遊戲開發的不斷進步,遊戲開發越來越龐大複雜,因此遊戲引擎已經成為遊戲開發必不可少的工具。引擎對基本的功能封裝,對工具鏈的提供等都可以大幅降低遊戲引擎的開發難度,提高開發速度和質量。
對於目前市場,3D手遊的引擎選擇主要分四部分:
Unity:在移動端更有優勢佔據手遊市場70%的佔有率,各種品類遊戲都有;
Unreal:兩款正版吃雞手遊都是使用Unreal引擎,但手遊MMO目前國內還沒有上線產品,國內端遊MMO成功的也很少;
自研引擎:例如楚留香的Messiah,太極熊貓的Flexi等,優點在於非常熟悉可以提供深度定製和最佳化;
其他引擎:應用較少不進行考慮。
這裡其實選擇的餘地比較小,對於大部分沒有自研引擎的公司來說,還是選擇Unity居多,但是隨著硬體的不斷髮展以及Epic公司自己的不斷最佳化和持續更新,Unreal在手機上也有越來越多的公司和專案選擇使用了。
部分已知手遊專案:
(一個重要的選擇原因:如果一款引擎在同類型專案中有成功專案,則我們可以很大程度相信這款引擎。)
二、選擇引擎的基本原則
按照軟體工程的開發流程,我們首先應該明確需求。以下是一些常見的需求點:
遊戲型別?
目標使用者,目標平臺,目標機型是什麼?
專案週期,成本和團隊實力?
更傾向畫質品質還是適配性?
是否有特殊的技術需求?是否大世界?是否支援物理?是否寫實風格
何種同步技術?
等等
然後我們需要考察引擎的特性是否和我們的需求相符。
1、必須滿足的特性,如果不支援則不能選用該引擎:
是否有成功的同類型產品?
引擎是否支援想要釋出的平臺,相容性如何?
引擎的效能如何?包括CPU,GPU,記憶體等等,例如早期的Unreal如果開發商不做最佳化無法在低配手機上流暢穩定的執行。
引擎的成本如何,和團隊的技術棧是否契合,開發效率如何?
引擎是否支援想要的技術?
2、最好支援的特性,但如果不支援可以第三方庫或自主開發解決:
如果是多人線上遊戲,引擎是否已經封裝了成熟的同步機制?
是否支援更多的DC和更完善的最佳化?
如果是開發大世界遊戲,引擎是否支援成熟的大世界系統(包括地形,植被,LOD,遮擋,最佳化等等)?
如果需要高階AI,引擎是否能高效完善支援?
如果需要物理碰撞,引擎是否能高效完善支援?
負責邏輯是否支援指令碼,是否支援指令碼視覺化編輯器?
是否支援熱更?
引擎是否自帶編輯器(動畫,場景,特效,UI,粒子等),以及編輯器是否適合,是否支援擴充套件?
第三方外掛和庫的支援如何?
引擎是否有良好的文件,是否有開發商官方的技術支援?
引擎是否完善的開發工具?如效能分析,打包等等。
三、引擎的功能劃分和對比
有一句話說的好:
美術資源決定了遊戲世界的外觀,指令碼資源決定了遊戲世界的內容,而引擎部分決定了遊戲世界的規則。
一款引擎往往包含,圖形模組,AI模組,物理模組,尋路模組,輸入模組,網路模組,UI模組,渲染模組,聲音模組,編輯器模組等等,如果要全面評估我們應該針對各個模組進行詳細的評估和對比。
但說道引擎,往往大家的第一印象都是引擎的圖形渲染能力,可見圖形對於引擎來說是至關重要的,因此我們會分為兩部分,圖形模組和其他模組,然後進行詳細的比較。
圖形模組
圖形是遊戲引擎的重中之中,主要功能就是提供封裝底層的渲染介面(D3D,OpenGL,Metal,Vulkan等),渲染管線的定製(前向渲染,延遲渲染,多執行緒等),適配(PC,IOS,Android),以及一些基本渲染功能的提供例如後處理(抗鋸齒,景深,螢幕矯色,扭曲,描邊,SSAO等等),陰影,地形,捏臉,動畫,天氣等等。
由此可見在高階渲染技術上Unreal更有優勢有強大的官方支援,效能也極佳,但是相對的低端裝置的相容性會略差特別是Android版本。Unity也可以實現相同的效果但是很多工作都需要自己開發。
其他
經過對比可知Unity更容易上手前期開發更快速,更容易做出適配更廣(記憶體和穩定性)的遊戲,但一些次時代技術需要自己實現。而Unreal學習成本較高開發效率較低,但是更容易做出頂尖效果的遊戲,更適合開放世界,大型專案。
四、總結
如果是專案週期和成本比較寬裕,希望開發超高畫質超高品質,開放世界的遊戲,同時圖形向技術積累較弱推薦使用Unreal,特別是FPS射擊類遊戲;如果希望開發週期更短,或者有著深厚技術積累和技術支援推薦使用Unity。此外引擎的選擇也受美術和策劃的影響,特別是美術同學,對編輯器和引擎的熟悉成度對進度,效果和效能也有著非常大的影響。
其實對於大部分的遊戲,兩款引擎都可以滿足需求,主要的差異還是在品質,時間,成本的專案管理三角形的取捨上。適合自己的才是最好的。
一、引擎的介紹
隨著遊戲開發的不斷進步,遊戲開發越來越龐大複雜,因此遊戲引擎已經成為遊戲開發必不可少的工具。引擎對基本的功能封裝,對工具鏈的提供等都可以大幅降低遊戲引擎的開發難度,提高開發速度和質量。
對於目前市場,3D手遊的引擎選擇主要分四部分:
Unity:在移動端更有優勢佔據手遊市場70%的佔有率,各種品類遊戲都有;
Unreal:兩款正版吃雞手遊都是使用Unreal引擎,但手遊MMO目前國內還沒有上線產品,國內端遊MMO成功的也很少;
自研引擎:例如楚留香的Messiah,太極熊貓的Flexi等,優點在於非常熟悉可以提供深度定製和最佳化;
其他引擎:應用較少不進行考慮。
這裡其實選擇的餘地比較小,對於大部分沒有自研引擎的公司來說,還是選擇Unity居多,但是隨著硬體的不斷髮展以及Epic公司自己的不斷最佳化和持續更新,Unreal在手機上也有越來越多的公司和專案選擇使用了。
部分已知手遊專案:
(一個重要的選擇原因:如果一款引擎在同類型專案中有成功專案,則我們可以很大程度相信這款引擎。)
二、選擇引擎的基本原則
按照軟體工程的開發流程,我們首先應該明確需求。以下是一些常見的需求點:
遊戲型別?
目標使用者,目標平臺,目標機型是什麼?
專案週期,成本和團隊實力?
更傾向畫質品質還是適配性?
是否有特殊的技術需求?是否大世界?是否支援物理?是否寫實風格
何種同步技術?
等等
然後我們需要考察引擎的特性是否和我們的需求相符。
1、必須滿足的特性,如果不支援則不能選用該引擎:
是否有成功的同類型產品?
引擎是否支援想要釋出的平臺,相容性如何?
引擎的效能如何?包括CPU,GPU,記憶體等等,例如早期的Unreal如果開發商不做最佳化無法在低配手機上流暢穩定的執行。
引擎的成本如何,和團隊的技術棧是否契合,開發效率如何?
引擎是否支援想要的技術?
2、最好支援的特性,但如果不支援可以第三方庫或自主開發解決:
如果是多人線上遊戲,引擎是否已經封裝了成熟的同步機制?
是否支援更多的DC和更完善的最佳化?
如果是開發大世界遊戲,引擎是否支援成熟的大世界系統(包括地形,植被,LOD,遮擋,最佳化等等)?
如果需要高階AI,引擎是否能高效完善支援?
如果需要物理碰撞,引擎是否能高效完善支援?
負責邏輯是否支援指令碼,是否支援指令碼視覺化編輯器?
是否支援熱更?
引擎是否自帶編輯器(動畫,場景,特效,UI,粒子等),以及編輯器是否適合,是否支援擴充套件?
第三方外掛和庫的支援如何?
引擎是否有良好的文件,是否有開發商官方的技術支援?
引擎是否完善的開發工具?如效能分析,打包等等。
三、引擎的功能劃分和對比
有一句話說的好:
美術資源決定了遊戲世界的外觀,指令碼資源決定了遊戲世界的內容,而引擎部分決定了遊戲世界的規則。
一款引擎往往包含,圖形模組,AI模組,物理模組,尋路模組,輸入模組,網路模組,UI模組,渲染模組,聲音模組,編輯器模組等等,如果要全面評估我們應該針對各個模組進行詳細的評估和對比。
但說道引擎,往往大家的第一印象都是引擎的圖形渲染能力,可見圖形對於引擎來說是至關重要的,因此我們會分為兩部分,圖形模組和其他模組,然後進行詳細的比較。
圖形模組
圖形是遊戲引擎的重中之中,主要功能就是提供封裝底層的渲染介面(D3D,OpenGL,Metal,Vulkan等),渲染管線的定製(前向渲染,延遲渲染,多執行緒等),適配(PC,IOS,Android),以及一些基本渲染功能的提供例如後處理(抗鋸齒,景深,螢幕矯色,扭曲,描邊,SSAO等等),陰影,地形,捏臉,動畫,天氣等等。
由此可見在高階渲染技術上Unreal更有優勢有強大的官方支援,效能也極佳,但是相對的低端裝置的相容性會略差特別是Android版本。Unity也可以實現相同的效果但是很多工作都需要自己開發。
其他
經過對比可知Unity更容易上手前期開發更快速,更容易做出適配更廣(記憶體和穩定性)的遊戲,但一些次時代技術需要自己實現。而Unreal學習成本較高開發效率較低,但是更容易做出頂尖效果的遊戲,更適合開放世界,大型專案。
四、總結
如果是專案週期和成本比較寬裕,希望開發超高畫質超高品質,開放世界的遊戲,同時圖形向技術積累較弱推薦使用Unreal,特別是FPS射擊類遊戲;如果希望開發週期更短,或者有著深厚技術積累和技術支援推薦使用Unity。此外引擎的選擇也受美術和策劃的影響,特別是美術同學,對編輯器和引擎的熟悉成度對進度,效果和效能也有著非常大的影響。
其實對於大部分的遊戲,兩款引擎都可以滿足需求,主要的差異還是在品質,時間,成本的專案管理三角形的取捨上。適合自己的才是最好的。