您的位置:首页>新闻>《程序员》专访AnySDK陈峰:本地打包 快速接入渠道

《程序员》专访AnySDK陈峰:本地打包 快速接入渠道

lee 新闻

2014-11-06

AnySDK是触控科技推出的一款为手游开发商提供的免费、快速、本地打包接入第三方渠道的一站式解决方案。相比原来接入渠道的龟速,AnySDK帮助多家公司在短短一两周内即完成产品的接入、做包、测试与几十个主流渠道的上线。为了进一步了解这个工具,《程序员》近日对AnySDK负责人陈峰进行了专访,从和他的交流中真正认识到AnySDK的独特之处,以及项目背后的故事。
2014-11-07 16_36_14

快速的本地打包

《程序员》:AnySDK是2014年才推出的,着手打造这样一款工具的初衷是什么?

陈峰:其实严格意义上讲,AnySDK并不算是2014年才推出的,它有一个前身叫Plugin-x,是Cocos2d-x引擎中的一个模块,从2012年6月就开始做了,应该算是国内这一领域的第一款产品。从技术角度上来讲,Plugin-x在当时是成功的,但因为它没有产品化,所以一直没有得到商业方面的大力推广。2013年,我加入了触控科技后,在梳理公司的各种项目时,一眼便看中了Plugin-x,我觉得它可以做成一个非常好的商业化项目,让开发者更容易地进行渠道打包,于是Cocos2d-x作者王哲就让我做这个项目了。一开始其实想过很多名字,最后选择AnySDK的一个原因是www.anysdk.com这个域名没有被人抢注。

《程序员》:与其他产品相比,如棱镜,以及你之前做过的91 SDK,AnySDK的主要区别是什么?

陈峰:AnySDK对我们而言是一款完全自主创新的产品,并没有去与别的产品作比较。不过如果一定要与其他产品做个对比的话,我个人觉得有以下几个区别。

第一,目的不一样。有些公司是因为盈利目的或是自身的其他原因,才来做这件事情的。而我们不一样,此前做Plugin-x是为了打造一套完整的引擎框架,现在做AnySDK则提升了目标,是为了推动开发工具链的进化,让开发者更舒服地使用这套引擎,以及更舒服地把整个游戏开发出来而做的。

第二,从最直观的角度来讲,本地打包是AnySDK与其他同类产品的最大区别,其他竞品大多数采用的是云打包。

《程序员》:所以对开发者来说,最能体验到的区别就是:AnySDK是本地打包,对吗?

陈峰:是的。AnySDK采用本地打包,就是当母包编译完之后,在自己的电脑上就可以生成各个渠道包。关于这一点,我们拿公司自己代理的游戏《万千回忆》测试过。《万千回忆》这款游戏有个语音系统,完整包有四百多兆,如果采用云打包,先不说打包的过程,单是把包从电脑上传到云端的时间就需要非常久。而我们用AnySDK进行本地打包,总共就只花了四分钟左右。

动态加载模式

《程序员》:AnySDK在上线之后,有根据开发者的反馈做过一些优化或调整吗?

陈峰:还是比较多的,我们正式首次上线的时间是2014年5月8日,但5月8~6月5日期间我们几乎没有上过一款游戏。那么,这段时间我们做了什么呢?就是找了一批关系比较好的兄弟公司,请他们试用AnySDK。这中间我们做了非常多的调整,用户在使用的过程中一旦发现问题,我们就立即进行修改。

《程序员》:在开发过程中有没有遇到过一些技术上的难题,最后是怎样攻克的?

陈峰:刚开始碰到过,起初通过编译模式开发时,十个渠道的打包过程可能要消耗一整天的编译时间。于是我们就改变了模式,通过动态加载的方式来做。其实当时还有一个更好的办法,打出来的包会更完美一点,但代价太大。我们权衡了一下,选择了现在这种方法,也就是对包进行重组,动态地做一个渠道包出来。打包过程就不需要编译了,所以可以非常快,大概三五分钟就能做出一个包。

