w3ctech

cocos2d-js : 高性能html5跨终端解决方案

目前移动设备上的webview有一个无法绕过的弱点,就是渲染效率的问题。基于某些原因,在android L和iOS 8之前的webview是不启用webGL的,这就造成了采用hybrid方式进行应用开发的时候,不得不面临低效率的渲染和动画绘制,尽管说也是有办法通过种种优化来达到性能的“可接受”,但是这些问题最终都会转嫁成高昂的开发成本,所以webview的性能和手机设备的兼容性问题共同成为了webapp开发之痛。

然而事实上,跨终端方案不一定要受限于webview本身,在这方面,cocos2d-x做了比较成功的尝试。从cocos2d-x-2.0开始,JavaScript binding、Lua binding和C++成为了框架的三个语言分支的选择。

cocos2d-x在js线选择的技术方案是,采用mozilla的spidermonkey引擎作为js的解析引擎,将C++的核心直接port给js,也就是说,在cocos2d-x的jsb版本中,实际绘制图形的时候,底层渲染是通过C++直接调用openGL ES实现的,这个过程中没有webview的存在,也就没有webview自身的渲染问题。

因为cocos2d-x是游戏引擎,所以它关注的不是浏览器dom,而是游戏的图像渲染,所以它选择绕过了dom,但仍然拥抱了跨终端这一非常有价值的特性。到目前为止,最新版的cocos2d-js已经是独立于cocos2d家族的一个分支,它开发的游戏可以比较好的运行在web、android、ios、winphone、windows、mac甚至linux平台上。

到2014年,cocos2d-x已经成为了主流手机游戏引擎之一,受欢迎程度和unity3d不相上下,是开发2D游戏的不二选择。cocos2d-js也因为它的脚本化和跨平台特点,成为了深受游戏开发者喜爱的平台。

cocos2d-js 开发的游戏

作为一款基于canvas/webGL的框架本身,它在web上的表现也是相当出彩的,如果大家在so.com上搜索过天气的话,那么一定会看到那只可爱的小羊,没错,这个功能是采用cocos2d-html5(在cocos2d-x的2.x系列中,这是一个和cocos2d-x-jsb平行的版本,在3.x系列中,html5和jsb已经合并成cocos2d-js)完成的。

天气羊

除了在web和手机上表现有些少量的不一致之外,cocos2d-js在跨终端游戏开发方面是一个非常不错的选择了,而即使有些许不一致存在,它们的差异甚至也小于pc和移动浏览器之间的差异。

cocos2d-js作为cocos2d家族的成员,遵循MIT开源协议,目前由触控科技专门的开发团队在进行核心维护和升级,大约每6周发部一个版本,目前最新版是3.0rc0。cocos2d-js 有着比较活跃的中英文社区,不断增加各种文档、范例和教程,以及cocos2d code ide,cocos studio等各种提升开发效率的周边工具,成为了许多小团队手游开发喜爱的选择。是时候关注cocos2d-js了,也许它能为你的产品增加许多亮点。

cocos2d-x 中文官网: [http://cn.cocos2d-x.org/?v=CN]

cocos2d-js 项目: [https://github.com/cocos2d/cocos2d-js]

w3ctech微信

扫码关注w3ctech微信公众号

共收到7条回复

  • 从文章内容来看,感觉 cocos2d-js 已经不在 html5 的范畴了。 webview 提供渲染性能太差。cocos2d 就提供了一组 js api 来调用 OpenGL。

    以前前端只需要了解服务器相关知识,能够做网络层面的优化,来提高网页加载性能。 结合 BlendUI ,cocos2d-js 这样的框架来看。未来的前端还得掌握各种客户端(Java,ObjC,Swift 等)开发能力,整合客户端能力进行前端性能优化。

    我觉得该转行了,前端混不下去了。

    回复此楼
  • 楼上的,前端要做到事情还是很多萨。。。

    回复此楼
  • 我是来点赞的。

    回复此楼
  • 月影大大,Cocos2d-JS已经v3.3啦

    回复此楼
  • 不过还是要点一个大大的赞

    回复此楼
  • 极乐网观光团来了! 个人专为IT技术人员搭建的问答平台——欢迎前来拍砖。 [嘻嘻] http://www.dreawer.com/home.html

    目前最火的领域是前端领域,欢迎一起交流!

    回复此楼
  • 妈蛋,老大为何那么屌!

    回复此楼