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

原创 2017年06月01日 22:20:16

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

开发H5游戏的引擎有很多,比如egret、laya、cocos-js等等。这里主要是分析的是egret和laya,因为我们团队是从as3转过来的。所以天然地在有as3基因的egret和laya之中挑选一个。

  1. Egret

    Egret Framework是一款使用JavaScript(TypeScript)编写的HTML5开源免费游戏框架。核心定位是开放,高效,优雅。基于它,你可以快速轻松地构建属于自己的HTML5移动游戏。
    https://www.egret.com/

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

    LayaAir是Layabox旗下第二代HTML5开源引擎,是全球性能最高的HTML5引擎之一。
    LayaAir突破性的将2D、3D、AR、VR和页游、Native手游、HTML5游戏等诸多需求通过一个引擎得以统一。目前引擎已被腾讯、Forgame、37玩、仙海、胡莱、蝴蝶互动等200多家知名厂商采用。
    http://www.layabox.com/

二、选择引擎的思路

关于egret和laya谁比较好,比较适合。各自的评判的标准都不一样。反正他们都各自说得自己很好,加上本身没有实际用过,所以选择起来看也很为难。
这里写图片描述
所以这里也只是提出我自己的观点。只是根据具体的项目、团队等情况来做个选择。再者他们官方都有提倡或者标签自己如何高效如何好用,性能怎样怎样。但是没实际踩过那些坑,还真不好评判。

  1. 使团队最小代价进行转型,团队原先是AS3页游团队,有丰富的AS3页游开发经验以及相关的代码积累,所以希望能够利用到这些原有的优势,使得能够快速上手,快速出项目。
    ActionScript3页游ActionScript3页游

  2. 希望有强类型的编程语言,不然纯js这种没强类型的语言,对于开发大型游戏项目来说简直是噩梦。决定使用TypeScript语言

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

三、Egret和Laya的相似性

  1. 支持TypeScript语言来编写
  2. 有自带的IDE工具,可以进行断点调试,带有Web服务和二维码。都是基于Visual Studio Code这个工具进行扩展的,所以两者长得非常像。左边是Egret,右边是Laya Air
    这里写图片描述

这里写图片描述
3. 都是对AS3程序友好。egret是很大部分继承as3系统,as3上大部分api它都有。laya也算是大部分继承as3,经典常用的类都有。下面是AS3、Egret、Laya的部分API图
这里写图片描述
两者的渲染体系以及基础API都非常类似,原来的AS3程序员可以轻松上手。
4. 都有支持AS3代码直接转TypeScript的工具(后来实际使用发现这个转换工具没什么用,最后移植的代码都是纯手打)

四、Egret和Laya的状况

egret成名比较早,发展得比较快,各方面的资源而比较多,也有大神的加入,利用它开发游戏的厂商也会比较多。配套也比较齐全,各种工具都有,但是给人感觉是大而不精的样子,都有各种各样的问题。IDE Wing以及TextureMerger比较常用,其他的只有根据项目需要的时候才会用。

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

五、最终选择

说真的,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,也方便移植到其他引擎(这个真的很正确呀)。

六、后记,神转折

上面列了很多理由来让团队选择Laya,好像非常合理,然并卵。在决定使用laya之后,我们快速地开发出了一个aprg的demo,同时移植了as3的基础库和mvc框架。然后没多久,投资运营方要求我们换成Eerget,理由也很简单。运营商那边要求我们使用Egret。因为Egret看起来高大尚很多,各种工具也很齐全(虽然很多工具,但是实际开发,有用的真心不多)。最重要的是他们运营的几款都是基于Egret开发的,他们同时也在同Egret开发产品,为了方便之后的交流以及相关的运营经验,所以要求研发这边使用Egret。
这里写图片描述
好在,我们前期开发的大部分都是基础库,用的是TypeScript语言,所以切换回Egret的代价也不大,最后,我们采用了Egret作为我们开发H5游戏的引擎,于是开发继续了。
这里写图片描述

版权声明:本文为博主原创文章,转载必须声明出处和作者。地址:http://blog.csdn.net/sujun10 作者:弃天笑 https://blog.csdn.net/sujun10/article/details/72824248

