主持人:
下面有请Cocos2d-X的作者王哲。他演讲的题目是“Cocos2d-X社区的那些事儿”。
王哲:
我讲讲Cocos2d-X在前面一年半所做的一些努力和为社区贡献的东西。
第一,讲一下我们为什么会搞一个跨平台版本。刚才讲了包括Cocos2d-X社区和整个分支的情况,我我它画在世界地图上,大家可以看的更清楚。各个大洲基本上涉及到了Cocos2d,在亚洲比较活跃的是上海,再一个是Cocos2d-X,在前面一年半的时间里,用Cocos2d-X开发的游戏我们搜集了一些数据,已经超过了1亿的下载量,这里面Android是最大的量,这里面包括捕鱼达人的量,还有ios。
为什么讲这个数据呢?其实是想表达这个引擎其实已经足够成熟、足够稳定,因为已经有这么多玩家,所以大家不必要有什么顾虑。
前天我看到了不吉祥的数字“250”个游戏,昨天是251个游戏,游戏的数量飞速的增长,我们无法区分哪些是中国,哪些是海外开发者的游戏,除了量以用,我们做了很多的发布,有很多的玩家。除了量以外,我们的质有多好呢?
Cocos2d看起来很简单,上手非常容易,除了捕鱼达人还有SmallStreet,是用Cocos2d-X开发出来的,一周发了两个平台的版本,避免有人山寨。还有空中网的游戏,叫口袋战争,最好的情况是在中国排名第2,排前10已经超过两周了,是重度的TOP游戏。
作为Cocos2d-X我们有两方面发展:一方面是横向发展,比如说往+X和-X两个方向。+X方向是更多的手机游戏平台;-X是桌面平台,现在有人开始尝试把Cocos2d-X游戏发布到Windows,这是一个横向的发展。作为纵向来讲,还能做什么更酷的功能,包括绘图层,现在Cocos2d-iPhone已经有2.0版本,会在4月份发一个稳定版,实际上现在TOP上面Cocos2d在iPhone和Android都很好,当然还有一些不太稳定,我希望在4月份就可以有2.0的稳定版,我们会自己拿捕鱼做实验。
往更高层面看,就是脚本绑定,最初是(网龙)的贡献。给大家做一个演示,现在这些是手工绑上去的,在Cocos2d的基础上,绑到Javascript上。我们看一下绑的情况是怎么样?(播放视频)很简单的一个俄罗斯方块,我们把这个东西作为试验,一种混合的工程,你可以自己决定游戏里面有多少比例用C++提高效率,有多少比例用快速开发用Javascript,目前这个已经编辑出来在ios、Android上都可以拷。下来再来演示一下更酷的东西(播放视频)。
我们用同样的Javascript代码,可以让这个游戏跑在Android和ios上面,通过打包的方式,同时也可以把它跑在浏览器里面。这是我们第一次演示,代码主要框架已经出来了,但是需要把它做到稳定,希望在5月份能把这个东西做好。
Cocos2d-X本身用C++已经做出了很强的跨平台性,但是有两个平台过不去,一个是Windows7,它不支持C++,现在就要用Cocos2d-html5,把C++编进去,但是像IE都搞不定。
Lua是所有手机都能跨的脚本,但是(网龙)没有把这个代码贡献出来,不是所有东西都能贡献出来的。但是Lua没有解决浏览器的问题,所以我们还是走Javascript这条路线,Javascript首先做试验,我们觉得OK就可以把同样的东西绑定,不用考虑用-2还是-3。
这是Cocos2d-X的计划,现在第一季度已经结束了,第二季度首先一定要做到Cocos2d-X2.0stable版本,还有Cocos2d-html5。在5月份,-html5大家可以试着用,但是还有一些问题要解决,比较大的问题是代码安全性,我国自己试的时候会混淆,混淆以后效果不是特别影响,因为Javascript所有的东西都下载到浏览器里面跑。
第二,社区里面的各种创新。有些创新的东西其实很让人惊讶,比如说前几天有人把Cocos2d-X加上Fruit Ninja Effect做了一个模拟的效果,已经做的很逼真了。这好像是CocoaChina做的一个特效比赛,好像还要颁奖。(PPT演示)
我讲一下我们网站新增的功能,是XX频道。总体来讲,大家做一些扩展插件,原来Cocos2d原来的做法是建一个仓库,大家把代码提交上来,最后发现我们建的仓库已经有一个多月没人维护了,代码都烂在里面了,失去了跟最新版本的同步。
后来想一个比较懒的方法,搞了一个频道,比如说刚才看到的两个特效,特别是有们做控件,表格类的功能,这些其实满多人做的,法帖到论坛里面就被淹没掉了,所以就专门做一个频道,大家可以把自己做的产品分享跟其他的开发者,这样的话知识更容易积累起来。在开源引擎上面很多事情可以做,不一定要出什么功能,什么版本,因为代码就在那儿,可以很容易的改。
第三,如何参与到社区的运作。现在很多人用引擎,比如说QQ直接给我留言,这个怎么用,为什么老掉,还有微博私信,怎么样正确的参与社区的流程呢?以QQ空间社区为例,比较好的方式是在论坛里面,因为这个东西有记录可以搜索到。
一开始我们在Workflow里面用一些报告怎么样呈现,接下来会根据你的描述看看有没有重复,看的确是有问题还是你用的不对,如果的确是有问题会在网下帮你解决。解决完之后你的邮箱会自动收到邮件通知,你的帖子已经被回复了,问题解决了。我们会用不同的渠道,比如说客户论坛,自己本身的论坛,还有新浪微博的私信,新浪微博发贴,还有QQ的6个群。各位在使用开源引擎的时候有问题,可以使用这样的流程。
怎么样提问呢?比如说他想问一个东西,但是有几方面:第一,他会说Cocos2d的资源搜索是怎么的呢?管理会更乱吗?实际上Cocos2d并不是什么都包的,对这个问题来讲,我们可以知觉的猜测,因为他没有讲平台,不知道他用的是哪个引擎版本。
我猜他在加资源的时候有两种方式,有一个蓝色的文件夹和黄色的文件夹,我估计他是这个地方错了,但是作为问题你要讲清楚怎么样呈现。平台现在太多要讲清楚,还有就是引擎版本要讲清楚,还有API组合要讲清楚,让我们重现这个问题,这个提问里面就不具有这些信息。
当你想在社区里面问一个技术问题,想问我们用的不对,怎么样能够最快速解决呢?
第一,应该先Google,如果说Google是翻墙,这是基本功,技术人员还是不要用百度。第二,让你的提问能够让Google搜到,比如说微博私信、QQ的消息是不能被Google搜到的,你问我一次,BU又来问我一次,我们就没有时间去改进。第三,要讲清楚平台和引擎的版本。
我不太清楚有多少人会用Git,你可以直接把代码提交上来。我们可以自己去改,但是不见得谁比谁聪明,你看到一个问题顺手一改。我们用开源就是这样,一部分是索取,从开源社区里面索取价值;另外一方面就是分享,我们把这个东西做好解决问题,把这些东西分享给大家。
有一个问题,在Cocos2d-X的论坛上一定要用英文提问,我是怕不同语言在上面打架,比如说中文还有韩文,在Cocos2d-X的论坛里面希望大家都用英文提问。大家可以记一下这个网址,http://cn.cocos2d-x.org。
其实我觉得最好还是有Q&A阶段。如果在座的有什么问题我可以回答。有人有问题吗?
提问:
我问的是关于Cocos2d-html5,在5月份会发一个版本,可以将Javascript写进代码程序。在这样一个工程里面你用Javascript去写,在你真正的实践中是转成本地的方法还是?
王哲:
-html5版本跟Javascript有同样的API,每个游戏都会打包Javascript引擎,最后落到C++。
提问:
相当于你自己做了Javascript的引擎,把他解释为本地的引擎。但是有一些JS的接口,没有实现的部分会有签名。
王哲:
用Javascript解析引擎。
提问:
5月份发的直接把JS解释到本地?
王哲:
不是。是解释到Javascript里面跑。按我计划这个绑在Cocos2d2.0上面,新功能直接绑在2.0。上。
提问:
3月初讲到有关Cocos2d和Windows A有什么发展?
王哲:
感觉效率不是太高,但是跑一般的是可以的。微软加了很多限制,所以理想情况在一、两周内可以有,这个东西出来之后按照老规矩先拿捕鱼做试验品,捕鱼跑的很顺再开发给大家用。