整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

避坑宝典:如何选择HTML5游戏引擎

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

选择H5游戏引擎的思考维度

1、开发语言的支持

2、2D、3D、VR的支持

3、性能

4、引擎的应用广度

5、设计理念

6、工作流支持力度

7、商业化成熟案例

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

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

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

第一、性能,webGL模式远超Canvas数倍。DOM模式就不适合用于真正的游戏开发,更不用提。

第二、3D方向,webGL模式理论上可以制作2D和3D游戏,Canvas和DOM模式下只能制作2D游戏。

第三、普及率,webGL的普及率已经非常高了,尤其是支持webGL的腾讯TBS-Blink内核已在4月19日发布,并逐步在微信、QQ空间、QQ浏览器、手机QQ等APP中采用静默安装方式全面升级。这个普及率在国内带来的影响,;你懂的……

1、选择H5游戏开发语言

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

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

2、引擎的未来延续能力

选择一个引擎,并不是简单的认为,满足眼前够用就可以了,引擎的未来延续能力也是很重要的,这个项目是2D,下个项目想开发3D,如果引擎不支持怎 么办?去换个引擎?如果VR的机会来了,再想发布VR版本,这个引擎不支持,需要重新开发吗?等等问题,作为开发者尽可能要提前想好。

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

3、性能是核心需求

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

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

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

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

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

4、与引擎的应用广度

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

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

5、设计理念与定位

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

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

6、工作流支持力度

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

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

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

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

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

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

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

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

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

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

2、包含最复杂战斗部分,不要写战斗逻辑代码,不然会花的时间太长,只需要把战斗相关的动画和复杂的元素放在场景中模拟即可,因为H5游戏性能瓶颈通常在于画面的显示。

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

为市面上唯一一款纯HTML5技术而备受瞩目的青瓷引擎(QICI Engine),在经历了一个多月的封闭测试之后,近日全新0.95版本正式发布。据悉,该版本的青瓷引擎(QICI Engine)已具备了正式开发游戏的条件,不但保持了已有的专业HTML5引擎核心要素,对于HTML5游戏的开发服务及性能上亦进行了强化,同时还为开发者量身打造了上百个示例工程,降低学习成本,入门更加轻松。

在此之前,青瓷引擎(QICI Engine)以“让天下没有难做的游戏”为口号,出席了各大移动游戏展会及HTML5峰会,从专业的角度以及实例演示,阐述了“真正HTML5引擎究竟应该是什么样的”,吸引了大批开发者的关注。那么,这样一款纯HTML5技术的游戏引擎究竟能为开发者带来什么?0.95版本又解决了哪些问题?

【纯JavaScript语言开发 快速易用无需安装】

青瓷引擎(QICI Engine)极易入门,采用纯JavaScript语言架构,即引擎基于JavaScript,工具基于JavaScript,后台服务基于Node的JavaScript,这样的架构体系使得系统内部各个组件无缝融合,并最大化的减低了对开发人员的要求,只要懂JavaScript即可开发游戏,又可自定义扩展开发工具和后台服务的插件。另外,青瓷引擎无需插件和客户端安装即可在浏览器下运行,甚至在平板和手机上亦能做开发工作。而在0.95版本中,更是新增了上百个示例工程,为开发者的学习保驾护航。

【可视化操作 一站式集成 】

目前市面上有些HTML5引擎,只有简单的制作工具和一堆难懂的渲染API,要做出一款普通的游戏需要耗费较多的精力来开发配套工具,这对大部分普通开发者来说成本难以承受。

青瓷引擎(QICI Engine)是专为游戏开发而生的,采用的是可视化的一站式开发框架,没有复杂琐碎的插件,是为游戏量身定做的所见即所得的集成式开发工具,拥有UI控件、自适应分辨率布局系统、曲线动作编辑器、图集打包等工具,通过简单的拖拽都可以实现很多复杂的功能。最大程度简化开发者的操作。

同时,游戏数据也均为可视化,并且可以直接进行修改。游戏引擎还支持excel配置,游戏的数据、数值甚至一些规则都是可以通过excel表格直接配置。而曲线动作编辑器方面,策划或美工可以直接完成界面打开的动画、界面关闭动画、场景切换效果等等一系列界面动作。在0.95版本中,也更加完善了中文API文档和用户手册,给开发者带来了极大的便利。

