HTML5 游戏引擎的选择

原生手游市场已经是红海,腾讯、网易等寡头独霸天下,H5游戏市场或将成为下一个风口。据笔者所知,不少H5游戏开发团队因为选择引擎不慎致使项目甚至团队夭折。如何选择适合团队和项目的引擎,笔者经过学习和项目实践,总结微薄经验,供你们参考,非技术人员也能够将本篇内容做为引擎选择的重要关注点。web

选择H5游戏引擎的思考维度一、开发语言的支持二、2D、3D、VR的支持三、性能四、引擎的应用广度五、设计理念六、工做流支持力度七、商业化成熟案例八、学习资源与技术支持能力算法

首先,咱们要知道,当前主流的游戏引擎有哪些。因为H5引擎有不少,笔者在这里进行了精心的筛选,过滤掉不支持webGL的引擎,以及封装了第三方渲染内核的JS框架,和不能直接在浏览器中运行的JS引擎。chrome

为何要过滤掉这几种呢,首先,没有本身的渲染内核,仅仅是基于第三方的内核做的API封装,笔者很担忧可持续的性能优化和维护能力。另外,不能在浏览器中直接运行的JS引擎,将限制H5游戏跨平台的交互能力。还有, 笔者很是看好webGL模式,认为webGL模式才是H5引擎的将来。缘由有几点:浏览器

第1、性能,webGL模式远超Canvas数倍。DOM模式就不适合用于真正的游戏开发,更不用提。第2、3D方向,webGL模式理论上能够制做2D和3D游戏,Canvas和DOM模式下只能制做2D游戏。第3、普及率,webGL的普及率已经很是高了,尤为是支持webGL的腾讯TBS-Blink内核已在4月19日发布,并逐步在微信、QQ空间、QQ浏览器、手机QQ等APP中采用静默安装方式全面升级。这个普及率在国内带来的影响,;你懂的……安全

一、选择H5游戏开发语言性能优化

拥有普遍开发者的H5游戏开发语言共有三种,分别为Flash AS三、TypeScript、JavaScript。其中Flash AS三、TypeScript均属于面向对象的高级脚本语言,经过编译器将原项目代码编译成JavaScript代码文件运行于浏览器之中,面向对象的高级语言不管是项目开发管理,仍是项目开发的工具环境的成熟度都明显优于JavaScript脚本语言,尤为是中大型项目方面,AS3等高级语言的效率会更高。服务器

s1

从上图看出,支持JavaScript语言的引擎更多,因为AS3语言的编译器为Layabox引擎推出的,所以采用AS3做为开发语言的仅有Layabox引擎。笔者建议在开发中大型游戏项目的时候,采用TypeScript或者是Flash AS3语言进行开发。若是是小型游戏,任选其一便可。微信

二、引擎的将来延续能力框架

选择一个引擎,并非简单的认为,知足眼前够用就能够了,引擎的将来延续能力也是很重要的,这个项目是2D,下个项目想开发3D,若是引擎不支持怎么办?去换个引擎?若是VR的机会来了,再想发布VR版本,这个引擎不支持,须要从新开发吗?等等问题,做为开发者尽量要提早想好。编辑器

s2

经过上图,能够看出,即使是在支持webGL的H5引擎里,有只面向2D游戏的,也有只面向3D游戏的,同时支持2D、3D、VR的H5引擎,从目前看只有Layabox与Egret引擎。

三、性能是核心需求

性能是H5游戏面临的核心门槛,也是不少H5游戏不被专业玩家承认的重要缘由之一。游戏卡顿,不流畅,这样的产品体验很难在激烈竞争中生存下来。

H5产业早期的普及阶段即将过去,游戏品质在迅速提升,品质中包括精细的美术和炫酷的动画等。在复杂的游戏项目面前,上述种种元素,其流畅体验度对游戏引擎是极大的考验。因此选择性能优秀的引擎是保证品质的最重要基础,必定要谨慎。服务器监控维护

在游戏项目研发开始时,必定要先对复杂的模块作DEMO测试,特别是带背景滚动的游戏。好比横屏卷轴游戏,对帧数稳定性要求极高,若是知足不了性能上的需求,可能会带来眩晕、眼花、疲倦等不良体验。

s3

在webGL的2D渲染性能方面,pixi.js的性能处于当前的顶级。在webGL的3D渲染性能方面,Three.js很是优秀。在runtime方面Cocos2d-js也有着原生级的表现,通过对比,笔者认为Layabox性能的综合实力最强,在各个渲染领域都保持在HTML5引擎的顶级水平。固然,上图仅做为参考,对于任何号称某个引擎性能最牛的论调,必定要亲自进行性能DEMO的测试对比,而不要轻易采信。

