随着浏览器功能越来越强大,在网页端实现各种小游戏已经是家常便饭。微信小游戏出现后,游戏(特别是小型游戏)的开发已经进入了一个相当火爆的时期。那么作为一个普通的前端开发者,如何取选择一个合适的游戏开发框架来学习和提高开发效率呢?

  • 当今国内外流行的游戏开发框架有哪些。
  • 每个框架的特点以及优缺点。
  • 怎样去选择一个适合的框架来学习和使用。
  • 使用框架的注意事项。

当今国内外流行的游戏开发框架有哪些

开发动画和游戏,跟我们做数据交互不一样;游戏和动画开发起来比较复杂和耗时,是比较依赖框架和工具的。那么现在都有那些框架和工具呢?下面我们就来看一下。

Name 2D 3D
Three.js no yes
Phaser yes no
Createjs yes no
Egret yes yes
Cocos2d-js yes no

每个框架的特点以及优缺点

上面表格的框架,是我总结出来,比较多同行关注并且学习使用的框架。

Three.js

一款历史比较悠久的开源项目,准确地说它不是一个游戏引擎,是一个 JavaScript 的 3D 库。然而我们可以用它来做各种的 3D 效果和游戏。

优点:
  1. 专注于三维效果的 JavaScript 实现,能够在网页端实现大部分三维效果。

  2. 文档齐全,并具有搜索功能,方便快速查阅。

  3. 国外项目,目前仍然持续更新,不需要担心没人维护国外。

  4. 纯 js 代码开发,引入库即可用,不需要借助其他工具,方面接入任何的系统。

缺点:
  1. 文档大部分是英文,需要具备一定英文水平才能读懂。

  2. 学习难度比较大,除了 js 代码基础,还需要具备高中的几何知识、webgl 知识、线性代数等等。

  3. 国内例子相对比较少,中文教程也不多,基本上都是看官网的例子和文档进行学习和研究。

  4. 网页 3d 效果的兼容性和性能问题,需要详细研究需求后才能使用。

Phaser

免费开源的 html5 游戏框架,支持 canvas 和 webgl 渲染,github 上 2w + star,比较不错的游戏框架。

优点:
  1. 专注于 2d 游戏的 JavaScript 实现,集合了渲染、物理引擎,能够完成大部分小游戏。

  2. 使用方法简单,容易上手。

  3. 官方网站上有大量例子,代码都不负责,基本需要使用的效果都能找到对应的例子。

  4. 纯 js 代码开发,引入库即可用,不需要借助其他工具,方面接入任何的系统。

  5. 能够在微信小游戏中使用,并支持 typescript。

缺点:
  1. 官方文档大部分是英文,并且没有搜索功能,需要按照类一层层往下搜索;假如在官方例子中找不到合适的代码,需要花时间研究文档。

  2. 目前稳定版本是 2.10,但是版本是社区维护;官方在开发新的 3.0 版本,暂时还在调整阶段。

  3. 由于纯代码编写,如果游戏逻辑复杂,代码会比较多和繁琐,需要在前期做比较好的规划。

Createjs

免费开源的 html5 游戏、动画和交互应用框架,adobe animate 软件基于该库来生成代码。

优点:
  1. 动画和交互效果小能手,众多好看和高质量的 h5 展示效果使用 createjs 制作。

  2. 可以使用纯代码开发,或者使用 adobe animate 软件开发。

  3. 国内教程比较丰富,学习成本不大。

  4. 核心库分为四个,分别支持渲染、动画、预加载和音频,可以按需求加载对于库。

缺点:
  1. 例子相对较少,遇到新或者复杂的需求,基本需要查看 api,无法寻找相似例子。

  2. 没有封装好粒子系统、骨骼动画、瓦片地图等等,轻量级的库,不适合大型游戏。

  3. 动画制作一般需要大量图片,涉及图片压缩和使用精灵图方面的技术。

Egret

国内优秀的游戏制作引擎,具备一整套的开发工具和教程。

优点:
  1. 大型游戏制作能手,能够使用图形化工具制作游戏,性能优越。

  2. 使用 typescript 开发业务逻辑,代码规范。

  3. 中文文档和教程,学习方便。

  4. 同时支持 3d 和 2d,并且带有各种模块,游戏制作基本属于全能。

  5. 支持接入微信小游戏。