【全套通用组件库解决方案 自定义编辑器插件】

青瓷引擎(QICI Engine)的编辑器工具完全基于青瓷引擎Widget全套自家通用组件库解决方案搭建而成,不依赖市面上各种层次不齐的通用组件解决方案,青瓷引擎 Widget组件库包含了树表等丰富的常规组件,以及灵活组件布局功能,组件风格操作模式统一,并且极其高性能,完全能达到和Native组件媲美的高负载和可操作性,这也是青瓷引擎编辑器工具敢于完全基于HTML5开放游戏引擎工具的根基,这样的架构很好的和青瓷引擎融合一体,无需任何插件,即可无缝的查看游戏对象层次结构和调试,并且用户可非常容易的基于青瓷引擎 Widget组件库扩展自定义编辑器插件。

青瓷引擎(QICI Engine)始终致力于开发者的核心体验,性能与高效一直是研发过程中的重中之重,伴随青瓷引擎0.95版本的到来,除了修复BUG外,还新增TiledMap支持,在性能上面也有着更加卓越的表现。

关于青瓷引擎(QICI Engine):

青瓷引擎(QICI Engine)由厦门青瓷数码十几年实际游戏开发经验总结、提炼,汲取Unity3D大部分的优点,采用纯HTML5技术和JavaScript语言,提供一站式2D游戏开放框架及专业的编辑器工具,是一款高性能、高效率,更贴合实际,更亲近程序、美术和策划等开发人员的真正意义上的HTML5引擎。青瓷引擎将以开源和免费的形式发布。

页游戏开发通常使用不同的开发框架和技术栈,以创建各种类型的游戏,从简单的HTML5游戏到复杂的多人在线游戏(MMO)等。以下是一些常见的网页游戏开发框架和它们的特点,希望对大家有所帮助。北京木奇移动技术有限公司, 专业的软件外包开发公司,欢迎交流合作。

1.Phaser:

Phaser是一个用于HTML5游戏开发的流行框架,支持2D游戏开发。它提供了许多功能,包括物理引擎、动画、音频支持等。Phaser易于学习,适用于快速原型设计和小型游戏的开发。

2.Three.js:

Three.js是一个用于创建3D图形和游戏的JavaScript库。它建立在WebGL之上,可以在现代Web浏览器中创建复杂的3D游戏。它提供了强大的3D渲染能力,用于创建虚拟现实(VR)和增强现实(AR)游戏。

3.Unity WebGL:

Unity是一种多平台游戏引擎,可以输出到WebGL平台。Unity提供了广泛的功能,适用于2D和3D游戏的开发。Unity WebGL可用于创建高质量、跨平台的网页游戏。

4.Cocos2d-JS:

Cocos2d-JS是Cocos2d游戏引擎的JavaScript版本,用于创建2D游戏。它支持HTML5、Canvas和WebGL渲染,并提供了跨平台的开发能力。

5.Babylon.js:

Babylon.js是一个开源的JavaScript框架,用于创建3D游戏和应用程序。它提供了强大的3D渲染引擎和工具,支持WebGL,并具有易用的API。

6.PixiJS:

PixiJS是一个轻量级的2D渲染引擎,用于创建HTML5游戏。它专注于性能和易用性,适用于快速的2D游戏开发。

7.PlayCanvas:

PlayCanvas是一个用于创建3D游戏的可视化开发工具和引擎。它支持WebGL和WebVR,适用于创建高质量的3D网页游戏。

8.Phaser 3:

Phaser 3是Phaser游戏框架的升级版本,提供更先进的功能和性能。它支持2D游戏开发,具有现代化的架构。

9.Panda.js:

Panda.js是一个开源的HTML5游戏引擎,专注于2D游戏开发。它支持多平台输出,包括Web和移动设备。

这些开发框架具有各自的特点和适用范围,开发人员可以根据项目需求和技术偏好选择合适的框架。许多框架提供了社区支持、文档和示例,以帮助开发人员更容易入门并创建高质量的网页游戏。同时,还需要考虑游戏的美术设计、音频、性能优化和用户体验等因素,以确保游戏的成功。