北京軟件開發公司如何選擇HTML5遊戲開發引擎,原生手遊市場已是紅海、騰訊、網易等寡頭獨霸天下,H5遊戲市場或将成爲下一個風口。據筆(bǐ)者所知,很多H5遊戲開發團隊由於(yú)選擇引擎不慎導緻項目甚至團隊夭折。如何選擇适合團隊和項目的引擎,筆(bǐ)者通過學習和項目實踐,總結微薄經驗,供大家參考,非技術人員也可以将本篇内容作爲引擎選擇的重要關注點。
選擇H5遊戲(xì)引擎的思考維(wéi)度
1、開發語言的支持
2、2D、3D、VR的支持
3、性能
4、引擎的應用廣度
5、設計理念
6、工作流支持力度
7、商業化成熟案例
8、學習(xí)資源與技術(shù)支持能力
首先,我們要知道,當前主流的遊戲引擎有哪些。由於(yú)H5引擎有很多,筆者在這裏進行瞭(le)精心的篩選,過濾掉不支持webGL的引擎,以及封裝瞭(le)第三方渲染内核的JS框架,和不能直接在浏覽器中運行的JS引擎。
爲什麽要過濾掉這幾種呢,首先,沒有自己的渲染内核,僅僅是基於(yú)第三方的内核作的API封裝,筆(bǐ)者很擔心可持續的性能優化和維護能力。另外,不能在浏覽器中直接運行的JS引擎,将限制H5遊戲跨平台的交互能力。還有, 筆(bǐ)者非常看好webGL模式,認爲webGL模式才是H5引擎的未來。原因有幾點:
第一、性能,webGL模式遠超Canvas數倍。DOM模式就不适合用於(yú)真正的遊戲開發(fā),更不用提。
第二、3D方向,webGL模式理論(lùn)上可以制作2D和3D遊戲(xì),Canvas和DOM模式下隻能制作2D遊戲(xì)。
第三、普及率,webGL的普及率已經非常高瞭(le),尤其是支持webGL的騰訊TBS-Blink内核已在4月19日發布,並(bìng)逐步在微信、QQ空間、QQ浏覽器、手機QQ等APP中採用靜默安裝方式全面升級。這個普及率在國内帶來的影響,;你懂的……
1、選擇H5遊戲開(kāi)發(fā)語言
擁有廣泛開發者的H5遊戲開發語言共有三種,分别爲Flash AS3、TypeScript、JavaScript。其中Flash AS3、TypeScript均屬於(yú)面向對象的高級腳本語言,通過編(biān)譯器将原項目代碼編(biān)譯成JavaScript代碼文件運行於(yú)浏覽器之中,面向對象的高級語言無論是項目開發管理,還是項目開發的工具環境的成熟度都明顯優於(yú)JavaScript腳本語言,尤其是中大型項目方面,AS3等高級語言的效率會更高。

從上圖看出,支持JavaScript語言的引擎更多,由於(yú)AS3語言的編譯器爲Layabox引擎推出的,因此採(cǎi)用AS3作爲開發語言的僅有Layabox引擎。筆者建議在開發中大型遊戲項目的時候,採(cǎi)用TypeScript或者是Flash AS3語言進行開發。如果是小型遊戲,任選其一即可。
2、引擎的未來(lái)延續(xù)能力
選擇一個引擎,並(bìng)不是簡單的認爲,滿足眼前夠用就可以瞭(le),引擎的未來延續能力也是很重要的,這個項目是2D,下個項目想開發3D,如果引擎不支持怎麽辦?去換個引擎?如果VR的機會來瞭(le),再想發布VR版本,這個引擎不支持,需要重新開發嗎?等等問題,作爲開發者盡可能要提前想好。

通過(guò)上圖,可以看出,即便是在支持webGL的H5引擎裏,有隻面向2D遊戲的,也有隻面向3D遊戲的,同時支持2D、3D、VR的H5引擎,從(cóng)目前看隻有Layabox與Egret引擎。
3、性能是核心需求
性能是H5遊戲面臨的核心門檻,也是很多H5遊戲不被專業玩家認可的重要原因之一。遊戲卡頓,不流暢(chàng),這樣的産(chǎn)品體驗很難在激烈競争中生存下來。
H5産(chǎn)業早期的普及階段即将過去,遊戲品質在迅速提高,品質中包括精細的美術和炫酷的動畫等。在複雜的遊戲項目面前,上述種種元素,其流暢(chàng)體驗度對遊戲引擎是極大的考驗。所以選擇性能優秀的引擎是保證品質的較重要基礎,一定要謹慎。
在遊戲項目研發開始時,一定要先對複雜的模塊做DEMO測(cè)試,特别是帶背景滾動的遊戲。比如橫屏卷軸遊戲,對幀數穩定性要求極高,如果滿足不瞭(le)性能上的需求,可能會帶來眩暈、眼花、疲倦等不良體驗。

