你在玩游戏时是否有时会觉得哪里怪怪的?说好的随机爆击,但总觉得存在著甚么规律似的,或许这里面存在著甚么神秘力量(神秘脸)。
开玩笑了,这其实是程序员在编程时还用一些演算法以达到看似真实随机的结果,但实际不然,这种结果称为伪随机。
甚么是伪随机?
伪随机(英语:Pseudorandomness),我们平日玩的部份游戏和使用的部份应用程序,它们里面的随机数都不是真实的,而是伪随机数,它们是由预先设定好的算法所生成的一个数列而已。
比如热门游戏《炉石战记》就设有类似的机制,当抽取一定数量的卡包后就必定获得高品质的卡牌。
- RARE - At least 1 rare or better in each pack(稀有-每包至少会出现1种稀有或更好级别的卡)
- EPIC - Average of 1 every 5 packs(史诗-平均每抽5包会出现1张)
- LEGENDARY - Average of 1 every 20 packs(传奇-平均每抽20包会出现1张)
比如热门手游《明日方舟》也设有类似的机制,当连续抽卡50次后都没抽中六星干员,下一次抽牌出现六星干员的机率会有所上升。
▲在【标准寻访】中,如果连续50次没有获得6星干员,则下一次获得6星干员的概率从原本的2%提升至4%。如果该次还没有寻访到6星干员,则下一次寻访获得6星的概率由4%提升到6%。依此类推,每次提高2%获得6星干员的概率,直至逹到100%时必定获得6星干员。
除了卡牌游戏,即时战略游戏 DotA 2 里面也设有伪随机算法,当英雄该次攻击没有触发重击效果,下一次攻击时触发重击的机率就会有所上升。
▲近战英雄上,"碎颅锤"的重击有25%机率对目标造成眩晕,那么第一次攻击,他实际上只有大约8.5%机率触发重击,随后每一次失败的触发会增加大约8.5%触发机率,于是到了第二次攻击,机率就变成大约17%,第三次大约25.5%,以此类推,在一次重击触发后,下一次攻击的触发机率又会重置到大约8.5%,那么经过一段时间之后,这些深海重击机率的平均值就会接近25%。(说明引用自DOTA2 WIKI)
再举个生活栗子,音乐播放器不都有一个随机播放模式,它会随机顺序播放清单中的歌,但其实这个也属于伪随机,如何验证呢?
比如我的歌单中存在著 A.mp3 和 B.mp3 两首歌,当播放完 A.mp3,下一首将播放的歌有可能是 B.mp3,但也有可能是 A.mp3,它们两者各占50%,但实际上下一首播放的歌必然是 B.mp3。
因为在开始随机播放的那一刻,程序已经把接下来要播放的所有歌曲组成一个列表,只有在所有歌曲均已播放一遍的情况下才会进入下一个循环。
那甚么才是真随机?
以刚才的播放器为例子,按理来说无论目前正在播哪首歌,都不应该影响下一首要播放的歌。又如掷骰子一样,无论现在掷出甚么点数,都不会影响下一次掷出任何点数的机率,这种称为真随机(英语:True Random Distribution),又称作纯随机。
(Photo by Suzy Hazelwood from Pexels)
题外话,有部份人认为每次掷骰子得出的结果是会受上一次结果所影响,这种想法称为*赌徒谬误。
*赌徒谬误:是一种机率谬误,主张由于某事发生了很多次,因此接下来不太可能发生;或者由于某事很久没发生,因此接下来很可能会发生。(说明引用自维基百科)
那为甚么开发人员在设计时不采用真随机呢?要特意写一些算法来伪造真随机的现象呢?
答案很简单,就是用户体验。
例如抽卡包,抽中六星卡的机率才5%,在真随机的情况下,玩家是有可能抽上百包都没法抽中一张六星出来,这是一种致命打击,会让玩家觉得这个卡池里面根本没有六星,是骗局!为了避免这种情况,同时照顾玩家的情绪,开发人员会设计一些算法提高用户体验。

| 抽卡数 | 10 | 11 | 12 | 13 | 14 | 15 | ... | 55 | 56 | 57 |
|---|---|---|---|---|---|---|---|---|---|---|
| 抽中六星机率 | 5% | 7% | 9% | 11% | 13% | 15% | ... | 95% | 97% | 99% |
如上方表格,使用伪随机方法,抽第57张卡牌时出现六星的机率将达到99%。
例如播放器,如果采用真随机,那有可能会播放某一首歌很多遍,有些歌一次都没播过,这也是对用户非常不友好。
▲音乐平台 SoundCloud 中的随机播放模式正是采用了伪随机算法
对于以上这种为了提升用户体验,人工干预真实随机性的设计,行内有个专有名词把它们称为 Pity Timer(保底机制)。
现时我们接触到应用程式里面的随机都是伪随机吗?
坦白说我不知道,这个只有相关开发人员才知道。但有一点必须要明白,Pity Timer(保底机制)这种设计原意是为用户带来更好的体验,假设人工干预随机结果后不但没有提升用户体验,反而是降低,我认为没有一家开发商会做这种事,这根本是损人不利己的行为。
说白了,企业的目的是为了营利,提升用户体验可以令用户继续使用产品,这样子才能够作出进一步推广,为企业带来收益,有了收益就可以继续开发出更好的产品给广大用户,然后赚取更大的收益。
不过不排除有些企业吃相比较差,一心想捞一笔钱后就跑路,于是故意做出一些反人类设计来欺骗消费者。因此劝告各位一句,同时也是提醒我自己,要理性消费,*课金抽卡这种行为可以做,但不能过度,有些事情是需要*血统加持才能做到。
*课金:这一词来自日文(アイテム课金),正式名称为微交易或小额付费(英语:Microtransaction),是指用户在应用程式内消费获取虚拟物品。
*血统:是一个网络用语梗,形容运气的高低,运气好时会被称作欧洲人,相反则称作非洲人。
总结
- 平日所接触到的大部份应用程序,里面的随机数都为伪随机数。
- 真随机是指无论事情重复发生多少遍,都不会影响下一次发生的结果。
- 开发人员为了提升用户体验而人工干预真实随机性的设计称为 Pity Timer(保底机制)。
- 请勿过度课金,要理性消费。
后话
这是叔首次尝试以科普角度介绍游戏的一些设计,由于本身并不是相关专业人士,文章里面的资料都是透过互联网取得,再加上自己的理解制作而成,所以并没有讲得十分深入,如果你们喜欢这个专题或者发现有内容是错误的,欢迎在下方留言给我,我都会看的。
资料参考:
特别鸣谢:
- 九叔
- 风之起灵
- moonmagian
- Cong
- Thinson_Luo
- 堂丸
留言 (0)
请先 登录 或 注册後才能發表評論。