本来想当个标题党,想想还是算了
战斗数值是几乎是游戏必不可少的部分,但是战斗数值涉及的维度太多,没有清晰的思路和方法论,很容易迷失在汪洋之中。
学过物理的小伙伴都知道,物理的研究思路是,先研究抽象模型,然后再推广到一般情况。本系列的思路也是如此,那么,我们就需要抽象出战斗模型的最简情况,这里我们取三个因素:血量、命中一次伤害、攻速。
研究前先把概念讲清楚:血量代表打击目标的生命值,生命值归零记为失败;命中一次伤害代表确实命中造成单次伤害值;攻速代表发出攻击速度的快慢。
为什么选择这三个因素呢,有游戏经验的小伙伴就会发现,无论是攻击、防御、穿透、闪避、命中、各种属性克制加成、debuff减益伤害等等等等,最终落实到战斗中,就是命中那一下的伤害,所有花里胡哨的属性,都是为了不同特性的角色而存在的(也可以用来区分不同玩家)。
这里为了方便起见,将血量、命中一次伤害、攻速称为一级数值。
那这个最简型就相当简单了,在任意两个数值相同的情况下,第三个数值高,就获胜。
接下来进一步拓展,将命中一次伤害给展开,比如攻击、防御等等,这里选用几个代表性的数值:攻击、攻击效能、减伤百分比、减伤数值、暴击率、暴击倍率讨论。
这里要先解释三点:
为什么会有攻击效能?一般游戏中攻击效能都默认为1,即攻击力等效转化为伤害,但是我最近玩的游戏中就有不这么做的,所以我就拉上来了,这个数值不具有代表性,就是私货
为什么用减伤而不用防御?这是因为防御最终落实到伤害计算的时候,会用减伤百分比(削减伤害)、减伤数值(抵消伤害)的一种,或者混用来计算,防御值本身只是一个代表减伤的映射值,事实上,你可以为了不被反推数据而使用一些技巧,让防御值的效能难以考察。
如何得出命中一次伤害?
下面就要正式展开来讲了,为了方便起见,将攻击、攻击效能、减伤百分比、减伤数值、暴击率、暴击倍率称为二级数值。
研究多个变量的情况,一般采用的是控制变量法,我们需要将所有的二级数据等效成某个数值,这里我选用血量作为自变量,其他数据不变,首先研究攻击的变化量。
如下图所示,图中三条曲线分别表示以6000血量1500伤害,6000血量1200攻击力,6000血量900攻击力为基准,血量升高时攻击力的变化
很明显,此时血量越高,攻击力也会随之上升,如果击败所需的次数减少,比如6000/1500对比6000/1200,不仅直线整体上移,而且直线的斜率更大了,这给我们的启示是:击败次数,即血量与一次伤害的比值,与攻击力的变化率是正相关的,于是我们可以通过调整击败次数,控制攻击力的整体走向。比如我们设置一、二、三共三个分段的玩家,击败次数分别是3、4、5次,而关卡难度是按照击败次数为5来设计的,由于正相关,那么一段玩家进度大概是三段的5/3。
而攻击效能则是用来调控攻击力数值的,你希望落在什么区间,那就调整这个值达到你想要的效果。
下篇会讲暴击类属性的影响。