45

标准RPG中的战斗力-腾讯游戏学院

 5 years ago
source link: http://gad.qq.com/article/detail/270705
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

一.标准战斗力计算

在标准的1v1战斗中,若双方同时倒地,则视为战斗力相等。即:

5b62bcefbe993.png

5b62bcf7dd720.png

也就是说,我们可以用一个单位的生命*单位伤害衡量一个单位的战斗力,即我们可以通过两个单位的战斗力直接推测战斗结果。

在设计不同门派、角色、BOSS的基础数值时,我们可以通过战斗力快速调整平衡性。

 

二.三大战斗公式下的标准战斗力计算

乘法公式

5b62bd058efe2.png

将其带入上面的战斗力公式可以得出,平衡情况下:

5b62bd0d3d3d7.png

整理后可得:

5b62bd14ce8eb.png

即在乘法公式的框架下,我们可以用一个单位的

5b62bd1c27c45.png

衡量,可以看到在乘法公式下,一个单位的标准战斗力可以通过该单位本身的各项属性计算得出。所以在乘法公式的框架下,我们可以非常方便的通过战斗力平衡各个职业或者衡量关卡强度。

 

减法公式

5b62bd2570ebd.png

将其带入上面的战斗力公式可以得出,平衡情况下:

5b62bd2c7014f.png

由此可以看出,在减法公式的框架下,我们无法单独通过某个单位的各项属性衡量其战斗力,单位的战斗力都是相对的。但是这并不意味着战斗力在减法公式中就完全没有用武之地了,我们仍可以通过其他方式大致判断单位之间的战斗力,作为设计的参考。

草人模型法

设定一个无限生命的标准模型,如30攻,10防御的草人,通过判断其他单位死亡时,草人消耗的生命值,即为该单位的战斗力

5b62bd37543fd.png

可以看到,在同一数值框架下(即同一职业时),草人模型法可以比较准确的衡量同职业单位之间的战斗力。计算左边4级和8级职业的相对战斗力,可以发现8级刚好为4级的5倍,在草人模型中也差不多是5倍左右,可以用此值作为参考。

 

除法公式

5b62bd3e52d8e.png

带入到前面的战斗力公式中可以看出:

5b62bd44c39e2.png

整理后可得:

5b62bd4db8463.png

可以看出,基础的除法公式和乘法公式在某种程度上其实是一样的。但是除法公式有很多种变形,它的变形公式有的也并不能通过这种方式计算战斗力,在这里就不做展开了。

 

三.另一种战斗力

上面所说的战斗力均是基于标准公式下的战斗力,主要用于策划进行数值调整,但是在游戏中,往往还有另一个战斗力,也就是我们在很多游戏界面上看到的,针对玩家的战斗力。这种战斗力主要用于玩家直观的衡量角色、装备、关卡等的强度,帮助玩家做出正确的判断。所以,这种面向玩家的战斗力并不要求我们精确的衡量一个单位的战斗能力,而是希望玩家能依此大致做出孰强孰弱的判断;此外,由于一个角色强度由角色本身、装备、天赋等等维度共同决定,在面向玩家时,我们希望当玩家穿戴一个评分比原装备高100分时,他的战斗力也同样会+100,这样玩家理解起来毫无障碍。

基于以上两点,这种战斗力可以是不精确的,但是一定要简单易懂,可以考虑采用加法再仔细思考一下第二点,我们希望可以给装备、天赋等等评分,就意味着即使没有一个角色的全部数据,我们仍然能对某几个属性对角色带来的加成幅度做出一个大致的判断。因此,我们可以尝试用加权多项式计算玩家战斗力。那么问题就变成了:如何计算不同属性的权值?

 

乘法公式

5b62bd54cfaaa.png

我随便定了一个常数100,那么

5b62bd5b1e19d.png

5b62bd61df3f2.png

5b62bd6741274.png

我们把所有单位的标准战斗力都乘上100,他们之间的相对关系其实是不变的,所以可以认为:

5b62bd7ddc04c.png

也就是说,生命+1,战斗力+攻击*(防御+100),攻击+1,战斗力+生命*(防御+100),防御+1,战斗力+生命*攻击

也就是说,他们的增长比例是:

生命:攻击:防御+100=

5b62bd861098e.png

也就是说,如果生命和攻击都随着等级按比例成长,他们带来的战斗力变化之比是恒定的。此外,生命、攻击、防御+100这三个系数在每个等级提供的的战斗力是相同的,那么我们现在只考虑生命和防御+100,假设一点生命的战斗力就是1,那么同等级下,防御+100的战斗力就是

5b62bd8e464ab.png

,也就是说,防御力是不断变化的,代入数据的话大概就是这样:

5b62bd982db42.png

可以看到单位防御战力是随等级不断变化的,所以在计算某一等级的装备战力时,我们应该用该等级的防御战力去算。

当增加一个职业时,由于其各项属性比例不同,战斗力的比值有变化,需要根据前面算好的职业计算新职业各属性的战斗力之比,保证同等级下职业间的战斗力平衡

5b62bda05fef8.png

补充:

1. 由上面的属性比值公式可以看出,同一等级下不同属性所占的战斗力比例是相同的,利用这一点可以先确定该等级的玩家战斗了,然后快速计算属性权值。

2. 当引入百分比属性时,如命中率时,如果希望通过这个属性进一步控制战斗节奏,最好通过引入一对属性来实现,如命中/命中抵抗,这两条属性都会随着等级成长。这样做一方面解决了百分比数值有上限(100%)的问题,另一方面在计算战斗力时,可以把固定命中下随着等级提升带来的战斗力提升换算成固定权值时命中/命中抵抗提升带来的战斗力提升,使其可以量化。

5b62bdae88ef6.png

 

 

减法公式

5b62bd2570ebd.png

5b62bdbe4fbd3.png

当存在防御属性时,一个单位的战斗力必然和其对手的防御力有关系,因此我们无法通过单位本身判断其战斗力,那么现在我们假设减法公式下只有两个维度:生命和攻击,即:

5b62bdc3e88d5.png

简化后,该公式实际上变成了一个乘法公式,我们可以很快用类似上面乘法公式中计算属性价值的方法计算出某职业生命和攻击的权值

5b62bdcc07599.png

接下来我们再分析防御属性,由于减法公式中

5b62bd2570ebd.png

我们可以认为一个角色的攻击力和防御力的权值是等价的,那么加入防御力之后

 

5b62bdda39a5f.png

 

四.随便写写

在加权战斗力的计算中,务必注意当职业不同时属性权值是不同的,因为对不同职业来说,各个属性的价值是不一样的。所以在很多RPG里,各个职业的装备都是专属的,以此保证每个职业的特性。

 


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK