分类
琐事 塔防 游戏设计

塔防平衡入门

大家好我是AT君,我又来写博文了,如此勤劳我都把我自己感动了!

首先关于“平衡”的概念,本人是十分认同旗舰老爷的观点的,本文所有关于平衡的探讨可以说都建立在这之上,由于旗舰老爷的blog常年被墙,感兴趣的童鞋可以自行搜索《游戏数值设计:平衡性问题》,来看各个地方转载的该博文,如有嘴炮欢迎留言。^o^

著名的《气球塔防5》

在这篇文章开始的时候,要探讨一个数值设计的很基础的话题,或者说是引入一个概念。在《游戏设计基础》一书中,将游戏中的不同属性分为正交的与非正交的,这个称谓听起来挺唬人的,不过说白了很简单,指的就是某两个不同的属性是否在同一次运算中产生同样的效果。比如假如一款RPG中,力量加攻击力和护甲,体力加生命值与护甲,那么由于力量和体力都加护甲,他们就是非正交的关系。而如果力量加物理攻击力,智力加法术攻击力,它俩毫无关系,那么它俩就是正交的。

绝大多数RPG中都会有分别以力量、敏捷、智力为主属性的英雄设计思路,由于这三个属性一般是正交的,因此在设计关卡与敌人时就要为同时为不同play style的玩家提供符合他们期望的通关方法,这与塔防的设计思路是非常接近的,可以借鉴。

下面引入本文最重要的一个公式:

塔的战斗效率 = 单次伤害 × 攻击规模 × 攻击频率 × 攻击覆盖
  • 单次伤害指的是每次攻击对单个敌人造成的伤害;
  • 攻击规模指塔每次攻击伤害到的敌人个数;
  • 攻击频率指两次攻击之间的间隔;
  • 攻击覆盖指怪物从出现到撞到基地的总时间内,有多少时间处于被塔攻击中。

这四项能力乘到一起,就是塔的战斗效率了,或者说,这四项能力实际上是评价一个塔的能力的四个最终维度,塔的所有属性最终都会转化到这四个能力中的某一种或多种上来。下面开始分别就每个维度进行分析。

单次伤害(Attack Damage)

注意,本文的单次伤害指的是每次攻击实际最终对单体怪物造成的伤害,而不是塔的面板伤害,这可能和一般的单次伤害定义有所不同。单次伤害受很多方面属性的影响:

  • 塔的基础伤害
  • 塔的额外伤害加成(如暴击率、暴击伤害系数、固定额外伤害加成等等)
  • 怪的伤害减免(如抗性、护甲等等)
  • 其他手段(如秒杀、按百分比造成伤害等)

单次伤害是我们最容易注意到,加成方法也最多的手段,加成手段主要分为两部分,一部分是对塔造成伤害的能力进行修正,一方面则是对怪抵抗伤害的能力进行修正。我们可以把数值分为依赖塔与依赖怪两类,前者效率由塔的数值决定,后者效率由怪的数值决定,也有一些基于D&D风格的计算方法会同时依赖双方的相对关系。

依赖塔的有命中率、暴击率、暴击伤害系数等等,依赖怪的有护甲穿透、抗性等等,很多东西都可以具体设计。

单次伤害的收益并不是很高,尤其是当怪物血值较低的时候,过高的伤害容易造成伤害溢出,但也正因为容易伤害溢出,伤害高的怪抢人头的能力很强,因此可以结合击杀以及伤害溢出量来设计一些特效,单次伤害较高的塔更适合使用这类特效。

攻击规模(Attack Mass)

攻击规模指的是一次攻击会影响多少个怪物。由于单次伤害是基于每个怪分别计算的,并且可能有过量伤害,因此精确地来讲用单次伤害直接乘以攻击规模是不正确的(比如对面来了一个火抗怪一个冰抗怪,我的塔是火焰伤害,一发下去两个怪都打到了,但对火抗怪造成的伤害要比冰抗怪低得多),乘法只能从逻辑上表明单次伤害与攻击规模的关系。

攻击规模可以通过很多方式来提高,如溅射半径、穿透、弹射、分裂、多重飞弹等等。攻击规模在大多数情况下都是一种依赖怪的维度,很有可能过分强大,也有可能溢出。以《魔兽世界》法师的暴风雪为例,只要玩家喜欢,可以把几百个怪拉到一起一波A掉,攻击规模就变得过于强大了。暴雪的做法是限制每跳伤害总上限或限制最大影响个数,前者由于平摊伤害当怪超多的时候每个怪摊到头上的伤害都微乎其微,一个怪也打不死;后者虽然在总伤害效率上与前者没区别,但还是能够打死几个怪的,因此在伤害上后者优于前者。而由于暴风雪有减速效果,前者会影响到所有怪物,而后者只会影响几种怪物,因此在特效上前者是优于后者的。这是这两种做法的主要区别。

