會員登入
購物車
(
0
)
HOME
×
關於科月
關於科月
科月目錄
科報目錄
購買科月
訂閱方案
優惠方案
諾貝爾系列
購買單期
購買通路
投稿須知
推廣專案
星火相傳計畫
支持專案計畫
進階搜尋
封面故事
News Focus
專訪
專欄
評論
精選文章
活動訊息
永續科學
基金會
科技報導
繁體中文
English
ig
line
facebook
Please enable JavaScript
Search / 搜尋
分類選單
- 文章分類 -
封面故事
News Focus
專訪
專欄
評論
精選文章
活動訊息
永續科學
基金會
科技報導
專欄
文章專區
2021-08-02
這次出現的魔王會是誰? 從Roguelike遊戲看機率
620 期
Author 作者
高竹嵐∕陽明交通大學統計學研究所助理教授,同時也涉獵數學競賽、合唱、音樂劇創作以及桌上遊戲設計等領域。
數學
遊戲
獨立事件
條件機率
Roguelike
隨機生成
機率
近年來,Roguelike 類型遊戲含其變體Roguelike-like和Rogue-lite 大行其道。從遊戲的開山祖師《Rogue》到聲名大噪的《暗黑破壞神》(
Diablo
),再到近代的遺跡遊戲《Spelunky》、間諜遊戲《隱形公司》(
Invisible Inc.
)、極度抑鬱的《暗黑地牢》(
Darkest Dungeon
)乃至於卡牌遊戲《殺戮尖塔》(
Slay the Spire
),一直到去(2020)年火紅的《黑帝斯》(
Hades
),這些無疑地已經是遊戲市場中一種主流的遊戲類別。
而Roguelike 遊戲一般有以下兩大特點:
1.
永久死亡機制
:
如果玩家在遊戲中死亡,就必須從頭開始玩一整輪遊戲。
2.
隨機生成地圖
:
每一輪遊戲的地圖、道具、敵人等都是隨機生成的。
這樣的特性,導致玩家在每一輪遊戲都會面對全新的狀況,迫使他們無法死背某些既定的套路,必須充分掌握整個遊戲的基本原理,才能夠順利通關。
如上所述,「隨機生成」是Roguelike 遊戲的一大要素,因此本文便來討論一下機率與這類遊戲之間的關係。
《Rogue》是Roguelike 類型遊戲的開山祖師,圖為《Rogue》遊戲中的隨機生成地圖。(Artoftransformation, public domain, Wkipedia Commons)
什麼是獨立事件?
讓我們先討論相對比較簡單的獨立事件。為了簡單起見,我們以《殺戮尖塔》為例。《殺戮尖塔》遊戲總共分為3大關,每一大關都會有一個最終大魔王,而這些魔王會從3個候選魔王中隨機選擇,例如第一關有「大史萊姆」、「守護者」、「六角鬼」3個候選魔王。以下就假設程式是平均地從3個魔王中選一個出來,這樣在每一輪遊戲裡,第一關3個候選魔王出現的機率都是1∕3。
雖然說這3個都是第一關的最終大魔王,但其實他們的強度還是有一點差距,「大史萊姆」會比其他兩隻稍微弱一些。照此邏輯來看,我是不是可以瘋狂重啟遊戲,想辦法刷出「大史萊姆」,讓遊戲的難度變低呢?
舉例來說,假設我第一次開遊戲時出現「守護者」,第二次遊戲則出現「六角鬼」,我能不能立刻重開遊戲,因為第三次就會出現「大史萊姆」?
等等,不對!這是一個很嚴重的誤解!
機率1/3,不代表每3次會出現一次!
機率1/3,不代表每3次會出現一次!
機率1/3,不代表每3次會出現一次!
因為這個概念真的太重要也太常被誤解了,請容我講3遍。
就讓我們實際來算算「大史萊姆在3 次遊戲裡恰好出現一次」的機率是多少吧。如果是第一次遊戲時出現大史萊姆,後面兩次不是,那麼這件事情的機率是:
第一次是大史萊姆× 第二次不是大史萊姆×第三次不是大史萊姆= 1/3×2/3×2/3= 4/27
同理可證,只有第二次遊戲出現大史萊姆的機率,跟只有第三次遊戲出現大史萊姆的機率,一樣都是4/27。再把3個機率相加,就能得到「大史萊姆在三次遊戲裡恰出現一次」的機率 = 4/27 + 4/27 + 4/27 = 12/27。
這個機率顯然不是1!也就是說,機率為1/3,並不保證「每三次會出現一次」。如果這還不能說服你,那或許你可以這樣想:既然每一次重新開始遊戲,我們都假設遊戲會重新從3個候選魔王中選一個出來,而且這個選擇是獨立於過去歷史的,那前面遊戲出現的是哪一隻魔王、總共出現了多少次,都應該和我這次的選擇機率,完全沒有關係啊!
因此結論就是,不論前面已經出現多少次「守護者」或「六角鬼」,只要你按下了重啟遊戲的按鈕,這次新遊戲出現「大史萊姆」的機率,就仍然是1/3。
什麼是條件機率?
前面說的都是所謂的「獨立事件」,也就是說每一次隨機生成時,會生出什麼都跟其他事件沒有關係。例如玩遊戲時不會因為之前出現過「守護者」,這次出現「大史萊姆」的機率就會有所改變。
但並不是所有的「隨機生成」都可以用獨立機率來進行,我們以之前提到的《Spelunky》來說明。這是一款遺跡探索的2D 平台遊戲,玩家在遊戲中會從一個隨機生成的地圖上方入口出現,他必須想辦法在各種平台、障礙、陷阱、敵人之中,安全抵達地圖下方的出口。
你可能會產生這樣的想法:「那我就所有牆壁、平台、障礙、陷阱,全部都隨機生成不就好了嗎?」舉例來說,我可以把地圖切成很多區塊,並且在每一個區塊內,都隨機決定那邊的物件是什麼?這樣不行嗎?老實說,還真的不行。因為,你要怎麼保證所有物件都隨機決定而產生出來的地圖,存在著一條可以從上方走到下方的路?搞不好所有的路都被各種物件堵死了啊!
你也可以這樣想像:就算只是要生成一個很簡單的「迷宮」,如果牆壁隨便生,就很有可能生出一個根本走不出去的迷宮!
所以《Spelunky》用以下方式解決這個問題:
1.首先,把每一張地圖切成4×4,以下稱為「區塊」。
2.接著,著,準備一大堆跟「區塊」一樣大的地圖樣板,包含以下幾種:
A 類:只能通到左邊或右邊。
B 類:只能通到左邊、右邊、下面。
C 類:只能通到左邊、右邊、上面。
3.程式接下來會想辦法生出一條「保證可以抵達出口的道路」。首先,從最上面的那條橫排中,隨機選擇一個區塊設置入口。
4.然後再從入口開始,隨機生一條能抵達最下層的通道與對應的出口 。
5.接著在上圖中黃色的地方,都從A、B、C 三種樣板裡選出可以完成該方向移動的樣板。例如,如果有一個區塊要通往其正下方的另一個區塊,那麼位於上方的區塊就必須要有往下的路,所以必須是B類樣板;而下方的區塊則需要和上方相通,因此只能是C類樣板。以上方的圖為例,每一格黃色要抽出的對應類型樣板如下:
透過以上方式,就保證了我們一定可以生出一張「存在從入口到出口路徑」的隨機地圖。這邊我們省略了一些技術性的細節,例如在第4步驟中的那條通道要怎麼產生等。有興趣的朋友,也可以上YouTube 搜尋「How (and Why) Spelunky Makes its Own Levels」,看看以上操作的細節。
你或許會注意到在這個狀況下,各個格子的機率就不是
獨立的了!更明確的說,它們會取決於一個條件機率。
簡單來說:
1. 我們首先生出一條黃色路徑X。
2.「給定X」之後,再生出其他各個格子的地圖。
也就是說,我們是先隨機生成X,然後在「給定X 的這個條件下」,依據一個「條件機率」生出地圖。
有興趣的人其實也可以自行證明看看,在這個狀況下,每一個格子抽出來的樣板不是獨立的。懶得證的人也可以這樣想:如果每一個格子的樣板抽取是獨立的,那不管我上面的區塊有沒有通往下面的路,下面的區塊抽出沒有向上通路的樣板的機率都是一樣的;換言之,你一定會有機率抽出一張都是死路的地圖!
最後,這個概念在去年的遊戲產業中被應用到一個非常極致的狀況。在《看門狗:自由軍團》(
Watch Dog: Legion
)中,遊戲公司育碧(Ubisoft)採用這個方式生出了整座城市中的每一個人,包含語音、視覺與動作!若你對這個遊戲城市的生成方式有興趣,可以在YouTube 上搜尋「How Watch Dogs: Legion Works」看看他們是怎麼辦到的。
機率、遊戲、生活的連結
其實在數學中「機率」的概念,已經默默地融入到我們生活中的各項遊戲。不論是投擲硬幣、骰子、剪刀石頭布,甚至是你手機遊戲中的「抽卡」、「扭蛋」全都與機率有關,而數學也不全然是冷冰冰的數字,它也是可以很生活化的呢!
回列表頁
加入收藏
列印
相關推薦
科學月刊 8月號/2021 第620期:登頂百岳-已完售-無庫...
售價 $249
新訂一年方案:《科學月刊》一年12期
售價 $2780
新訂兩年方案:《科學月刊》二年24期
售價 $5300
TOP
本站使用第三方服務進行分析,以確保使用者獲得更好的體驗。了解本站
隱私權政策
OK