知乎答問:為什麼有人說《暗黑破壞神 3》中的隨機是「偽隨機」?

這篇原本是回答知乎上的問題:为什么有人说《暗黑破坏神 3》中的随机是「伪随机」? - 知乎


不只暗黑三,許多遊戲中的「隨機」要素都是「偽隨機」。而很諷刺的,採用「偽隨機」的理由往往是為了製造更「隨機」的感覺給玩家。

試想,如果一個珍貴道具,掉寶率只有千分之一,那麼玩家會期待我打一千個怪物應該要掉一個吧,再不然我打兩千個怪物應該也總該掉給我一個珍寶了吧?

上面是一般玩家的直覺。然而我們考慮真實情況:

  1. 連續掉兩件珍寶的機率是百萬分之一(0.001^2)。但如果這遊戲的玩家夠多(例如暗黑三第一天就賣了三百五十萬套),出現連拿兩件珍寶的玩家並非不可能,但是看在其他人的眼裡,可能就會覺得有作弊不公之嫌。
  2. 打了一千個怪物仍沒有掉任何一件珍寶的機率是多少?答案是 0.3677 (0.999^1000);而打兩千個怪物仍沒有珍寶的機率是 0.1352 (0.999^2000)。換個方式說,有三分之一的人打了一千個怪仍沒拿到珍寶,就算各打了兩千個怪,仍有超過十分之一的玩家是毫無所獲的。雖然這是真實存在的機率情況,但對玩家而言,卻會覺得是開發商作弊,而不會認為這是正常的隨機。

所以遊戲設計中,許多時候的隨機都不是真的亂數隨機,而是用各種方式做出看起來隨機的樣子。比較常用的一個方式就是洗牌 (Shuffle),把所有可能發生的情況放在一個陣列中,對陣列的內容作亂數排序。

以前面千分之一掉寶率的假設為例,可以設想有個陣列有 1~1000 的數字,亂數排序後,每次玩家打怪我就從數列中抽出一個數字,若數字等於 1 時我就給玩家珍寶,當 1000 個數字都取完後,就對這個陣列重新洗牌,重新抽牌。這樣的作法可以確保玩家平均每 1000 次打怪中可以得到一次珍寶,從而避免機率的極端狀況,對玩家而言,看起來比較像是直覺意義上的隨機,雖然事實並不是。