游戏里的暴击真的是随机的嘛?_风闻
小熊尾巴花儿-2019-01-23 17:07
说到游戏里的暴击率,那么就不得不说一下应用层面的真伪随机问题了。
在应用层面上,真随机就是指每一次几率判断都是独立的。
比如说一个游戏角色的暴击率是20%,那么在真随机的机制下,他的每一次攻击都会是20%的几率暴击。前一刀暴击了,下一刀是20%暴率,前一刀没爆,下一刀也仍然是20%暴率。
而伪随机就是指同一类的概率事件,彼此之间存在关联性。比如说一个游戏角色的暴击率是20%,那么在伪随机的机制下,这个角色每一次攻击的暴击率都是动态变化的。
前一刀暴击了,后一刀的爆率就会降低;前一刀没爆,后一刀的爆率就会提升。但是,当这个玩家进行足够多次攻击之后,统计上的暴击率还是会等于20%。
可以说,真随机是一种自然的随机机制,用代码来实现也非常容易,只需要用一个随机数与一个常量进行比较,根据大于小于等于分别触发不同的结果就行了。而伪随机则是人为创造出来的一种机制,他需要程序员写下更多的代码,也需要数值设计者做更多的计算。
那么,既然伪随机费时费力,还反自然,为什么在应用领域还要引入各种伪随机的算法呢?其目的就在于——让用户得到更好的体验。
比如在魔兽世界、dota2和英雄联盟这样的游戏中,用心良苦的游戏设计师就使用了伪随机的方法来实现25%的暴击率:第一次攻击只按5.6%来掷骰子,如果没有暴击则下一次攻击的暴击率翻倍到11.2%来掷,以此类推。但如果暴击了,则下次回到5.6%继续掷骰子。长期看来,你的暴击率稳定在了25%左右,尽管它是被人为操纵的,但这个25%是均匀且直观的,是你能够直接感受的到的。
而如果使用真正意义上自然真随机机制,那么结果可能相当的残忍,或者极度的无聊。如果游戏诚实的按照25%的概率在程序中掷骰子,那么连续10刀20刀都不出暴击那是家常便饭(欧皇除外),如果这样的话,玩家可能会愤怒的砸掉键盘离开这个游戏。