劉為
摘 要:隨著游戲產業的不斷壯大,游戲開發引擎及工具開始變得免費和易用。文章介紹并分析了當下在中國應用最為廣泛的幾款商用游戲開發引擎和工具,對各個引擎特性進行了闡述,并從多個方面對這幾款引擎進行了對比,為開發者選用合適引擎提供了參考。
關鍵詞:游戲引擎;虛幻;unity;cocos2d;LayaAir;Egret
中圖分類號:TP311.5 文獻標識碼:A 文章編號:1006-8937(2016)30-0064-03
1 概 述
中國的游戲市場在近五年得到了飛速發展,除了一直保持穩定增長的傳統電腦游戲市場外,被解禁的電子游戲機,電子競技,網絡游戲和移動游戲市場均出現大幅提升,成為推進我國經濟增長的助力之一。
據相關報告顯示,截止2016年上半年,中國游戲市場實際銷售收入達到787.5億元人民幣,同比增長30.1%。其中,移動游戲依然保持了高速增長,達到374.8億元人民幣,同比增長79.1%。相應的,2016年前6個月我國游戲用戶達到了4.89億人,同比增長6.7%。
隨著游戲產業的不斷擴大,相應的游戲開發公司和從業者數量不斷增加,市場競爭也非常激烈,絕大多數游戲的生命周期都被大大壓縮,不斷推出新的游戲,更短的開發周期,更低的資金投入都是各個游戲公司關注的重點。
為了達到最大的開發效率,幾乎所有公司都會選擇游戲引擎進行開發;同時一些個人創業者也可以通過使用游戲引擎,快速的將自己的創意實現為產品。本文將對市場上主流的游戲引擎的特點進行分析,并提出了不同引擎的適用環境。
2 游戲引擎解析
游戲引擎是指專業軟件廠商推出的游戲開發工具,這類型工具實現了游戲開中最底層的一些技術,并將其打包成為函數庫,內置于工具中。
這些底層的實現往往也是游戲開發中最難的一部分。例如圖形圖像效果的實現,物理效果的實現,動畫的實現以及多硬件平臺的發布等。
游戲開發者獲得工具后,能夠借助工具提供的圖形化開發環境專注于游戲邏輯的實現,對于游戲效果等部分,可以借助調用函數庫來實現,大大減少了開發的復雜度;同時在后期發布時,也無需擔心硬件平臺的不同,游戲引擎往往能實現多平臺發布。
2.1 虛幻引擎(Unreal engine)
虛幻引擎最初版本發布于1998年,是該領域歷史較悠久、知名度最高的商業游戲引擎,由美國公司Epic Games開發。該引擎發布以來,一直為高端游戲廠家所選用,無數3D游戲大作基于該平臺,例如早期的《時空之輪》《細胞分裂》,以及后來的《戰爭機器》、《質量效應》等。
虛幻引擎的底層采用C++編寫完成,其圖形特性能夠支持最新版本的DirectX。
虛幻引擎很早就能夠支持PC和游戲機的上的開發,該引擎第一代在1998年發布,之后在2002年發布了虛幻二,在2006年發布了第三代產品。虛幻引擎在2013年發布了第4個版本,并且帶來了很多變化。
首先,前三代虛幻引擎是一個純商業化產品,使用者必須付費購買,并且價格不菲。而虛幻4則采用了一種完全免費使用的產品發行方式,用戶只需在官網上注冊,就可以下載該引擎進行游戲開發。僅當用戶將游戲商業化并創造收入時,虛幻引擎才收取收入的5%作為引擎費用。
其次,虛幻4能夠很好的支持多平臺,除了傳統的Windows,MACOS以及Xbox和PlayStation外,新引擎還強化了對移動設備的支持,涵蓋了IOS和安卓兩大移動平臺以及HTML5的頁面平臺。
第三,虛幻4采用了新的代碼編輯語言和編輯方式,早期虛幻用的是unreal script語言,現在采用了更加常用的C++,并且增加了Blueprint可視化編輯環境。
第四,虛幻4增加了應用商城,能夠讓普通用戶將自己開發的插件在商城中售賣,從而大幅提升該引擎的實際應用能力。
虛幻引擎由于其早期的高價和高技術含量,針對的開發對象也是PC和游戲機,使得該引擎的用戶往往是專業程序員。其優勢依然在PC和游戲機領域,在移動平臺方面還處在開拓階段。
2.2 Unity引擎
Unity引擎是近幾年使用非常廣泛的新游戲引擎。其特點首先是免費使用,其次是學習門檻較低,同時具有龐大的用戶商城支持。
可以說,Unity的技術以及運營模式更加適合當前這個快銷費和免費使用的時代,很快就占據了大量用戶,也倒逼虛幻引擎放棄了以前的收費策略,走上了和Unity一樣開放的道路。
Unity最早發布于2005年,適用于MAC平臺,早期其名為Unity 3D,主要是為實現基于Web的3D和虛擬現實(VR)項目而開發。
直到2008年,Unity支持Windows平臺后,其知名度才大幅提高。之后隨著Unity相繼支持移動平臺、PlayStation和Xbox,在2011年就完成了其跨平臺的生態的構建,成為了多平臺3D游戲和互動設計的高人氣引擎。
Unity的優勢在于強大3D效果和虛擬現實,2D方面則從Unity4之后開始加強。迄今為止,Unity是使用者最廣泛的游戲引擎,其原因首先是免費使用,只有專業版才收取一定的收費。
其次是該引擎使用的編程語言也是非常易學習的C#和JavaScript,學習成本較低,上手非常快,并且在國內有很多用戶,能夠找到豐富的網絡資源。
第三,該引擎提供一個非常強大且易用的集成開發環境,適用于不同開發人員(程序員,設計人員和策劃人員)共同工作,其基于組件的游戲快速開發流程也非常令人容易理解;同時該引擎提供資源商城,用戶間可以很方便的交易資源和工具,可以說,Unity是當今效率最高的3D游戲開發引擎。
第四,全平臺打包支持,該引擎對幾乎所有的移動和游戲機平臺都能提供支持,除此之外,對知名的虛擬現實設備也有非常好的支持。
不過該引擎早期版本對界面設計及2D設計的支持比較弱,如果是開發小型HTML5游戲,可以考慮用其它引擎。在Unity5之后,加入了對WebGL的支持,對HTML5方面的支持再上一個臺階,使其成為了開發大型2D/3D網頁游戲(無插件)的重要選擇之一。
2.3 Cocos 2d-x引擎
Cocos 2d-x是由中國公司觸控科技開發的,基于Cocos 2d開源引擎的國產游戲引擎,其特性主要集中在2D游戲和移動平臺,甚至打出了為移動而生的口號。
Cocos 2d的原型出現在2005年的阿根廷,創始者當時使用python語言開發該引擎,后來在2008年率先支持蘋果的IPhone平臺,成為眾多開發者的選擇。Cocos 2d-x作為Cocos 2d的國產引擎,主要部分由C++開發完成,早期版本的Cocos 2d-x提供Cocos Studio作為開發工具,能夠同時支持C++,Lua和JavaScript三種開發語言進行邏輯設計。
目前,基于Cocos 2d-x引擎開發的游戲非常多,多數2D游戲開發者都會首選該引擎,日本游戲公司基于該引擎開發的《怪物彈珠》成為2014年日本付費游戲第一名。
Cocos 2d-x最大特性是跨平臺部署,能夠一次編寫,發布到IOS,Android和HTML5頁面平臺。同時其作為專業2D游戲引擎,圖形部分基于OpenGL ES進行渲染,引擎中附帶一些3D的效果。
經過幾年發展,Cocos 2d-x在2016年推出了全新Cocos Creator集成開發工具,該工具是以內容創作為核心的游戲開發工具,實現了一體化、可擴展、可自定義工作流的編輯器,并形成了組件化編程方式,極大簡化了游戲開發工作流中的場景編輯、UI設計、資源管理、游戲調試和預覽、多平臺發布等工作。不過該開發工具放棄了C++和Lua語言,僅僅支持JavaScript作為開發語言。
2.4 LayaAir引擎
由中國公司Layabox打造的基于HTML5協議的跨平臺游戲開發的開源免費引擎。該引擎除了能開發HTML5的游戲以及一些富媒體應用外,還能夠將最終的應用發布成為APP和Flash頁面。
該引擎圖形部分從一開始便基于WebGL渲染,能夠直接調用硬件GPU進行加速,故在游戲性能上有一定優勢。該引擎提供集成化開發工具LayaAir IDE,支持ActionScript3、Typescript、JavaScript三種開發語言,其中AS3主要應用在Flash應用的發布上。
LayaAir引擎支持開發2D、3D及VR的網頁產品(HTML5),同時能夠發布IOS、Android和Flash(處于淘汰中)應用,最為主要的是,該引擎在H5游戲的性能方面優化較好,大型H5游戲能夠在不需要runtime的情況下達到較高流暢度(該引擎同時提供LayaPlayer作為運行器,該運行器也被多個主流瀏覽器預裝)。
該引擎現在歸屬與觸控科技。
2.5 Egret引擎
Egret引擎是在2014年由國內公司設計的基于HTML5的開源、免費游戲引擎,可以說該引擎與LayaAir引擎比較相似,都和早期的Flash有一定的淵源,脫胎于HTML5。
該引擎提供名為Egret Wing的可視化開發環境,只能使用Typescript作為開發語言,基于組件的編程設計,能夠極為快速的開發小型HTML5游戲,同時能夠打包作品到移動平臺APP及HTML5頁面。
該引擎圖形部分早期基于HTML5的Canvas模式,兼容性較好,但性能較差,基本無法開發大型的H5游戲。
2016年,該引擎在3.0.8版加入了基于WebGL渲染支持,圖形方面有較大改善,能夠勝任大型H5游戲的開發,同時在3D效果方面支持較好,提供功能包含模型,骨骼動畫,光照系統,粒子系統等。Egret作為國內3大游戲引擎之一,可以說在各個方面都表現的很均衡,隨著幾乎所有主流瀏覽器支持WebGL后,該引擎與LayaAir形成了HTML5引擎的國內第一梯隊。
3 主流游戲引擎間的比較
現在的游戲引擎格局和早些年有很大不同,最主要的變化是普通開發者也能夠免費的使用、學習和開發自己的游戲,而游戲引擎公司也都開始了平臺化運營,即通過引擎網羅優質游戲內容(CP)公司,并通過在引擎內提供平臺接入(廣告、渠道、支付、社區)、聯合運營等方式,幫助游戲公司快速發行游戲獲得收入。當然,依然有些公司選擇自己開發游戲引擎,這些不屬本文討論范圍。雖然游戲引擎的運營方式大同小異,但引擎本身的差異還是很多的,本文列舉了上一章中各個引擎的不同地方,見表1。
4 結 語
對于現在比較流行的中小型HTML5游戲而言,Cocos2d-x、LayaAir和Egret引擎相對來說比較合適。而對于開發大型3D游戲,虛幻引擎則更加適合,但對開發者的要求也比較高。
Unity相對來說比較均衡,也很容易學習,但是其不開源的問題可能會讓一些開發者選擇其它引擎。總體而言,免費和易用的浪潮已經行程,對于廣大開發者和愛好者而言,都是好事一件。
參考文獻:
[1] 李紅波,吳雨芯,趙寬,等. Android平臺下3D游戲引擎技術的研究及應 用綜述[J].數字通信,2012, 39(5):28-33.
[2] 高興,鄭智,全宇.三維游戲引擎的研究與設計[J].計算機系統應用,
2013(8):29-33.
[3] Carlson R E. Universal game engine for a game network and
method therefor: US, US6428413[P].2002.
[4] 張健.次時代游戲引擎設計與實現[D].北京:北京交通大學,2014.
[5] Goussencourt T D, Bertolino P. Using the Unity game engine as a
platform for advanced real time cinema image processing[J]. 2015.