主流HTML5游戏框架的分析和对比
本文主要选取了Construct2、ImactJS、LimeJS、GameMaker、CreateJS、lycheeJS、Crafty、three.js、melonJS、Turbulenz、Quintus、Cocos2d-html5等进行了简要介绍和对比,主要是根据网上的资料整理而成。
主流框架对比
Construct2
2. 强大的事件系统,可以不通过写代码来控制游戏逻辑
3. 提供了可编程扩展的接口
4. 提供了大量特效,支持物理效果
5. 支持所有平台
6. 完整的文档以及社区支持
ImpactJS
优点:
1. 提供了灵活的关卡编辑器,可以快速构建游戏地图
2. 提供了强大的调试工具
3. 提供了Ejecta可以将JavaScript的执行结果通过OpenGL渲染出来,可以在iOS平台上获得与原生应用相近的效率
4. 文档齐全,有两本专门介绍ImpactJS开发的书
5. 支持物理效果
6. 支持自己编写插件来扩展
App Store游戏
1. Biolab Disaster
2. Drop JS
LimeJS
1. 基于Apache协议的开源框架
2. 功能强大,文档齐全,与ImactJS类似
3. 支持物理效果
4. 与Cocos2d的API类似,容易上手
缺点:
依赖于Google Closure
GameMaker
优势与Construct2类似,但性价比不如Construct2高
CreateJS(EaselJS)
优点:
1. Flash开发者很容易上手
2. 提供了Flash转html5的工具,可以将部分Flash代码进行转换再修改
3. 基于MIT协议的开源框架
4. 类库设计非常独立,包含不同的模块,可选择性使用
lycheeJS
优点:
1. 同时支持PC(Firefox、Chrome、Opera、Safari、IE)和移动平台(WebKit、Chrome、Firefox、Safari)的浏览器
2. 提供了CDN、WebSockets、SPDY、HTTP2.0以及游戏截图的支持
3. 提供了可以直接导出第三方(Facebook、AppStore、Google Play Store)资源包来发布
4. 基于MIT协议的开源框架
Crafty
优点
1. 体积小
2. 轻量级引擎,不会受到框架的太多束缚
3. 同时支持PC和移动平台浏览器
three.js
优点和缺点:
支持3D,但是不适合做2D游戏
melonJS
优点
1. 轻量级的2D引擎
2. 支持所有主流的PC和移动平台浏览器
3. 支持使用Tiled map editor来创建和编辑地图
4. 支持多声道音频
5. 基于MIT协议的开源框架
Turbulenz
优点:
1. 功能强大,同时支持2D和3D
2. 基于MIT协议的开源引擎
Quintus
缺点
1. 依赖于jQuery
2. 目前引擎仍处于初级阶段,还很不成熟
Cocos2d-html5
优点:
2. 中文文档齐全,资料丰富
3. 基于MIT协议的开源引擎
各框架具体参数对比
2. List of JS Game Engines
3. 对于Crafty、Lime、Frozen、Melon、Impact、Quintus框架,可以在Breakouts上查看用这些引擎开发同一个游戏的效果以及代码风格。Breakouts中使用到的特性包括碰撞检测、精灵动画、音效、地图、场景切换、交互、文字渲染、移动平台支持。
4. 以上各引擎中,除了Construct2、ImpactJS、GameMaker是收费的之外,其他引擎都是免费并且开源的。对于开源引擎,我们可以从Github上面的关注度了解到该引擎的流行程度,关注的人越多,遇到问题越容易解决。同时一般来说,项目开发者越多,版本更新越快;项目的进行时间越长则越成熟。下面将对各开源引擎的开发者人数、项目启动时间、关注度进行对比。
| Game Engine | Github commits | Github contributors | Start time | Github Star | Github Fork |
| LimeJS | 532 | 22 | 2011.1.19 | 1091 | 187 |
| EaselJS | 784 | 15 | 2011.1.23 | 2758 | 650 |
| lycheeJS | 4 | 1 | 2012.9.5 | 110 | 20 |
| Crafty | 1182 | 67 | 2010.11.5 | 993 | 225 |
| three.js | 6409 | 198 | 2010.3.23 | 12691 | 2816 |
| melonJS | 1287 | 15 | 2011.4.11 | 643 | 137 |
| Turbulenz | 736 | 12 | 2013.4.26(最近才开源) | 1522 | 207 |
| Quintus | 118 | 11 | 2012.8.4 | 450 | 89 |
| Cocos2d-html5 | 2706 | 39 | 2012.1.28 | 735 | 303 |
总结
开源引擎中,three.js是最火的,但是仅限于开发3D游戏。其次是CreateJS,由Adobe官方赞助且采用Flash类似的API以及模块化开发,是Flash开发者以及将Flash游戏转换成html5不可多得的选择。Turbulenz虽然开源时间比较晚,但颇有后来者居上的趋势,由于其对2D和3D的同时支持,是同时开发2D和3D游戏的最佳选择。LimeJS与Crafty相比的优势在于有一个公司进行维护,相比个人要更稳定,但是需要依赖于Google Closure,也使之成为一个重量级的框架。Crafty体积小、轻量级,更适合于小游戏的开发。Cocos2d-html5作为国产框架的一个优势在于中文文档和教程多,且得到了Google的支持,但相比ImpactJS、CreateJS仍不够成熟。melonJS、Quintus、lycheeJS的开发者和使用者都较少,相关文档和教程也相对少,还有待观察。
参考资料
主流HTML5游戏框架的分析和对比的更多相关文章
- Phaser开源2d引擎 javascript/html5游戏框架
功能特点(Features) 易维护代码(Easy Asset Loading) Phaser可以加载图片,音频文件,数据文件,文本文件和自动解析精灵图和纹理地图集数据(出口纹理封隔器或Flash C ...
- Phaser开源2d引擎 html5游戏框架中文简介
功能特点(Features) 易维护代码(Easy Asset Loading) Phaser可以加载图片,音频文件,数据文件,文本文件和自动解析精灵图和纹理地图集数据(出口纹理封隔器或Flash C ...
- Html5游戏框架createJS组件--EaselJS
CreateJS库是一款HTML5游戏开发的引擎,是一套可以构建丰富交互体验的HTML5游戏的开源工具包,旨在降低HTML5项目的开发难度和成本,让开发者以熟悉的方式打造更具现代感的网络交互体验. 掌 ...
- Html5游戏框架createJs的简单用法
声明:本文为原创文章,如需转载,请注明来源WAxes,谢谢!http://www.it165.net/pro/html/201403/11105.html 楼主记忆力不好,最近刚好用了一下create ...
- Html5游戏框架createJs组件--EaselJS(一)
现在html5小游戏越来越火爆了,由于公司业务的需要,也开发过几款微信小游戏,用canvas写的没有利用什么框架,发现性能一直不怎么好,所以楼主就只能硬着头皮去学习比较火的Adobe公司出的Creat ...
- Html5游戏框架createJs组件--EaselJS(二)绘图类graphics
有端友问我是否有文档,有确实有,但没有中文的,只有英文的,先提供浏览地址供大家参考学习createJs英文文档. EaselJS其实主要就是createJ ...
- HTML5游戏引擎深度测评
https://zhuanlan.zhihu.com/p/20768495 最近看到网上一篇文章,标题叫做<2016年 最火的 15 款 HTML5 游戏引擎>.目前针对HTML5游戏的解 ...
- 用Phaser来制作一个html5游戏——flappy bird (二)
在上一篇教程中我们完成了boot.preload.menu这三个state的制作,下面我们就要进入本游戏最核心的一个state的制作了.play这个state的代码比较多,我不会一一进行说明,只会把一 ...
- 用Phaser来制作一个html5游戏——flappy bird (一)
Phaser是一个简单易用且功能强大的html5游戏框架,利用它可以很轻松的开发出一个html5游戏.在这篇文章中我就教大家如何用Phaser来制作一个前段时间很火爆的游戏:Flappy Bird,希 ...
随机推荐
- oracle数据库rman异地恢复
自己想做两组rac之间的data guard,由于datafile,controlfile,甚至是archivelog都是存放在asm上的,直接复制数据有点不现实,asm磁盘总归都是要用的,所以想从a ...
- FreeSWITCH呼叫参数之sip_cid_type
这个参数定义了呼叫中主叫信息的头字段类型.支持两种类型: 1. rpidRemote-Party-ID头,这是默认的设置.{sip_cid_type=rpid}sofia/default/user@e ...
- Maven 遇到的问题记录及解决
1. 打包或clean时报错:To see the full stack trace of the errors, re-run Maven with the -e switch [WARNING] ...
- 内心的平静就是财富本身-Cell组件-用友华表的由来-T君
时至今日,Cell组件仍是应用广泛的商业报表组件 作者:人生三毒 编者注:本文作者人生三毒为知名网站及网页游戏公司创始人,此前曾为IT类媒体资深编辑,见证了中国互联网早期的发展. 认识T君之前先认识的 ...
- Ubuntu中开启和关闭防火墙-摘自网络
1.关闭ubuntu的防火墙 ufw disable开启防火墙ufw enable 2.卸载了iptablesapt-get remove iptables3.关闭ubuntu中的防火墙的其余命令ip ...
- Android 移动端数据结构
## SparseArray ## SparseBooleanArray ## SparseIntArray ## SparseLongArray * 位于android.util,Android 中 ...
- mui封装做好的手机版网站为apk
BOSS提到的一个功能,就是把已经做好的手机网站http://xxx.com/m/home/index ,想着看起来应该蛮简单,一个html页面里就一个iframe就好了,然后宽度和高度都设置为100 ...
- 【iOS XMPP】使用XMPPFramewok(二):用户登录
转自:http://www.cnblogs.com/dyingbleed/archive/2013/05/10/3069397.html 用户登录 准备工作 比较知名的开源XMPP服务器:一个是Ope ...
- linux关闭selinux和firewall
sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config setenforce 0
- android studio - 右键没有“New C++ Class 选项” 或 “Cannot find declaration to go to”的问题
今天在android studio的cpp文件夹上右键,发现竟然没有了New C++ Class“的选项,如下图所示: 上图是正常情况. 下图是非正常情况. 解决方案 检查”File“-"S ...