缺点:
  1. 需要使用工具开发,不方便接入其他业务系统。

  2. 虽然具备中文文档,当时需要熟悉各种工具,学习成本不低。

  3. 例子相对较少,制作大型游戏需要大量填坑。

Cocos2d-js

历史比较悠久的游戏开发框架,类似 egret。

优点:
  1. 2D 优秀开发引擎,同样使用图形化工具制作游戏,操作方便。

  2. 核心使用 JavaScript 编写。

  3. 中文文档和教程,学习方便,并且资料和例子丰富。

  4. 功能相当完整,游戏中需要的功能几乎都能够找到。

  5. 支持接入微信小游戏。

缺点:
  1. 需要使用工具开发,不方便接入其他业务系统。

  2. 需要熟悉各种工具,学习成本不低,这点类似 egret。

  3. 擅长 2D 游戏开发,3D 游戏开发没有其它几个游戏框架专业。

怎样去选择一个适合的框架来学习和使用

学习:

从学习上来说,我推荐初学者挑选纯代码进行开发的框架(three.js、createjs 和 phaser)进行学习。学习这类型的框架,虽然难度比较大,花时间比较长;但是能够提高自己的代码编写水平,还能更加深刻地理解游戏开发。

如果有些小伙伴比较喜欢图形化界面操作,也可以尝试 egret 和 coco2d。这两个框架都是国内比较流行的游戏框架,学习哪一个都会有所帮助。

如果有小伙伴之前是做 flash 的,我推荐使用 adobe animate 软件。

这款软件其实就是以前的 flash 加上了 html5 的 canvas,它既可以生成 flash,也可以制作网页动画;制作的方法也以前的 flash 软件基本一样,只是多了 JavaScript 代码编写。

工作:

在工作中,特别是一些中小型公司,选择游戏框架就跟学习的时候不一样了。

首先需要明确需要制作什么类型的游戏,是否需要接入自己公司的业务系统。

  • 如果是一些小游戏,类似跳一跳、推箱子等等,可以使用纯代码开发的框架。这样无论后面需求是否修改,是否需要接入业务系统,都能够方便进行修改。

  • 如果游戏的形式不太清晰,但是需要接入自己业务系统,例如游戏过后要抽奖、要统计数据等等;也建议优先选择纯代码开发的框架,毕竟纯代码开发的框架,就算前后端没有完全分离,也可以在页面上面放 php 或者 java 代码。

  • 如果需要制作比较复杂的游戏,图形化的开发工具是第一选择。图形化界面能够大大提升游戏开发的效率,而且游戏的结构也是清晰可见,性价比比较高。

  • 如果游戏需求比较复杂,而且需要接入自己的业务系统。这种情况,需要先测试图形化工具缩生成的代码是否能够顺利接入系统,然后再选择使用。

摄图网https://www.wode007.com/sites/73204.html VJ师网https://www.wode007.com/sites/73287.html

使用框架的注意事项

最后,给小伙伴们几个使用框架的建议,下面的都是我经过无数次踩坑总结出来的。

  1. 学习使用过程,遇到英文资料或者文档,建议不要使用翻译软件,通过例子和上下文去理解。

  2. 注意游戏的图片和模型加载,合理使用精灵图和框架的预加载功能。

  3. 开始开发之前,注意测试需要用到的框架属性,是否存在兼容性问题,特别是安卓和苹果手机的区别。

  4. 多复习一下高中的立体几何、解析几何,大学的线性代数、算法和图形图像。

  5. 跟美工打好关系,做游戏时,图片和模型的调整会非常多,没有他们的配合,很难进行。

