Unity VS Unreal,游戲開發(fā)該如何選擇引擎?
一、引擎的介紹
隨著游戲開發(fā)的不斷進(jìn)步,游戲開發(fā)越來越龐大復(fù)雜,因此游戲引擎已經(jīng)成為游戲開發(fā)必不可少的工具。引擎對基本的功能封裝,對工具鏈的提供等都可以大幅降低游戲引擎的開發(fā)難度,提高開發(fā)速度和質(zhì)量。
對于目前市場,3D手游的引擎選擇主要分四部分:
1. Unity:在移動端更有優(yōu)勢占據(jù)手游市場70%的占有率,各種品類游戲都有;
2. Unreal:兩款正版吃雞手游都是使用Unreal引擎,但手游MMO目前國內(nèi)還沒有上線產(chǎn)品,國內(nèi)端游MMO成功的也很少;
3. 自研引擎:例如楚留香的Messiah,太極熊貓的Flexi等,優(yōu)點(diǎn)在于非常熟悉可以提供深度定制和優(yōu)化;
4. 其他引擎:應(yīng)用較少不進(jìn)行考慮。
這里其實(shí)選擇的余地比較小,對于大部分沒有自研引擎的公司來說,還是選擇Unity居多,但是隨著硬件的不斷發(fā)展以及Epic公司自己的不斷優(yōu)化和持續(xù)更新,Unreal在手機(jī)上也有越來越多的公司和項目選擇使用了。

部分已知手游項目:

(一個重要的選擇原因:如果一款引擎在同類型項目中有成功項目,則我們可以很大程度相信這款引擎。)
二、選擇引擎的基本原則
按照軟件工程的開發(fā)流程,我們首先應(yīng)該明確需求。以下是一些常見的需求點(diǎn):
§ 游戲類型?
§ 目標(biāo)用戶,目標(biāo)平臺,目標(biāo)機(jī)型是什么?
§ 項目周期,成本和團(tuán)隊實(shí)力?
§ 更傾向畫質(zhì)品質(zhì)還是適配性?
§ 是否有特殊的技術(shù)需求?是否大世界?是否支持物理?是否寫實(shí)風(fēng)格
§ 何種同步技術(shù)?
等等
然后我們需要考察引擎的特性是否和我們的需求相符。
1、必須滿足的特性,如果不支持則不能選用該引擎:
§ 是否有成功的同類型產(chǎn)品?
§ 引擎是否支持想要發(fā)布的平臺,兼容性如何?
§ 引擎的性能如何?包括CPU,GPU,內(nèi)存等等,例如早期的Unreal如果開發(fā)商不做優(yōu)化無法在低配手機(jī)上流暢穩(wěn)定的運(yùn)行。
§ 引擎的成本如何,和團(tuán)隊的技術(shù)棧是否契合,開發(fā)效率如何?
§ 引擎是否支持想要的技術(shù)?
2、最好支持的特性,但如果不支持可以第三方庫或自主開發(fā)解決:
§ 如果是多人在線游戲,引擎是否已經(jīng)封裝了成熟的同步機(jī)制?
§ 是否支持更多的DC和更完善的優(yōu)化?
§ 如果是開發(fā)大世界游戲,引擎是否支持成熟的大世界系統(tǒng)(包括地形,植被,LOD,遮擋,優(yōu)化等等)?
§ 如果需要高級AI,引擎是否能高效完善支持?
§ 如果需要物理碰撞,引擎是否能高效完善支持?
§ 負(fù)責(zé)邏輯是否支持腳本,是否支持腳本可視化編輯器?
§ 是否支持熱更?
§ 引擎是否自帶編輯器(動畫,場景,特效,UI,粒子等),以及編輯器是否適合,是否支持?jǐn)U展?
§ 第三方插件和庫的支持如何?
§ 引擎是否有良好的文檔,是否有開發(fā)商官方的技術(shù)支持?
§ 引擎是否完善的開發(fā)工具?如性能分析,打包等等。
三、引擎的功能劃分和對比
有一句話說的好:
美術(shù)資源決定了游戲世界的外觀,腳本資源決定了游戲世界的內(nèi)容,而引擎部分決定了游戲世界的規(guī)則。
一款引擎往往包含,圖形模塊,AI模塊,物理模塊,尋路模塊,輸入模塊,網(wǎng)絡(luò)模塊,UI模塊,渲染模塊,聲音模塊,編輯器模塊等等,如果要全面評估我們應(yīng)該針對各個模塊進(jìn)行詳細(xì)的評估和對比。
但說道引擎,往往大家的第一印象都是引擎的圖形渲染能力,可見圖形對于引擎來說是至關(guān)重要的,因此我們會分為兩部分,圖形模塊和其他模塊,然后進(jìn)行詳細(xì)的比較。
圖形模塊
圖形是游戲引擎的重中之中,主要功能就是提供封裝底層的渲染接口(D3D,OpenGL,Metal,Vulkan等),渲染管線的定制(前向渲染,延遲渲染,多線程等),適配(PC,IOS,Android),以及一些基本渲染功能的提供例如后處理(抗鋸齒,景深,屏幕矯色,扭曲,描邊,SSAO等等),陰影,地形,捏臉,動畫,天氣等等。

由此可見在高端渲染技術(shù)上Unreal更有優(yōu)勢有強(qiáng)大的官方支持,性能也極佳,但是相對的低端設(shè)備的兼容性會略差特別是Android版本。Unity也可以實(shí)現(xiàn)相同的效果但是很多工作都需要自己開發(fā)。
其他

經(jīng)過對比可知Unity更容易上手前期開發(fā)更快速,更容易做出適配更廣(內(nèi)存和穩(wěn)定性)的游戲,但一些次時代技術(shù)需要自己實(shí)現(xiàn)。而Unreal學(xué)習(xí)成本較高開發(fā)效率較低,但是更容易做出頂尖效果的游戲,更適合開放世界,大型項目。
四、總結(jié)
如果是項目周期和成本比較寬裕,希望開發(fā)超高畫質(zhì)超高品質(zhì),開放世界的游戲,同時圖形向技術(shù)積累較弱推薦使用Unreal,特別是FPS射擊類游戲;如果希望開發(fā)周期更短,或者有著深厚技術(shù)積累和技術(shù)支持推薦使用Unity。此外引擎的選擇也受美術(shù)和策劃的影響,特別是美術(shù)同學(xué),對編輯器和引擎的熟悉成度對進(jìn)度,效果和性能也有著非常大的影響。
其實(shí)對于大部分的游戲,兩款引擎都可以滿足需求,主要的差異還是在品質(zhì),時間,成本的項目管理三角形的取舍上。適合自己的才是最好的