主流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锁机制
转载文章:http://blog.csdn.net/liuyiy/article/details/25005393 转载文章:http://www.cnblogs.com/jiyuqi/p/37017 ...
- mysql 中只能使用 localhost 登录,用ip不能登陆
解决办法 1 首先使用 localhost 登录 mysql 服务器,如果想要所用ip都可以登录本地mysql 服务器,执行以下授权命令 2 grant all privileges on *.* t ...
- 数据仓库和ETL建设
这个是Ralph kimball ETL的书籍,其中第10章主要讲如何管理数据仓库团队,ETL团队是属于数据仓库团队的:第一章和第二章是概况性的介绍,强烈建议大家都看下1/2/10章,对于大家形成对数 ...
- Jackson(使用注解)
jackson在实际应用中给我们提供了一系列注解,提高了开发的灵活性,下面介绍一下最常用的一些注解 @JsonIgnoreProperties此注解是类注解,作用是json序列化时将Java bean ...
- AdminLTE, Color Admin
AdminLTE, Color Adminhttps://github.com/almasaeed2010/AdminLTE/http://www.seantheme.com/color-admin- ...
- DB2 格式化输出 Date
转自:http://www.cnblogs.com/zjun/archive/2012/02/15/2353054.html 在Oracle中可以使用TO_CHAR()函数来将日期类型的数据转换成字符 ...
- sqlite第三方类库:FMDB使用
转自:http://www.cnblogs.com/wuhenke/archive/2012/02/07/2341656.html 本文转自一位台湾ios开发者的blog,由于blog地址被墙掉,转发 ...
- Objective-C 位运算符
转自:http://www.yiibai.com/objective_c/objective_c_bitwise_operators.html 下表中列出了支持Objective-C语言的位运算符.假 ...
- LOCAL_EXPORT_C_INCLUDES和LOCALC_INCLUDES 的差别
http://stackoverflow.com/questions/6595208/what-does-this-line-mean-local-export-c-includes LOCAL_EX ...
- 【LDA】线性判别式分析
1. LDA是什么 线性判别式分析(Linear Discriminant Analysis),简称为LDA.也称为Fisher线性判别(Fisher Linear Discriminant,FLD) ...