开源轻量级HTML5游戏引擎gin简介(转)
HTML5 canvas 让程序员自由的绘制想要的图形和动画,使得纯粹基于HTML/Javascript/CSS的游戏铺平了道路。只不过canvas最初并非为游戏而设计,而且除了绘图以外,做游戏还有不少其他事情要考虑,例如鼠标键盘事件、图层、动画等。为了方便程序员开发游戏,游戏框架/引擎陆续被开发出来,gin 就是其中之一。
Project home: https://github.com/huandu/gin
Author: Huan Du (blog , twitter )
Samples: https://github.com/huandu/gin-samples
Live demo: simple sample mouse tracer shape breaker
gin是什么
gin是一个开源轻量级的HTML5游戏引擎,只专注于搭建一个简单可靠的游戏基础设施,让游戏能在网页中高效流畅的运转起来。
gin能做什么
gin提供了游戏开发中各种必须的基础设施,例如固定帧率渲染、鼠标键盘事件捕捉、图层、用户数据等,这些工具都是以最简单直接的方式提供出来,不要求OOP,没有预编译。
gin在设计之初就定位为一个“引擎”,而不是框架。就像汽车引擎不负责提供动力以外的事情一样,gin只专注于驱动游戏运转,不提供表现层的任何工具。
gin的特点
gin的特点是:简单、高效 。
使用gin只需要写如下的代码,十分简单:
$G('your-game-container-id', {}, { start: function() { this.layers('sample', { left: 0, top: 20, width: 100, height: 200 }, { render: function(e) { // your code } }) .layers('sample_again', {}, { play: function() { // this function will be called once the layer starts to play this.layers('sub_sample', {}); } }); }, render: function(e) { // it's how to find layer, or even sub-layer var sample = this.layers('sample'), sub = this.layers(['sample_again', 'sub_sample']); // do something }});gin的未来
gin刚刚发布了1.0.0版 ,是一个just work的版本,并且发布了三个例子,放在gin-samples 项目中。
gin未来将首先考虑支持更多的浏览器和平台,特别是移动设备上的支持。对于简单高效的引擎而言,最适合应用的环境就是性能相对较差的移动设备。
其次需要考虑的是实现更强大的图层(layers),现在的图层已经实现了类似于flash MovieClip的各种基本功能,还差key frame没有实现,未来会增加支持。
FAQ
Q: gin的api文档呢?
A: 暂时还没有,有问题请直接联系我(github ,twitter )
Q: gin支持哪些浏览器?
A: 测试过的是Firefox 3.6、Chrome 8.0/10.0,理论上Opera、Safari也会支持。IE就别想了,等IE9支持了canvas再说吧。
Q: gin-samples里面的例子不能正常运行是什么原因?
A: 如果是下载源码运行,需要手动将gin.js拷贝到sample目录里面才能运行。此外,需要保证电脑可以访问网络,因为有些例子使用了jQuery,用的是google dns。如果还不行,请检查一下浏览器是否是gin所支持的浏览器,gin自己没有做任何浏览器检测。
附录
我在开发过程中了解过的游戏/绘图框架包括The Render Engine 、GameJS 、cakejs 、cocos2d ,它们都是非常好的框架,gin从某种程度上说是针对它们的不足而设计的。 :P
gin最开始是我心血来潮写的一个小框架,还未完成就在“给力HTML5 —— 2011 Google HTML5训练营” 第一期活动 中使用,非常意外且幸运的用它实现了第一个可玩的HTML5游戏Raiden 5 (Chrome only) ,在这里 可以围观最原始的gin。
?