有没有人做过cocos2d-js 和 egret 在移动浏览器上的性能测试?
哪一个更高些,毕竟在移动平台性能越高越好
cocos2d-js完爆egret。
有没有各方面的测试数据?比如在低端设备上,微信上等等。
还有国内的游览器商都内置了egret runtime,这个cocos2d-js怎么破?
加上这两天又一个新的引擎layabox, 也有runtime。
http://bbs.layalab.com/forum.php?mod=forumdisplay&fid=44
runtime 根本上取决于native方案,因为都是把native嵌到浏览器中来跑。那么native解决方案的性能决定了runtime的性能
从原理上说,
- API层面绑定,绝大多数逻辑,包括引擎的主循环都是跑在C++上,用户游戏逻辑用JS编写,这是Cocos2d-JS使用的方式
- 渲染层绑定,也就是说引擎除了渲染外的大部分逻辑都是JS编写的,这种方式易于维护,但是性能较第一种有不小的差距,这是Egret runtime的方式
- Hybrid,完全没有使用绑定技术,通过内嵌浏览器或者使用系统自带Webview来跑h5内容,这种性能最差。CrossWalk和PhoneGap都是使用这种方式
- Layabox ???,至今没有披露过是使用什么类型的runtime技术,所以不得而知
性能如何取决于JS代码所占比例。
从游戏本身来说,目前Cocos2d-JS已经发售的JSB游戏都是可以跑在Runtime中的,而这里面有这些游戏:
航海王 启航,三国杀 传奇,变形金刚,仙侠道。
所以性能是有绝对保障的。
最后再提一下JS绑定技术的起源,最早由Zygna的前员工Rolando Abarca贡献到Cocos2d-x仓库的: http://discuss.cocos2d-x.org/t/javascript-bindings/2168。后来由Cocos2d-x团队接管维护,一直发展到今天的Cocos2d-JS中的JSB绑定技术以及Cocos2d-x的Lua绑定技术。其中自动绑定工具的仓库一直由Cocos2d-x团队维护,github仓库地址:https://github.com/cocos2d/bindings-generator/
我说的是内置在浏览器里面的,不是NativeApp , 国内的主流浏览器都内置了Egret的runtime(只有70k),比如腾讯x5,猎豹,小米,所以以后跑egret游戏性能问题不大,不知道cocos2d-js怎么破这个性能问题,总不至于别人已经在微信里运行rpg游戏了,cocos2d-js还只能玩神经猫这种吧
看来你没明白我的意思,所谓的runtime,就是将各家的NativeApp方案的基础支撑预编译成库,做成player,放在各个浏览器里面。然后替代浏览器来跑游戏,所以性能较浏览器高。
所以我说,runtime的性能本质上就是native解决方案的性能。
那么我们再来说性能,
- 首先,Cocos2d-JS已经支持较重的H5游戏,绝不是神经猫这种级别,可以看看玩吧上的Cocos2d-JS游戏:
其中至尊封神,海国战记等都是非常重的游戏。
-
此外,Cocos2d-JS对WebGL的支持非常完美,在iOS 8上可以支撑起比现在这些游戏更加复杂的H5游戏,粒子效果,骨骼动画,各种复杂的效果都可以上。
-
再来说runtime本身,Cocos2d-JS的runtime性能等于Cocos2d-JS的原生应用性能,看到之前我提到的游戏列表(航海王 启航,三国杀 传奇,变形金刚,仙侠道),你就可以看出这个runtime的性能有多么强大。这是目前性能最强的runtime方案,没有之一。
-
来说渠道,Cocos2d-JS目前正在接入最重要的两家:腾讯X5和百度T5,其他的渠道也在积极接入中。
不知道这样回复,你还有疑虑么?
我主要是看它在浏览器上的性能,不看做成app之后的性能,我用官方的cocos2d js 3.2中的js-moonwarriors,在itouch4浏览器上显示不出来图像来,在itouch5上不到30帧,在微信上还没测试过。
猎豹浏览器中玩 萝莉来了 ,大概有20帧左右
我用猎豹浏览器在itouch4上玩了一下用egret做的《热血战机》,基本上能达到50帧
不过如果直接用原生浏览器来耍,cocos2d js 要比egret 性能高些。
在android的微信里 cocos-js做个简单的贪吃蛇 太卡基本不能玩,ios基本流畅. 不知道怎么回事,
如果没有安装QQ浏览器,那么微信浏览器调用的系统默认的webkit内核,Android的webkit内核对html5支持的比较差,效率低很多,比如Android 4.4以后webkit才支持websocket。而iOS对html5支持的要好很多,效率也高。
有竞争是好事啊,无论对游戏开发者和引擎开发者。个人感受,cocos2d-js目前的重点还是在jsb,做原生游戏应用这块,因为cocos2d-x的大量成功游戏,对于底层跑cocos2d-x的cocos2d-js,给了游戏开发者信心,越来越多的开发者开始选择js(但更多的开发者选了lua)。没有用过egret,但看了上面的文章,egret把自己的runtime集成到各浏览器的做法很棒(cocos2d-x的runtime估计没法做到70k那么小),未来谁更强很难说。
纯html5游戏,国内的主战场目前应该都还在微信上,腾讯虽然对html5比较重视,但对微信html5游戏似乎并不感冒,而且在压制。
还有一个技术上的问题,iOS的微信默认往右滑是返回上一级,这个js控制不了,所以有右滑的游戏很蛋疼。
js-moonwarriors测试例,并不是一个性能测试例,而是功能测试例,里面为了给大家展示各种特效,用了很多高级功能,这些功能的消耗都比普通游戏要大。我们做过高性能版的moonwarriors,在小米1的浏览器中都可以跑到50fps,可以试试这个地址:http://tools.itharbors.com/MoonWarriorsPerf/index.html,这个还是使用的旧版本渲染器,如果采用新版渲染器将更加流畅。有时间我升级一下
其实游戏优化有很多中方式,美术上多下点功夫可能可以让一个游戏看起来高大上很多,但是程序上可能是完全一致的,相信做程序的大家都知道。如果大家深入细节去观察本质的话,会发现Cocos2d-JS中下了很大功夫去优化性能
所以引擎之间性能的比较,拿不同的游戏比较是偏颇的,我们的渲染测试显示目前Cocos2d-JS在Canvas和WebGL上的性能都是数一数二的,虽比不上Pixi,但没有第二个引擎比我们更快了。
原生平台还是我说的那句话,跨浏览器和原生的引擎中,Cocos2d-JS性能最高,没有之一!
最后,关于runtime集成到浏览器中的大小,Cocos2d-JS集成在浏览器中的部分是100k,大家不要被这个所迷惑,这是一个runtime sdk的大小,并不是完整引擎,对于Egret的70k runtime也是一样,这不包含引擎。在需要的时候runtime sdk会自己去下载引擎和游戏并动态加载起来。如果大家感兴趣,我们在未来还会分享runtime的一些技术细节。我想说的是,技术上其实大家可以尝试更深入去理解,而不是通过各家官方的PR稿。毕竟都是开源引擎,想要看到实现很容易,另外,Cocos2d-JS是更彻底的开源技术,连我们的native解决方案都是完全开源的,这也是为什么这么多厂商选择我们。
这个行业当然需要竞争,所以我们很欢迎Egret提升他们的技术和性能,我们也一直会努力,给大家带来更好的开发体验。我们也鼓励开发者们去使用不同的引擎,得出自己的见解和选择。
确实cocos2d js性能要高些,至少帧频比较稳定
不过你刚发的那个在itouch4上运行不了。
大该等到什么时候runtime才能集成到浏览器啊
不愧是版主,我看被完爆还差不多
