一、引擎的介紹
隨著游戲開發(fā)的不斷進(jìn)步景埃,游戲開發(fā)越來越龐大復(fù)雜媒至,因此游戲引擎已經(jīng)成為游戲開發(fā)必不可少的工具。引擎對(duì)基本的功能封裝谷徙,對(duì)工具鏈的提供等都可以大幅降低游戲引擎的開發(fā)難度拒啰,提高開發(fā)速度和質(zhì)量。
對(duì)于目前市場完慧,3D手游的引擎選擇主要分四部分:
Unity:在移動(dòng)端更有優(yōu)勢占據(jù)手游市場70%的占有率谋旦,各種品類游戲都有;
Unreal:兩款正版吃雞手游都是使用Unreal引擎,但手游MMO目前國內(nèi)還沒有上線產(chǎn)品册着,國內(nèi)端游MMO成功的也很少拴孤;
自研引擎:例如楚留香的Messiah,太極熊貓的Flexi等指蚜,優(yōu)點(diǎn)在于非常熟悉可以提供深度定制和優(yōu)化乞巧;
其他引擎:應(yīng)用較少不進(jìn)行考慮摊鸡。
這里其實(shí)選擇的余地比較小是辕,對(duì)于大部分沒有自研引擎的公司來說,還是選擇Unity居多疙教,但是隨著硬件的不斷發(fā)展以及Epic公司自己的不斷優(yōu)化和持續(xù)更新葵诈,Unreal在手機(jī)上也有越來越多的公司和項(xiàng)目選擇使用了作喘。
部分已知手游項(xiàng)目:
(一個(gè)重要的選擇原因:如果一款引擎在同類型項(xiàng)目中有成功項(xiàng)目贰锁,則我們可以很大程度相信這款引擎槽奕。)
二所森、選擇引擎的基本原則
按照軟件工程的開發(fā)流程,我們首先應(yīng)該明確需求。以下是一些常見的需求點(diǎn):
游戲類型?
目標(biāo)用戶,目標(biāo)平臺(tái)谴咸,目標(biāo)機(jī)型是什么?
項(xiàng)目周期,成本和團(tuán)隊(duì)實(shí)力辨赐?
更傾向畫質(zhì)品質(zhì)還是適配性帆焕?
是否有特殊的技術(shù)需求?是否大世界折晦?是否支持物理?是否寫實(shí)風(fēng)格
何種同步技術(shù)宁改?
等等
然后我們需要考察引擎的特性是否和我們的需求相符耙考。
1锅论、必須滿足的特性炫狱,如果不支持則不能選用該引擎:
是否有成功的同類型產(chǎn)品嬉荆?
引擎是否支持想要發(fā)布的平臺(tái)椅亚,兼容性如何弥虐?
引擎的性能如何惧磺?包括CPU布讹,GPU坑鱼,內(nèi)存等等,例如早期的Unreal如果開發(fā)商不做優(yōu)化無法在低配手機(jī)上流暢穩(wěn)定的運(yùn)行。
引擎的成本如何,和團(tuán)隊(duì)的技術(shù)棧是否契合糊治,開發(fā)效率如何?
引擎是否支持想要的技術(shù)窃肠?
2、最好支持的特性,但如果不支持可以第三方庫或自主開發(fā)解決:
如果是多人在線游戲州既,引擎是否已經(jīng)封裝了成熟的同步機(jī)制蚌卤?
是否支持更多的DC和更完善的優(yōu)化?
如果是開發(fā)大世界游戲,引擎是否支持成熟的大世界系統(tǒng)(包括地形,植被圆到,LOD,遮擋豆赏,優(yōu)化等等)苇瓣?
如果需要高級(jí)AI勤揩,引擎是否能高效完善支持?
如果需要物理碰撞,引擎是否能高效完善支持囱怕?
負(fù)責(zé)邏輯是否支持腳本茧痒,是否支持腳本可視化編輯器雇庙?
是否支持熱更鱼鼓?
引擎是否自帶編輯器(動(dòng)畫,場景宣蔚,特效向抢,UI认境,粒子等),以及編輯器是否適合挟鸠,是否支持?jǐn)U展叉信?
第三方插件和庫的支持如何?
引擎是否有良好的文檔艘希,是否有開發(fā)商官方的技術(shù)支持茉盏?
引擎是否完善的開發(fā)工具?如性能分析枢冤,打包等等鸠姨。
三、引擎的功能劃分和對(duì)比
有一句話說的好:
美術(shù)資源決定了游戲世界的外觀淹真,腳本資源決定了游戲世界的內(nèi)容讶迁,而引擎部分決定了游戲世界的規(guī)則。
一款引擎往往包含核蘸,圖形模塊巍糯,AI模塊,物理模塊客扎,尋路模塊祟峦,輸入模塊,網(wǎng)絡(luò)模塊徙鱼,UI模塊宅楞,渲染模塊,聲音模塊袱吆,編輯器模塊等等厌衙,如果要全面評(píng)估我們應(yīng)該針對(duì)各個(gè)模塊進(jìn)行詳細(xì)的評(píng)估和對(duì)比。
但說道引擎绞绒,往往大家的第一印象都是引擎的圖形渲染能力婶希,可見圖形對(duì)于引擎來說是至關(guān)重要的,因此我們會(huì)分為兩部分蓬衡,圖形模塊和其他模塊喻杈,然后進(jìn)行詳細(xì)的比較。
圖形模塊
圖形是游戲引擎的重中之中狰晚,主要功能就是提供封裝底層的渲染接口(D3D筒饰,OpenGL,Metal,Vulkan等)家肯,渲染管線的定制(前向渲染龄砰,延遲渲染盟猖,多線程等)讨衣,適配(PC换棚,IOS,Android)反镇,以及一些基本渲染功能的提供例如后處理(抗鋸齒固蚤,景深,屏幕矯色歹茶,扭曲夕玩,描邊,SSAO等等)惊豺,陰影燎孟,地形,捏臉尸昧,動(dòng)畫揩页,天氣等等。
(點(diǎn)擊上圖烹俗,可放大查看)
由此可見在高端渲染技術(shù)上Unreal更有優(yōu)勢有強(qiáng)大的官方支持爆侣,性能也極佳,但是相對(duì)的低端設(shè)備的兼容性會(huì)略差特別是Android版本幢妄。Unity也可以實(shí)現(xiàn)相同的效果但是很多工作都需要自己開發(fā)兔仰。
其他
(點(diǎn)擊上圖,可放大查看)
經(jīng)過對(duì)比可知Unity更容易上手前期開發(fā)更快速蕉鸳,更容易做出適配更廣(內(nèi)存和穩(wěn)定性)的游戲乎赴,但一些次時(shí)代技術(shù)需要自己實(shí)現(xiàn)。而Unreal學(xué)習(xí)成本較高開發(fā)效率較低潮尝,但是更容易做出頂尖效果的游戲无虚,更適合開放世界,大型項(xiàng)目衍锚。
四友题、總結(jié)
如果是項(xiàng)目周期和成本比較寬裕,希望開發(fā)超高畫質(zhì)超高品質(zhì)戴质,開放世界的游戲度宦,同時(shí)圖形向技術(shù)積累較弱推薦使用Unreal,特別是FPS射擊類游戲告匠;如果希望開發(fā)周期更短戈抄,或者有著深厚技術(shù)積累和技術(shù)支持推薦使用Unity。此外引擎的選擇也受美術(shù)和策劃的影響后专,特別是美術(shù)同學(xué)划鸽,對(duì)編輯器和引擎的熟悉成度對(duì)進(jìn)度,效果和性能也有著非常大的影響。
其實(shí)對(duì)于大部分的游戲裸诽,兩款引擎都可以滿足需求嫂用,主要的差異還是在品質(zhì),時(shí)間丈冬,成本的項(xiàng)目管理三角形的取舍上嘱函。適合自己的才是最好的。