《卧龙传》制作团队Team1201专访

1、介绍

Team1201是我们团队的名字,如果大家在讨厌的手机广告中,看到过一个张牙舞爪的龙头标,而且和其他20万耐性好的家伙们一样,下载安装过这个叫做《卧龙传》的游戏,那么谢天谢地,你的选择是明智的。当然,这种明智也包括你可以在游戏中虐人,以及被虐。

卧龙传是Team1201的第一款移动端产品。苦逼的UI设计师很贪心,力求以一个安装包通杀iOS和Android的所有中高端设备。团队创始人妄图用迷你团队之力,在竞争最激烈的策略网游列强中,争取自己的一席之地。

《卧龙传》开发至第五个月,Beta版(现在看只能叫Alpha)已经在UCWeb、当乐、265G等平台和媒体发布。可爱的玩家们一边骂着一边沉迷,让我们坚定了继续努力的决心。

迄今为止,《卧龙传》已经发布了数十个版本,外放的最高版本1.53,玩家们更新到怕。《卧龙传》发布在App Store、Google Play、国内各种市场,总下载量近20万,App Store免费排行在10~200间徘徊。

作为一款定位、题材、包装看似老套的策略游戏,要获得用户的青睐,我们只有在核心玩法、操作体验、互动设计、技术优势上下苦力。例如:
● 例如的例如:玩家的目标很明确,历经“屈辱”和“万难”,吆五喝六攻城略地,从一介屌丝到称帝改元,为保住江山“殚精竭虑”;
● 再例如:坚持竖版界面的作法,把千千万万玩家从无聊的会议和工作中解脱出来。回家了,还能腾出一只手**做的事;
● 还例如:冒乔布斯之大不违,实现iOS系统的应用内更新……等等。(这一条谁说出去我人肉谁!你懂的)
● ……

Team1201是一个豪华团队,组建与2011年末,……(此处省略2345个字)……。采访要求附团队照片一枚,考虑到团队的合影大多衣冠不整,不忍荼毒各位纯洁双眼,这一张应该好点。(年初核心成员因工作不努力,被罚沙场苦工一日。老板恻隐,允自带干粮上阵图)

最后,附上《卧龙传》下载地址三枚(重度网游 万勿沉迷):
● App Store:https://itunes.apple.com/cn/app/ … uo/id567447195?mt=8
● Google Play:https://play.google.com/store/apps/details?id=air.us.sanguo.sg
● Game Offical Site:http://sanguo.us/download.html

2、五件“正确的”事情

2.1 选择了Adobe平台

Adobe平台是《卧龙传》能够快速开发,快速上线的基础。技术选型初期,我们也曾纠结于是采用原生语言还是采用AIR,最终还是选择了AIR。让我们做出这个选择的主要原因如下:
● ANE插件机制机制基本上可以实现大多数需要的功能;
● 团队主要前端成员多年的页游开发经验;
● 快速开发;
● 跨平台发布。
事实证明,这个选择至少在大方向上是正确的,为什么这么说?后面不正确的事情中会提到。

2.2 无时无刻不在考虑的流量节省

游戏的开发过程中,我们一直希望为玩家节省有限的移动网络流量。
《卧龙传》使用Socket通信,并采用了Google的Protocol Buffers框架中的Varint编码,尽量对数据进行压缩。通信协议中使用数字部分多数采用位移计算,在有限的字节中尽可能保存更多的信息。对于字符串信息,在使用Varint编码之后,再次使用GZip压缩。
游戏实测的情况,是每小时耗费流量平均不超过35KByte。

2.3 实现了一套较为完善的自动更新机制

