【深入理解魂系列】为什么计算伤害时要考虑防御力?

伤害是很多游戏中绕不过去的一环,毕竟只有对敌人造成伤害,才能最终击杀敌人,赢得胜利。那伤害是如何计算的呢?伤害和攻击力是一回事吗?一般来讲,攻击力是指玩家所具有的一个属性或者一次攻击所具有的属性,而伤害则是这次攻击实际所能造成的血量削减,这两者之间,还差了一个防御力

没错,防御力,这就是关键。假设我们的攻击力是100,敌人的防御力是20,伤害公式是普通的减法,那么伤害就是100-20=80。正是防御力让攻击力和伤害有所区别,这就是本文的核心:防御力到底是用来干什么的,为什么需要有防御力?

防御力以及类似的概念广泛存在于不同的游戏中,但是往往有不同的称呼:防御力,减伤率,抗性……为了统一,以及为了避免与某个具体游戏中的相关概念混淆,接下来我会用一个很别扭的词来表达广义的防御力概念,"抵抗能力"。这只是随便给的一个词而已,别扭是因为不别扭的词都被各种游戏用过了,不用太纠结。

接下来,就让我们一同探索抵抗能力的本质吧。


穿上你的护甲

抵抗能力的出现是合乎逻辑的

在很多ARPG游戏中,主角是可以拥有护甲的,效果是让主角更耐揍。那么,"更耐揍"这一点应该如何体现出来呢?也许可以是增加血量上限,但是由此一来,恢复生命值的药剂应该如何处理,是否应该增加恢复量?当主角卸下护甲之后,生命值又应该如何处理呢?

这些问题属实不好处理,所以我们干脆把攻击力和伤害分开,在两者中间插入一个抵抗能力,来体现护甲的作用。

这样看来,抵抗能力的出现是合情合理的,这是体现护甲作用的符合直觉的方式。

但是这不一定是抵抗能力在现代游戏中的意义

这是抵抗能力的起源,但不一定是它现在的意义。

如今的游戏中,伤害公式多种多样,如果只是为了体现护甲的作用,真的有必要搞出这么多不同的东西吗?可见,抵抗能力在现代的游戏中,还有更多的作用。

别着急,我们接着往下说。


抵抗能力的本质

本质是约束攻击力成长的收益

抵抗能力的本质,就是在约束攻击力成长的收益。

攻击力本身的提升十分复杂,可以是人物属性、装备、buff等各种来源,难以进行平衡。但是,玩家提升攻击力的最终目标是造成伤害。那么制作组就可以走一个捷径,不用费尽心力调整攻击力的提升,而是直接利用插在攻击力和伤害之间的这个抵抗能力,来约束攻击力成长的收益。

而不同的伤害公式,其实就体现出不同游戏对于攻击力成长收益的不同约束目标。

不同游戏有不同的选择

接下来,我们就看一下不同游戏中的一些典型伤害公式,体会它们是如何与游戏的定位相符合的。

盐和避难所 (示意图,仅表示趋势)

最简单的例子,盐和避难所,完全的线性。具体而言,敌人具有减伤率,直接用攻击力乘(1-减伤率)就可以得到伤害。为什么盐要使用纯线性的伤害公式呢?因为制作组只有两个人,费力去调整伤害公式的平衡,找到一个合适的约束,实在太麻烦,那不如干脆不设约束。

明日方舟 (示意图,仅表示趋势)

明日方舟里面有两种公式,一个和盐一样是纯线性,另一个则近似于直接做减法。可以看到,减法公式使得攻击力提升的收益在一开始非常低,而超过敌人的防御力之后,又变成完全的线性,且没有任何削减,提高多少攻击力,就可以提高多少伤害。可以说,减法公式和乘法公式是两个极端,前者是对比最强烈的"前慢后快"式收益,后者则是完全的线性。我想这种设计是因为舟是一个手游,不应该做过于复杂的公式,但是又希望体现出物理和法术区别,产生一定的策略性,所以选择了最极端的两种公式。

黑暗之魂3 (示意图,仅表示趋势)