H5 游戏主流引擎和编程语言

引言:最近微信新版本,主推小程序中的小游戏模块,一个 “跳一跳” 的 H5 游戏瞬间爆火,虽然很多传言说 H5 真正盈利的时机未到,因为它的突出作品大多是简单的小游戏,好玩但不吸引付费。然而,H5 游...
  • linshuhe1
  • linshuhe1
  • 2018-01-14 13:38:09
  • 2316

H5游戏开发:游戏引擎入门推荐

H5游戏开发:游戏引擎入门推荐 前言 很多刚刚接触到游戏开发,准备大展拳脚的小鲜肉们,往往在技术选型这第一关就栽了跟头。毕竟网络上的游戏引擎良莠不齐,官网上相关资料也比较少,而...
  • CJB_King
  • CJB_King
  • 2018-01-18 10:57:00
  • 1149

25 个超棒的 HTML5 & JavaScript 游戏引擎开发库

作者:ejinxian 就像在汽车中,引擎完成主要的工作,使汽车看起来不可思议。游戏引擎同理,游戏开发者完成细节的工作,使游戏看起来真实、吸引人眼球。游戏引擎负责其余的事情。早期,游戏开发者通常从草...
  • dj0379
  • dj0379
  • 2016-07-19 23:16:20
  • 16459

H5游戏开发的架构总结(一) 客户端

【客户端】 1.关于游戏引擎 在15年3月开始准备做h5游戏的时候,首先遇到的问题就是引擎选型的问题。 当时市面上的2d引擎主要有3个:白鹭egret,layabox和cocos2d-js。 一方面,...
  • wk3368
  • wk3368
  • 2016-07-17 22:36:36
  • 12023

js开发实现简单贪吃蛇游戏(20行代码)

曾经诺基亚的贪吃蛇风靡一时,在游戏匮乏的年代,用java实现太难,现在网页制作20行代码就做成一个简单的demo了,时代在进步啊 代码: 01 02 html>...
  • hj7jay
  • hj7jay
  • 2016-03-30 09:45:31
  • 52649

排名前10的H5、Js 3D游戏引擎和框架

由于很多人都在用JavaScript、HTML5和WebGL技术创建基于浏览器的3D游戏,所有JavaScript 3D游戏引擎是一个人们主题。基于浏览器的游戏最棒的地方是平台独立,它们能在iOS、A...
  • hb_zhouyj
  • hb_zhouyj
  • 2017-11-24 14:54:35
  • 1809

创建基础场景---基于WebGL的H5 3D游戏引擎BabylonJS

在本教程里, 我们将用Babylon.js创建一个基础的3D场景.具有两个造型物的基础场景在你开始之前,请确定你有个支持WebGL的浏览器 (比如:IE11+, 火狐4+, 谷歌浏览器9+, Oper...
  • AceWay
  • AceWay
  • 2016-05-08 21:19:32
  • 5780

【h5白鹭引擎】如何快速开发一个小游戏

1.环境搭建 2.开发项目 3.编译发布
  • edisonbeok
  • edisonbeok
  • 2015-07-21 10:32:23
  • 8685

准备开始layabox了

之前一直用cocos的native开发,c++,lua都用过,总体上还是不错的,必竟用的人多。 只要有问题百度总是可以解决的,实在不行就google。 不过它的js情况就不那么理想了。纯h5的跑起...
  • nynyvkhhiiii
  • nynyvkhhiiii
  • 2017-03-21 10:04:45
  • 3354

游戏引擎cocos2d-js和egret 对比

目前项目组的游戏开发都已经完成,准备开下一个项目。因为产品制作人想要兼容html5,备用的引擎有cocos2d-js和egret,下面就简单的来看看这两个引擎。 cocos2dx官方主页:http:/...
  • xufeng0991
  • xufeng0991
  • 2015-03-09 16:24:50
  • 10575
收藏助手
不良信息举报
您举报文章:开发H5游戏引擎的选择:Egret或Laya?
举报原因:
原因补充:

(最多只允许输入30个字)