相关文章推荐
热心肠的匕首  ·  【运维心得】centos7 ...·  2 月前    · 
强悍的核桃  ·  中国服务贸易指南网·  3 月前    · 
想旅行的书签  ·  AMD Customer Community·  7 月前    · 
聪明伶俐的大象  ·  c++11 - Android ...·  9 月前    · 

由于公司业务需要,不得不硬着头皮,开始写H5游戏(主要运用于手机端),之前对于游戏开发完全是陌生领域,突然要开发游戏了,只能说一脸懵逼。

然后,我就开始调研,H5游戏都用的哪些游戏引擎,大致搜索了一下,主要以下几种:

  • Egret
  • LayaBox
  • Cocos2d-js
  • 其它还有一写引擎,但不是主攻游戏的,比如 three.js 等等,就暂时不提了。

    纯小白,也不知道哪个好,就去早对比资料,选择一个入手

    三大引擎对比

    H5游戏引擎主要三大语言: JavaScript , TypeScript , ActionScript3

    其中 ActionScript3 是flash游戏的主要语言,但是,我也不会它,所以,只要关注 JavaScript , TypeScript 即可。

    很幸运, Egret Layabox Cocos2d-JS 这三个引擎,在工具链方面都提供足够全面的支撑。

    其中 Layabox 的工具链最完善, Egret 也提供了一系列工具

    三款引擎官方文档都齐全,相对来说, Cocos2d-JS 目前支持力度不行。

    基本上可以排除 Cocos2d-JS 了,就是在 Egret Layabox 二选一,不过我个人感觉,Layabox 更加面向 flash 游戏开发者转型,我反正是做小游戏,而且不关心flash,也没有flash基础,还是使用名气更加大的 Egret 好了。

    引擎也选择好了,就开始动手撸代码了。

    开始前的准备

    https://www.egret.com/ 高大上的官网,直接下载引擎 Egret Engine .

    安装之后,双击打开,下载工具 Egret Wing3 (IDE)、 Texture Merger (帧动画制作工具). 别的软件暂时没啥用(主要是我水平渣)

    创建工程的时候,有点傻眼,好多选择,最终考虑到我们的游戏设计师出生于网页设计,大量类似网页的元素存在,还是勾上eui好了。

    简单介绍一下eui,其实eui在我看来就是模拟HTML的dom。

    因为是在canvas中,所以本身没有dom,这样游戏中的一些弹窗,滚动浏览一类的东西,需要自己做,omg,不会。。。 所以最终借助EUI这种东西,写一个叫exml,没错其实就是xml,只是egret进行定制版本而已。。。

    简单的说,就是你写 xml来作为dom节点,egret内置几种类型,来模拟常见的几种HTML标签,当然只是比较类似,做不到一模一样,也没有css,但是可以用js进行类似css的样式调整。有点像react native中使用jsx来进行布局,调整样式。

    所以,我这样的一直是纯H5前端开发的,还是老老实实选上eui。方便属性很多。

    做游戏和一般的前端开发不一样,有一个主函数入口,一起都从 main 函数开始(有点类似c++)

    白鹭引擎也是从Main函数开始创建,进行场景进入与切换。

    白鹭引擎本身提供了几个库,可以直接用它的api写代码了,不需要了解canvas的底层api了,渲染、性能等等,它都帮你解决了。

    开发中遇到的问题

    白鹭引擎没有提供粒子库,所以需要使用第三方的库,而第三方的库,导入项目,确实麻烦,各种修改之后才成功。