主持人:
下面有请博远无线产品总监邹建峰,他演讲的主题是“携手社区共成长”。
邹建峰:
大家好!很高兴能跟大家相聚在北京,对我来说我是回到了北京,因为我曾经在北京待了六年,在福建待了四年了。我演讲的主题是“携手社区共成长”,讲讲博远无线社区的故事。
我们现在的开发速度一个游戏平均3—4个月左右,现在可以保持每个月可以推出一款新游戏,所有的游戏都是网络游戏,这样的开发素质我觉得还是可以接受的。
首先,介绍一下我自己,我毕业于北航,我是博士,现在在博远无线担任产品总监。我在博远无线负责几个移动平台的研发团队,现在负责一系列产品。说到博远大家可能很陌生,但是说到91应该相对来讲很熟悉,因为91这块儿目前在国内有7000万用户在使用,覆盖了70%以上的Android用户,这个平台每个月带来10亿次的页面访问数,5亿的下载量。我相信各大开发者也是把自己的应用提交到各个渠道,跟运营相比的数量来讲,大家应该很清楚。
在博远无线内部分成三大产品线:一是手机的门户业务;门户主要包括几块儿,手机娱乐门户是国内最大的智能手机的门户网站;二是Android门户网站、Android论坛,Android论坛应该是国内最大的Android论坛之一;三是移动运营分发的网络,主要是手机助手,包括PC版本、手机版本。另外一块儿是Android市场,这两年PC端是原来的开始,现在在手机端的下载远远超过PC端的下载。手机版本、Android版本这两块儿的下载十分的可观。
还有手机客户端业务,比如说我自己负责的熊猫运营产品、熊猫桌面产品。另外,还有一系列手机游戏的业务。我自己是一个游戏新兵,大约两年前从接受开发做第一个产品,那时候我从来没有玩儿过游戏。我们的官方网站是跟开发者共同交流的平台,把你们的作品跟我们共享,里共创移动互联网的新家庭。
作为手机游戏开发来讲,很明显会遇到这些问题。一是平台非常多;二是每个平台的升级速度也很快。大家很清楚,从ios3.0升级到4.0、5.0,每年都升级一个版本,每年屏幕分辨率都会大一倍,Android这块儿也是一样,我刚刚创建Android团队的时候,志气QVDV,现在QV1V的机器已经没有了,这说明设备发展的非常快,平台发展的也非常快,功能非常快的涌现。对于小的团队来说,或者相对资源部是很充分的研发团队来讲,如果一直不断地更新平台,或者操作系统升级的话,会是比较痛苦的事情。另外,对游戏来讲怎么样最快的实现跨平台,这是根本的根本。各个平台有很多不同的地方,我们现在很凑巧的加了跨平台语言。
另外还有一个困难,就是招人很困难。还有开发效率的问题,比如说重复开发,Android和ios能统一的话有很大的困扰。还有一个很明确的问题就是应用更新很困难,有几个大渠道:APPStore、Google Play,第三方像Market。
91农场是我做的第一款游戏,当时用了很多团队,每个平台用了两个人,ios两个人,Android两个人,WM两个人,我们写代码还是比较有经验,使用一套完整的代码,在发布的时候可控制。但是也碰到很多的困难,开发进度不统一,整个用户体验不统一。
我们在开发第三款游戏的时候在犹豫到底用哪一款开发框架会更好,我们看到最近发布的凌云帝国也是一样,Android也是用了外包的壳做,因为他认为不是所有的设备速度和性能可兼容,可以达到统一,这是很大的问题,这也是我们没有选择html5做的原因。我最近看到Air觉得非常好,但是还要再给它一点点时间,等它成熟了,我觉得是很好的机会。
部落战争我们长期适用Cocos2d-X做开发,中间结合了一部分C++结合Lua的语言,我们想借这个机会能不能用脚本做大一统的开发,这是我们期望的。我们发现脚本还是不错的,能够真正实现我们的目标。另外,这上面碰到很多的困难,走了很多的弯路,特别是在Android系统有很多的问题,我们也克服掉了。
从这儿开始我们就选型,使用Cocos2d-X技术,对我们来讲有几个好的地方,代码是开放的,我们可以进行修改。用于验证的产品较多,我相信大家很认同这个,根据社区的问题,对于我们使用稳定的能自修复的引擎更好,如果其他的研发部门做,产品和研发分的非常远,很难把事情做的非常完美。BUG修正及时,亦可以提交修正方案,这一点是我们十分认同的,从一开始选型到最后选择了Cocos2d-X作为客户端引擎。
在这里我们做了很多的创新,我们使用Lua作为中间语言,为什么我们会选择Lua。首先,我们公司服务器端有大量的任务,有大量的Lua程序,我们提交给Cocos2d-X,合并进去。
最后的开发效果:主观测算开发效率提高30—50%;降低开发人员的入门门槛。实习生两周就可以写脚本、代码,相对初级的程序员培训一段时间很快就可以上手。对于C++来讲,对内存泄漏虽然可以解决,但是相对来说没有那么容易,我们可以用任何的内存解决方法去监测它,但是最后做出来还是亡羊补牢的一件事情。
战国天下/哼哈三国这两款游戏,对Cocos2d-X做了很多的优化。怎么样减少资源?把应用资源去掉不要了,如果有1X资源就用1X资源,如果没有1X资源可以搜2X资源,这是一方面;第二方面,对.9背景资源的支持,是运用九宫格拼图的模型。还增加了动画播放功能,切片把动作变成很好的片,可以任意旋转、任意移动,节省很多的动作,可以大量节省资源尺寸。再一个,就是要支持多分辨率,这是我们做的事情,这块儿是比较有意思的。
第三方面,移植到Mac平台上,提交给Cocos2d-X.org。内存纹理器,用于内存文理释放检查,有的是内存占的太多,我们增加了开关,把所有内存纹理全部释放出来。多分辨率模拟器,大家应该很清楚,如果开发Android的话,最头疼的地方就是设备,开发移动设备最大问题还是设备问题。
第一个问题就是设备买的够不够多,Android有各种分辨率,这个问题怎么解决?以前买不同的设备一个一个用,非常的头疼。现在我们作了多分辨器的模拟器,把所有的自动显示出来,让设备各个去检查,检查完了之后再放到手机上,检查内存泄漏问题,这才是真正提高效率的地方。
我们也做了大量的工具,我们跟捕鱼不一样的地方就是我们从来不做单机游戏,只做网络游戏。对网络协议生成器一直是我们头疼的事情,我们大部分的时间是花在链条上面,为什么?你对一个我对一个,所以现在做一个协议生成器,只要把所有协议添进去,两头客户端自动生成代码。
第二件事情是动画编辑器的事情,直接生成2D的动画,这是我们刚才所说的切片功能,这里面包括非常多的动作,像站着、打、跑步。这样可以减少图片数量,再一个播放动画可以更加顺畅,我们还做一件事情就是生成支持动态的播放器。
工具2:CC2IDE,加了Lua脚本编辑器。我们还做自主研发的东西,Lua For Cocos2d-X To Windows Phone 7,启动速度优化至10秒。这块儿最头疼的不是开发难度,而是Windows Phone 7的语言。这块儿我们需要花很长的时间来做这个事情。我们从社区拿来一些东西,希望通过我们的努力把我们的东西分享给社区,大家能够形成互动。
我们希望以后能够越来越简化程序开发,大家并不是把问题停留在程序上。Android做产品、游戏,Android对人性的分析,大家不要认为我们坐在这里干吗呢?是为了解决某一个困难的,真正让社区红火起来,让大家做到双赢、多赢的目标,这才是我们真正的目标。从这方面来讲,希望大家能加入这个开放平台,跟大家真正一起实现共赢和多赢。
我的演讲到此结束。谢谢大家!
提问:
刚才我特别感兴趣的问题就是解决内存的问题,刚才你提到了内存纹理器,能大概说一下思路吗?
邹建峰:
到时候发给你就好了。
提问:
Lua引擎放在资源里面游戏怎么做加密,或者防止破解?
邹建峰:
第一,因为是一个脚跟,相对来说加密还是必要的。加密的方法是满多的,加载的时候才使用加密引擎,各种方法都可以。你有需求,这个东西不是成为你最大的问题。
提问:
我们正在做这个东西,现在的iPhone、Android手机安全性很高。
邹建峰:
手机还是要先把产品做好,被不被人看不是核心,如果产品做的好,你大大方方捐献出来又怎么样子。
提问:
比如说有些热情的用户使用你游戏的漏洞,用非正常手段获得游戏的资源。
邹建峰:
这个没有关系,最大的问题在于控制环节,不要让他有漏洞可循就可以了。这是我们为什么做网游的重要原因,做单机版又有破解不破解并不担心,但是最重要的地方还是做服务端认证,这是必须的。做游戏实际上有很多方法,你想办法让他黏在你的游戏里就好了。就像捕鱼达人,我虽然是一款游戏,但是把它当成广告平台为什么不行呢。
提问:
我比较感兴趣的是,刚才谈到了一个动画编辑器,那个是你们公司自己做的。如果我们想去开源,我们自己有什么其他替代的产品可以做呢?或者动画编辑器是不是可以开源给我们用?
邹建峰:
这个没有关系,可以拷贝给你们用。什么应该是用户,什么是开源对我们来讲需要平衡的考虑,这个我回去确认一下,这个有多大的必要是不是需要开放。另外,我们公司做这块儿相对来说差不多就开源了,我回去卡一下到底有多少需要保密的东西,应该没有问题,我们今天坐在这儿应该对开源比较清楚,我们还是想繁荣整个互联网社区,凡是能带来好处的地方我们都会去做。
主持人:
今天上午的演讲到此结束。下午的会议在13:30分开始。