Metlivi 部落格

AI 遊戲記憶是否應跨章節保留?關於保留與重設內容的實用設計

對於分章節遊戲而言,只有當 AI 記憶代表遊戲後續需要用到的持久事實時,才應跨越章節邊界。將玩家的承諾、已確立的關係以及確認的世界事實保存在結構化的編寫記錄中。讓 AI 檢索該記錄中少部分相關的視角,以及任何特意保留的回憶。除非下一章明確需要,否則重設特定場景的上下文、臨時目標和即時細節。遊戲的存檔狀態應保持權威性;生成的對話可以描述它,但不應靜默改寫它。

2026年9月30日6 min read閱讀、藝術與文化作者:Metlivi Editorial Team
第 1 節

將持久正史與場景記憶分開

「記憶」可以指代不同的事物:事件的記錄、對這些事件的摘要或詮釋,以及遊戲視為真實的事實。將它們混為一談會使章節過渡難以推導。例如,一個角色可能聽到了某個謠言,但僅僅因為 AI 自信地回憶起它,該謠言就不應自動成為已確認的世界事實。

一種實用的設計是保留兩個相關的層級。第一層是遊戲擁有的正史狀態:結構化事實,例如 promised_to_return: true、gave_map_to: Mira 或 bridge_status: repaired。這些是透過遊戲規則或明確的編寫來保存和更改的。第二層是 AI 檢索視角:提供用於塑造回應的精選事實、記憶和當前場景上下文。這個視角可以簡潔且針對特定角色,而不會成為存檔檔案本身。

此建議是一種架構上的推論,並非任何單一引擎所保證的功能。敘事腳本系統已經能將可以在整個故事中讀取的全域變數與作用域較窄的暫存值區分開來;例如,Ink 分別記錄了全域變數和暫存變數。其執行階段還提供了序列化和還原故事狀態的方法。這些功能提供了一個有用的模型:審慎地表示狀態,然後決定每個值需要什麼作用域和持久性。Ink 的變數與邏輯文件以及 Ink 的執行階段保存與載入文件

第 2 節

決定什麼內容有資格進入跨章節記錄

對於每個候選記憶,請捫心自問:後續的場景是否會正確依賴此事實,並且是否有明確的遊戲事件或編寫的規則可以證實它?如果是,請考慮將其存儲為持久狀態。玩家為同伴選擇的名字、已完成的承諾或是否打開了大門,只要故事後續會用到,都可以符合條件。只要底層事實能夠清晰表達,就應存儲值及其作用域,而不是無邊界的對話記錄。

實用的記錄可以標識主體、事實、來源事件和持久化作用域。例如:subject: Mira;fact: player shared the map;source: chapter_2_choice_14;scope: campaign。來源事件有助於解決分歧:如果後續生成的台詞聲稱玩家交出了地圖,但記錄的選擇表明並非如此,遊戲可以優先採用事件記錄。此架構僅為設計建議,並非所引用工具強制要求的格式。

將不確定或未經證實的內容區分開來。「守衛懷疑玩家拿走了鑰匙」和「玩家拿走了鑰匙」是不同的事實。在章節結束後,角色可能會記住這種懷疑,而正史世界記錄仍顯示鑰匙留在原來的位置。如果後續對話需要保留這些區別,請使用諸如謠言、觀察、推論和已確認事件等標籤。

第 3 節

重設屬於當前場景的內容

場景狀態通常包括當前對話主題、臨時目標、最近幾次交流、局部佈置以及短暫的細節(例如當前哪扇門是開著的)。這些細節可能有助於 AI 回應下一句台詞,但它們很少需要成為戰役記憶。在離開場景時清除它們,或從下一個場景的編寫設定中重新構建它們。

邊界之所以重要,是因為持久性具有不同的意義。Unity 的數據持久化教學區分了單次會話期間在場景之間跟隨玩家的數據與跨會話保存和還原的進度;它還指出,除非遊戲將其帶到下一個場景,否則在移動到另一個場景時通常會丟失場景創建的數據。因此,章節過渡是一個經過深思熟慮的轉移決定,而不是自動保留每個活動值的理由。Unity Learn:實現場景間的數據持久化

