AI 遊戲主持人:用 AI 地下城主帶一場 RPG 團務
打造你自己的 AI 遊戲主持人
AI 遊戲主持人負責運行世界、NPC 與規則,你只要玩就好。在瀏覽器裡試試 AI 驅動的 RPG 團務——免開桌、免準備、免寫程式。
AI 遊戲主持人是一套執行時期的系統,負責保存世界狀態、為 NPC 配音、裁定規則,並對你的嘗試做出反應——讓你專心玩,而不是忙著準備。在 Neta Studio 中,AI 遊戲主持人運行於瀏覽器裡真實的 3D 世界,而不是一個對話框。你輸入或說出角色要做什麼,世界就會隨之改變。
這個詞涵蓋幾種不同的用途。如果你想要一場地下城 RPG 團務,AI 遊戲主持人會生成房間、在裡頭配置內容,並裁定戰鬥。如果你想做一款大型多人線上角色扮演遊戲,同一套系統可以擴展成由眾多玩家共享的持久世界。共同的機制是一個迴圈:讀取狀態、產生敘述或行動、把狀態寫回去。本頁說明這個迴圈實際如何運作、會在何處出問題,以及如何自行打造最小可玩版本。
快速解答
AI 遊戲主持人是一層系統,取代的是人類裁判的瑣碎記錄工作,而不是人類裁判的判斷力。它追蹤生命值、物品欄、位置、任務旗標與時間。它生成或挑選 NPC 的對話。它裁定擲骰並套用結果。在世界模型的限制內,它對玩家嘗試的任何行動做出反應。這一切在玩家遊玩期間持續不斷地運行。
它無法取代一位優秀的人類遊戲主持人。人類遊戲主持人會觀察現場氣氛、察覺玩家開始無聊、為了讓故事延續而通融規則,還會記得六場團務前一個隨口帶過的細節,只因為那對某個人很重要。AI 遊戲主持人省下準備時間,省去還得湊齊另外四個人在同一晚都有空的麻煩,也省下翻規則卡住節奏的停頓。但它無法取代一群彼此熟識的人同坐一桌的價值。
無論是地下城 RPG 還是大型多人線上角色扮演遊戲的用途,核心答案都相同:一個世界狀態儲存區、一個規則裁定器、一層 NPC,以及一個具空間性的世界。差別在於規模。單人地下城團務運行一個狀態物件。大型多人線上世界運行一份所有用戶端都會讀寫的標準狀態,這就帶來了後文會談到的共享狀態與內容審核問題。
AI 遊戲主持人做什麼
AI 遊戲主持人每一回合要做四件事。只要少了其中任何一件,團務就會以某種明確、可診斷的方式出問題。這些失效模式是可預測的,這在你調校其中一項時很有用。
以下這四件事是最小可行的迴圈。其餘的一切——語音演出、美術生成、音樂——都只是在這些之上的裝飾。
保存世界狀態
狀態是最後一次確認並提交的事實:誰在哪裡、身上帶著什麼、什麼已被殺死、什麼已被打開、現在是什麼時間。在 Neta Studio 的世界裡,狀態以場景圖加上鍵值儲存的形式存在。NPC 的位置是一個變換。任務旗標是一個布林值。玩家的火把燃料是一個每個時間刻度就遞減的整數。當 AI 遊戲主持人在敘述時,它是根據狀態來敘述,而不是根據它自己記得一半的提示摘要。
常見的錯誤是:模型捏造了狀態裡沒有的細節——一扇從未放置的門、一名早已被殺死的警衛。解法是只序列化真正存在的內容,並拒絕或改寫與硬性狀態鍵相牴觸的生成文字。軟性細節(天氣、氣味)可以自由浮動。硬性細節(生/死、上鎖/解鎖)則不行。
為 NPC 配音
每個 NPC 都需要一個穩定的人格設定:名字、角色、知道什麼、想要什麼,以及絕不會說出口什麼。AI 遊戲主持人會依據該人格設定與當前狀態生成對話。一個從未見過玩家的鐵匠,打招呼的方式會和上場團務被搶過的鐵匠不同。這正是持久世界讓人感覺栩栩如生、而非隨機拼湊的地方。
實務上,你會為每個 NPC 保留一份有詞元上限的記憶緩衝區。當它滿出來時,就把最舊的幾筆摘要成一行,然後繼續。沒有這個上限,長時間的團務就會走樣:NPC 開始與先前的發言互相矛盾,因為那些發言已經被擠出上下文之外。
裁定規則
規則裁定是確定性的程式碼,而不是模型的輸出。模型提出一個行動;裁定器拿它對照規則集並回傳結果。「我朝哥布林揮砍」會變成一次攻擊擲骰、一次傷害擲骰,以及一次狀態寫入。接著模型再敘述結果。如果你讓模型自己決定傷害數值,平衡就會變成雜訊。
這也讓系統變得可除錯。你可以記錄每一次擲骰、每一個調整值,以及每一筆狀態變化量。當玩家說「那根本不該打中」時,你手上有實際數字。
對玩家的嘗試做出反應
困難之處在於回應沒有事先寫好的輸入。玩家輸入「我把提燈扔向繩橋」。系統必須判斷:物品欄裡真的有提燈嗎、繩橋在射程內嗎、火會影響繩索嗎、接下來會發生什麼。純文字遊戲主持人可以把這一切都描述出來。具空間性的遊戲主持人則還必須把它運算出來,因為繩橋的幾何形狀與提燈這個拋射物都實際存在於場景中。
反應迴圈是:把意圖解析成一個結構化行動,對照狀態與規則進行驗證,套用效果,再根據產生出來的狀態生成敘述。把意圖解析成結構化格式,正是讓世界保持一致的原因。沒有結構化行動、只有自由文字的敘述,正是團務變得鬆散無力的地方。
AI 地下城主對上人類遊戲主持人
誠實的比較,是在看哪一方在哪個面向上勝出,因為它們根本不是同一種工具。人類遊戲主持人更擅長讀人。AI 遊戲主持人更擅長永遠不累,也永遠不需要看行事曆。大多數團夥應該兩者並用,而不是二選一。
下表列出實際上主持團務時,兩者真正不同的地方,這是根據實際帶過兩者得出的。準備時間、臨場發揮、一致性,以及桌前氣氛,是實務上真正重要的四個面向。
| 面向 | AI 遊戲主持人 | 人類遊戲主持人 |
|---|---|---|
| 準備時間 | 團務開始前為零。世界在團務開始時,依一組種子與一條難度曲線生成。 | 若要帶得好,每場團務得花上數小時。地圖、NPC、遭遇、備用方案筆記。 |
| 臨場發揮 | 在世界模型之內很強。超出模型則很弱——若行動沒有空間或規則依據,就會拒絕或產生幻覺。 | 最強的資產。能當場憑感覺發想出整個派系。 |
| 一致性 | 高。跨團務維持相同的狀態、相同的規則、相同的 NPC 記憶。不會忘記上週發生過什麼。 | 不一。取決於筆記、記憶力與精神狀態。往往既是精彩故事的來源,也是連戲錯誤最嚴重的地方。 |
| 桌前氣氛 | 對團體氣氛的貢獻低。沒有笑聲、沒有節奏感、無法察言觀色。適合單人或非同步遊玩。 | 高。對許多團夥來說,社交層面才是重點。 |
| 規則公平性 | 確定性。同樣的擲骰、同樣的結果,且會留下紀錄。 | 取決於遊戲主持人的心情與故事走向。可以為了戲劇效果而偷偷放水。 |
| 最擅長 | 單人團務、零碎時間遊玩、測試各種配置、為兩個不同角色帶同一座地下城。 | 長期戰役、角色弧線,以及玩遊戲同時也為了相聚的團夥。 |
玩一場團務
真正的證明是一場團務,而不是一段示範。一場團務要有目標、有會回應你的角色,還有至少一個能用不只一種方法解決的障礙。以下這些 Neta Studio 世界,現在就能在瀏覽器中以 AI 遊戲主持人的形式開團。
每一款都從一個明講的目標開始。你不會被丟進一個毫無頭緒的沙盒;你會被賦予一個行動的理由,以及一群會對你所做所為有所回應的 NPC。AI 遊戲主持人會對照目標追蹤你的進度,並據此調整 NPC 的行為。
- The Cyclops' Island一座單島團務,目標明確:離開這座島。獨眼巨人有巡邏路線與睡眠週期。你可以與牠戰鬥、偷牠的東西、引誘牠,或完全避開牠。AI 遊戲主持人會追蹤牠是否見過你,並在之後的遭遇中調整牠的行為。
- Mini World一個為短時遊玩而設計的較小團務世界。適合用來測試 AI 遊戲主持人如何處理緊湊的狀態空間:更少的 NPC、更少的物品、更快的回合。當你想在不看大地圖的情況下清楚觀察迴圈時很有用。
- Agent Sprite Forge賦予 NPC 在世界中視覺存在感的角色與精靈系統。當 AI 遊戲主持人為 NPC 配音時,Sprite Forge 會提供頭像與動畫狀態,讓對話與肢體語言保持同步。
- 3D 遊戲建構器用來組裝世界的編輯器。你放置幾何、定義 NPC 人格設定、設定難度曲線,並以種子決定配置。AI 遊戲主持人運行在你打造的世界之上。
01
在瀏覽器中開啟一個團務世界。第一次玩不需要安裝,也不需要帳號。
02
閱讀明講的目標。它會告訴你 AI 遊戲主持人正在追蹤什麼。
03
和一個 NPC 交談。他們的反應取決於狀態,而不是固定的腳本。
04
用一種方法嘗試某個障礙。若失敗,世界就會改變——警衛被驚動、一條路被封閉、一件物品被消耗。
05
用另一種方法嘗試同一個障礙。AI 遊戲主持人會透過相同的規則裁定,並寫入新的狀態。
06
結束團務。若你繼續玩,接下來的團務就會從這份狀態開始。
純文字型 AI 遊戲主持人為何會崩壞
純文字的 AI 遊戲主持人沒有幾何。這就是問題的全部。當你輸入「我爬牆」時,沒有牆有高度、沒有玩家有攀爬速度、失敗也沒有任何後果。模型產出一句看似合理的句子,然後繼續下去。團務在前幾回合感覺還行,接著就變得空洞,因為你所做的任何事都無法以真正改變空間的方式失敗。
玩家最先察覺的症狀,是距離不再重要。你可以「跑到房間的另一頭」,而這不花任何代價。不論柱子存不存在,你都可以「躲在柱子後面」。模型是在生成描述,而不是在模擬一個空間。二十分鐘後,玩家就不再嘗試有創意的行動,因為他們已經學到,有創意的行動沒有任何機制上的份量。
當世界是真實的 3D 空間時,情況就不同了。牆有以世界單位計的高度。玩家有攀爬速度。這次嘗試不是成功、失敗,就是部分成功,而結果會被寫入狀態。AI 遊戲主持人根據裁定出來的狀態敘述,而不是憑空捏造。失敗是可能的,而這正是讓成功具有意義的原因。
第二個崩壞點是記憶。純文字遊戲主持人把整個世界塞進一個詞元視窗裡。團務一旦超過某個長度,早期的事實就會掉落,模型便開始自相矛盾。具空間性的世界把狀態外部化。AI 遊戲主持人不需要記得門是鎖著的;門這個物件本身就有一個上鎖旗標。這就是為什麼具空間性的世界,比純聊天式世界更能撐過更長的團務。
AI 大型多人線上與多人世界
大型多人線上角色扮演遊戲製作工具的用途,是一個持久的共享世界:眾多玩家、一份標準狀態,即使你離線,團務仍持續進行。AI 遊戲主持人仍然執行那四件事,但現在是對照共享狀態來執行,這就帶來了單人世界沒有的兩個問題。
第一個是共享狀態。如果兩名玩家在同一個城鎮,其中一人燒掉了酒館,另一人必須看得見。這表示 AI 遊戲主持人不能為每名玩家各自保存狀態;它保存一份世界狀態,而每個用戶端都從中讀取。失效模式是衝突:兩名玩家在同一個時間刻度試圖搜刮同一個寶箱。你需要一個提交順序與一道鎖,否則其中一名玩家的行動會默默覆蓋另一人的。
第二個是內容審核。一個從玩家輸入生成 NPC 對話的 AI 遊戲主持人,終究會生成玩家不該看到的內容,或是玩家會利用輸入管道製造出這類內容。在共享世界裡,這不是個人問題,而是所有人的問題。實務上的答案是:對生成的文字加上過濾器、提供一條檢舉管道,以及對輸入管道施加每名玩家的速率限制。
共享狀態
維持一份具權威性的世界狀態。用戶端傳送的是意圖,而不是狀態。伺服器對照當前狀態驗證該意圖,套用效果,並廣播變化量。如果你讓用戶端直接寫入狀態,幾分鐘內就會出現不同步與重複。AI 遊戲主持人從具權威性的狀態讀取,因此它的敘述對該區域內的所有玩家都一致。
對於持久世界,狀態必須能在伺服器重新啟動後留存。以固定間隔為世界建立快照,並在快照之間寫入變化量。從最後一份快照重播變化量,就是你從當機中復原、而不必把整場團務回溯的辦法。
內容審核
有兩個介面需要它:生成的對話與玩家的輸入。生成的對話在廣播前會先通過內容過濾器。玩家的輸入在接受速率限制並過濾後,才會送達 AI 遊戲主持人。把輸入與生成的輸出一起記錄下來,這樣你在審查檢舉時,就不必憑空猜測發生了什麼。
AI 遊戲主持人也應該有一條硬性的拒絕路徑。如果某個行動超出世界模型或內容政策,遊戲主持人會以角色內的身分婉拒,並提出替代方案。留在故事虛構之中的拒絕,比一則系統錯誤訊息更不干擾體驗。
Roguelike 與地下城生成
Roguelike 需要兩件彼此拉扯的事:一座每輪玩起來都不一樣的地下城,以及一座每輪都公平的地下城。兩個面向都隨機會產生不公平的輪次。兩個面向都固定則會產生無聊的一輪。解法是把面向拆開:用種子決定配置、固定難度曲線、變化外觀裝飾。
用種子決定配置,是指房間圖、走廊連接與關鍵物品的位置都由一組種子生成,因此同一組種子永遠產生同一座地下城。這讓每一輪都可重現、便於除錯,也讓你可以在同一張地圖上比較兩個版本。固定難度曲線,是指每個深度的遭遇預算是一個常數,而不是隨機抽取。變化外觀裝飾,是指圖塊組、敵人外觀與戰利品表可以每輪不同,但不改變那條曲線。
AI 遊戲主持人以地下城主的身分坐鎮其上。它讀取生成的圖、在房間裡配置人格設定與其位置相符的 NPC,並在遊玩期間執行規則。生成是確定性的;團務則不是。
01
挑一組種子。配置產生器會依它產生一張房間圖。
02
套用難度曲線。每個深度都有固定的遭遇預算,而不是隨機的。
03
在房間裡配置內容。NPC 的人格設定依房間角色指派——警衛、商人、首領。
04
變化外觀裝飾。圖塊組、敵人外觀與戰利品表都從每輪的調色盤中抽取。
05
把這張圖交給 AI 遊戲主持人。它會對照這張圖與規則裁定器來主持團務。
06
記錄狀態變化量。如果某一輪感覺不公平,就重播該種子,並檢查出問題的那個深度的預算。
自己動手打造一個
最小可玩的 AI 遊戲主持人團務需要四樣東西:一個有幾何的世界、一個有人格設定的 NPC、一個有兩種解法的障礙,以及一個能在回合之間保存的狀態儲存區。就這樣。規則、美術與難度曲線都可以之後再加。如果你先打造這四件式的版本,就會在問題還很容易修正的時候,提早發現迴圈上的毛病。
從一個房間和一名警衛開始。這名警衛有名字、有守在這裡的理由,以及一條規則:不會離開這扇門。障礙就是那扇門。你可以與警衛戰鬥、引開他們,或找到一把鑰匙。每條路徑都會寫入不同的狀態旗標。如果 AI 遊戲主持人能主持這個房間,並在十個回合內不自相矛盾,你就有一場團務了。
從那裡開始,加入能夠擴展的部件:更多帶有記憶緩衝區的 NPC、一個會記錄擲骰的規則裁定器、一個以種子驅動的配置產生器,最後如果你想要多人遊玩,再加上共享狀態。每一項新增都有特定的失效模式可供你測試。先打造最小的東西、刻意弄壞它,再從那裡擴展。
- 3D 遊戲建構器用來放置幾何、定義 NPC 人格設定、設定難度曲線的編輯器。這就是組裝出 AI 遊戲主持人所運行之世界的地方。
- Generator地下城式世界的配置與內容產生器。它接收一組種子與一條難度曲線,產生一張配置完成的房間圖,供 AI 遊戲主持人使用。
- Agent Sprite Forge為 NPC 提供視覺層,讓 AI 遊戲主持人為角色配音時,對話與肢體語言保持同步。
- The Cyclops' Island完整迴圈的一個實作範例:明講的目標、會反應的 NPC、有多種解法的障礙。當你做的東西行為不如預期時,可作為參考範本。
走進它所屬的世界
評斷一個遊戲主持人的唯一方法,就是玩一場團務。開一場試試:一個小世界,裡頭四個角色各自給你一些事做,而障礙會依你應對的方式做出反應。它和本網站上的一切都是同樣的做法打造出來的——從一段描述開始,發佈成一個頁面。
回到 3D 遊戲建構器
全部 31 個完成的 3D 世界、遊戲與場景都在同一頁上——每一個都可遊玩。