过于强大的另一个极端则是攻击规模溢出——没人会用暴风雪去打单个的怪物吧?因此攻击规模受怪物密度的影响很大。很多塔防游戏偷懒地把怪物密度设计成了几乎一样,从来不变的,这样游戏倒是容易平衡了,但也变得无聊了。还有一些游戏由于怪物数量超多,玩家几乎一直是在割草,因而几乎所有攻击都有着巨大的攻击规模,这样一来平衡起来也是方便得多了,玩起来还很爽。笔者认为《星际争霸2》是一个滥用攻击规模的反面典型,和《星际争霸1》相比,过于强调攻击规模的作用,导致大规模作战的时候没有强大AOE单位的一方几乎总会输掉。

在一些射击游戏或动作游戏中,单次伤害与攻击规模也经常被运用到。比如某些飞机的火力集中但难以他顾,有些职业用长枪一扫一大片但单体伤害不如匕首等等。

攻击频率(Attack Rate)

单次伤害与攻击规模影响的都是塔在瞬间的表现,而攻击频率则引入了一个新的维度——时间。我们把这三个值一起计算的话,就能够得出DPS,如果你用过《魔兽世界》的伤害统计插件Recount的话,会对这个非常熟悉。

攻击频率是一个非常强大的属性,第一个原因是,其不像单次伤害一样会溢出,也不像攻击规模一样由于依赖怪物而忽强忽弱收益不稳定。而且,在很多游戏中,更多的攻击次数虽然不一定意味着更多的伤害,但总意味着更多地特效触发,因此攻击频率在伤害与特效两方面收益都十分强大。

第二个原因是,由于攻击频率是一种时间上的维度,能够对其进行影响的方式远远没有单次伤害和攻击规模那样多样化,弄来弄去也无非是提高攻击速度或者是降低攻击速度。像《魔兽世界》萨满的风怒攻击一类的效果,最终还是变成了多次触发的单次伤害。因而设计师在进行设计的时候,往往设计了过多提高攻击速度的途径,而导致平衡出问题。实际上我们对攻击速度的投放应该是相当吝啬的,因为它实在是太牛逼了。

如果我们想降低攻击频率的收益,有几种方式,下面分别就伤害与特效进行探讨。在《星际争霸》中,由于单位的护甲采用减法计算,因而攻速较快的单位由于往往攻击力很低而难以穿透护甲,这是一个值得借鉴的思路。在《火炬之光》与《流亡黯道》中,击晕这个特效与攻击速度无关,而是与单次伤害有关,单次伤害越高越容易击晕敌人;而《流亡黯道》的元素特效的触发几率与暴击率相关,总体效果/持续时间长短与伤害相关,因此也解决了攻速触发特效的问题。

在《地下城与勇士》中,攻击速度高的武器往往伴随着巨大的命中率惩罚。在《魔兽世界》中如果玩家双持武器同样也会受到巨大的命中率惩罚,这两个游戏都用了一个十分值得我们留意的方式同时解决了伤害与特效的问题,因为攻击未命中的话不但没有伤害也不会触发特效。但这也导致了这两个游戏的玩家只要选择了这种play style都会优先把命中率堆到某个数值,这样就能够享受巨大的攻击频率增益了。

需要注意的是,过高的攻速是有可能溢出的,这往往出现在两种场合:1,飞弹飞的太慢;2,攻击距离过长。当攻击间隔小于飞弹从发射到轰击所需要的时长,就会有一发甚至多发飞弹轰到已经死亡的怪物尸体上从而导致攻击机会被浪费掉了。你可以通过改善炮塔的AI或者调整射程、攻速、弹速之间的关系来避免攻击被浪费,或者反其道而行之,利用这个特性来降低攻速的收益。这个现象在《星际争霸2》中也有体现,虽然《星际争霸2》的弹速与射程一般与攻速成正比,但当两只远程部队大军进行互射时,单次伤害溢出越少,攻击速度溢出也越少的一方往往更占优势。

攻击覆盖(Attack Coverage)

攻击覆盖是塔防特有的一个维度。影响攻击覆盖的主要有两个属性:有效覆盖路径长度与怪物移动速度。玩家可以发挥自己的头脑,在射程固定的情况下,通过调整塔的位置来尽量提高有效覆盖路径长度,从而增加攻击覆盖。注意,攻击覆盖是一个时间上的度量,而不是空间上的度量,它提供了一段时间使得塔能够对怪物展开攻击,怪物越快这段时间越短,塔的攻速越快展开的攻击次数越高。

