花瓣资源

整理比较全面丰富的资源

【兵粉投稿】第七期--从数学上详解游戏里的各项属性

xummnl2020-10-1122

写在前面:

夜莺:开了新的专栏,专门推送兵粉们的投稿;

今天是第7期,作者是:

@贴吧:knight(服务器tap S4区 nightnight);最后希望大家多多投稿,写得好的有稿费的哦!


第七期 从数学上详解游戏里的各项属性

 by knight(服务器tap S4区 nightnight


前言

首先要感谢 @sc01105023 大佬, 他是放置奇兵世界的牛顿爵士, 我对这个游戏的大多数理解, 都得益于能站在这位巨人的肩膀上. 他的精华区帖子就是这个世界的牛顿运动定律. 我们下面的讨论很多都是基于这些被无数次验证的公式的.

 

       对数学和公式不感兴趣的同学可以直接跳过第一部分和公式部分看结论, 希望读完这个帖子后, 大家能明白哪个英雄用哪种宝石和神器收益最大.


§1 基本公式

    

理解一个游戏, 最重要的就是理解它的伤害公式. 对于放置奇兵来说, A(attacker) 攻击 D(defender) 的基础伤害公式为:

             基础伤害=A的攻击力×[1-D的护甲减伤率×(1-A的破甲率)]+A的攻击力×A的神圣伤害率×0.7

其中

             护甲减伤率  =

这个基础伤害还要受到减伤率(注意与护甲减伤率相区别)和格挡减伤(格挡成功为33%, 不成功为0)的修正, 得到普攻伤害:

             普攻伤害 = 基础伤害×(1-减伤率)×(1-格挡减伤)

如果是技能伤害, 还需要在普攻伤害的基础上乘以技能伤害率:

                         技能伤害 = 普攻伤害×技能伤害率

最后, 如果发生了暴击, 则伤害还要再乘以 (1.5+2×暴击伤害率).


§2 攻击和血量

      这两个属性是最简单的属性, 对于这个游戏来说都是适用乘法. 也就是说, 增加20%的攻击就是攻击力直接乘以1.2, 由上面的公式, 也就是基础伤害直接增加了20%, 也就是战斗中的伤害数字直接增加了20%, 血量同理. 换句话说, 攻击和血量的百分比增量都是"真实"的, 增加多少就是多少. 我这里用"真实"这个词, 是为了跟后面的某些属性相比较, 后面你会发现, 有些属性增加20%, 实际效果可能远低于或者远高于20%.

 

      要说明的是, 存在多个百分比的时候, 合在一起也要用乘法 (例外的情况是进入战斗后的buff, 这时同类buff效果是百分比相加), 比如公会科技中有一项加20%攻击, 另一项加30%攻击, 那么合在一起不是加50%攻击, 而是要算 1.2×1.3=1.56, 即加了 56% 的攻击. 由此你也不难理解, 为什么六星套装的21%攻击, 比职业套的7%,7%,6%,6%攻击, 差的不是一点半点. 

 

    上面说的是百分比增量, 如果是绝对数值增量, 比如攻击+2000, 那么这个2000要在乘以所有百分比之前加上, 也就是加到英雄最初的攻击力上.



§3 破甲, 神圣伤害和技能伤害率

     我们玩游戏的时候, 通常有这样一种习惯性思维, 就是某个英雄某种属性很强的时候, 我们倾向于狂堆这种属性, 以求最大收益. 很多时候, 这是正确的做法, 但是也有很多时候, 这样的做法是很不明智的. 这一节的三种属性就属于堆越多收益越低型的, 类似于经济学上的边际效益递减.

 

     要说明的是, 这三种属性适用加法, 即有多个百分比增量时, 合在一起要相加.

 

     (1) 先来看破甲. 如果一个英雄本来的破甲是零, 不考虑神伤, 这时候增加20%的破甲, 由基础伤害公式不难推出, 伤害增加了, 这里 r 就是对方的护甲减伤率. 对于一般英雄来说, r 是0.3左右, 这时20%破甲增加了=8.6%的伤害, 而进攻高护甲的英雄时, 则伤害增加多很多, 比如火骑的 r 是0.6, 这时20%破甲增加了大约30%的伤害.

     

     如果这个英雄本来就有破甲, 这时候再增加20%的破甲, 伤害增加的效果就大不如前了, 原有的破甲越多, 再增加的收益越低. 这个结论也不难推出, 假设原来的破甲是 p, 那么再增加20%的破甲, 伤害增加了, 这显然比上一段的要小, 而且 p 越大, 比例系数越小. 

 

     如果考虑神伤, 则破甲增加的伤害百分比还要被进一步"稀释". 况且, 破甲是有上限100% 的.

 

     (2) 再来看神伤. 如果一个英雄本来没有神圣伤害, 这时候增加20%的神伤, 那么由基础伤害公式可以推出, 伤害增加了, 这里的 r, p与前面一样, 分别是护甲减伤率和破甲. 可以看出破甲也会稀释神伤的效果, 而对方护甲减伤率越高, 神伤越有效. 比如, 没有破甲时, 进攻一般英雄, r=0.3,  这时20%的神伤等同于20%的伤害增加, 而进攻火骑,r=0.6, 这时20%的神伤等同于35%的伤害增加.

 

     如果这个英雄本身就有神伤, 这时候再增加20%的神伤, 效果同样要大打折扣. 假设原有的神伤为 h, 那么再增加20%的神伤, 伤害则增加了, 与上一段的比例系数相比, 分母多了. 所以原有的神伤越多, 再增加的收益越低, 与破甲完全类似.

 

    神伤是否有上限? 这个似乎是没有的, 但是未测试, 不得而知.

 

    (3) 最后来看技能伤害率. 这个属性相比前两个更简单一些. 如果一个英雄本来的技能伤害率是100%, 这时增加20%的技能伤害率,则由第一节的公式, 技能伤害就是增加了20%, 这时跟增加20%攻击力效果一样. 但是如果本来的技能伤害率是200%, 则再增加20%的技能伤害率,技能伤害只比原来增加了10%, 也就是说, 仅相当于增加了10%的攻击力.

 

    总结: 这一节的三个属性都是边际效益递减的, 不要堆太多, 在堆到一定程度(参见这一节的具体计算)后, 就可以考虑堆其他属性.


§4 护甲和减伤

     这两个属性与上一节的三个属性刚好相反, 是属于堆越多收益越大型的, 但是这两个都有上限, 不要堆太多超过上限就是了.

 

    (1) 先来看护甲. 护甲用来计算护甲减伤率, 而护甲减伤率的上限是90%(用火骑加魔兽鹿测试得到), 所以每个等级的护甲都有相应的上限.多个护甲百分比合起来也是适用乘法. 对于一般英雄来说, 护甲减伤率是0.3, 这时如果增加20%的护甲, 则护甲减伤率变成 0.3×1.2=0.36. 那么, 本来受伤害是1-0.3=0.7, 增加护甲后受伤害变成0.64, 那么, 增加护甲后生存能力提高多少呢? 应该是= 1.094, 即提高了 9.4%. 换句话说, 此时增加20%的护甲相当于增加9.4%的生命, 但是这个比增加生命更好一些, 因为这时治疗的效果更好. 而对于火骑来说, 护甲减伤率为0.6,这时如果增加20%的护甲, 则护甲减伤率变成 0.6×1.2=0.72. 那么, 本来受伤害是 0.4, 增加护甲后受伤害变成0.28, 于是, =  1.43,即生存能力提高了 43%, 这时20%的护甲比43%的血量都要好. 所以, 原有的护甲越高, 再增加护甲的收益就越大.

 

   (2) 再来看一下减伤率. 多个减伤率合起来是适用加法的, 而减伤率的上限是70%. 如果一个英雄本来没有减伤, 这时增加20%的减伤, 则受到的伤害变成80%,即生存能力是原来的1/0.8=1.25倍. 如果一个英雄本来就有20%的减伤, 比如虫子, 这时再增加20%的减伤, 则受伤害由原来的80%变成60%,=1.33, 生存能力提高33%. 再极端一点, 丁丁触发被动50%减伤, 此时再增加20%减伤, 则=1.67, 生存能力提高了67%. 所以, 跟护甲类似, 原有的减伤率越高, 再增加减伤的收益就越大. 但也要注意不要超过上限.


§5 格挡和暴击

     最后简单提一下这两个属性. 格挡(和精准)是这个游戏最没用的属性, 而暴击(和暴伤)则是这个游戏最有用的属性.

 

     对于格挡来说, 即使格挡成功, 也只是提供33%的减伤, 而且请看第一节的公式, 这个33%不是直接加到上面的减伤率上的, 而是在减伤后再减伤, 这个效果就差多了. 举个极端的例子,在减伤率达到上限70%时, 本来受伤害为0.3, 如果此时触发格挡, 则受到的伤害变成 0.3×(1-0.33) = 0.201, 即相当于总减伤79.9%, 也就是说, 格挡那33%减伤只相当于直接加了9.9%的减伤. 这个79.9%就是官方宣称的减伤上限.

 

    暴击和暴伤对于很多游戏都是最重要的属性. 因为爆发伤害的重要性, 仅用数学期望衡量它们似乎是不太合适的, 这个问题留待以后再考虑. 暴击和暴伤都适用加法, 并且有上限,暴伤的上限是150%. 这里要说的是, 虽然从公式来看, 暴击伤害要乘以2, 是非常超值的属性,但实际上这也是一个边际效益递减的属性. 举个例子, 本来没有暴伤的英雄加20%暴伤, 则暴击后的伤害提高1.9/1.5-1 = 0.2667, 相当于增加了26.67%的攻击, 非常超值, 但是如果这个英雄已经有80%的暴伤了, 则此时再增加20%的暴伤, 暴击后的伤害提高 3.5/3.1-1 = 0.129, 仅相当于增加了12.9%的攻击, 仍然很超值, 但是收益已经递减了, 这时如果可以选择别的属性, 就应当考虑哪个属性收益更大, 而不是无脑堆暴击.

 

已经写了太多了, 就暂时搁笔了. 总的结论就是: 攻击血量增加多少是多少; 护甲和减伤不超过上限时堆越多收益越大, 给护甲高的加护甲, 给减伤高的加减伤, 都是最好的选择.而破甲, 神伤, 技能伤害率以及暴击伤害则是边际效益递减的, 所以给这四个属性已经很高的英雄再堆这些属性是很蠢的.


往期精选

19 Oct 2018


本文链接:http://www.joqng.com/23509.html

数学

相关文章

网友评论