IOS塔防游戏《坦克对大炮》的开发设计记录
IOS塔防游戏《坦克对大炮》的开发设计记录
引子
游戏已经在App Store上线几个月了,一直很想写点什么记录一下。真要写的时候,却又发现无从下笔没啥好写的。在2012年进入IOS,对于独立游戏开发来说,已经很晚了。前两三年抓住机会的独立开发者多少已经掘到了第一桶金。12年的时候IOS移动游戏已经炙手可热, 大量的公司和小团队涌入。App Store刷榜横行,榜单早就是公司刷榜的自留地,当然这时候,有一些独立开发者还在做着App Store是最后一片后花园的梦。
操蛋的苹果
其实2011年以前,我基本没接触过苹果的设备,也不知道App Store是个什么东西,没见过iphone,更分不清ipad和ipod的区别。用过的最潮的手机就是Nokia街机E72。如果非要说用过苹果,那就是很多年前抽奖中过一个nano,不过当时对它毫无兴趣。
苹果其实是个很操蛋很霸道的玩意儿,对于开发者也一样。要参与苹果的游戏,就得买苹果的设备,这就是游戏规则。很多想尝试开发苹果游戏的人,都被这招霸王条款吓跑了。这一年不少哥们同事都曾经打电话问我,说他们也想试着弄弄苹果游戏App开发玩玩,是不是一定要买个苹果电脑啊。我一般都说是。然后他们就挂机退却了。我想这其中一定吓跑了不少惊才绝艳的人。
对于中国的收入水平来说,个人开发者要弄齐一套开发苹果的开发环境,还是要一些投入的。咬咬牙很臭屁的从香港买了当时最高配的MacBook Pro, 又带了一个黑色的ipad2。在东单买了IPhone 4S。突然家里就多了一堆圆角的白色充电器,有时候看着很有喜感。说实话,买这些东西之前,苹果的电脑和手机本身对我没啥诱惑,我只不过需要开发和测试工具。所谓的欣喜,只是凑齐了开发工具之后的成就感,还有淡淡的虽千万人吾往矣的肉疼,一下子捣腾出去几万块。
当然,痛并快乐着的历程才刚刚开始。MBP拿回家之后,我突然发现自己没有VISA信用卡,连apple ID都注册不了。于是跑去银行搞定信用卡先,半个月后卡终于到手了,发现银行给我办了一张国内的信用卡不带VISA的。我了个去,吐血三升,又花了半个月再去办理。
注册苹果开发者也算是一场磨难,99$的注册费还算小事,搞明白和填写苹果开发者长篇累牍的英文条款就花了好几天的时间。上赶着给人送钱都这么难,个中滋味,一言难尽。(后来中国苹果ID终于可以用储蓄卡注册了,苹果在改变世界,中国也在改变苹果。这是后话了)
苹果的开发语言Object C也是个操蛋的玩意儿。以为凭着自己的C/C++功底,搞定Obj C还不是分分钟的问题。但是实际上苹果的开发语言和环境都是自成一体的,用惯了PC和微软那一套东西的开发者,刚上来必然会水土不服。Obj C的语法在前几个月让我别扭不已,Mac的操作系统、XCode的开发环境,也一直搞得我火冒三丈手忙脚乱。Obj C的语言关还没过,游戏开发的引擎关又来叫板。虽然只是一个2D引擎,Cocos2d依然来者不善。我很苦逼的抱着引擎啃了很久,感觉以前十多年的3D游戏引擎开发经验,突然就变轻了,像烧火棍一样不值钱了。
后来一直到用Obj C和cocos2d把游戏写了得差不多了,有人才告诉我有cocos2d-x这么个东西,用C++就可以了,根本不用跟Obj C丫的死磕。于是又吐血三升。等我开始打量cocos2d-x的时候,有人游戏上了App Store榜首,告诉我用过Unity 3D之后才知道啥叫糙快猛。
所以说,徒有悍将之勇只知道闭门造车埋头苦干也是不行的,在游戏行业这一亩三分地儿,也得有与时俱进的精神。更何况是苹果IOS移动平台这茬儿新地界。
为什么是塔防
游戏题材一开始就选定了塔防,这没啥好说的。IOS触屏手机本身能适应的游戏类型就不多,目前受众良好的就那么几种。塔防算是一个很重要的分支。塔防的操作模式和节奏都比较适合触屏的操作,以前在浩方平台上玩过一些War3 TD Mod,也还觉得蛮有意思。IOS平台上也找了几个塔防游戏来做调研参考,最早看的是《三国群殴传》,这款游戏算是老牌塔防游戏App。我觉得美术的风格把握得很到位,地图紧凑,人物KUSO。
第二个看的是《三国塔防魏传》,这款游戏是大企鹅代理的,还去听过他们的这款游戏开发设计的讲座分享。三国塔防的美术也很细致,地图比较大,兵种也有所区别,不过引入的道具让我觉得繁琐,可能是为了收费的Slot。
还有一个玩得比较多的是《塔塔水浒》,这款塔防游戏引入了英雄的概念,多了一些操作。不过早期版本游戏的难度很大,而且一局的时间又特别长,大概半个小时。打到最后失败挫折感就很强,不想再打。后来我提了一些意见,官方居然还有反馈。
著名的《Kingdom rush》反而没有玩过,国内风头一时无两的《保卫萝卜》也是到后来才出世,小猴塔防也是上线后才知道的。
玩别人的IOS塔防游戏做调研参考,主要是以之为鉴。自己的游戏设计好不好玩,能不能跟它们有所区别,什么样的问题自己觉得不好不能犯。
比如地图紧凑的问题,我觉得一个塔防关卡地图,在iphone里刚好一屏幕就好。如果大于一屏,就需要玩家多做操作去拖动地图,这个体验我认为不是很好。这个在三国塔防里就很明显,在《小鳄鱼爱洗澡》里面有些场景也是。不能一眼看到整个地图关卡,会让我觉得不踏实不舒服,而且还需要频繁拖动地图,破坏整个游戏的操作感。
塔防的精髓之一,就在于炮塔的种类、威力和功用。玩三国群殴也发现一些问题,比如有的地图造满投石车之后,就基本不用管看着就行了。这种情况是我不愿意看到的。所以我后来在设计塔防的炮塔的时候,就很注意避免类似的问题。
为什么是坦克
游戏的美术风格的确定也费了不少周折,因为美术我自己做。当时中国App Store很多塔防游戏都是三国流,确实三国武将小兵、炮塔弩车的模式,很适合塔防的调调。我很喜欢三国群殴KUSO的画风,但是真要自己去画,问题就来了。作为一个资深引擎程序员出身的我,根本就无法把握一个Q版的武将人物造型。别说武将了,实际上,我连一个拒马墩都画不好。而且,手机游戏上的图片,是像素画的级别。在32X32、64X64的图片大小里面,就要表现出人物风格造型。这个完全超出了一个眼高手低的程序员的手绘范畴。我摩挲着临时购入的廉价Wacom Bamboo绘图板,看着十几张凌乱而惨不忍睹画稿,一时万念俱灰。
让我去从其他游戏里扣点图片出来用用?这个又明显不符合一个自命不凡的程序员的气节风尚。我是一个很注重版权的人。
在美术风格上纠结了很久,可能有一两个月吧。我突然想起了20多年前,我小时候一口气玩过一百多关的坦克大战。武将画不好,我照猫画虎画几个砖块和坦克总行吧?好歹哥也曾经在小学绘画比赛中得过名次。
有坦克有炮塔,游戏就叫《坦克对大炮》吧。
实践证明,其实坦克也不是那么好画的。我每天都为每种坦克的造型头疼,可能一周也就能搞定一辆坦克。美术弄了几个月,坦克造型、炮塔造型、游戏特效、粒子设计、场景地图贴图、UI图片都陆续差不多弄好了。还借鉴了一些国外开源的像素美术资源(当然要认真遵循别人的协议)。
游戏出来之后,不少人反馈都觉得美术是短板。我自己也觉得确实那个。。。咳。。。咳。。。拿不出手。不过能自己搞定整个游戏美术,也算多了一次经历。这种感觉很不错。凡是有得必有失,咱要鱼不要熊掌。
程序和引擎
程序开发方面,反倒没什么好说的。cocos2d引擎本身是有一些坑的,比如有一次调试到晚上1点,凌晨起来接着Debug。后来发现是被cocos2d引擎的action机制摆了一道。在有复杂情形和需要精确控制的游戏逻辑处理中,action机制相当不可靠。有时候游戏中频繁出现莫名其妙的情况,反复测试调试修改都不行。最后丢弃使用引擎中action的部分,自己重新实现类似机制,问题迎刃而解。这种类似的问题出现过不止一次。趟平了这些坑,就过去了。
苹果的模拟器调试和真机调试,也是有一些区别的。比如模拟器可能有些文件名大小写是兼容的,但是到了真机里面就是大小写敏感的,以前运行正常的游戏就会报错崩溃。真机联机调试,跟itune安装测试,也是有一定区别的。联机调试没问题,安装测试不一定没问题。这个也是我付出了一次审核被拒的经历,才得到的教训。
穿刺炮的设计
我只打算做一款简单的塔防游戏,但是塔防要做得玩起来有点意思,也需要下不少功夫。其实这是废话,任何游戏要好玩,都得下功夫。
虽然我事先考察了一些塔防游戏,但是我从来没有想到照抄或者借鉴这些塔防游戏的玩法和设计。好不容易要做一款独立游戏,自然要做自己的游戏,当然,从其他我喜欢的游戏里借鉴是有的。或者说受了深刻的影响。就像2005年我们做MMO RPG的时候,无一例外或多或少都会受到WOW的影响一样。这个后面会陆续说到。
设计的炮塔里面,有一种炮叫做穿刺炮,子弹有穿刺属性,可以穿刺攻击多个目标,造成一连串伤害。但是为了不让这种炮特别逆天,同时能够清晰的表达穿刺特效,我把这种穿刺炮的子弹速度控制的比较慢。但是在测试过程中,我发现很少有玩家会在实战中使用这种穿刺炮,甚至包括我自己。
我后来就想,为啥呢?我发现是现有的穿刺机制,并不足以鼓励玩家使用这种炮。因为要控制炮弹穿刺打击几个坦克目标,还是比较困难的。对炮塔摆放位置要求很高,并且需要冰冻减速炮的配合。
我要做的是要鼓励玩家多利用穿刺炮的机制,鼓励玩家最大化穿刺的伤害。当时Diabolo 3刚刚出来,我正在玩恶魔猎手。作为暗黑系列AMA式的人物,穿刺箭是招牌技能。有一个穿刺箭的符文,就是每穿刺一次,攻击力就增加70%。我觉得这个设计不错,就是我要找的东西,于是借鉴过来用。这样穿刺炮在穿刺多个目标之后,可能就会打出出很可观的伤害。
然后我发现,这样的改进,穿刺炮的使用率还是不高。似乎还差点什么东西。穿刺炮可以升到3级,每级也就增加一次穿刺次数而已。升级到最高级的炮台,并不能带来激动人心的收益。我后来考虑让最高级的穿刺炮获得一个破甲属性,达到最大穿刺次数以后,会对坦克产生破甲效果。不过因为我糟糕的美术功底,画了一个破甲特效之后,自己都看不下去。于是考虑搞点简单的效果,最后把破甲特效改成了感电特效。
最高级穿刺炮有一定几率对坦克造成感电效果,每穿刺一次,感电的几率增加,当达到最大穿刺数的时候,则100%触发感电特效。感电会在坦克身上引起闪电火花特效,这时候所有炮塔对于坦克的伤害都加倍,并会减缓坦克的速度。好吧,玩DNF(地下城与勇士)的同学可以笑了。
穿刺炮的设计,后来在炮塔群里输出最大化伤害时,起到了一些作用。不过上线之后,我发现穿刺炮的出场率还是没有预期的高,于是在第二版中稍微强化了穿刺炮的射程,并在不影响穿刺特效表达的情况下,调高了炮弹飞行速度。
红衣大炮
游戏里有一种炮塔叫红衣大炮,游戏名字都叫《坦克对大炮》,那么红衣大炮自然是威力最大的一种炮了。红衣大炮不仅炮弹威力最大,而且命中之后有范围爆炸效果(参见星际1的坦克炮)。爆炸之后还有一定的Knock Back作用。2级红衣大炮的爆炸还附带灼烧效果(灼烧Dot伤害)。最高级的红衣大炮,甚至有一定几率击晕坦克(Stun特效)。看上去很不错是不是?
不过我当时犯了矫枉过正的错误,为了防止出现类似无脑投石车那样无敌的问题(或者可以参见帝国时代1的弩车),我严格控制了坦克的威力,而红衣大炮的价格又很贵。所以红衣大炮在第一版上线的时候,性价比很低,玩家根本不买账。有些玩家开始还造一个玩玩,后来发现坑了就不造了。
后来我发现红衣大炮是第一版游戏中出场率倒数第二鸡肋的炮塔。于是在第二版设计中,调整了炮弹威力、爆炸范围、Knock Back距离、以及强化了大炮的射程。通过这些调整,后来新版本上线之后,在有些地图的地形上,可以演化出以红衣大炮为主的打法,甚至是完美过关的打法。
多重射击炮
每个游戏里面都有一个散弹炮,无论是魂斗罗还是打飞机还是塔防。多重射击炮自然就肩负了这样的使命。上面既然说了倒数第二,那么这个就是第一版的倒数第一了。没有人喜欢多重炮,因为它很弱。多重炮刚开始的设计就是级别越高散弹越多,升到最高级的时候,可以触发“乱射”效果。说到乱射,玩过DNF的最帅的漫游枪手同学肯定笑了。其实刚才说到穿刺攻击,应该也有玩弹药的同学笑了。
当然第二版更新,多重炮也是一顿大改。我把乱射技能改到了2级就能触发,3级技能改成了弹幕排射。因为这时候我正在玩LOL(英雄联盟),赏金女枪的大招“弹幕时间”似乎很不错。
玩家的馈赠
虽然第一版上线的《坦克对大炮》的3种炮塔的数值设计有各种问题,但是总体上还是一个数值非常平衡的游戏。好吧,实际上这个游戏总共也只有5种炮塔。但是剩下的两种炮塔:连环弩、冰冻减速炮,数值做的很平衡。
所谓的平衡,就是有一些数值平了以后,才能发现不平衡的。所以在第二版的上线版本中,连环弩、冰冻减速炮的数值,我一个字也没动,也不敢动。因为很多人以这两种炮塔为主力把整个游戏所有关卡打通关了。虽然大家都一致表示游戏关卡很难,有些炮很鸡肋。但是有人通关了我还是很高兴。是非常高兴。
最早通关的玩家,是大艾格拉斯的策划总监张总,也是后来App Store红透半边天的ARPG 《英雄战魂OL》的总设计师。这个对我来说,是很大的肯定。因为游戏上线之后,说实在话我也有些忐忑,不知道游戏到底有没有人喜欢玩儿,不管有多自命不凡,尽管每个关卡都测试过500多遍,其实还是没底儿。后来陆续有更多玩家通关,交流关卡的打法,我的这种紧张忐忑才缓解了一点。
玩家也提出来不少建议和想法。比如第一版打法比较单一,主要就是冰塔减速冻住,连环弩输出伤害。
游戏里确实只有冰冻减速塔一个主要控制手段。其他的控制其实也有,比如3级穿刺炮的感电减速、3级红衣大炮的击晕Stun、Knock Back。但是因为第一版后两种炮塔的鸡肋,这些控制手段也都没有出场机会。一直到第二版更新以后,我强化了其他炮塔,并重新校验了一下各种炮塔的子弹速度,才让打法和炮塔组合更多样了一些。
为什么要强化子弹速度呢,因为这款塔防游戏跟其他的塔防不太一样,炮塔不是锁定攻击的。每颗炮弹的攻击都是真实的飞行碰撞。我当时过于强调了冰冻减速炮的作用,所以其他炮塔对于冰冻减速炮依赖很大。如果没有减速或者冰冻控制,炮弹弹道经常会打不中坦克。后来经过玩家反馈和思考,我发现这么设计过度也有问题,过度依赖冰冻减速,也会抹杀其他各种炮的特性,造成单一的打法,也增大了游戏难度。
我有一个习惯,就是很注意现场观察玩家的操作。在游戏发售前,这项工作我做了很多次,主要是找熟人做测试,从十几岁到几十岁的都有。那怕是有的玩家玩了一下就丢开的,也要琢磨一下为什么。比如我发现了不少玩家使用iphone玩这个游戏的时候,习惯使用拇指操作,而不是我原来想象的那样用食指。这样就要针对这种操作习惯,对于游戏的UE做一些微调。如果一直用模拟器测试,这些问题是发现不了的。而如何微调以适应这种玩家的操作习惯,也不是空想就能调整好的,除了观察玩家,还需要仔细琢磨其他游戏是怎么做的。比如大企鹅的游戏一向在UE方面都做的特别好。
游戏的关卡长度和游戏节奏也是一个问题。很多人都知道手机游戏用碎片时间啥的上等理论。实际上很少人去实践。为了感受游戏的长短节奏,我半年时间都在坐地铁的时候玩自己的游戏,主要是体验坐多少站可以玩一关。还有其他场合,比如银行排队、等人、五谷轮回的时候。
单机需要平衡么
我想做的是一个严谨的游戏,虽然只是一个玩票的塔防游戏。
很多玩家反应最多的是游戏难度太大。特别是第一关就有不少人过不去,甚至有个手机游戏App的网站编辑,打了3个晚上第一关都没过去。这个跟第一版有些炮塔威力不够有关,当然确实是难。
我把游戏数值和金钱抠的很死,前期如果开局不好,比如炮塔搭配不好、或者造塔地形没选好、或者攒钱不花的话,就会造成开局不利的劣势,逐渐积累劣势和错误,就会造成游戏崩盘过关失败。
当然如果懂得利用地形,善于搭配炮塔,利用各种炮塔的特效的话,游戏过程中也会享受到闯关成功的回馈,甚至是完美过关的巨大成就感。还有,很多关卡需要尝试多遍才能打过去是必须的,包括我都经常折戟。我曾经给人演示第5关怎么打,结果我被灭了。
有的玩家打了几天通关、有的玩家陆续玩了几个月才通关、也有玩家几个小时就全通的。还有的玩家为了追求每个关卡都完美过关,经常拿出来玩玩的。
有人问我为什么只做16关?因为每一关都要测试500遍以上,就为了微调数值,做到关卡经得起推敲。可能为了数值是0.5或是0.3的,就要一下午反复的测试某一关或者某一个数据几十次。
我实在没有精力在第一版做很多的关卡。因为做每一关都挺费劲儿。做完16关之后,都有点江郎才尽的感觉。
大艾格拉斯的策划总监张总曾经给我推荐过小猴塔防,说这样的塔防单机才是方向。数值平衡和严谨并不重要,单机游戏的要的是爽快感。而《坦克对大炮》的数值卡的太严,所以很难有这样痛快的感觉。张总的话虽然我不是总是完全同意,但是他说的话我总是会琢磨很多遍。因为张总每次都能发现很多好的游戏,并发掘其中的创意和本质。换句话说,如果有一个人能十几年如一日的专注寻找游戏的奥秘,每天玩好几种游戏,在跃层别墅摆一个街机,我也会尊重他说的见解。
我后来也对小猴塔防的模式想了很久,一个能在很多国家都排在Rank榜单Top 200的独立游戏,并且出到了第5代,这就值得思考。所以虽然当时我坚持说要走数值平衡路线,我还是在第二版更新中做了很多改动。有很多就是为了强化游戏的爽快感和打击感。
为了兼顾爽快感,《坦克对大炮》后面的版本,可能还会推出一个疯狂对攻模式。主要打得以酣畅淋漓为主,弱化数值的严谨性。这个版本早就有了构思,在程序结构上也做了铺垫,现在就只当剧透吧。
我对于游戏这种平衡的执拗来自哪里呢?我后来也反思了很久。我后来想到了我曾经打过几万局的街霸对局。这是一个严谨平衡的游戏,也是对于打击感的诠释。如果一个人玩了十几年街霸,而且还在玩儿,可能就会有这种执拗。
重点
好吧,开始说重点。这款游戏的上线情况不是很理想。App Store中国榜单排名,最好到过策略游戏68名,这还是限免的状态。平时收费下载的话,名次要更靠后。在美国、加拿大、欧洲、日本有一点付费下载收入。
目前和以后
一直在琢磨触屏手机上的动作游戏,主要是横版动作格斗类。俯视角的动作类游戏也有考虑。在触屏时代,这里面可以研究的东西很多。不是简单移植那么简单。
特别鸣谢
曾经两度排行App Store榜首的B总在开发过程中给了我很多支持。
大企鹅软件架构师蛙总在开发过程中也有一些精神上的支持。
大艾格拉斯策划总监张总就不再提了。
2012.12.28
《坦克对大炮》 App Store 链接:
https://itunes.apple.com/cn/app/tank-vs-cannon/id558724834?mt=8