攻击覆盖的收益也是很难估算的。比如一个塔覆盖了8个格子,怪物的移动速度是每秒3个格子,塔的攻击速度是每秒1次,我们计算得知时间窗口是2+2/3秒,但由于2/3秒的部分塔虽然在瞄准,但瞄到一半怪就跑出去了,因此只攻击了这个怪物两次。假如我们对塔升级使其覆盖格子为9,那么就能对这个怪攻击3次了,战斗效率瞬间提高50%,而射程只提高了1/8!

这就是为什么为游戏提供攻击范围的升级是十分危险的,因为其平衡性较难控制。在固定路径的情况下,当攻击范围提升到某个程度时,有效覆盖路径长度会大大提高(比如原本只能覆盖一段路径,但由于升高了射程能覆盖两段路径了),从而导致平衡性崩掉。因此,笔者不建议在固定路径的塔防游戏中提供升级攻击范围的选项,除非设计者在设计关卡的时候清楚地计算过各种最大有效覆盖路径长度会不会出现问题,但最好不要这么做。相比之下,固定塔位的塔防为玩家提供提升射程的升级选项更安全,最大有效覆盖路径长度是十分好计算的。

在很多塔防中拥有进行溅射攻击的塔,会伤害攻击范围内的所有怪物,对这种塔来说升级射程不但会增加有效覆盖路径长度,还会增加攻击规模,因此一般有这种塔的塔防猛升这种塔容易变成统治性策略。

当我们不敢随意给玩家提供射程升级的时候,提高攻击覆盖的另一个手段就集中在降低怪物的移动速度上了。减速、击晕、恐惧、传送,种种影响怪物移动方式的手段实际上都是在提高攻击覆盖。然而我们要注意的是,当我们降低了怪物的移动效率时,只要这个怪物处于时间窗口内的塔都对其有攻击效率的提高,而且移动速度的降低对所有的怪物都很有效,因此要注意移动速度降低是否会对玩家的战斗效率产生过强的效果。

选择塔的摆放位置是塔防游戏策略可玩性的重要组成部分,因此攻击覆盖这个能力需要认真考虑。很多国内塔防游戏都是披着塔防皮的数值卡牌RPG游戏,在攻击伤害、攻击规模和攻击频率上都做到了数值平衡,但在这方面做得很差,导致游戏策略性较差,实际上这是对塔防玩家的一种背叛,对于小白玩家来说可能会有较高吸引力,但对塔防群体来说吸引力就很差了。

上面这些是塔防平衡的基础,都是入门级的内容。下面开始进行一些特效的探讨,来分析各种游戏中常见特效会对以上的四个维度造成什么样的影响。

扑杀:秒杀剩余生命值小于等于10%的敌人。

这个东西的效率是非常难以估计的,笔者认为基本可以按如下方式计算:

  • 当扑杀不生效时(即还没发动就被一下打死了,或最后一下不发动扑杀也能打死),完全没有影响。
  • 当扑杀生效时(即最后一下攻击本不足以杀死敌人时但却杀死了敌人),原本需要进行N次攻击,现在只需要进行0.9N次攻击就打死了敌人。由于我们要发动扑杀,单次伤害就要低于10%生命值,因此N是大于1/10%的。

这样一来,影响扑杀的主要有两个方面:扑杀的发动几率,以及发动时节省的攻击次数。发动时节省的攻击次数基本上等于扑杀的发动阈值百分比,因此扑杀的发动几率就成了关键。

由于攻击力必须要低于怪物的最大生命值的10%,因此扑杀对生命值越多的怪物越容易发动,相当于该怪物的最大生命值降低了10%。

护甲:有几点护甲,受到的伤害就降低几点。如果护甲为负值,就反而增加受到的伤害。

这是按减法算的护甲,当护甲为正数时,单次伤害越高,被减免的部分越少;当护甲为负数时,攻击频率越高,附加的额外伤害越多;当护甲为0时没有任何影响。我们可以利用这种减法的特性让不同的塔对不同的怪有着不同的战斗效率。如果我们用的是乘法的话,就做不到这一点了。

DOT(Damage over time):每秒受到X点伤害,持续Y秒。

这种持续性伤害的关键是其伤害计算方式与叠加方式。在《流亡黯道》中,中了流血效果的生物移动时受到的伤害会增加,采用这种设计方式会使得流血更擅长对付那些跑得快的怪物。而在《火炬之光2》中,燃烧是忽视护甲按照百分比掉血的,更擅长对付那些皮糙肉厚的怪物。《火炬之光2》还拥有按照击杀后的溢出伤害来决定效果强度的机制,这也十分适用于塔防游戏。在《英雄联盟》和《地下城与勇士》中流血本身是个很简单的效果,但会按照敌人身上拥有的流血效果的个数来强化自身的能力,这也是一种强化play style的好方式。

