前言许多刚接触游戏开发,准备大展拳脚的小鲜肉,往往在技术选型的第一关磕磕绊绊。毕竟网上游戏引擎有好有坏,官网上的相关资料也比较少。选择合适的游戏引擎是一个项目最基础也是最核心的部分。试想一下,当游戏开发到中后期的时候,发现项目引入的游戏引擎不符合需求。这时候无论是做一些修复工作还是更换游戏引擎,这都是一个非常耗费人力的过程。事物。为了避免这种情况,在前期选择适合项目需要的游戏引擎就显得尤为重要。接下来说说如何选择适合项目的JS游戏引擎。游戏场景分类当我们第一次接到游戏需求的时候,我们可以从以下几个方面来分析游戏需求的场景,可以作为我们选择游戏引擎的依据。游戏效果的渲染方式(2D?3D?VR?)这个直接和游戏引擎支持的渲染方式挂钩。目前的H5游戏渲染方式一般有2D渲染、3D渲染、VR渲染。二维渲染一般分为三种:Dom渲染、Canvas渲染和WebGL渲染。由于性能原因,Dom一般只适用于动画效果较少、交互较少的小游戏。本文主要介绍Canvas和WebGL。一般来说,对于小型2D游戏来说,Canvas渲染就足够了。但由于底层封装层数较多,Canvas渲染不足以支持大型游戏的性能需求。所以大型游戏最好选择WebGL渲染或者浏览器内嵌Runtime。游戏的复杂度与游戏引擎支持的功能、提供的API、性能有很大关系。游戏引擎推荐笔者从以下几个方面对业界比较流行的一些框架进行对比,希望能从客观数据中为大家的技术选型带来建议和参考。引擎支持的渲染方式github上的star数更新时间文档详情周边产品2D、3D、VR均支持游戏引擎EgretEgret引擎是一个企业级的游戏引擎,由一个团队维护。Egret在工作流支持方面做得很好,从Wing代码编写,到ResDepot和TextureMerger资源整合,再到Inspector调试,最后到原生打包(支持APP打包),游戏开发流程的各个环节基本都有工具支持.官网上有很多例子和教程。值得一提的是,EgretEngine在今年5月份支持了WebAssembly,这是性能提升的又一个里程碑。在LayaAir的渲染方式上,LayaAir支持Canvas和WebGL;在工具流程支持方面,主要提供LayaAirIDE。LayaAirIDE包括代码模式和设计模式,支持代码开发和美工分离,内置SWF转换、图集打包、JS压缩加密、APP打包、Flash发布等实用功能。下图是Pixi.js,一个主要支持2D游戏的游戏引擎。一般来说,WebGL的渲染速度要比Canvas快,这是由两者的绘制路径决定的。Pixi最大的特点是Pixi拥有完整的WebGL支持,但不需要开发者掌握WebGL的相关知识,需要时无缝回退到Canvas。与很多同类产品相比,它的渲染能力还是比较强大的。不过,皮喜也有缺点。Pixi对动画的支持比较欠缺。在实际开发中,往往需要引入额外的动画库,比如GSAP。PhaserPhaser在渲染方面直接封装了Pixi;在架构方面,Phaser嵌入了3个物理引擎(ArcadePhysics、Ninja、p2.js),提供粒子系统、动画、预下载和设备适配解决方案;在兼容性方面,Phaser的重点是移动端浏览器;在API方面,Phaser可以实现丰富的游戏功能,适合高复杂度的游戏开发。CreateJSCreateJS官方提供TweenJS支持动画开发,通过SoundJS和PreLoadJS提供音频和预下载支持,足以满足H5游戏的基本功能。在兼容性方面,CreateJS几乎支持PC端和移动端的所有浏览器。此外,CreateJS还支持使用flashCC开发导出CreateJS渲染的H5游戏。HiloHilo是阿里团队推出的开源项目,支持模块化开发,提供各种模块范式的封装版本和跨端解决方案,适合开发营销类小游戏。它的体积也比较轻,只有70kb左右。Hilo支持DOM渲染、Canvas渲染和WebGL渲染,集成了HiloAudio和HiloPreload。随后的希洛3D也是其亮点之一。Cocos2d-xCocos2d-x是业界比较老牌的游戏引擎。它支持三种开发语言:C++、Lua和JavaScript。官方用例更倾向于C++开发,适合一些中大型游戏开发。Cocos2d-x提供CocosCreator游戏开发工具,组件化、脚本化、数据驱动、跨平台发布。lufylegend.jslufylegend.js的最新更新是在2016年,但它的社区仍然非常活跃。如果您遇到任何开发问题,您可以轻松地在社区中找到解决方案。lufylegend.js可以支持基本的游戏功能,但是扩展性不是很强。Three.js这个主要支持3D游戏的游戏引擎,相信很多关注3D游戏的开发者都不陌生。其实Three.js的官方定位并不是游戏引擎,而是一个JS3D库。Three.js更偏向于展示视觉呈现,很少直接使用Three.js开发H5游戏。在渲染环境上,Three.js支持WebGL和CSS3D两种渲染模式。PlayCanvas从渲染支持来看,PlayCanvas不仅支持3DWebGL渲染,还保持了对VR的支持,具有比较好的扩展性。支持工具流,提供在线编辑、发布托管等服务。从官方教程来看,教程也比较详细。结语市面上H5游戏引擎众多,很难直接定义引擎的好坏。只能说每个引擎都有自己的特点,在某些方面更符合项目。笔者对几款比较流行的引擎做了一些比较,希望能帮助大家在刚入门的时候进行技术选型,找到适合项目的引擎,更快、更准确、更高效地完成项目需求。图片来源:页游
