CDC北京演讲“页游转型手游之路”的相关PPT和内容

本来我是写了挺多的演讲内容的,不过当我上场之后就开始自由发挥了,所以导致的一个结果是我的演讲内容和我想好的内容只有不到一半的重合度,我其实还可以演示一下player的用法和各个示例的效果,还可以播放一下UI编辑器的演示视频的。以下是我写好的内容,我还写了好几天的:

             各位朋友大家下午好,首先很感谢主办方邀请我过来给大家做这个分享,非常感谢大家放弃午睡来听我乱喷。作为这个场的第一位分享者,我感觉到压力很大啊。我先自我介绍一下,我叫杨东波,来自广东,是从广州过来的,我09年开始从事游戏行业,先后在广州菲音,明朝网络,还有4399工作过,目前在上海首游网络科技有限公司任职,做过PHP开发,运维,AS前端开发。其实我也不是什么技术大牛,我从来到这里主要就是想跟大家分享一下我们页游公司转型手游的时候遇到的一些问题和解决方案,希望能给各位从页游转型或是从其他行业转向手机开发的朋友带来一点点的帮助。相信各位来到这个会场的都知道今年号称是手机游戏元年,年中也发生了不少的手机游戏被天价收购的新闻,现在资本市场是对手机游戏市场趋之若鹜啊,跟手游相比起来页游就像是个被抛弃的老女人。最近去参加各种游戏聚会,大家都是在谈论手游,各种投资人都在找的是手游的产品和团队,如果你跟别人说是做页游的,人家都不太搭理你。在这种市场环境下,很多页游开发商都想在这个新的市场里打出一片天地。我们公司也不能免俗,我们也想从手游上面有自己的一席之地。
     很多的页游开发者都会想一个问题:ActionScript能不能开发手机游戏?答案是肯定的,AS号称也支持跨平台的开发,做法就跟java一样有一个中间的虚拟机一样的东西来实现。像我们有着页游基因的公司,对于AS还是有着一份特殊的感情的。能将现有页游的技术几乎原封不动,移植到移动平台,这是个多么诱人的想法!加上奥多比的传教士们不遗余力的对Stage3DStarling框架以及AS跨平台技术进行宣传。于是我们一开始技术选型方向很快也锁定在AIR跨平台的解决方案。

     对AS驾轻就熟的我们,很快就完成了首游网络第一套基于Starling的游戏框架,产品的开发也在同时进行,一切看似非常顺利非常完美。

     然而万万没有想到的是,在第一次产品阶段性验收的时候,遇到三个主要的瓶颈:
1、性能表现差强人意,在某些动画特效比较集中的场景,会出现大幅的掉帧。某些低配的机器跑到这个场景甚至可能直接crash掉。
2、由于appstore的限制,更新含AS脚本的内容必须提交审核。为使AIR应用在iOS上能实现动态更新,寻寻觅觅了很多种方案都未成功。这个问题解决不好,对于我们游戏上线后的运营维护将会带来很大的麻烦。试想想,如果要紧急fix一个重大的bug,如果审核7天甚至更长的时间才能通过,或许这个期间玩家已经流失得差不多了。
3、AS ANE AIR Native ExtensionsAIR原生扩展)开发和调试相当麻烦。这就对产品的推广有很大的阻力了,你要加上各种的SDK都是各种费劲,而如今平台林立的年代,没打包过几十一百个SDK的产品都不太好意思跟人家说。

     既然有这么多的问题,那怎么办呢?当时我们在同行交流中知道,大多数页游转手游的团队大约7成最终都转向了cocos2d-x,而并非自己所最熟悉的AS。即使一些已经用AS做出手游产品的公司,也在规划下一版的产品将转投cocos2d-x。而我也很早之前就开始关注cocos2d这个引擎,在关注了约半年的时间之后,我们了解到Cocos2d-x 是一个用C++开发的、开源的、支持多平台的 2D 手机游戏引擎。除了“开源”、“高性能”、“跨平台”这几个标签之外,让我们最看中的当属其内嵌的LUA脚本引擎。

     由于 C++ 对开发人员要求较高,我们都不是C++高手,如果我们可以使用lua脚本调用cocos2d-x C++的接口,游戏的逻辑99%可以采用lua这种简单、轻量级、上手非常容易的脚本语言来完成的话,无形中会大大提高开发效率,降低开发成本。

     另外,脚本语言的应用也同时帮我们解决了游戏动态更新的问题。

     最后,cocos2d-x在游戏性能的表现上,也能给我们一个比较满意结果。我们用cocos2d-x做出来的demo,完胜AS版本。

     于是,最终,我们选择了cocos2d-x。

     既然技术方案已经定下来了,那我们就要进入实操阶段了。其实我们一开始也就一两个人做这个的编码开发,我们几个小白要怎么样才能把cocos2d-x玩转呢?我们不是C++高手,而且我本身对C++有点恐惧,虽然我也花了半年去看相应的书籍资料,但是真正做起来遇到了非常多的问题。接着我又了解到了脚本语言也可以使用cocos2d,脚本语言有LUA和HTML5,但是我之前也花过一段时间了解H5,我觉得H5还没有达到可以成为主流的条件,于是我选择了LUA,花了一两个小时学会LUA的基本语法之后我就开始写例子了,费了很大力气之后还是觉得不够好用,就在这个时候,有人跟我推荐一个第三方的东西:quick-cocos2d-x!一开始听到这个的时候觉得又要去搞一个新的东西会好累,但是听多几次推荐之后就觉得有必在去了解一下。这一了解才发现这是一个好东西啊,这个就是我们正在找的东西。

     quick-cocos2d-x究竟有什么值我们这么重视呢?让我们来看看它的作者:廖宇雷,相信用过PHP的人有很多会听说过一个框架:fleaphp,这个框架就和quick-cocos2d-x的作者是同一个人。一直以来都在使用PHP的我马上就感觉到很亲切,感觉作者的思路应该会跟我很接近,应该挺好上手的。作者对quick-cocos2d-x的一句话介绍就是:quick 是 cocos2d-x 针对 Lua 的豪华套装威力加强版。

     那么有多么豪华,加强了哪些东西呢?首先它有一个豪华的player,简单地说就是一个模拟器,这个模拟器远比xcode自带的模拟器要轻,要快速,而且支持windows/Mac平台。大家看一下界面吧,它有不同的分辨率可选,可以很简单地设置横屏还是坚屏。当你修改了你的脚本的时候,只要重新加载一下,马上就看到效果了,不用重新编译,这对经常调界面的我们可是一大福音啊,这得节省多少打开模拟器的时间啊。同时它还很方便贴心地把要输出的日志信息写到一个log文件上了,非常方便,还有各种方便的功能大家有兴趣的可以自己去体验一下。那它加强了哪些东西呢?

     1、更完善的 Lua 支持,包括一个 Lua 框架对 C++ 接口进行了二次封装,现在还加上了UI组件和改造过的触摸事件,现在变成了跟as一样的事件机制。
     2、补充了大量 cocos2d-x 没有提供,但游戏需要的功能,例如网络通信HTTP & SOCKET、加/解密、物理引擎、骨骼动画等等。
     3、为提高开发效率,提供了 Objective-C  Java 的桥接模块,集成了第三方SDK的使用例子。