在webGL的2D渲染性能方面,pixi.js的性能處於(yú)當前的頂級。在webGL的3D渲染性能方面,Three.js非常優秀。在runtime方面Cocos2d-js也有著(zhe)原生級的表現,經過對比,筆者認爲Layabox性能的綜合實力較強,在各個渲染領域都保持在HTML5引擎的頂級水平。當然,上圖僅作爲參考,對於(yú)任何号稱某個引擎性能較牛的論調,一定要親自進行性能DEMO的測試對比,而不要輕易採信。
由於(yú)性能是遊戲較核心的需求,筆者這裏再多說一句,大型項目在系統複雜度、UI複雜度、動畫顯示數量和種類等方面與小型遊戲項目完全不在一個量級。會涉及到比小遊戲更複雜的性能優化、内存管理、資源管理等需求,如果選擇瞭(le)小馬拉大車的低性能引擎,項目夭折可能性非常大,除非較後項目開發者花大量時間自己優化引擎。所以性能差一點,就會導緻結果差很多,不可主觀想象。
4、與引擎的應用廣度
随著(zhe)H5遊戲品質提升,在其他領域也具備一定的競争力和價值,一次開發可發行各個領域版本,已成爲日漸明確(què)的需求,這裏面包括發行原生APP手遊和PC的flash頁遊需求,大統一的引擎時代即将來領。目前較火爆的H5遊戲《傳奇世界H5》據說有40%的收入來自PC網頁。
發布PC頁遊時,由於(yú)PC浏覽器目前對HTML5兼容性不足70%,用戶損耗很大,頁遊聯運平台可能會拒絕或放量很少,隻有採(cǎi)用能同時發布Flash版本的引擎,才能解決這個問題。

5、設計理念與定位
設計理念是個比較大的話題,也是個很重要的引擎選擇因素,比如引擎是要專注移動端,還是要面向全平台多端遊戲市場。是注重性能,還是注重工具鏈等等。深入瞭(le)解不同引擎的理念與定位,才能更好的與遊戲産(chǎn)品進行結合。

上圖内容僅作參(cān)考,詳情建議去各引擎官網深入瞭(le)解。
6、工作流支持力度
作爲商業級開源引擎,工具鏈的提供與支持也是一種選擇考量要素,比如UI編(biān)輯器、粒子編(biān)輯器、骨骼編(biān)輯器、場(chǎng)景編(biān)輯器等等,如果引擎方直接提供或支持,那麽将會較大的提升研發效率。
本文中提到的7個(gè)引擎,隻有Egret、Layabox、Cocos2d-JS這三個(gè)引擎,在工具鏈方面提供足夠全面的支撐(chēng)。
7、是否有成熟的商業(yè)案例
怎麽證明引擎是成熟的?一定要有成熟的商業案例,一般引擎的官網上都會有遊戲案例介紹,我們在選擇引擎之前要進行深入體驗,包括:商業案例的數量、商業案例的種類、穩定性、流暢(chàng)度(要在低端機裏體驗)、項目複雜度、項目相似度等。如果有一些大型成功案例背書會相對(duì)安全可靠些。
從目前的行業案例來看,Layabox引擎的MMORPG《醉西遊》、重度動作遊戲《獵刃2》、大型模拟經營遊戲《夢幻家園》等無疑是H5引擎技術的較高水準代表作。但是從卡牌、挂機等類型的付費遊戲總體數量來看,Egret引擎明顯占優,充分說明該引擎的市場(chǎng)宣傳力度更勝一籌(chóu)。
8、學習(xí)資源與技術(shù)支持能力
能提供什麽樣的學習資源,以及技術支持,對於(yú)開發者也是重要因素,如果你是技術大牛,隻想使用輕量的第三方渲染内核。那麽2D遊戲,pixi.js無疑是首選。3D遊戲,筆者推薦Three.js。但是這兩種引擎的學習資料都比較稀少。筆者認爲學習資料的完善,以及在學習過程中的技術支持力度,将會很大的幫(bāng)助你解決引擎使用中的問題。所以,API完善,DEMO完善,文檔完善,社區的響應速度,交流氛圍,以及QQ技術支持等,都可以作爲你選擇引擎的因素考量之一。
9、頁遊移植産(chǎn)品的引擎選(xuǎn)擇
目前像《醉西遊》等優秀H5産(chǎn)品是Flash頁遊或手遊移植而成,移植類的産(chǎn)品在選用引擎時要注意,代碼是否可以直接移植?如果可以,那将節省大量的開發成本。比如Flash AS3開發的2D或3D頁遊或手遊,可以把邏輯與算法代碼直接拷貝(bèi)移植到Layabox引擎項目中,開發速度提高數倍。
寫在較後:較後提醒一下,千萬不要相信某些引擎的單(dān)方宣傳(chuán),一定要花一點時間去研究實踐,親自制作DEMO去作一作對比,動手體驗到的才是真理。
針對DEMO測(cè)試筆(bǐ)者有幾點建議:
1、採(cǎi)用一個複雜的UI,特别是複雜列表,比如說沒有分頁的背包列表,背包裏放上不同的道具圖片,測(cè)試滑動時的流暢度,這塊比較考驗性能,元素越複雜,數據越多,尤其能對比出來性能上的差異。
2、包含較複雜戰鬥部分,不要寫戰鬥邏輯代碼,不然會花的時間太長,隻需要把戰鬥相關的動畫和複雜的元素放在場(chǎng)景中模拟即可,因爲H5遊戲性能瓶頸通常在於(yú)畫面的顯示。
3、 測(cè)試主要目的是看項目在引擎中性能,這是較至關重要的,所以,硬件上,我們要選擇低端安卓手機(比如紅米)進行測(cè)試。軟件環境建議使用微信環境測(cè)試,首先,因爲微信公衆号是H5的主要渠道之一,其次,微信當前的H5性能低於(yú)chrome浏覽器,在惡劣的環境下更能測(cè)試引擎的優劣。