分类
塔防 游戏设计

AT君的弹道学手册

大家好,欢迎来到ManiaHero,我是博主AT君,今天打算把酝酿已久的一份给力干货(自认为)写成博文,整理一下游戏内各种常见的飞弹。如果你对射击游戏或者RTS感兴趣,快来和我一起学习,分分钟变为弹道学学霸吧!(这句略拗口)

【1】直线单体必中飞弹

代表单位:《帝国时代1》的弓箭手,《海岛奇兵》的步兵

直线飞行,只会击中被攻击的单位,命中率100%。看起来飞弹会穿过一些单位,但其实只会击中被锁定为攻击目标的单位。如果飞弹在飞行的过程中目标单位已经被摧毁,则飞弹会继续飞行一段距离之后消失。

虽然理论上来说弓箭手的弹道应该是抛物线,但《帝国时代1》中的弓箭手是直线射击的,我们就不要对老游戏太苛求啦!

【2】直线单体真实碰撞飞弹

代表单位:《合金弹头》的小手枪、H枪,绝大多数射击游戏的飞弹,《英雄联盟》莫甘娜、光辉女郎、蒙多医生的Q技能

这种是射击游戏中最常见的飞弹,飞弹发射后沿着直线一直运动,直到与某个目标碰撞发生爆炸,或者直接飞出屏幕超出最大飞行距离。有一些塔防中也采取了这种机制作为基本的飞弹机制,比如《炫光塔防(Hex Defense)》。对于这种飞弹来说,飞行速度很重要,因为飞得越慢越不容易命中。玩家需要预判目标的移动进行射击。

【3】直线贯通真实碰撞飞弹

代表单位:《暗黑破坏神3》法爷的秘法光球,《合金弹头》中的F枪

这种飞弹与②十分类似,会沿着直线不断的飞行,但在击中一个目标后不会销毁,而是继续飞行,从而伤害更多的后排敌方单位。不会重复对同一个敌方单位造成伤害。

在很多游戏中,这种飞弹表现为火焰喷射器一类的武器,飞弹飞行的速度可能较慢。

=============================================================

下面开始是瞬间伤害类。

【4】直线瞬间单体必中飞弹

代表单位:《DOTA》电魂的普通攻击,《魔兽争霸3》的闪电链与叉状闪电,《星际争霸2》中的枪兵、死神、白球、雷神、坦克、虚空辉光舰、哨兵等

与①类似,只会命中被锁定的攻击目标,但是飞弹的飞行速度无限大,或者说是在发射的一刻就命中了对手。由于瞬间到达的特性,因此在大多数游戏中表现为闪电之类的飞弹。

【5】直线瞬间单体真实碰撞飞弹

代表单位:《暗黑破坏神3》法爷的冰霜射线,《DOTA2》火凤凰的E,《反恐精英》的几乎所有枪械

向前方发射一条射线,命中第一个击中的单位。射线的飞行速度无限,一般会有个最大距离。一般游戏中会表现为射线或狙击枪。

【6】直线瞬间贯通飞弹

代表单位:《暗黑破坏神3》法爷的裂光波,《反恐精英》的狙击枪,很多飞行射击游戏BOSS的激光束如打击者1945 Fiat G-56机的蓄力攻击

也是面向某个方向瞬间发射一条速度无限的射线,贯穿第一个敌人,命中后面的更多敌人。和⑤一样,多表现为激光束或狙击枪。

到这里可以总结一下了,所有的直线弹道飞弹基本上属于这六大类型,可以看出来,【3】【4】【5】其实就是【1】【2】【3】的速度无限大版本,但实际在程序的实现上方式相差可能是相当大的!于是我来一个分界线吧。

=============================================================

好,下面开始是追踪飞弹。

【7】追踪单体必中飞弹

代表单位:《星际争霸》的绝大多数远程单位,如龙骑士;《命令与征服》的导弹兵;《DOTA2》与《英雄联盟》的绝大多数远程普通攻击

飞弹会一直追踪锁定的特定单位,直到击中,命中率100%。如果飞弹在飞行的过程中目标单位已经被摧毁,有些游戏中的飞弹会立刻爆炸,有些游戏中的飞弹会重新定向一个新的目标,有些游戏中的飞弹会沿着直线继续飞行下去直到爆炸。如果目标的移动速度大于飞弹的移动速度,永远无法命中,因此这种飞弹一般有最大存活时间,飞行一段时间后如果还没有命中就销毁。很多射击游戏中也会有这种飞弹作为辅助的攻击手段。