此外,还有大量可供参考的sample代码。基本上可以说cocos2d-x官方来不及做或是支持力度不大,但是开发者又迫切想要的功能,作者都很及时地提供了,最难能可贵的是我们遇到的很多问题,只要在官方群里提问的话都可以得到作者很及时的回复,就算是作者不在的时候也有很多热心的开发者帮你解决问题。

     上手一项新技术或多或少会遇到一些“坑”,不小心会栽下去。下面分享一下,我们在实战过程中的一些体会吧。
1、写惯AS的同学第一个不习惯就是就是坐标系的变化,按传统来说坐标的原点在右上角;但是,cocos2d则是在左下角,而且显示对象的位置会跟其长度宽度(width & height)有关系。整个空间的思维需要小小的颠覆一下。
2、Touch机制也大不相同,梳理起来相当痛苦,而且如果这个地方没有处理好足够让您整个项目一直痛苦下去。它并不是按照场景显示对象的层次关系来判断触控优先,而是按照控件本身所默认注册touch优先级别来判断。场景UI的层叠关系足够复杂的话,需要增加不少代码量来保证最终的效果。不过新版的quick-x将会解决这个问题,据说新触控机制能做到跟AS一样清晰,这对开发者来说会是一个极大的福音

3、 为了保证性能,运算量较大的逻辑尽量抽出来,在C++上实现。例如,加解密封包、压缩/解压等。我们曾经尝试直接用luasocket在用lua脚本来实现socket封包的加密解密以及压缩,实际效果在数据包比较集中的时候会有卡顿的感觉。用C++实现这套逻辑后就没有再出现这样的问题了。

4、富文本(RichText)实现比较麻烦,因为cocos2d CCLabel不支持富文本,在文本的表现力差强人意。相比之下AS能支持HTML,在这个环节胜出。很多cocos2d的开发者也只能无耐放弃更好的文本表现,或者用图片来代替。

5、尽量使用批量渲染,把需要批量绘制的纹理通过碎图纹理的方式放入一个大型纹理中,然后利用CCBatchNode统一绘制所有精灵,可以提高绘制效率。有点遗憾的是它仅支持CCSprite,而我们常用的CCScale9Sprite无缘。
 
那么我们的项目实际情况是怎么样的呢?
我们有一个叫做《倾城三国》的策略类SLG的手游产品现在是完全使用Quick来开发的,从0开始开发了三个月,人员是一个熟手的AS带两个生手的lua程序员,现在基本功能都做得差不多了,预计本月底上线,目前还在紧张的开发中。我们来看看游戏的截图:

平时我们在群里经常会有人问这样的问题?
使用什么IDE开发?
有没有代码自动补全?
怎么样设置横屏竖屏?
都有哪些成功的案例了?
网游协议的选择,luasocket还是BSDSocket?http?

如果大家有兴趣的话可以去qucik-cocos2d-x的官网查看更详细的技术文档:http://cn.quick-x.com/

2013中国开发者大会杨东波PPT
3qppt



如果我的文章能帮助到你我会非常高兴。你的支持是对我的认可,将会大大地鼓励我写更多的文章,哪怕只给我一毛钱:-)

期待您的捐赠
Thanks for donation

咦?还没有评论,抢沙发!

发表评论

带 * 的是必填项目,电子邮件地址不会被公开。
文字的交流也是情感的交流,技能的交流也是学术的交流。

无觅相关文章插件,快速提升流量