《程序员》:除了技术方面,在研发过程中还有哪些让你印象深刻的事情?

陈峰:其实我们在最开始也尝试过云打包。但很快就在评估中发现一个问题——受网络约束太大。一是受网速影响,二是有些公司对于上网有限制,那么这些公司就完全没办法用。

放弃云打包后,我们就决定开始用本地打包,不过这个打包工具用什么框架、用什么语言、用什么东西来做,大家又讨论了很久。我们当时定的第一个基调,就是要跨平台。当时调研了几个框架,最终采用了Qt,因为Qt从开发的上手度和稳定性来说都很不错。选择完框架后,我们就开始做设计。因为本地打包的界面没有任何可以参考的东西,所以美工做的第一个版本并不是太满意,7月我们又做了一次比较大的改版,对用户体验及美工部分进行较大的优化,才有了现在的这个版本(如图1所示)。

545b2aff80535_middle

AnySDK新增企业版、iOS版本

《程序员》:目前,你们开放出去的功能都是免费的,今后有没有一些预想的盈利模式?

陈峰:我们目前在做的AnySDK的企业版,正是下一步期望的盈利模式。做这个项目的原因是,我们在推广AnySDK时,遇到了两个用户提出的最棘手的问题。

第一个是,你们的服务器稳定吗?你们的服务器挂掉了,不就等于我的游戏也挂掉了吗?答案是肯定的,对游戏会有一定的风险。但这个风险现在已基本解决了。我们现在有双机房热备份,主机房断网、断电,甚至出现地震等意外时,备用机房会在3~5秒内启动来接管服务。并且在北京我们有7×24小时的监控。

第二个问题更加棘手,是关于接入SDK后,玩家的支付与登录的详细数据,这点有些公司挺介意,特别是大公司。针对这个问题,我们现在提供了好几个方式来解决:第一,我们提供一个保密协议,目前已经有很多业内知名公司和我们签署保密协议后,数据从AnySDK服务器走,我们可以保证不泄漏用户的数据,这点在我们内部是非常严格的,从cocos2d-x挑选第三方依赖库时严格遵循各种开源协议开始,我们团队就非常重视法律责任和义务;第二,如果还有公司对于前一种方案不放心,那么我们在技术角度,做了一个“服务端、客户端脱离”,也就是说你可以用我们的客户端来打包,但服务端则可以用自己的;第三,如果有公司既对第一种方案不放心,又没人力和时间开发自己的服务端,那么可以用我们现在正在做的企业版,也叫私有云,到时将提供一套服务端给客户,客户可以买,然后用自己的服务器搭建起来,那么这个服务器的管理权限就在客户自己的手上了。这样做有两大优点:一是假设他不信任我们的服务器的稳定性,那么他总可以信任他自己服务器的稳定性;二是所有的数据都通过他自己的服务器中转,我们这边完全看不到他的数据,但这个AnySDK企业版是要收费的。

《程序员》:下一步还有哪些打算?

陈峰:下一步主要考虑AnySDK的iOS版和海外版。此前,AnySDK只提供Android版的打包工具,只能处理Android的版本。因为在国内,Android渠道的复杂度远远高于iOS渠道,所以最开始重点选择针对国内的Android渠道。而现在国内Android渠道部分已开发得差不多了,并且收到了许多开发者向我们提出iOS版本的需求,所以我们现在也开发了iOS版。第二个是海外版。大家知道,触控代理了许多游戏,有从国外引进国内的,也有从国内出口海外的。我们现在的AnySDK产品,包括新出的iOS版本,主要解决了国内游戏上国内渠道,以及国外游戏上国内渠道这两个方面。但国内游戏上国外渠道,以及国外游戏上国外渠道,这些目前都还没有做出来,所以这也是我们2015年上半年的一个重点任务。

原文链接: http://www.csdn.net/article/2014-11-06/2822524