为了节省流量,除了游戏进行中必要的数据之外,我们把所有的资源都放在客户端。但这种做法这为bug的解决带来了麻烦。一旦客户端出现bug,就必须更新客户端。AIR打包的游戏需要带上AIR运行时,本来就比用原生程序来开发的游戏(对于同一个游戏来说)大上不少。每次更新都要消耗大量的流量。
为了更加灵活的进行更新,同时为玩家节省流量,我们为更新设计了3种不同的方式:
1 )整包更新(仅用于Android)
游戏启动的时候提醒用户,用户同意后自动下载最新的APK包,并自动安装。
2 )主模块更新(仅用于Android)
AIR在Android上使用虚拟机实现,这是将游戏主模块独立出来的基础。我们将游戏的主模块封装在一个swf文件中,绝大多数的功能更新和BUG修复,都能通过主模块的更新来实现。
3 )资源更新(可用于Android和iOS)
游戏中有任何图像、声音、配置需要修改,都可以通过资源更新实现。

2.4 自动重连机制

采用Socket协议通信,必须保证长连接。但玩家的网络环境相当复杂,掉线是家常便饭。我们实现了比较完善的重连机制和提醒机制,让玩家在网络信号差、WIFI到Mobile网络转换、网络断开的情况下都能得到提醒,并在网络可用的时候自动连上服务器。

2.5 充分使用开源技术