绝大多数塔防中的飞弹均属于此类,这是因为《魔兽争霸3》和《星际争霸2》中这种飞弹被作为默认飞弹用的非常多,因此受到这个影响MOBA游戏和塔防游戏中这种飞弹也用的超多。

【8】追踪单体真实碰撞飞弹

代表单位:《虚幻竞技场3》的Rocket Launcher

与③类似会不断追踪某个单位,但会与任何敌人发生真实碰撞而引爆。在FPS游戏中较为常见,在其他视角的射击游戏或上帝视角的RTS游戏中不怎么常见。由于有制导功能,一般不是表现成导弹就是表现成火箭。

=============================================================

下面开始是抛物线类。抛物线的起点和终点不一定在同一个水平面上,比如可以从飞机上投弹,也可以从低处向高处发射。

【9】抛物线单体必中飞弹

代表单位:《国王守卫军》的箭塔

实际的逻辑和①类似,是一种只会对锁定的目标进行攻击的飞弹,表现起来是抛物线,但实际上一定会命中。实际上二者的逻辑没有区别,但可能某些飞弹不适合表现成能够追踪敌人的,因此做成了【1】的样子。

如果未能命中则落在地上,一般的表现形式是弓箭。

【10】抛物线单体真实碰撞飞弹

代表单位:《帝国时代2》的弓箭手,《合金弹头》的手雷,《愤怒的小鸟》,《要塞》的弓箭手,《骑马与砍杀》的弓箭,FPS游戏中的榴弹,《弹弹堂》类型的射击游戏

一个按照抛物线运动的飞弹,并且会和敌方单位进行真实碰撞检测。在纵版2D射击游戏以及FPS游戏中很常见,在RTS中也有一些如《帝国时代2》或者《要塞》的弓箭手,但由于在RTS中地面单位都是在一个平面上而不入纵版游戏中明显。

【11】抛物线对地攻击飞弹

代表单位:《魔兽争霸3》中的投石车,《百战天虫》的手雷,《流亡黯道》的熔岩打击

同样是抛物线,但不会与敌方单位碰撞,而是落到地面后才会爆炸。

很多游戏中的抛物线飞弹是在落地后可以弹跳的,如《合金弹头》的C枪,《英雄联盟》爆破鬼才的Q,《命令与征服》GDI的掷弹兵等等。

=============================================================

下面开始是地面飞弹类。地面飞弹指的是沿着地面运动的飞弹,大家可以想象一下《拳皇》中八神庵的暗勾手,或者《DOTA》中就是一种沿着地面运动的飞弹。这类飞弹很少,一般是需要特殊机制的支持才会有存在的意义,否则与【1】~【6】飞弹区别不大;比如《拳皇》是格斗游戏,飞弹运动的高低会影响命中,而俯视视角的游戏中这种飞弹的机制一般与地形紧密结合,如《星际争霸》中的金甲虫,《DOTA2》中召唤师的混沌陨石(不断向前滚动的大陨石)。《流亡黯道》中的地面飞弹则有着和人物同样的寻路逻辑,因此在《流亡黯道》中【1】~【8】类飞弹能够穿越一些小障碍物,但地面飞弹不能。地面飞弹一般还不能跨越地形高低差,如悬崖或者瀑布等。

【1】~【8】类基本都可以转换成对应的地面飞弹(即下面的【12】~【19】),因此这段我会简单写一写。

【12】直线单体必中地面飞弹

代表单位:《流亡黯道》中的闪电打击

与【1】类似,不过飞弹是沿着地面运动的,只会击中被锁定的攻击目标。

【13】直线单体真实碰撞地面飞弹

代表单位:《拳皇》八神的暗勾手,《合金弹头》的I枪

沿着地面向前直线移动的飞弹,命中第一个敌人后销毁。

【14】直线贯通真实碰撞地面飞弹

代表单位:《星际争霸2》异虫的潜伏者

沿着地面向前移动的飞弹,伤害路径上的所有敌人。

【15】直线瞬间单体必中地面飞弹

代表单位:《星际争霸2》异虫的脊针爬虫

瞬间命中锁定的目标的地面飞弹。可以表现为从地下突然钻出的攻击方式。

【16】直线瞬间单体真实碰撞地面飞弹

代表单位:???

与【5】一样,只不过换成了地面飞弹。目前没有想到哪个游戏有类似的飞弹。

【17】直线瞬间贯通地面飞弹

代表单位:《DOTA2》撼地神牛的Q,《拳皇》大门五郎的地雷震

【18】追踪单体必中地面飞弹