因为性能是游戏最核心的需求,笔者这里再多说一句,大型项目在系统复杂度、UI复杂度、动画显示数量和种类等方面与小型游戏项目彻底不在一个量级。会涉及到比小游戏更复杂的性能优化、内存管理、资源管理等需求,若是选择了小马拉大车的低性能引擎,项目夭折可能性很是大,除非最后项目开发者花大量时间本身优化引擎。因此性能差一点,就会致使结果差不少,不可主观想象。

四、与引擎的应用广度

随着H5游戏品质提高,在其余领域也具有必定的竞争力和价值,一次开发可发行各个领域版本,已成为日渐明确的需求,这里面包括发行原生APP手游和PC的flash页游需求,大统一的引擎时代即未来领。目前最火爆的H5游戏《传奇世界H5》听说有40%的收入来自PC网页。

发布PC页游时,因为PC浏览器目前对HTML5兼容性不足70%,用户损耗很大,页游联运平台可能会拒绝或放量不多,只有采用能同时发布Flash版本的引擎,才能解决这个问题。

s4

五、设计理念与定位

设计理念是个比较大的话题,也是个很重要的引擎选择因素,好比引擎是要专一移动端,仍是要面向全平台多端游戏市场。是注重性能,仍是注重工具链等等。深刻了解不一样引擎的理念与定位,才能更好的与游戏产品进行结合。

s5

上图内容仅做参考,详情建议去各引擎官网深刻了解。

六、工做流支持力度

做为商业级开源引擎,工具链的提供与支持也是一种选择考量要素,好比UI编辑器、粒子编辑器、骨骼编辑器、场景编辑器等等,若是引擎方直接提供或支持,那么将会较大的提高研发效率。本文中提到的7个引擎,只有Egret、Layabox、Cocos2d-JS这三个引擎,在工具链方面提供足够全面的支撑。

七、是否有成熟的商业案例

怎么证实引擎是成熟的?必定要有成熟的商业案例,通常引擎的官网上都会有游戏案例介绍,咱们在选择引擎以前要进行深刻体验,包括:商业案例的数量、商业案例的种类、稳定性、流畅度(要在低端机里体验)、项目复杂度、项目类似度等。若是有一些大型成功案例背书会相对安全可靠些。从目前的行业案例来看,Layabox引擎的MMORPG《醉西游》、重度动做游戏《猎刃2》、大型模拟经营游戏《梦幻家园》等无疑是H5引擎技术的最高水准表明做。可是从卡牌、挂机等类型的付费游戏整体数量来看,Egret引擎明显占优,充分说明该引擎的市场宣传力度更胜一筹。

八、学习资源与技术支持能力

能提供什么样的学习资源,以及技术支持,对于开发者也是重要因素,若是你是技术大牛,只想使用轻量的第三方渲染内核。那么2D游戏,pixi.js无疑是首选。3D游戏,笔者推荐Three.js。可是这两种引擎的学习资料都比较稀少。笔者认为学习资料的完善,以及在学习过程当中的技术支持力度,将会很大的帮助你解决引擎使用中的问题。因此,API完善,DEMO完善,文档完善,社区的响应速度,交流氛围,以及QQ技术支持等,均可以做为你选择引擎的因素考量之一。

九、页游移植产品的引擎选择

目前像《醉西游》等优秀H5产品是Flash页游或手游移植而成,移植类的产品在选用引擎时要注意,代码是否能够直接移植?若是能够,那将节省大量的开发成本。好比Flash AS3开发的2D或3D页游或手游,能够把逻辑与算法代码直接拷贝移植到Layabox引擎项目中,开发速度提升数倍。

写在最后:最后提醒一下,千万不要相信某些引擎的单方宣传,必定要花一点时间去研究实践,亲自制做DEMO去做一做对比,动手体验到的才是真理。

针对DEMO测试笔者有几点建议:

一、采用一个复杂的UI,特别是复杂列表,好比说没有分页的背包列表,背包里放上不一样的道具图片,测试滑动时的流畅度,这块比较考验性能,元素越复杂,数据越多,尤为能对比出来性能上的差别。

二、包含最复杂战斗部分,不要写战斗逻辑代码,否则会花的时间太长,只须要把战斗相关的动画和复杂的元素放在场景中模拟便可,由于H5游戏性能瓶颈一般在于画面的显示。

三、 测试主要目的是看项目在引擎中性能,这是最相当重要的,因此,硬件上,咱们要选择低端安卓手机(好比红米)进行测试。软件环境建议使用微信环境测试,首先,由于微信公众号是H5的主要渠道之一,其次,微信当前的H5性能低于chrome浏览器,在恶劣的环境下更能测试引擎的优劣。

相关文章
相关标签/搜索