游戏服务器采用Python+PHP+MySQL+Memcached,运行在Linux服务器上;
客户端采用ANT部署;
客户端所有图像和文本资源采用SpriteSheetEditor(http://zengrong.net/sprite_sheet_editor)编辑和管理;
所有资源和源码采用git和subversion管理。

3、五件“待改进”事情

3.1 选择了Flex框架

这绝对是《卧龙传》开发过程中最大的失误+错误。
不可否认,Flex是一个设计优秀的框架。Adobe也针对移动设备对Flex框架做了许多的优化工作。但即使如此,Flex依然不适合开发移动应用和游戏。
Adobe已经放弃了Flex,新的Worker和Stage3D无法应用到Flex框架当中。我们看着Staring和Worker垂涎三尺,却无可奈何。
Flex框架臃肿的体积,乌龟般的运行速度,成堆的bug耗费了我们大量的精力对其进行优化和修改。
《卧龙传》的运行效率现在依然不理想,正在开发中的《卧龙传2》已经放弃Flex框架,采用Pure AS3开发。

3.2 ANE缺陷与陷阱

我们曾经天真的以为,ANE能完成任何事。
这句话本身是正确的,但代价就是跳进各种各样的坑,然后再爬出来跳进另一个坑。
ANE的坑多,文档不足,打包繁琐,缺乏调试方式、iOS和Android平台对于相同功能的实现不同,再加上AIR本身的问题,让我们不得不让我们停下游戏的开发进程,专门来解决ANE问题。
为了在iOS和Android上实现相同的功能,我们必须为两个平台分别开发ANE,经过了繁琐的调试流程,ANE正常工作后,我们往往会问自己,为什么我不直接用原生语言开发呢?
关于ANE的问题,我们写过一些文章:
● 与 Xcode 相比,用 Adobe AIR/Flex 做 iOS 开发有哪些优势和局限?(http://zengrong.net/post/1737.htm)
● 改变AIR for Android消息通知栏默认图标(http://zengrong.net/post/1681.htm)
● 在ANE中连接Socket服务器的注意事项(http://zengrong.net/post/1667.htm)
● 在ANE插件中启动AIR开发的Android应用(http://zengrong.net/post/1663.htm)
● 更多:http://zengrong.net/?s=ane

3.3 嵌入各种SDK

游戏的推广离不开各大市场和推广平台。每个推广平台都有自己的SDK,我们需要拿出许多时间为每个SDK写独立的ANE,并进行痛苦的调试。
同时,由于每个推广平台的SDK都会加入一些让人感到匪夷所思的权限(主要是Android平台),导致原本“干净”的游戏瞬间变成流氓盗号应用。在看着流氓头子360拦截我们的游戏获取手机号码的时候,我们能做的就只有苦笑。

3.4 上面的错误还不够么?

3.5 见3.4

4、艺术设计

标题是艺术设计,”艺术“谈不上,以下就当界面设计或者美术设计来看吧。

首先是布局问题。前面提到了,一套界面完美通杀所有iOS和Android中高端设备,虽然苦B了些,但终归落得一个暂时满意的结果。

三段式的简单结构,支撑玩家属性、游戏场景、窗体和菜单之间的自如切换。块状花的窗体内容布局,让阅读和操作更加清晰、更加傻瓜化。

伸缩扩展的系统提示栏和菜单栏,是最有争议的尝试。无数个怀疑、否定和赞许、坚持,在此展开。

充分利用AIR的2D动画优势,少而精的动态元素表现。

细节抠到到每一个像素,让所谓Retina屏幕的优势展现无余。

内容为阅读让位,美观为操作让位,丰富性为效率位。有限的空间,有限利用。

测试会占用设计开发中至少40%的时间。下面是字体、字号、间距等部分基础界面元素在设计前的各种测试版本。

最后是美术风格。考虑到市场定位、产品独特性、玩家喜好、团队适应性等很多因素,写实古风尽可能的贯穿游戏内外。相比最受欢迎的拟真Q版风,虽然不对16岁以下玩家的口味,但争取到的优势,不言自明。

当然,改,是永恒。侧漏一下老版本中的部分界面,以及从未面世,胎死腹中的各种版本。

5、 技术与效率

5.1 为什么选择Adobe技术?
见2.1

5.2 你们目前在使用Adobe的哪些解决方案(请包含版本号)?
Adobe Flex 4.6 SDK
Adobe AIR 3.5

5.3 请介绍你们如何实施Adobe解决方案的

核心明确,内容简单:
出生地发展→发展科技与经济→招募武将→培养武将→占领城池→强化城池→获得更强大的竞技→召唤更多的武将→占领更多的城池。

刺激性强:
游戏PVP气氛和竞争气氛极强。财产与爵位的竞争在玩家之间极易产生仇恨,非常有利于刺激玩家产生自然消费。

自由发展、彰显个性:
摈弃了千篇一律的黄巾起义、讨伐董卓开场模式。采用了全新的开放式理念,让玩家自由发展,但同时为他们树立起共同的目标:进入东汉帝国的首都——洛阳。

持续发展:
《卧龙传》系首款可以改朝换代的策略类游戏。玩家不仅可以称帝,还可凭盟的实力图谋天下,成就统一霸业。其他玩家同时也能韬光养晦、厉兵秣马蓄势改元称帝。

美术和产品的设计方面,每到一个新的部分,必须要考虑下面一系列问题:
1 能不能沿用已经使用过的美术素材和资源,非新增不可的尽量少用;
2 小屏幕、大屏幕和高清屏下如果自适应,让画面和整体布局在能用、好用的前提下,工整、舒展、美观;
3 能否兼容动态内容变化后带来的视觉感受的各种差异;
4 整体风格的一致性;

5.4 请描述Adobe解决方案(AIR, Flash, Stage 3D等)本身的独特优势。
见2.1

5.5 请介绍Adobe解决方案是如何使你们的项目收益的
大量以前积累的经验和代码,让游戏上线的时间提前了2个月。

6、总结

一直到现在,我都会经常遗憾,为什么当初没有使用原生语言开发?
也许《卧龙传》会推迟几个月上线,但不会碰到ANE的问题;也许《卧龙传》会有更多BUG,但不会碰到SDK的问题;也许《卧龙传》性能会更好……
有得必有失,也没有那么多如果。玩家不会关心你采用什么技术,只关心这游戏玩得爽不爽。在智能手机配置越来越高,价格越来越低的今天,AIR的性能和兼容性真的不是问题。
《卧龙传2》已经确定采用Pure AS3开发,同时我们也在尝试cocos2d-x。

感谢所有耐心看到最后一句话的人。上面所有的错别字、语句不通以及任何你认为写的不好的地方,都是临时工干的。



发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

(Spamcheck Enabled)