代表单位:《英雄联盟》中熔岩巨兽的Q,《魔兽争霸3》穴居恶魔的普通攻击

一个在地上滚的飞弹,而且还制导!可以表现为树根、藤蔓一类有生命的飞弹。

【19】追踪单体真实碰撞地面飞弹

代表单位:???

可以表现为不断陷落的地面或蔓延的熔岩,所到之处无所幸免。目前没有想到哪个游戏有类似的飞弹。

=============================================================

【20】直线对地攻击飞弹

代表单位:《海岛奇兵》的重机枪

与【11】类似,飞弹不与单位碰撞,而是轰击指定地点,并且造成单体或范围伤害。与【11】的区别是飞弹以直线的方式运动,而不是抛物线。

实际上飞弹还可以有更复杂的运动规则,如《星际争霸2》中某些英雄单位的火箭弹幕技能,飞弹飞起来非常好看,但由于实际机制和【11】、【21】没有区别,所以不做赘述。

【21】对地瞬间攻击飞弹

代表单位:《战争机器》的曙光之锤,《命令与征服》的粒子炮

从高空召唤一道光柱轰击地面。实际上的逻辑是瞬间对目标点造成的单体或范围伤害,用【1】或者【4】都可以改出来,但由于理论上飞弹是从天而降的,因此不受【1】或者【4】的碰撞条件制约,可以跨越地形。从另一个角度考虑,这又是一种射线,但并不是从单位射出而是从天空中轰击地面的射线。

同理这个也可以改成由地面向天空发射的射线。

【21】型之所以特殊,是因为飞弹并非从发射者发出,而是直接在目标点产生一个效果——有些类似于《英雄联盟》死歌的Q。

=============================================================

以上就是全部的AT君弹道学手册的内容了,受到启发了吗?很多飞弹的效果其实都是可以融合的,比如《暗黑破坏神3》的恶魔猎人集束箭,是一个【20】型的对地攻击飞弹命中后再发射一堆弹跳的【11】型抛物线对地攻击飞弹。总结一下,飞弹大概有以下几方面的属性,仅供参考:

  • 运动起点:从发射者发射,还是从目标点发射(如【20】型飞弹就是从目标点直接发射的)?
  • 运动方式:直线,追踪,抛物线,瞬间,还是其他更奇葩的运动规则?否会受到地形或其他障碍物的阻挡?
  • 运动终点:某个指定的地点,还是某个特定的单位?
  • 命中敌人:命中所有发生碰撞的单位,还是仅命中锁定为攻击目标单位,还是不会碰撞任何单位(比如很多塔防中以自身为中心进行范围伤害的塔)?
  • 销毁规则:命中敌人,到达地点,生存时间,飞行速度,飞行距离,飞出屏幕?(可以是复选的哦!)
分类
塔防 游戏设计

塔防数值设计的几个维度

祝大家国庆长假快乐!

所谓不同维度的数值,就是互相无法直接用数学公式互相转换的属性,比如攻击力和射程,他们两个没有直接的数学关系(或者用我从某本书上看来的术语,这两个属性是“正交的”);而暴击率、暴击倍数则是可以在一定程度上转换成攻击力的,类似的,护甲穿透、命中率也都是可以转换为攻击力的,而移动速度、生命值就没法通过数学运算简单地转化成攻击力,它们之间的关系也是正交的。

显然,不论是什么类型的游戏,正交的数值类型越多,游戏就越有趣,但也就更难平衡——不过对于游戏设计师来说,这并不是偷懒的理由。就像《三国杀》广为人知的“一滴血等于两张牌”的等式,其实就是在衡量两个正交的数值的平衡关系,遵照着这个关系去设计游戏平衡性,基本不会产生太离谱的情况。

自从数年前玩过了弹幕塔防《Enigmata: Stellar War》之后,我对把射击游戏的一些要素融合到塔防中就十分感兴趣,同时这也能加大塔防数值设计的维度,这往往不只体现在简单的数值设计上,在攻击方式上也有很大的设计空间。实际上,很多游戏都在这么做,比如《炫光塔防》或者是《保卫萝卜》。

塔的运作机制

