开发H5游戏引擎的选择:Egret或Laya?

1、H5游戏开发的引擎介绍

开发H5游戏的引擎有很是多,比方egret、laya、cocos-js等等。这里主要是分析的是egret和laya,因为咱们团队是从as3转过来的。css

因此自然地在有as3基因的egret和laya之中挑选一个。编程

  1. Egret api

    Egret Framework是一款使用JavaScript(TypeScript)编写的HTML5开源免费游戏框架。核心定位是开放,高效,优雅。基于它,你可以高速轻松地构建属于本身的HTML5移动游戏。markdown


    https://www.egret.com/mvc

  2. Laya,这里主要就是LayaAir了。框架

    LayaAir是Layabox旗下第二代HTML5开源引擎,是全球性能最高的HTML5引擎之中的一个。
    LayaAir突破性的将2D、3D、AR、VR和页游、Native手游、HTML5游戏等诸多需求经过一个引擎得以统一。眼下引擎已被腾讯、Forgame、37玩、仙海、胡莱、蝴蝶互动等200多家知名厂商採用。编程语言


    http://www.layabox.com/工具

2、选择引擎的思路

关于egret和laya谁比較好。比較适合。post

各自的评判的标准都不同。反正他们都各自说得本身很是好,加上自己没有实际用过,因此选择起来看也很是为难。性能


这里写图片描写叙述
因此这里也仅仅是提出我本身的观点。仅仅是依据详细的项目、团队等状况来作个选择。再者他们官方都有提倡或者标签本身如何高效如何好用,性能如何如何。但是没实际踩过那些坑,还真很差评判。

  1. 使团队最小代价进行转型,团队原先是AS3页游团队,有丰富的AS3页游开发经验以及相关的代码积累,因此但愿可以利用到这些原有的优点,使得可以高速上手。高速出项目。
    ActionScript3页游ActionScript3页游

  2. 但愿有强类型的编程语言。否则纯js这样的没强类型的语言,对于开发大型游戏项目来讲简直是噩梦。

    决定使用TypeScript语言

  3. 有比較完毕的工具链。从开发的IDE,到资源制做管理等
  4. 开放源代码,而且有良好的开发文档。有第三方库或者方便支持第三方库
  5. 活跃的论坛和客服,有问题可以直接进行询问解决实际生产中遇到的问题

3、Egret和Laya的相似性

  1. 支持TypeScript语言来编写
  2. 有自带的IDE工具。可以进行断点调试,带有Web服务和二维码。

    都是基于Visual Studio Code这个工具进行扩展的,因此二者长得很是像。左边是Egret,右边是Laya Air
    这里写图片描写叙述

这里写图片描写叙述
3. 都是对AS3程序友好。egret是很是大部分继承as3系统。as3上大部分api它都有。laya也算是大部分继承as3。经典常用的类都有。

如下是AS三、Egret、Laya的部分API图
这里写图片描写叙述
二者的渲染体系以及基础API都很是相似,原来的AS3程序猿可以轻松上手。
4. 都有支持AS3代码直接转TypeScript的工具(后来实际使用发现这个转换工具没什么用,最后移植的代码都是纯手打)

4、Egret和Laya的情况

egret成名比較早,发展得比較快,各方面的资源而比較多。也有大神的添加,利用它开发游戏的厂商也会比較多。

配套也比較齐全。各类工具都有,但是给人感受是大而不精的样子。都有各类各样的问题。

IDE Wing以及TextureMerger比較常用。其它的仅仅有依据项目需要的时候才会用。

laya相对出名比較晚,工具和资金也会相对缺少一些。

5、终于选择

说真的。Egret当时也是认为很是好。通过网上相关资料搜寻比較和细致考虑。终于选择了Laya。仅仅能依据搜索一些信息来综合评价。感受感性会多一些。

说下主要缘由:
1. laya的社区比較活,客服回复速度快,有问题直接问客服。那边也积极回答。


2. 从网上获得的一些消息,都是说egert作小游戏的比較多,作大型的游戏的话,仍是laya好一点。而且官方也说专门作大型游戏的。

(这点没经考证的。网上听说)
3. 另一个决定因素是咱们以前as3页游的时候。ui框架是採用mornui。

laya官方自带就是mornui。加上咱们用egret的时候。很是不习惯他们的eui框架。

(我认为这个是最基本的缘由。其它的性能什么的,终于都是编译h5,因此预计区别不会很是大。剩下的就是开发体验和ui工具的便捷性了)
4. 感受尽管laya很是大程度模仿了as3的api。但是会对当中一些繁琐的部分进行了优化和改进。使用起来也方便和舒服很是多。

比方事件监听至关简洁 on和off取代了以及添加了once

Egret代码: egret.IEventDispatcher

public addEventListener( type:string,listener:Function ,thisObject:any ,useCapture:boolean ,priority:number ):void
public removeEventListener( type:string,listener:Function ,thisObject:any ,useCapture:boolean ):void

再看Laya的代码:laya.events.EventDispatcher

public on(type:String, caller:*, listener:Function, args:Array = null):EventDispatcher
public off(type:String, caller:*, listener:Function, onceOnly:Boolean = false):EventDispatcher
  1. Laya事实上是支持用AS3语言开发,尽管团队有人认为使用这个不错,成员过渡零成本。但是我仍是否决了,认为再继续写AS3没什么意义了。仍是要学一些新的语言活跃思惟会更好。固然更重要的是使用通用的TypeScript。也方便移植到其它引擎(这个真的很是正确呀)。

6、后记。神转折

上面列了很是多理由来让团队选择Laya。好像很是合理。然并卵。

在决定使用laya以后,咱们高速地开发出了一个aprg的demo,同一时候移植了as3的基础库和mvc框架。而后没多久,投资运营方要求咱们换成Eerget,理由也很是easy。运营商那边要求咱们使用Egret。因为Egret看起来高大尚很是多,各类工具也很是齐全(尽管很是多工具。但是实际开发,实用的真心很少)。最重要的是他们运营的几款都是基于Egret开发的,他们同一时候也在同Egret开发产品,为了方便以后的交流以及相关的运营经验,因此要求研发这边使用Egret。
这里写图片描写叙述
好在,咱们前期开发的大部分都是基础库,用的是TypeScript语言,因此切换回Egret的代价也不大。最后,咱们採用了Egret做为咱们开发H5游戏的引擎。因而开发继续了。
这里写图片描写叙述

相关文章
相关标签/搜索