嘗試四步驟的過渡流程:敲定已確認的章節事件;更新正史戰役記錄;捨棄臨時場景上下文;然後根據下一章的編寫設定加上相關的持久事實,構建其 AI 上下文。這可以限制陳舊的細節洩漏到新場景中,同時保持故事明確支援的連續性。

第 4 節

保持編寫的存檔狀態具權威性

在章節開始時,將當前狀態作為唯讀上下文提供給 AI,用於旁白和對話。如果玩家的行為可以改變持久事實,請讓遊戲根據自身規則驗證該行為,並透過常規的狀態變更途徑更新存檔記錄。將模型輸出視為建議的台詞或動作,而不是事件已發生的證明。這種分離是基於區分存檔狀態與生成文字的需求而提出的設計建議;應在遊戲自身的架構中實現和測試。

敘事研究中有一個有益的先例:Generative Agents 論文描述了存儲經驗、合成反思以及動態檢索選定記憶以指導行為的過程。這支援利用檢索和合成來塑造代理所考慮的內容。但它並不能證明生成的記憶應該成為正史遊戲狀態。這種區別很重要:摘要可以作為有用的上下文,但同時仍然是可以修改或不完整的。Park 等人,《Generative Agents: Interactive Simulacra of Human Behavior》

為了實現可重現的存檔,請保留遊戲的結構化事實以及遊戲恢復運行所需的故事執行階段狀態。Ink 的執行階段文件演示了將故事狀態序列化為 JSON 並再次載入的過程。為了方便起見,也可以存儲生成的摘要,但在載入時請根據結構化記錄進行重建或檢查;不要讓陳舊的摘要推翻較新的已存檔選擇。Ink 執行階段:保存與載入

第 5 節

讓邊界對玩家可見

玩家不需要看到內部記憶結構,但他們應該能夠理解哪些選擇延續到了後續章節。在劇情中自然展現後果:同伴記起了地圖,或者後續場景反映了早先的承諾。當存檔或章節回顧提供了合適的版面時,用通俗易懂的語言總結一些具有後續影響的確認事實。避免暗示每一句即興台詞都已成為永久的正史。

當遊戲提供糾錯方式時,為玩家提供糾正重大錯誤的途徑:重新載入存檔、重新審視決定或使用明確的糾正互動。如果 AI 角色記錯了某些事情,對話不應強迫玩家接受該錯誤作為新的世界事實。是否存在此類修正選項屬於產品決策,但底層原則是一致的:記憶中的說法與保存的事件不可互換。

第 6 節

用具體案例測試章節過渡

圍繞遊戲實際追蹤的事實建立一個小型的過渡檢查清單。對於每個案例,檢查存檔記錄以及章節變更後提供的 AI 上下文。

已確認的玩家選擇會持久存在,並能在編寫內容用到它的下一章中發揮作用。

謠言或角色推論仍被標記為不確定,而不是成為已確認的事件。

臨時場景目標和最近的對話細節會消失,除非下一個場景明確需要它們。

新載入的存檔會還原相同的正史選擇,即使 AI 先前生成了矛盾的文字。

沒有相關聯繫的新章節不會僅僅因為無關記憶的存在就接收它們。

這些檢查是提出的診斷方法,而非實驗報告。它們使發現兩種常見缺陷變得更容易:連續性丟失(持久事實消失)和記憶洩漏(舊場景細節出現在本應重設的環境中)。當兩者之一發生時,在嘗試用更長的提示詞來修復之前,請先檢查持久化作用域和上下文建構步驟。

第 7 節

章節記憶的精簡準則

當編寫的遊戲能夠命名某個事實、確認其來源並為其定義後續用途時,就對其進行持久化。當個人回憶能增加角色色彩或連續性時,將其保留為檢索上下文,同時保留不確定性和出處。在邊界處重設場景局部狀態。在每個階段,讓保存且編寫的遊戲狀態決定什麼是真實的;讓 AI 記憶幫助角色對該真實事實做出回應。

相關閱讀

繼續探索這個主題