炮塔的攻击是凭借发射飞弹实现的。

  • 索敌:塔决定攻击哪个目标的逻辑。实际上索敌范围和攻击范围可以是不同的,有些游戏的索敌范围更大,有些则相反。如果两个范围相同逻辑会更简单些。有些游戏的防御塔有锁定目标的设计,即一旦某个单位进入了火力范围,在这个单位离开范围或死亡之前炮塔不会改变目标。有些游戏能够设定炮塔优先攻击的目标,比如离自己最近的,离基地最近的,最快的,血最多的等等。索敌有的时候还会受到视野的影响,比如在《Cubemen2》中,隔着墙的情况下是无法发现敌人的,因此所有塔都有一个“视野”的概念。
  • 发射飞弹:最简单的炮塔就是瞄准了敌人就开火,复杂一些的炮塔可能一次发射多发不同发射角度的炮弹,或者同时锁定多个敌人进行攻击,甚至估算炮弹的着弹点进行预判等等。一些射击游戏中,飞弹发射的角度会有不同程度的误差,用来模拟枪械或者炮塔的精准度。
  • 发射点/炮塔:飞弹需要从某个部位飞出来,所以一个炮塔会有至少一个发射点。比如某个游戏为了模拟主角右手端枪,所有的子弹就都从人物中轴线偏右的地方创建出来。还有的游戏有多个发射点,一次可以发射多发飞弹,或者多个发射点轮流开火。对于追踪型飞弹来说发射点在哪里可能无所谓,但对于碰撞型子弹来说发射点一定程度上决定了攻击的命中率。
  • 蓄力:有些单位的攻击有蓄力的概念,指的是通过某种方式可以切换为更加强大的攻击状态,比如《星际争霸2》改版之前的虚空辉光舰,《红色警戒2:尤里复仇》中尤里的盖特机炮(这俩东西为啥这么像?我个人猜测都是出自Dustin Browder之手),《洛克人》的洛克枪,《虚幻竞技场》的动力锤,甚至《英雄联盟》的鬼索的狂暴之刃等等。“过热”的机制实际上也很类似。
  • 朝向:有些炮塔有朝向,有些则没有。有朝向的炮塔要把枪口对准敌人才能进行攻击,这时候如果敌人横向移动速度很快,炮塔的转动速度跟不上的话就没法瞄准敌人进行攻击。《EVE》中类似的机制对玩家的影响很大,口径越大的炮转得越慢,就很难锁定速度飞快的小型船只。

塔的数值

炮塔本身有着很多种属性,从逻辑上来说,有些属性实际上是炮弹的属性(比如攻击力),但我们也可以把这些属性认为是炮塔的属性,除非玩家可以自由为炮塔选择发射不同攻击力的炮弹,否则玩家建造炮塔肯定是看中了炮弹的威力而去建造的。

  • 攻击力:子弹对敌人造成的伤害,最基本的属性。然而根据攻击方式的不同,却有着相当大的的差异。单次伤害越高,抢人头的几率越高,但带价则是浪费的伤害越多。
  • 攻击间隔:发射子弹的间隔,也是最基本的属性。
  • 射程:最基本的属性,实际上大部分游戏的“射程”指的是“最大射程”,不过某些游戏还存在“最小射程”。
  • 最大转角:现实中的炮塔多有这个属性,而很多塔防游戏的塔最大转角都是360度的,因此这个属性有时候会被忽略。最大转角与射程作为扇形的弧度和半径决定了一个炮塔的火力覆盖范围。某些3D的塔防游戏中,火力覆盖范围更为复杂,可能会存在两个维度的最大转角——实际上现实中的炮塔也是这样的,除了左右转动外还有最大最小仰角。
  • 暴击率:发动致命一击的几率。按照我的理解,致命一击最早是DND中Roll出20点来模拟“幸运一击”的,因此很多日本游戏将其解读为幸运一击或者会心一击更符合其本意,而像《魔兽争霸3》或者《暗黑3》中的暴击率设计已经完全失去了这个意义。总的来说我并不喜欢暴击率的设计,因为只要这个属性存在,所有的塔都必然会追求这个属性,除非能够让其不成为一个必然的选择,否则就没有存在的意义,只不过会让数值膨胀罢了——就像《暗黑3》。好的例子是《流亡黯道》,里面存在追求100%命中率而放弃暴击率的流派,也存在很多像《暗黑3》一样依赖于暴击触发特效的流派。依赖某种方式来触发特效能够大大地加强不同维度数值的作用,但对于玩家来说理解稍难一些,不是很适合休闲玩家。
  • 命中率:一次攻击击中的概率。对于追踪型飞弹来说,未击中的时候是如何处理的需要特殊的说明,比如像《星际争霸2》中并不存在与《魔兽争霸3》类似的未命中机制,因此简单地使伤害降低为0的话伤害特效依然存在,而理论上完全闪避了一次伤害是不会受到那次伤害的特效影响的。与暴击率类似,足够丧病的话也可以设计一种只有攻击未命中的时候才会触发的特效,否则玩家是会无脑堆命中率直到100%命中率的——玩过《魔兽世界》的都知道这是个真理!
  • 攻击规模:一次攻击会伤害到多少个敌方单位。注意,这并不是一个游戏中真实存在的变量,而是由攻击方式决定的。显然,每能够多攻击到一个敌方单位,炮塔的效率就增加了一倍,因此这个数值对于炮塔的能力提升相当之大,很多塔防后期都会都会变成狂造AOE塔的无聊游戏就是因为对于这个数值的效力过低的估计了,但这也难怪,因为这个数值并不是真实存在的,发挥也不稳定,因此更难预估。
  • 弹速:子弹飞行的速度,对于以《打击者1945》为代表的射击游戏来说,子弹的飞行速度越高意味着玩家越容易瞄准,命中的几率也就越高。对于传统的追踪型飞弹来说,弹速更高意味着过量攻击更少,如果弹速非常慢的话,在怪物死亡后还会有很多飞弹在路上,这部分伤害就浪费掉了(个人感觉《DOTA2》的绝大多数飞弹都飞的太慢,远程英雄补兵很困难)。其次,对于追踪型飞弹来说,如果弹速没有怪物的移动速度快,想要命中敌人是相当难的。而对于抛物线迫击炮型飞弹来说,弹速越高也是命中率越高,否则怪物可能离开了炮弹落点而无法造成伤害。