魂3里面的公式则是对减法公式的优化。同样的前慢后快,但是变动更加平滑,划分出更多区间。这种上不设限的成长模式说明,魂系列终究是一个ARPG,玩家遇到困难的时候有各种手段去克服,除了练技术之外,使劲堆攻击力也是被制作组鼓励或者至少允许的做法。

仁王2 (示意图,仅表示趋势)

而仁王就不一样了,两头都比较慢,只有中间增长快。这是因为仁王有动作游戏的心,不希望玩家这么轻易地秒杀boss,所以给攻击力的成长增加了一个天花板。

从上面的例子中,我们可以看出,不同的伤害公式,的确可以将攻击力成长的收益约束为不同的模式,以适应游戏本身的需求。

小结

现在我们知道,抵抗能力的本质并不是简单地让攻击力受到削减,而是将攻击力成长的收益约束为制作组希望的模式

那么,作为玩家,我们在接触一款新游戏时,对其伤害公式的理解也应该循序渐进,从最核心的定位开始。一上来,我们不需要去关注细节,我们只要看看伤害公式的曲线形态,就可以了解到制作组希望约束出的成长模式。等到我们需要具体进行计算来帮助决策的时候,我们才要去看具体的公式。


魂3的细节

这篇文章是深入理解魂系列,所以我们回到魂3,看看更多细节。上一部分中举的魂3的例子,其实省略了很多东西,并不是魂3伤害公式的全貌。

多种攻击力属性

作为一款ARPG游戏,魂3自然也设置了不同的攻击力属性,物理中分成标准、突刺、斩击、打击,非物理中分成火、暗、雷、法。

自然,敌人应该存在属性弱点与强项

设置了这么多不同的攻击力属性,总不能光听个响看个特效吧?

很显然,我们会希望敌人具有属性弱点与强项。比如一个重甲骑士,就应该对斩击有更强的抵抗能力,但是打击就是他的弱点所在。

那么,这种弱点与强项,应该如何体现呢?

用减伤率来体现

上面展示的前慢后快的增长,在魂3中是用"防御力"来体现的,并且不同增长区间的划分依赖于玩家攻击力与敌人防御力的比值。那么,防御力可以用来实现弱点与强项吗?理论上可以,但是实际不太合适,因为这种收益递增的模式再加上以比值作为区间划分依据,不容易把握平衡,一不小心就可能出现大差错。所以FS不敢用防御力来区分属性弱点与强项,他们只能把一个敌人对不同属性的防御力设置得很接近,只有一点点差别。

那应该如何体现弱点与强项呢?不如换用一个更简单、更容易控制平衡的收益模式,也就是盐那种完全线性的模式。所以,魂3中与抵抗能力有关的属性,除防御力之外,还有一项减伤率。减伤率的作用就是用简单粗暴的方式区分出敌人的属性弱点与强项。

例如,如果我们把敌人对两个属性的防御力设置成100和200,那最后实际打出来的伤害可能乱七八糟的,很难控制。但是如果把减伤率分布设置成0.2和0.6,那就可以很简单地前者的有效性是后者的两倍。这样一来,做数据平衡时的难度就低多了。

所以,我们在魂3中真正看到的伤害公式,其实一共经历了两次削减。第一次削减用防御力,目的是约束攻击力成长收益,让它呈现出收益递增的模式。第二次削减用减伤率,目的是用一个简单的纯线性收益模式来区分敌人的属性弱点与强项

之前我讲魂3伤害公式的时候,基本就是按照公式本身一项一项地介绍,观众也看得一头雾水,但是现在,我们知道魂3设置两次削减的目的是什么,自然也就可以理解为什么防御力和减伤率会存在这种计算方式的差异。


抵抗能力的意义,就在于让制作组能够将攻击力成长的收益约束为自己希望的模式。我们理解伤害公式的时候,也应该首先关注这一目的,而不是具体的细节。

这篇文章的逻辑感觉比较突兀,直接把我的观点摆出来,缺少逐渐引出的过程。之后转化为视频的时候,可能还需要进行更多设计。

来源:知乎 www.zhihu.com

作者:Darkbblue

【知乎日报】千万用户的选择,做朋友圈里的新鲜事分享大牛。
点击下载