H5小游戏框架总结推荐相关推荐

  1. html5 游戏制作软件,制作h5小游戏的免费软件有哪些?

    刚刚过去的618,过段时间要来临的双十一.这些个节日无一不是商家做营销的噱头,各大电商平台也不会放过这么多机会来做商品宣传的.既然人家都要做活动了,不捧场怎么能行,我们要一起做一个买买买的精致猪猪女孩 ...

  2. 已被多次定制!!“模拟微信答题的H5小游戏

    今天推荐一款"模拟微信"答题的H5小游戏,这个也是涛舅舅这边客户定制的最多的一款游戏,曾经为现代汽车.万达.和<三妹>电视剧都作过定制! 以下是<三妹>定制 ...

  3. 吐槽laya:H5小游戏开发应该用什么引擎好?laya、cocos还是unity?

    我看有人推荐laya,放在H5小游戏的前三排名,这压根不靠谱. laya只能算个半成品,整体非常垃圾,如果是首次选择游戏引擎,至少转去cocos,实在选laya,那也没办法了. 下面说说laya有什么 ...

  4. 用Three.js写h5小游戏-3d飞机大战

    用Three.js写h5小游戏-飞机大战 博主的话 运行图片 目录路径![在这里插入图片描述](https://img-blog.csdnimg.cn/20190829103702978.jpg?x- ...

  5. H5小游戏 - canvas涂鸦板

    H5小游戏 - 涂鸦板 效果截图: html代码如下: <!DOCTYPE html> <html><head><meta charset="utf ...

  6. Unity对H5小游戏开发的支持——Project Tiny

      随着微信小游戏跳一跳的大火,游戏市场对于H5小游戏的开发逐渐火爆,作为一名Unity游戏开发从业者,大家对于Unity中开发小游戏的支持也很关注!近日Unity官方发布了Project Tiny ...

  7. 小游戏开发 小程序app游戏开发 H5小游戏开发

    目前有很多人对小游戏的理解都不同,有的人认为小游戏是H5嵌入形式的,也有的人认为小游戏是就几兆的程序 其实大家认为的都是正确的,没有任何问题.那么今天给大家讲下小游戏之间的区别 1.H5小游戏嵌入:这 ...

  8. html5制作端午节游戏,意派Epub360怎么制作一个端午节H5小游戏页面?

    六月已经过了三分之一,"粽子节"也马上要到了,每当这时候,又到新媒体运营人和设计师头秃的时刻,在传统的节日里,如何把传统的节日使用互联网元素表现,让更多的年轻人能够参与进来,H5这 ...

  9. android h5游戏图片不缓存,H5小游戏资源缓存方法与流程

    本发明涉及H5资源缓存领域,尤其涉及H5小游戏资源缓存方法. 背景技术: 随着移动互联网的发展和手机硬件性能的不断提升,H5小游戏这种不需要下载安装即可使用的全新游戏应用得到了爆发式发展.这种用完即走 ...

  10. “倔驴”一个h5小游戏的实现和思考(码易直播)——总结与整理

    3月23日晚上8点半(中国队火拼韩国的时候),做了一期直播分享.15年做的一个小游戏,把核心代码拿出来,现场讲写了一遍,结果后面翻车了,写错了两个地方,导致运行效果有点问题,直播边说话边写代码还真不一 ...

最新文章

  1. 背水一战 Windows 10 (83) - 用户和账号: 数据账号的添加和管理, OAuth 2.0 验证
  2. Spring Boot——配置Spring Security配置类DEMO
  3. 如何去掉文章里的非关键词c++_平台运营|阿里国际站代码查找产品三个关键词的方法...
  4. [react] 如何解决引用类型在pureComponent下修改值的时候,页面不渲染的问题?
  5. memcpy执行效率测试,无效测试
  6. 北师大计算机试题五答案,北京师范大学计算机软件及理论2022考研招生分析、参考书、真题等复习指导解析...
  7. 没有电脑没有手机没有网络没有爱情——纪念我的电子科技大学九里堤校区大一生活
  8. 打造敏捷的自组织团队
  9. hdu-5745 La Vie en rose bitset
  10. c++ 字符串分割和数字格式化输出
  11. 微信,企微静默登录授权
  12. 如何读懂EDIFACT报文?
  13. 不容错过的Java高级面试题
  14. Spring系列(九)- Spring Web MVC 框架
  15. 推荐一款超级好用的工具:uTools详解使用
  16. Mysql INNODB引擎行锁的3种算法 Record Lock Next-Key Lock Grap Lock
  17. 贝叶斯分类的原理及流程
  18. Xshell 常见使用
  19. 利用Origin绘制等高线颜色填充图:初步绘制与细化
  20. 你以为你真的了解二进制吗?详解JDK中的二进制骚操作

热门文章

  1. python book pdf_The Django Book 第2版 中文PDF版[1.87MB]
  2. 二维码生成器如何批量制作溯源二维码
  3. AGM FPGA选型手册
  4. 实验6 振幅解调器(包络检波、同步检波)
  5. linux进入根目录查找,如何进入Linux根目录??
  6. LintCode 快速幂
  7. RESTClient用法
  8. OpenWrt路由器WIFI开启13信道
  9. c语言编程图形并颜色,C语言图形编程(三、绘图函数1)
  10. 单片机破解的常用方法及应对策略