23
2015
01

(〇)createjs-写在前面

最早接触html5(其实我都不想叫他html5,因为我用到的也就是一个Canvas,而html并不是只提供了这一个画布)的时候,用的引擎是LufyLegend,作为一个个人开发的引擎,已经很不错了,虽然有些bug,但是用来学习和做一些小游戏还是不错的。而且作者提供了很多开发实例,还有一本作者写的书。对于as开发者来说,选这个引擎入门确实受益良多。

熟悉了canvas之后,其实完全可以试着自己写一个渲染引擎,事件引擎稍难一点。虽然效率不高,但是只做一些益智类的小游戏,或者一些小应用还是完全可以的。

看网上好多对比html5各种引擎的,以及对比as3和html5的,也顺便数一下自己的观点。


html5游戏引擎比较:

就只拿cocos2d和createjs来说,因为其他不熟悉。

cocos2d的优势在于用到了webgl,借鉴了cocos2d-x里边的东西,比如plist之类的。效率上在某些情况下比较高。

略势在于引擎文件太大,最小的好像也有1M多。

createjs的优势在于轻量级。分了好几个类,只用easyjs的话,不到100k,4个常用的类加一块儿也才300k。

至于哪个好用,得看使用者原来是做什么的,对于as人员来说,肯定是createjs好用,对于cocos2d-x的开发者来说,肯定是cocos2d好用。对于一个门外汉或者前端来说,可能两个差不多,况且还有适合前端语法的引擎。

至于引擎中的bug,都是半斤八两。使用者必须知道什么能做,什么不能做,哪里会有坑。createjs的好处就体现出来了,体积小,代码少,简单,直接拿源码看就可以了,cocos要翻半天,翻出来还不敢改。

至于效率,也都差不多,小游戏应用,用哪个都行,自己写都行,大一点的效率都不行,尤其是放在手机端。


html5游戏引擎和as3比较

看到很多html5和as3的比较,其实html5的优势不是在做游戏上,而是在于css3,css3普及之前,页面上的元素只能是矩形的,而且只能控制元素的平移;缩放和旋转都做不了,更不用说多媒体了。所以flash明显有优势。

现在css3大多数设备都支持了,很多效果都可以直接用css3做了。甚至可以用css3+js来做游戏,完全可以。选择css3的好处在于:

1、移动设备支持比较好,flash在好多移动设备上是不支持的,或者是默认禁止播放的;

2、不用插件,一旦某个页面导致flash player插件崩溃,自己的页面也跟着遭殃,所以还是用html做比较好;

3、跨平台,跨浏览器,开发成本低;其实开发成本低才是主要的,跨平台跨、浏览器并不是想象中的那样。反正客户不管你怎么实现,只要能实现想要的效果,能省钱干嘛不省呢。其实flash跨平台和跨浏览器比html做的好,因为flash是在flashplayer这个虚拟机里边播放的,flashplayer是一家公司开发的,所以不存在兼容性问题,html就不一样了,即使有了标准,那么多浏览器开发商,有哪个是完全按照标准来做的。用css实现一个效果,要写很多份代码,来适应不同的浏览器,开发起来并不轻松,还要解决各种浏览器上出现的问题。要说以前做页面只是适应各种浏览器的话,现在还要加上适应各种分辨率,对于开发人员的要求又提高了。


所以,移动端除非万不得已,不用flash做。pc端能用html做的,不用flash。但是仅仅指页面展示方面。互动性强的和游戏还是flash有优势。


as3的逻辑还是很严谨的,html5的这些引擎,没有哪个是完备的,逻辑漏洞一大堆,各种坑。

falsh发展了这么多年,还是很有优势的,而且as3功能相对很强大,也很简单易用,效率也还可以,至少不比canvas差。而且有很多开发者(虽然流失严重),有大量的工具包。

flash里边有一个“重绘区域”,这个对于提高效率有很大帮助(cocos里边好像也有,不过不会用)。拿canvas做一个1000*600的界面,然后放一个背景图,开始刷新,看看能到多少帧,再拿falsh试试,看看帧频,再看看重绘区域。其实大多数情况下,cpu都是被重绘占用的。


单从做页面来说的话,html5很有优势,但是做游戏,没有什么优势。

html5的优势在移动端。

html5的游戏引擎也不少,但是没有哪一个真正火起来,创造不了实际价值,用的人就少,用的人少,维护的就少,周边相应的工具就少,很难发展。

html5游戏的现状是在pc端完全没有优势,在手机端,根本没人跟他竞争。


现在都说网速提高了,然后都不考虑文件大小,一个网页、小游戏动不动就好几M、好几十M,其实就跟说平均工资水平似的,大多数人都被平均了。本人家里的网速,最多也就400多K,平均也就100多k,,还不是一个人在用所以还是很在意文件的大小的,能自己写的就不用引擎,能用小引擎的不用大引擎。


html5完全替代flash做游戏设想:

有一款主流的html5游戏引擎;

从底层开始封装,逻辑严密,而不只是对Canvas或者Webgl功能的二次封装;

主流浏览器都绑定安装该html5引擎;

效率只要不输于flash就行。


好像跑题了。

flash cc用的createjs,学一下,看看能不能结合cc来用。

熟悉as的话createjs很好上手,不会as的话也很好学,顺便连as都学了。

createjs和as不一样,不要想当然。

createjs有坑,有坑就绕着走,不要钻牛角尖。

createjs很简陋,并不强大。

有能力的话。看看源码,试着自己写一个渲染引擎。

任何语言、引擎都只是一种工具,只要能实现自己想要的效果,用什么都行。

« 上一篇下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。