首页/ 帮助/ 游戏中的随机机制分享讨论(虽然长,感觉gee也可采用一些)

游戏中的随机机制分享讨论(虽然长,感觉gee也可采用一些)

2019-12-16 08:57:27

前几日看了一篇文章,讨论游戏中的随机机制采用“真随机”还是“伪随机”好。拿来与大家讨论讨论

很多玩家在游戏中都经历过这样的事:
自己的明日方舟炉石传说,10连开包次次蓝天白云;朋友1抽,哇!金色传说。
以前刷大菠萝,现在刷怀旧服大螺丝,游戏变了,但运气还是那般,一世无橙。
玩LOL和DOTA2的时候,自己的英雄50%暴击红字难求,对面的15%暴击重拳出击。

每当遇到这种倒霉的“随机事件”,总能让人顿足捶胸:这哪里是什么技术游戏?分明就是辣鸡游戏,全靠运气!

 

02 游戏中的伪随机

游戏中也存在各种各样的随机事件。


就以文章前面说到的明日方舟为例。游戏中最优质的卡牌——六星干员爆率是2%,这个概率虽然看着通俗易懂,但很多人其实是有认知盲区的。

不少玩家将它简单地理解为“开50包必有1张六星”,但其实开50包至少有1张六星的概率只有1-(1-0.02)^50=63.58%,剩下36.42%的人即使开满50包,他们连见六星影子的机会都没有。

就算是把开包的次数增加到100次和150次,依然会有13%和5%玩家开不到六星。在真实的随机事件下,这些情况下是客观存在的。

但对玩家来说,他们很难意识到这点。看着自己充了足够多的钱,却享受不到良好的游戏体验,他们会迁怒于游戏的运营和策划,骂游戏作假、策划暗改数值。

为了避免这种情况的发生,大多数集卡式游戏的抽卡系统都有一个叫Pity Timer(怜悯计时器)的保底机制。
 

还是以明日方舟为例。前50次不出六星的话,从第51次开始每次抽取就增加2%的六星爆率。就算是“非酋”,最多也会在第99次时抽到1张六星。

这种模式,有点类似war3的伪随机机制:PRD机制(英文全称Pseudo Random Distribution)。

其实现在很多竞技游戏中的伪随机机制,都是从war3演化而来的。就拿文章开头的暴击率为例。

DOTA2中的主宰(剑圣)有一个技能叫“剑舞”,满级时能提供35%的暴击率。
 

如果按照真实随机来计算的话,连续打出2次暴击的概率是12.25%。

过高的暴击概率或许是观众的一发兴奋剂,但对严谨的竞技赛事来说,这无疑是砒霜。因为一次人品爆发秒掉对方核心,可能毁掉一个职业战队1年的努力。

为此,在不调整概率的情况下,V社学习了war3的机制,修改了相关的算法。目前DOTA2中所有的暴击、闪避、击晕、格挡效果都遵循PRD机制。

所谓的PRD机制可以用一个公式概括:

P(N)=C×N,

其中,C是一个小于1的常数(算法复杂,但有现成的数值表),P(N)是事件第N次尝试时的概率。公式所表达的意思是,从事件发生起,每次不成功的尝试都会增加1个固定值;成功后概率重新计算。

这么说可能有点云里雾里,我用实际情况表达一次大家可能就理解了。

主宰的暴击率是35%。但第一次攻击时,它的实际暴击率(C值)只有16%。此后每次不暴击的攻击都会使暴击率提升16%。一直到第7下时暴击率为112%(理论上的数值),这意味着必出暴击。
 

DOTA2 WIKI提供的数据

换句话说那就是,35%的暴击率=攻击7下至少出1次暴击。将新机制代入计算后,你会发现,35%暴击率连续触发暴击的概率仅有2.56%。相比之前,下降了近10%

这样的计算方式降低了小概率事件的连续触发,大大降低了运气对比赛结果的影响;同时也规避了连续不触发的情况,保证了玩家的游戏体验

除了DOTA2以外,LOL的暴击率也是采用了类似PRD的伪随机机制。

早在2011年的一次美服更新里,就有写道这么一句话:
 

(参考译文)我们已经改变了暴击和闪避的计算方式。你现在会有更少的“幸运”或“不幸运”的场景,你不会有连续的暴击或闪避,也不会被连续暴击或闪避。你的平均暴击率和以前一样,如果你有50%的暴击率,你攻击100次仍然会暴击50次。
这样的机制一方面在保护玩家的体验,另一方面又让结果倾向“随机”。除此之外,我们还能从这个机制“预测并掌握”一些信息。

比方说蛮王的被动技能“战斗狂怒”会提供最高50%的暴击率。它的起始C值约为30%(参考DOTA2的C值)。如果连续3次平A都不出暴的话,那么第4次是必然出暴的。

Copyright © 2014 - SDFAKA Inc. All Rights Reserved. GEE引擎 版权所有