现代游戏开发引擎解析
2016-11-29刘为
刘为
摘 要:随着游戏产业的不断壮大,游戏开发引擎及工具开始变得免费和易用。文章介绍并分析了当下在中国应用最为广泛的几款商用游戏开发引擎和工具,对各个引擎特性进行了阐述,并从多个方面对这几款引擎进行了对比,为开发者选用合适引擎提供了参考。
关键词:游戏引擎;虚幻;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.