飞弹的运作机制

炮塔决定了子弹的发射方式,但子弹离开炮塔之后就不再受炮塔控制了,子弹有着几方面来决定其实现功能的方式:

  • 移动规则:是锁定某个目标向其移动?还是以固定的某种方式(如直线或者抛物线)移动?移动速度是怎样的?是否有加速度?
  • 碰撞规则:子弹会与什么类型的目标碰撞并造成伤害?所有单位?己方单位?敌方单位?其他飞弹?目标地点?
  • 销毁规则:子弹在什么情况下被销毁?碰撞到某种东西后销毁?飞出一定距离?存活一段时间?

这三方面的结合可以创造出变化相当多的飞弹。比如我们要模拟激光的效果,则移动速度是无限大的,刚刚发射就会击中敌人;狙击枪能够穿透一排敌人,说明子弹在与敌人碰撞的过程中没有被销毁,但也不会对同一个目标重复造成伤害;迫击炮对着目标地点攻击,敌人有可能离开了着弹点,说明其移动方式是抛物线的;火焰喷射器则可以看做连续快速发射一些碰撞体积大,移动速度慢,碰到敌人不会销毁而是创建后一段时间销毁的飞弹;散弹枪一次发射大量的子弹,并且角度各有不同等等。如果是纵版的游戏(《愤怒的小鸟》那种视角),可能子弹还会受到重力的影响,但表现出来其实也就是移动规则变为抛物线状的。关于这个类型的飞弹设计可以参照《疯狂坦克》或者《弹弹堂》这种游戏,里面对于飞弹的物理模拟十分有借鉴意义。

  • 生命值:基本属性。
  • 移动速度:基本属性。
  • 护甲:降低受到的伤害。以《星际争霸》中的护甲机制为例,护甲按照减法直接抵消一部分攻击力,因此攻击力越高的单位被护甲抵消掉的部分越少,这样玩家在针对高护甲的怪物的时候,在同等面板DPS的情况下,选择高攻击力低攻速的塔就更划算。我并不赞同只是单纯地将护甲作为一个降低伤害的手段,这和过于简单的暴击一样也只是会导致属性膨胀。护甲的存在一定也要让玩家在不同的维度属性中做出选择,才有其存在的意义。注意,以《星际争霸》为例的话,如果护甲是负的,每次受伤会受到额外伤害,在这种情况下高攻速低攻击力的防御塔的收益是更高的!
  • 闪避率:降低收到的攻击命中的几率。对于追踪型飞弹来说,如果被闪避了后续是如何处理的需要更详细的设计,在《星际争霸2》中有的飞弹会重定向某个范围内的其他目标,如果没有可行目标则自行销毁。
  • 攻击方式:有的游戏中怪物走到基地面前会持续不断地对基地造成伤害,有些则是一次性地造成伤害并且消灭自己,有些则是一次性造成伤害并且随着下一波怪物再次出现,还有一些其它方式。对于波次驱动的塔防来说,我个人比较赞同第二种,第三种可能正反馈太强,第一种则难以预估怪物能对基地造成多少伤害(因为不知道它们会打基地多久)而较难设计,并且由于漏的怪会一直攻击基地导致玩家必然会优先在基地附近部署防御塔而使得游戏策略减少。
  • 是否会还手:有的游戏中的怪物会攻击防御塔,有的只会傻跑。《国王守卫军》开创了第三种模式——小兵捉对互砍。