当前位置: 华文星空 > 电竞

DOTA2 中有哪些冷僻却又实用的技巧或者知识?

2017-12-25电竞

众所周知,dota2是一款摸奖类竞技游戏

有弹幕数了下,峰哥是连续15刀都没暴......

一、关于伪随机

dota2及许多moba类游戏中都有许多关于暴击/眩晕等随机事件,为了平衡游戏的公平性,需要减少这些事件不会连续触发/连续不触发,因此在概率触发上大量应用了伪随机。dota2最早应用伪随机应该是在6.81的斧王改动,不愧是v社亲儿子,之后其他英雄的很多概率触发都改成了伪随机。


dota2维基对伪随机的解释:对于一个伪随机分布事件而言,每次事件发生的概率与上一次事件是否触发(发生)相关联。这个事件的触发概率可以用函数P(N)=C×N表示。

  • P(N)是第N次尝试这个事件的概率;C是一个伪随机事件的常数,它的值小于等于1。
  • 这个事件的初始发生概率为C。
  • 如果没有触发这个事件,那么计数器便会增加1,这个事件下一次的触发概率将会增加C。
  • 如果触发了这个事件,那么计数器便会清空,这个事件的触发概率将会变回C。
  • 对于C值,V社并没有给出,但是在stack exchange上有老哥估算出了不同概率下的C值:


    也就是说,一个pa学习大招(15%概率暴击)后,第一次普攻暴击的概率其实只有3.2%,第二次是6.4%,只要不暴击,就一直累加直到某一次攻击发生暴击,下一次普攻暴击的概率重新回到3.2%,从长时间的期望来看,pa暴击的概率就约为15%。这样可以防止出现 pa砍了十几刀都不爆的情况 出现。

    二、伪随机在dota2中的应用

    有了以上伪随机的概念,很容易想到大家经常提到的用普攻给暴击进行垫刀的技巧。比如玩pa的时候,如果连续a了野怪/小兵好多下没有暴击,这时候去找对面打架,前几刀就很容易出现暴击的情况。
    那么,对这种策略,在实战中究竟有多大价值呢?我们讨论两种结果

    1. 连续N次不暴击,之后首次触发暴击所需普攻数

    首先,我们比较关心的是,一个pa在 连续a野怪N刀不暴击后去找敌方酱油提款,需要再a几刀才能出发暴击 。因为对pa来说,越快暴击留给对方的反应时间越短,击杀成功率越高,万一还是一直不暴,就被对面反控了。
    于是我们以pa为例(15%暴击概率,对应C=3.2%),用程序定义伪随机触发的情况模拟10000次,看需要的普攻数有什么区别

    之前连续0次未触发,之后平均需要5.6996次攻击才能触发暴击/眩晕 之前连续1次未触发,之后平均需要4.8261次攻击才能触发暴击/眩晕 之前连续2次未触发,之后平均需要4.1568次攻击才能触发暴击/眩晕 之前连续3次未触发,之后平均需要3.6702次攻击才能触发暴击/眩晕 之前连续4次未触发,之后平均需要3.21次攻击才能触发暴击/眩晕 之前连续5次未触发,之后平均需要2.8265次攻击才能触发暴击/眩晕 之前连续6次未触发,之后平均需要2.4924次攻击才能触发暴击/眩晕 之前连续7次未触发,之后平均需要2.1826次攻击才能触发暴击/眩晕


    可以看到:

  • 随着之前连续未触发次数的增加,之后暴击所需的普攻次数峰值明显向0靠近。
  • 如果上一次刚刚暴击,那么平均需要接近7次普攻才能触发暴击(也就是说,pa的暴击平均6.65次中有一次暴击,基本与15%的暴击概率一致,侧面验证了模拟情况的可靠性)。
  • 而如果之前已经连续7次普攻没有暴击,则平均只需要再普攻3次就能有一次暴击!
  • 即便考虑不太极端的情况,N=0和N=3也相差了2次所需的普攻数。
  • 考虑更极端的情况,计算了下如果 前15次都没有暴击 ,下一次暴击需要的普攻次数:

    之前连续15次未触发,之后平均需要0.8384次攻击才能触发暴击/眩晕


    可惜啊,枫哥大概率只要再坚持一下就能暴击了。

    2. 连续N次不暴击,之后M次普攻平均暴击数

    我们进一步思考:尽管垫刀策略能够大大减少触发首次暴击所需的普攻数,但触发暴击后,暴击概率会直接回归C值,也就是说,这种策略对输出的提升其实仅限于前几次普攻暴击概率的提升。因此如果要量化这种策略对输出的提高,我们需要计算 在之后一定次数内,平均能够提高多少的输出
    考虑一个18级,点了10级+1sB持续时间,假腿暗灭狂战bkb的pa。此时在幻影突袭持续时间内,不考虑走位等因素,基本能普攻7次。


    因此我们把之后连续的普攻数M设定为7.

    之前连续0次未触发,之后攻击7次,平均触发1.458次暴击 之前连续1次未触发,之后攻击7次,平均触发1.698次暴击 之前连续2次未触发,之后攻击7次,平均触发1.79次暴击 之前连续3次未触发,之后攻击7次,平均触发1.9次暴击 之前连续4次未触发,之后攻击7次,平均触发1.953次暴击 之前连续5次未触发,之后攻击7次,平均触发2.017次暴击 之前连续6次未触发,之后攻击7次,平均触发2.1次暴击 之前连续7次未触发,之后攻击7次,平均触发2.099次暴击


    可以看到之后7次普攻:

  • 完全不垫刀(N=0),输出为1.458*4.5+(7-1.458)=12.103 倍攻击
  • 垫刀7次(N=7),输出为2.099*4.5+(7-2.099)=14.2465倍攻击
  • 按pa此时125+144=269攻击力计算,输出分别约为3255.707和3859.2085,相差约600点输出。考虑到敌方的减伤,护甲和走位等因素,实际相差数值应该会再低一些。
    因此可以看出,即便考虑的是两种极端情况(N=0和N=7), 对暴击进行垫刀的策略在随后带来的输出提升,也不如缩短暴击所需的普攻数带来的实际意义更大

    三、总结

    以上讨论了两种结果:

    1. 之前连续N次不暴击,之后首次触发暴击所需普攻数
    2. 之前连续N次不暴击,之后M次普攻平均暴击数(对总输出的提高)

    可以看到,对暴击进行垫刀的战略意义更大,因为随便垫上3-5刀,就可以大大缩短首次暴击出现所用的时间(相差接近2倍),能够在有限的控制时间内秒掉对方关键人物,甚至左右战局。而这种策略带来的输出提升则相对比较有限。
    因此,如果对方有关键人物需要秒(如沉默),而己方控制又不容易衔接时(对方有救人/己方控制没跳刀/控制不足),先去a几下野怪,把之后的暴击概率提高,也许会有奇迹发生哦。

    本文中只讨论了以pa为例,暴击概率=15%的情况,而dota中还有许多不同概率的暴击/眩晕等,对不同概率的暴击/眩晕,垫刀策略带来的收益应该也是不一样的。
    对不同概率下垫刀策略带来的收益进行分析,应该可以得到我们更应该是对低概率的暴击进行垫刀,还是对高概率的暴击进行垫刀,这里就先挖个坑好了。

    参考:
    50%暴击=4下必暴!科普游戏中的伪随机 - 知乎
    https://www. bilibili.com/video/BV1n A4y1Q7TQ?t=406.2
    随机分布 - Dota 2 Wiki,刀塔百科
    真随机分布 - DotA中文维基 - 灰机wiki
    伪随机分布 - DotA中文维基 - 灰机wiki
    Calculating the constant C in Dota 2 pseudo-random distribution - Arqade