- title
- 原生 MOD 生態:穩定 API、版本相容與 AI 輔助遷移
- english_title
- Native Mod Ecosystems: Stable APIs, Version Compatibility, and AI-Assisted Migration
- series
- AI 原生互動企業論
- series_en
- AI-Native Interactive Enterprise
- series_id
- ANIE
- paper
- 05
- part
- 第二部:玩家與外部開發者共創
- author
- Neo.K
- institution
- 一言諾科技有限公司(EveMissLab)
- research_assistance
- GPT-6(資料核對、理論建模、反例分析、工程契約、研究協議與原始碼驗證)
- version
- v0.1
- date
- 2026-10-16
- language
- zh-TW
- status
- Public Working Paper / Conceptual and Methodological Study / Not Peer-Reviewed
- canonical_source
- UTF-8 Markdown
- math_delimiters
- $...$ and $$...$$ only
- research_status
- Conceptual model, technical proposal and test protocols; no production deployment or controlled experiment claimed
- external_sources_checked
- 2026-10-16
- related_papers
- ANIE-00 — 從產品黑盒到 AI 原生互動企業 · ANIE-01 — 從 EA 到持續交付 · ANIE-02 — 季度單機產品制 · ANIE-03 — 可繼承的遊戲產品 · ANIE-04 — 玩家—開發者相交域 · ANIE-06 — 商業遊戲也可以 PR(後續研究) · ANIE-07 — 跨平台產品公開資訊樞紐(後續研究) · ANIE-09 — 公開決策帳本(後續研究)
原生 MOD 生態:穩定 API、版本相容與 AI 輔助遷移
Native Mod Ecosystems: Stable APIs, Version Compatibility, and AI-Assisted Migration
《AI 原生互動企業論》ANIE-05|第二部第二篇|工作論文 v0.1
作者:Neo.K|機構:一言諾科技有限公司(EveMissLab)
研究協作:GPT-6|日期:2026-10-16
機構: 一言諾科技有限公司(EveMissLab)
日期: 2026-10-16
版本: v0.1
摘要
商業單機遊戲的 MOD(modification)長期面臨一種矛盾:官方更新提高作品品質,卻可能破壞第三方擴充;玩家已投入的存檔、規則調整、語言包、內容包與多年社群創作,會因隱藏 API、反射掛鉤、資料格式變更、載入順序或遊戲引擎更新而失去效用。遊戲公司若單純要求 MOD 作者自行跟進更新,便把官方產品演化的一部分成本外部化;然而若反過來要求官方永遠保持任意非官方掛鉤可用,也可能使遊戲難以修正錯誤、重構系統或維持安全。本研究拒絕兩種極端,轉向「把 MOD 從事後容忍的修改行為,提升為產品初始架構中可預先定義、可驗證、可演化的擴充關係」。
本文提出「原生 MOD 生態」(Native Mod Ecosystem,NME)、「穩定擴充契約」(Stable Extension Contract,SEC)、「多軸相容關係」(Multi-Axis Compatibility Relation,MACR)與「AI 輔助 MOD 遷移閉環」(AI-Assisted Mod Migration Closure,AAMC)。核心主張是:MOD 可持續維護性並不是單一遊戲版本號、資源載入器或自動改寫工具的屬性,而是公開擴充介面、資料語義、依賴解析、世界狀態、存檔格式、資安信任、發行渠道、法律授權與社群決策共同作用的結果。遊戲核心可以保有私有商業授權,仍能提供具有明確版本、權限與測試工具的外部 SDK;同時,官方應盡可能先使用這些對外契約來開發自家的資料驅動模組,避免官方與玩家實際使用兩套互不相容的擴充路徑。
2026 年 1 月,Valve 公布 Steam Workshop 的新版版本控制能力;官方文件描述,開發者可維護有序的遊戲分支,MOD 作者可標示其版本支援的遊戲分支區間,玩家在特定版本上可取得相應 MOD 版本。[E01][E02] 此能力實際改善發行與版本選擇,卻不構成「載入成功就是行為正確」的保證。Godot 官方則提供 PCK/ZIP 資源包、執行期載入與增量修補,並明確提醒任意程式碼、檔案覆蓋、載入順序及不可信來源的安全風險。[E03] 本研究利用這些現有技術作為可實作基礎,但不將其功能宣傳成遊戲引擎已內建完整的安全 MOD 平台。
對 AI 的定位亦採取嚴格限制:AI 可擷取合約差異、理解授權允許範圍內的 MOD 程式、生成候選補丁、編排遷移計畫、補寫回歸測試與協助更新文件;但模型聲稱已相容、靜態分析通過、遊戲可啟動、內容未報錯、真人實際接受是互不等價的證據層。涉及刪除世界物件、覆寫存檔、提升腳本權限或改變遊戲經濟的修改,必須接受更嚴格的證據與授權門檻。
全文將建立相容性分層、不變量、版本多維向量、資料格式與 SDK 契約、MOD 依賴圖、存檔遷移流程、AI 遷移管線、供應鏈風險控制、公開更新制度及經濟與社群治理指標。另提出十二項可反駁假說、對照組實驗、失敗案例、分階段 MVP 與可供後續專案使用的 Manifest/Schema/CI 規格草案。本篇屬概念與方法論工作論文,不宣稱 EveMissLab 已完成正式 MOD SDK、Steam Workshop 生產整合或跨版本遷移實測。既有的 SEDB-GAME × ModWorld 研究提供遊戲語義與 MOD 生成背景;本文聚焦官方遊戲與第三方創作的長期相容契約,而非重新提出 MOD 生成引擎。[I05]
關鍵詞: 原生 MOD、生態維護、穩定 API、SDK、語義相容、資料格式、版本分支、存檔遷移、AI Agent、可驗證修補、依賴圖、插件安全、Steam Workshop、Godot、社群協作、商業遊戲、可繼承產品。
0.問題重定義:為什麼官方更新會成為 MOD 作者的災難?
0.1 從玩家創作到產品維護共同體
MOD 的外部價值不只是讓遊戲新增衣服、立繪、翻譯或任務。對於複雜的模擬、策略與角色扮演遊戲,玩家可能透過 MOD 建立新的建築系統、戰鬥規則、經濟模組、AI 行為、地圖算法與使用者介面。當這些內容累積,玩家實際遊玩的世界便不再等於「官方原版」,而是官方資產、更新、DLC、配置、MOD 及個別存檔的組合狀態。這一點已在 SEDB-GAME × ModWorld 的「有效遊戲世界」模型中有明確前置研究。[I05]
但是許多擴充仰賴並未承諾穩定的檔名、內部類別、遊戲物件生命週期、序列化路徑或非公開函數。官方更新只要改動一個依賴點,外部創作者就必須重新排查。修正成本高時,作者可能停止維護;若玩家又缺乏版本保留選項,就可能在遊戲本身持續改進時失去原本的遊玩世界。
此處至少有三個不同的產品:
- 官方遊戲本體: 公司承諾支援的基本功能與核心內容。
- 外部 MOD 產品: 社群創作者自主提供、具有不同權利與品質條件的擴充。
- 組合後的玩家遊戲世界: 在特定遊戲版本、MOD 集合、載入順序、設定與存檔共同作用下形成的有效執行狀態。
前兩者可各自通過測試,但第三者仍可能失敗。這是原生 MOD 生態必須處理的首個因果缺口。
0.2 初始架構決策會決定未來的維護債務
若遊戲在製作後期才加入 MOD 功能,內部物件可能早已彼此緊密耦合。此時才公開外掛入口,往往只是在已有龐大耦合面的系統上增加一層臨時轉接;所謂 MOD SDK 可能僅是將部分不穩定內部結構交給玩家直接使用。
如果從 MVP 就先分出資料表、事件契約、狀態查詢與受控動作介面,遊戲即使只有少量可玩內容,也已擁有可以逐步擴充的技術邊界。這不代表第一天必須完成 Workshop、視覺編輯器或全面腳本權限;先建立邊界,後完善工具,是本篇對短週期產品的實際建議。
0.3 主要命題與對立命題
主命題 P0: 對持續更新且具有實際 MOD 需求的商業遊戲,若在初始開發期建立明確的擴充契約、版本適配、相容性測試與安全的資料/程式隔離,則相較於直接依賴未公開內部結構的 MOD 生態,可在不必公開商業核心原始碼的前提下,降低跨版本重工率與玩家有效世界損失風險。
反命題 C0: 若穩定 API 的維護成本超過節省的外部相容成本,或公開介面限制核心重構、惡化效能、安全與遊戲完整性;又或 AI 遷移引入新的難以偵測語義錯誤,使跨版本失敗率上升,則應收斂 NME 的適用情境。沒有明確 MOD 需求的極小型作品,可能只需要資料包或不需要外部腳本擴充。
0.4 本篇與相鄰研究的分工
- ANIE-03 討論原開發者離開後,遊戲產品如何由合法受權的接手者繼續維護。本篇研究第三方 MOD 與官方核心持續相容的條件。
- ANIE-04 討論玩家與開發者的需求相交域;本篇使「由玩家自己實作另一種解法」成為具有技術與治理邊界的選項。
- ANIE-06 將深入外部 PR、收費合作、MOD 正式收錄、權利與報酬;本篇只建立 MOD 在技術上可以被驗證並合法使用的最低條件。
- ANIE-07/09 將研究外部資訊平台與公開決策帳本;本篇只定義它們應揭露的相容性、修復、遷移與版本事件。
- SEDB-GAME × ModWorld 處理跨遊戲語義、有效世界與 MOD 生成;本篇的問題是官方如何在產品變動時仍履行對外擴充契約。[I05]
1.既有研究、產業機制與本研究的新增範圍
1.1 Godot 提供資源包,卻不替遊戲設計擴充治理
Godot 官方的「Exporting packs, patches, and mods」文件確認:PCK/ZIP 可載入腳本、場景、著色器、模型、音訊及其他資產,也可在不公開整個商業遊戲原始碼的條件下提供 MOD;但遊戲開發者必須自行規範外部內容的檔案結構與所需介面。[E03] Godot 的 ProjectSettings.load_resource_pack() 可載入外部資源包;若路徑與既有資源相同,預設可能覆蓋原資源,因此載入順序與命名空間特別重要。官方也明白指出下載惡意 MOD 或被替換的 PCK 具有安全風險。[E03]
不能推論: 選用 Godot 就自然得到 MOD 沙盒、保證版本相容、完整圖形化 MOD 工具或自動遷移功能。這些仍是遊戲自身的架構與產品責任。
1.2 Steam Workshop 的 2026 年版本控制是重要基礎設施
Valve 於 2026 年 1 月 8 日宣布 Workshop 新版 MOD 版本控制功能。Steamworks 官方文件記載,搭配 Steamworks SDK 1.60 相關能力,遊戲可建立有序的舊版本與測試分支,工作坊物件可為不同 MOD 版本指定支援的遊戲版本區間;玩家留在舊遊戲版本時,系統可選擇相對應的 MOD 內容。[E01][E02]
這解決一個重要的發行選擇問題,但仍不表示系統已知道 MOD 是否真的能完成任務。例如版本相容區間由作者或上傳器設定,可能尚未充分測試;兩個 MOD 都各自支援同一分支,也不代表兩者合用時沒有衝突。若未指定區間,Steam 文件指出系統會假定該版本支援所有遊戲分支;這是發布上的預設假設,而不是科學上的相容證明。[E02]
因此 NME 必須建立比「可下載」更高階的執行、語義、存檔及使用者接受證據。
1.3 SemVer 提供穩定 API 的溝通慣例
Semantic Versioning 2.0.0 以 MAJOR.MINOR.PATCH 區分破壞相容、向後相容新增與向後相容修補,其基礎前提是軟體先定義了公開 API。[E04] 這對 MOD SDK 特別重要:沒有明確的外部介面,就無法一致判斷何謂破壞性變更。
不過 SemVer 是版本宣告慣例,不是自動化證明系統;更不能把遊戲本體版本、世界存檔格式、Steam 分支、SDK 契約和 MOD 發行版全部視為相同的版本號。
1.4 JSON Schema 等格式可構成可機器檢查的契約
JSON Schema Draft 2020-12 提供 JSON 結構與驗證的規範,可用於模組 Manifest、資料資產及欄位要求。[E05] 但資料符合 Schema 只意味著形式上通過相關約束,不意味著世界規則必然正確。例如傷害倍率是有效數值,不代表它不會讓戰鬥平衡崩潰。
因此本文至少區分:結構合法性、跨版本相容性、遊戲語義有效性、使用者體驗可接受性四個不同層級。
1.5 MOD 創作涉及著作權與社群制度,而非只有技術
關於玩家對遊戲 MOD 的權利,2021 年《Computer Law & Security Review》的研究已從玩家創作與著作權的張力討論 MOD 社群,指出廠商對不同種類變更的容忍與支持,受到法律以外的社會經濟因素影響。[E06] 本文不主張特定國家對所有 MOD 擁有同一種法律結論;也不以「MOD 作者免費發布」推論公司取得商業收錄權。
1.6 安全、供應鏈與資料來源證據已是成熟議題
NIST SP 800-218 的 SSDF 描述可融入軟體生命週期的安全開發實務。[E07] OpenSSF SLSA 進一步提供建置來源(provenance)等供應鏈完整性設計。[E08] OWASP 的 CI/CD 安全指引亦提醒外部插件與整合會擴大攻擊面,須進行審查、限制權限與持續管理。[E09] NME 可以借用此類安全治理原則,卻不把商業遊戲安裝 MOD 的場景,誤稱為等同於企業 CI/CD 環境。
1.7 需要明確區分既有技術與本篇提案
| 已存在的外部能力 | 本篇希望再補上的制度 |
|---|---|
| Godot PCK/ZIP 載入 | 穩定 MOD 合約與可驗證載入邊界 |
| Steam Workshop 版本選擇 | 多軸相容與內容語義證據 |
| Steam Beta/Branch | 版本前瞻、遷移窗口與回退程序 |
| SemVer | SDK/資料/存檔各自版本紀律 |
| JSON Schema | 跨版本遷移與世界規則驗證 |
| SLSA/SSDF | MOD 包來源、AI 修改與權限控制 |
| 玩家 MOD 社群 | 參與、相容性承諾、資訊回饋與後續合作 |
故 NME 的新意是整合與可驗證的營運制度,不是聲稱發明資源包、套件管理、版本控制或 MOD 本身。
2.核心術語與原生 MOD 生態的定義
2.1 原生 MOD 生態(NME)
定義 1。 原生 MOD 生態是一套在官方產品的設計、發行、更新和維護過程中,將外部擴充視為可預期產品使用情境的技術及制度安排。其最低要求包含:
- 有清楚描述且可版本化的外部擴充入口;
- 有可以獨立創作、載入、停用與移除 MOD 的程序;
- 有版本支援宣告與基本驗證方法;
- 有處理相依、衝突與載入順序的規則;
- 有存檔與世界狀態風險管理;
- 有可說明的安全、授權及外部責任界線;
- 有官方更新與社群作者事前溝通、事後修復的渠道。
這個定義不要求每一款遊戲都開放任意程式碼執行,也不要求遊戲本體完全開源。
2.2 穩定擴充契約(SEC)
定義 2。 SEC 是官方在指定支援期限、SDK 版本、功能範圍、權限及平台條件下,對外提供的可觀察介面與相容性承諾。
它不只是一份 API 清單,至少應明確說明:輸入/輸出、事件時機、錯誤回報、資料格式、行為不變量、權限要求、棄用期限、測試方式、已知限制、何時不承諾相容,以及契約違反的申報程序。
原則: 「穩定」表示變更具有受控的契約與遷移政策,不等於所有 API 永不變動。
2.3 擴充權限與創作權並非同一層
- 技術擴充權限: 插件能夠查詢哪些資料、註冊哪些事件、要求哪些世界變更。
- 智慧財產授權: MOD 作者是否能合法使用官方素材、第三方模型或其他創作。
- 公司整合權限: 官方可否把 MOD 納入正式遊戲、DLC 或其他商業產品。
- 玩家選擇權: 玩家可否停用某個 MOD、保持舊版本、撤回某次存檔遷移。
四者有關但不相等。即使某 MOD 通過 CI,也不能因此獲得正式收錄、銷售或重新授權的法律資格。
2.4 三種典型 MOD 信任等級
| 層級 | 內容形式 | 權限與風險 | 建議預設 |
|---|---|---|---|
| T0 資料型 | 字串、表格、圖片、受限地圖描述 | 仍可能造成資源耗盡或內容風險,但原則上不包含任意程式碼 | 允許於受限解析器中啟用 |
| T1 宣告式規則型 | 受控事件回應、規則 DSL、沙盒規則節點 | 可能改變遊戲經濟與世界狀態;應有配額與權限檢查 | 限制能力並留下操作日誌 |
| T2 原生程式型 | GDScript、C#、DLL、原生動態函式庫等 | 視執行環境可能接觸檔案、網路或更多系統資源 | 明確告知高風險,不假裝已有安全沙盒 |
以上是本研究建議的風險分類,並非 Godot 或 Valve 官方的原生分級。若引擎腳本無可靠安全邊界,T1 就不能僅因被稱為腳本而宣稱受限;必須有真正的執行隔離與能力審查。
2.5 MOD 生態不能只用「可安裝 MOD 數量」衡量
MOD 數量增加,可能代表創作成功,也可能代表官方缺乏基礎便利功能、版本碎裂、低品質重複包或大量無人維護內容。因此本研究重點衡量的是跨版本有效可用的 MOD 及其玩家世界保存能力,不是把 Workshop 物件數視為唯一績效。
3.版本不是一條線:多軸相容關係(MACR)
3.1 版本向量
傳統使用者經常只看到「遊戲 v1.5」「MOD v2.1」兩個標籤,但實際相容性至少依賴:
其中:
- :官方遊戲版本/實際執行 Build;
- :對外 SDK/API 契約版本;
- :遊戲資料 Schema 版本;
- :存檔與世界狀態格式版本;
- :MOD 套件本身版本;
- :引擎與 Runtime 版本;
- :平台與載入路徑;
- :外部 MOD 組合、配置與依賴集合。
定義 3。 MACR 是判斷某組 是否能在給定環境、任務集合與安全政策下,維持指定的載入、執行、世界語義與存檔正確性的關係。
表示測試任務集合, 表示安全與權利限制。採三值邏輯的理由是:未測試的相容性應保持 UNKNOWN,不能默認 PASS。
3.2 相容不等於一個布林值
本文區分至少六層相容:
| 層級 | 要檢查的事項 | 典型錯誤 |
|---|---|---|
| L0 安裝相容 | 能下載、校驗、識別套件 | 漏檔或版本不符 |
| L1 載入相容 | 能解析檔案、載入資源、建立擴充點 | 找不到資源、初始化例外 |
| L2 介面相容 | API 呼叫、事件、欄位符合契約 | 函數簽名改變 |
| L3 行為相容 | 指定玩法、規則、任務仍達預期 | 傷害或 NPC 決策異常 |
| L4 狀態相容 | 已有存檔、世界因果與持久化狀態完整 | 某勢力消失、道具變成孤兒 |
| L5 使用相容 | 玩家實際使用不產生不可接受的回退 | 遊戲可跑但舊作品玩法毀損 |
L0 或 L1 PASS 不足以聲稱 L4 或 L5 PASS。同樣,一個 MOD 在全新遊戲存檔通過測試,也不足以證明舊存檔相容。
3.3 版本相容具有方向性
由舊遊戲升級新版、由新 MOD 回退舊版、由舊存檔轉新版,是不同方向的操作:
除非系統明確提供雙向且無資訊損失的轉換。對存檔 Schema 而言,某些欄位一旦合併、刪除或重新解釋,回退可能根本無法完整還原。因此需要備份及單獨的不可逆操作警告,而不能只依靠「我可以切換舊版遊戲」的選單。
3.4 支援區間是宣告,不是充分證明
假設一個 MOD 發布為 2.3.0,宣告支援 sdk >=1.3,<2.0、game >=1.4,<1.7;它仍可能在某些 DLC、存檔或其他 MOD 組合下出現衝突。應將「宣告支援區間」與「已實測的 Build 雜湊與案例證據」分別記錄。
本篇不要求枚舉所有理論上的 MOD 組合,因為對幾十個以上 MOD 進行全排列通常不可行;可以改以使用量、衝突結構、關鍵依賴及風險分級選擇測試樣本。
3.5 拆分版本號所增加的複雜性
版本向量並非免費:玩家若被迫讀取八個版本號,反而無法理解。對外 UI 應提供一個可讀摘要:「已驗證相容」「未驗證」「已知不相容」「需要轉換存檔」「請先備份」,詳細向量留在診斷與開發者工具中。
4.穩定擴充契約的最小組合
4.1 七類外部契約
一套可以長期維持的 MOD SDK,至少值得拆成以下七類:
- 資料契約 Data Contract: 遊戲資料如何描述、擴充、驗證與命名。
- 查詢契約 Query Contract: MOD 可以讀取哪些世界資訊,哪些欄位可保證穩定。
- 事件契約 Event Contract: 哪些狀態轉換會通知 MOD、順序與重入規則為何。
- 動作契約 Action Contract: MOD 如何提出變更,以及由誰檢查條件與權限。
- 狀態契約 Persistence Contract: MOD 專有資料如何存儲、版本化、清除和遷移。
- 資源契約 Asset Contract: 圖像、音效、模型、UI 版面與載入順序如何處理。
- 能力契約 Capability Contract: 對檔案、網路、運算時間與世界改動的授權及限制。
這些契約可以用不同技術實現,不應全部硬塞進單一腳本基底類別。尤其對高度數據驅動的單機作品,先把 Data/Event/Persistence 做好,可能比急著公開原生腳本擴充更有價值。
4.2 事件與動作必須分離
MOD 可以觀察到 OnTurnStarted,不代表它能任意改寫整個回合狀態。事件介面宜提供不變量保護的資料快照或受限查詢;狀態寫入則使用可驗證命令,例如 ProposeItemGrant、RequestSceneTransition 或 ProposeWorldRuleChange,由核心統一檢查。
這能降低「外掛直接寫資料結構」造成世界狀態破壞的可能,但不能保證所有受控命令組合都安全。核心仍需要交易式提交、配額、重放與長期測試。
4.3 契約同時描述負向承諾
穩定 API 不應只寫「本介面保證什麼」,也應寫「本介面不保證什麼」:
- 是否保證單一事件只觸發一次?
- 是否保證相同事件在同一個版本中順序一致?
- 是否允許 MOD 在回呼中遞迴請求狀態變更?
- 是否保證數值計算跨平台相同?
- 是否保證存檔中永久保留某種引用?
- 是否允許同時掛載多個覆蓋同一實體的擴充?
不寫出這些邊界,玩家就可能把當下實作細節誤認為官方承諾。
4.4 公開契約與私有實作可以共存
設計一個公開 SDK,不等於需要公布尋路演算法、生成世界模型、原始 NPC 決策系統或公司的內部 Agent 工具。公司可以公開 WorldReadModel、資料 Schema、事件合約及經審查的狀態變更命令,核心內部仍可持續重構。對外保證的是接口語義,不是所有內部實作。
然而保留核心私有也不是逃避授權義務。若使用第三方開源元件、引擎或 SDK,仍必須遵守其具體授權;不應把「商業核心私有」等同「所有外部資料與二次創作自動屬於公司」。
4.5 公開前先驗證 SDK 本身
至少提供:
- 一個可安裝的空白 MOD 範例;
- 一個資料型 MOD 範例;
- 一個受控事件型 MOD 範例;
- 至少兩個不同 SDK 小版本的相容性回歸;
- 清楚的錯誤輸出與文件連結;
- 第三方獨立作者在沒有內部知識的情況下完成一個小功能的測試。
若 SDK 只有公司自己的工程師知道如何使用,便不能僅因公開了函數名稱就稱為成熟擴充介面。
5.原生擴充的架構選擇:先分離,再授權
5.1 建議參考結構
Commercial Game Runtime [Private]
├─ World Simulation / Scheduler [Private]
├─ Transaction & Save Core [Private]
├─ Internal Rendering/AI Systems [Private]
├─ Public Extension Gateway [Stable Boundary]
│ ├─ Data Contract & Validators [Documented]
│ ├─ Query / Event / Action APIs [Documented]
│ ├─ Mod Identity & Permissions [Documented]
│ ├─ Version Adapter Registry [Versioned]
│ └─ Save Extension Registry [Versioned]
└─ Mod Runtime
├─ T0 Data Packs [Constrained Parser]
├─ T1 Restricted Rules [Constrained Runtime if implemented]
└─ T2 Native Code Plugins [Elevated Risk / Explicit Consent]
Authoring Toolchain [May Be Public]
├─ Template / SDK / Validator
├─ Package Builder / Manifest Generator
├─ Compatibility Test Harness
├─ AI Migration Candidate Workspace
└─ Publishing Adapters: Workshop / Other
此架構為本研究的建議方案,並非聲稱上述工具目前已由 EveMissLab 全部建成。
5.2 「官方自己也使用 SDK」的槓桿
較強的相容策略是:讓部分官方新增角色、地圖、道具與任務,也走同一套 Data Contract 與事件介面。如此官方更新就能與第三方 MOD 共享核心測試。這是「eat your own API」的工程原則。
但核心安全修復與內部不可替代能力無須強迫都從 SDK 走;若對外路徑過度限制核心,仍可能造成不必要的效能與架構負擔。因此應以模組類型選擇公開邊界,而非規定整個核心都必須使用外掛 API。
5.3 三個必要的工程隔離
- 識別隔離: 每個 MOD 有穩定的 ID、命名空間與資料所有者,避免互相覆蓋。
- 執行隔離: 低權限資料與高權限程式碼不能只靠副檔名或 UI 提示就宣稱安全隔離。
- 故障隔離: 單一 MOD 出錯時,應盡可能保存診斷、停用問題模組並讓遊戲回到可恢復狀態,而不是直接破壞主要存檔。
對於 Godot PCK,必須特別注意同路徑資源預設覆蓋行為與腳本可執行問題;若需要真正的權限限制,可能要自行設計受限 DSL、外部隔離程序或其他經驗證的安全邊界,而不是把 PCK 本身當作沙盒。[E03]
5.4 模組身分:內容指紋不等於作者身分
mod_id、版本、檔案摘要、簽章者與官方認證狀態,應分開保存。SHA-256 可以辨識下載檔是否與預期內容一致,但不自動證明該內容由可信作者製作;簽章可以幫助確認簽署者與檔案完整性,亦不自動證明程式無惡意。官方驗證應標示驗證範圍與時間,避免把「受驗證版本」無限外推到未來改版。
6.MOD 套件資料模型與可追溯身分
6.1 Manifest 不可缺席
最低要求可定義為:
identity: mod_id, mod_version, publisher
compatibility: sdk, game_builds, data_schema, save_schema
relationships: requires, optional, conflicts, before, after
capabilities: requested_permissions, runtime_level
artifacts: entrypoints, hashes, asset_namespace
provenance: source_revision, build_id, build_tool
rights: license_reference, asset_rights, author_contact_route
verification: test_profile, last_tested_build, evidence_links
這不是規定所有欄位對玩家可見。玩家應看到對安裝決策有用的摘要,工具、官方與作者則可讀取完整機器格式。
6.2 三種身分不得混同
mod_id:長期不變的作品或模組身分,適用於依賴與存檔引用。release_id:某次發行物的特定封存版本,可對應摘要與建置紀錄。publisher_identity:上傳者或簽署者的身分,可能與原作者、維護者、權利人不相同。
MOD 作者將維護權交由其他人,不應被系統誤解為 MOD 身分完全消失。反過來,新的維護者也不能僅透過修改 ID 冒認舊作者授權。
6.3 權限需要逐項申請而不是一次全部給予
T0 資料包通常不應請求本機檔案任意存取或網路連線。T1 受限規則亦應按照操作範圍限制權限。T2 程式型 MOD 若進入與遊戲相同的系統程序,則必須誠實標記其可能具有廣泛權限,並視風險設計不同的使用者提示與審查流程。
6.4 遺失原始碼與停維維護者
若原 MOD 只有二進位擴充、缺少合法可取得的原始碼、測試或授權,AI 並不能憑空賦予修改權利。合法的維護選項可能包括:保留舊遊戲分支、官方擴充接口的替代方案、經許可的兼容層、聯繫權利人或新寫可替代功能。對逆向工程的允許範圍應另依適用法律、授權及技術保護措施情形判斷,不能把「AI 能逆向」當成「可以任意再發布」的充分條件。
7.多 MOD 依賴、載入順序與衝突解析
7.1 依賴圖不是清單
對每個模組 ,定義必需依賴集合 、可選依賴集合 、排斥集合 、載入次序約束 。以有向圖:
表示必需依賴、次序約束與衝突關係。若必需依賴與順序約束形成不可解除的有向環,安裝管理器應顯示具體衝突,不應隨機選擇某個載入序列並宣稱成功。
7.2 需支援哪幾種關係?
requires:必須安裝,且需符合版本條件;optional:存在時可啟用增強功能;conflicts:與指定 MOD 或版本不能安全並存;load_before/load_after:載入順序需求;provides:某些介面或資源的替代提供者;replaces:明確聲明替代或遷移舊 MOD 的語義;patches:為另一 MOD 的指定版本提供相容修補。
requires 不可只靠 MOD 名稱模糊查找,應以穩定 ID 和版本限制解析。兩個 MOD 即使不報錯,若同時改寫同一資產,也可能產生最後覆蓋者勝出的隱藏衝突,應盡可能報告。
7.3 順序解決不了所有語義衝突
假設 A 提高敵人血量兩倍、B 將敵人血量設定為固定值。先 A 後 B 與先 B 後 A 可能產生不同結果;即使兩個修改都是合法操作,也不等於任何一種順序都符合兩名作者或玩家的意圖。
因此衝突分成:
- 結構衝突:重複 ID、資料欄位型別不符、缺少依賴;
- 順序衝突:資源覆蓋、事件優先級、初始化時序;
- 語義衝突:玩法含義、世界規則或狀態因果不相容;
- 體驗衝突:玩家對合併後的難度、UI、風格與節奏不接受。
只有前兩類常能直接以靜態規則可靠處理;後兩類通常需要動態測試、設計判斷或玩家確認。
7.4 對依賴圖施加可計算限制
可要求每個安裝工作階段記錄 resolved dependency lock,使用確切的 MOD 發行物雜湊,而不是重新啟動時隨意拉取最新版。如果允許自動更新,應先評估是否與既有存檔的相容約束衝突。對於有保存價值的世界模擬,「鎖定舊版組合」本身應是一個正常的產品功能,不該僅被視為玩家不願更新。
8.存檔相容:玩家真正需要保存的不是一個檔案
8.1 存檔、版本與 MOD 組合構成一個狀態承諾
遊戲存檔不是單純把 JSON 或二進位資料成功讀取就算完成。對世界模擬型遊戲,存檔包含角色、人際關係、派系、經濟、任務、事件歷史、地圖結構、回合規則與外部 MOD 定義的實體;某些欄位雖能被載入,卻可能因 MOD 移除或世界規則變動而在下一個回合產生錯誤。
因此將玩家的有效世界定義為:
其中 為基礎遊戲版本, 為 DLC/官方擴充, 為 MOD 版本集合, 為配置, 為存檔狀態, 為決定性的載入順序及覆蓋關係。 是將這些條件解析為可執行世界的建構函數;它是研究記號,並非宣稱所有遊戲實際採用同一執行演算法。
若單獨更換 ,結果也未必只是官方遊戲更新,因為 可能同時改變外部 MOD 與存檔的含義。[I05]
8.2 保存玩家世界的五種不同承諾
- 位元層保存: 原始存檔與 MOD 安裝包沒有遺失或損毀。
- 結構層保存: 可被新 Runtime 解析,關鍵欄位映射明確。
- 實體層保存: 角色、物件、關係、地圖與引用沒有無故消失。
- 行為層保存: 核心事件、任務前提、經濟關係仍依合理規則演化。
- 玩家價值保存: 玩家長期遊玩所形成的有效成果與選擇沒有受到不可接受的破壞。
其中前四項可以不同程度自動檢驗;第五項需要玩家判斷,且可能因作品特性而異。例如硬核 Roguelike 的某些永久損失是玩法設計,但「因 MOD 自動更新造成未告知的存檔不可恢復」則是不同事件。
8.3 建議使用 Save Extension Namespace
每個 MOD 的持久化資料應置於明確命名空間,例如 mods.com.example.guild,包含來源 ID、MOD 版本、資料 Schema 版本與最後寫入版本。遊戲核心不應把每一份 MOD 私有資料直接混入未受控的根節點,使未來刪除 MOD 時無法判斷哪些欄位屬於誰。
但命名空間隔離不能孤立跨 MOD 的世界關係。例如 MOD-A 新增某種建築類型,MOD-B 的任務可能引用這棟建築。移除 MOD-A 時,不應單純把其命名空間全刪,還要檢查外部引用與世界條件是否遭到破壞。
8.4 存檔遷移必須是可審核的交易
建議遷移狀態機:
Detect Version Change
-> Snapshot / Backup
-> Parse Old Save & Mod Lock
-> Resolve Required Packages
-> Build Candidate Migration Plan
-> Dry-Run in Copy / Isolated Workspace
-> Validate Structural Invariants
-> Validate World and Mod Invariants
-> Present Risks + Obtain Required Consent
-> Commit as New Save Generation
-> Verify Post-Commit and Keep Recovery Path
此流程強調:不要在唯一的原始存檔上直接試驗未知遷移。
8.5 不可逆遷移與舊版保留
某些變更沒有合理逆函數。例如「將三個人物關係欄位合併為一個聚合值」可能失去原始資訊。應允許遷移成新存檔世代,同時保留舊存檔及原 MOD Lockfile,直到使用者確認不再需要恢復。
當 不可逆時,不可聲稱存在安全的 。所謂回滾應解釋為「恢復備份或舊世代」,而不是假裝所有更新都可無損還原。
Steam Workshop 的版本支援與遊戲分支保留可協助使用者取得舊 MOD 和舊遊戲版本,但前提是遊戲本身真的維護這些分支、作品的授權與下載權仍然有效,並保存必要的 MOD 組合與存檔。[E02]
8.6 MOD 移除並非單純關閉開關
對於只更換 UI 或貼圖的 MOD,停用可能近似即時;對於新增種族、建築、物品、地形、外交系統或任務的 MOD,安全停用則可能涉及:
- 原有物件由誰接管、保留、轉換或封存;
- 既存任務如何終止或改寫;
- 其他 MOD 的引用怎麼處理;
- 是否應提示玩家先載入無該 MOD 的過渡版本;
- 是否只允許在新遊戲中停用。
本研究不強迫所有 MOD 都具備無痛解除安裝能力,而要求未支援解除時必須明確揭露。不可靠的「無痛卸載」宣傳比清楚告知限制更危險。
9.世界語義相容:從能執行到仍是原本想玩的世界
9.1 語義錯誤通常晚於編譯錯誤出現
假設舊版遊戲的 OnDeath 事件於角色生命值歸零後、戰利品分配前發生;新版把同名事件移到結算之後。MOD 可繼續收到事件,也能正常執行,但其「死亡前保存特殊道具」的邏輯已被改寫。這種情況是典型的介面形式相容、事件語義不相容。
為防止此種隱藏破壞,SEC 必須文件化事件前後條件,而不只列出參數名稱。
9.2 跨版本行為相容需要有界定的觀察範圍
對一組特定情境集合 、關鍵觀察量 ,可以將語義相容定義為:
當且僅當版本 與 在約定觀察量及允許偏差範圍內,符合先前明示的契約。這裡的相容是測試範圍內的證據結論,不是聲稱兩個版本在所有可能世界完全等價。
9.3 對世界模擬遊戲,應優先檢查的不變量
- 實體唯一性: 物件 ID 不因多個 MOD 生成重複主鍵;
- 參照完整性: 任務、關係、庫存、建築與派系引用不指向已刪除實體;
- 守恆或限制規則: 遊戲經濟、物資及能量系統有一致性檢查(依遊戲規則,不預設物理守恆);
- 任務可完成性: 關鍵任務不因事件順序調整而永久無解;
- 回合終止性: 可控的單回合更新時間與防止無限事件遞迴;
- 存檔可延續性: 經過多個回合與重新載入後,關鍵狀態仍存在;
- MOD 停用策略: 知道缺失模組時,應提示保留、退回或部分降級,而非靜默刪除資料。
9.4 不應把「沒有差異」當成唯一正確結果
修改戰鬥、經濟、NPC 決策或世界生成的 MOD,本來就是為了改變行為。合理的測試不是新世界與舊世界逐位元相等,而是變更後仍滿足新規則與既有硬性限制。應將「預期差異」列入測試 Oracle,避免系統把合法玩法變化誤判為錯誤。
9.5 大量世界狀態測試需要場景分層
建議使用三種場景:
- 微觀固定用例: 角色、道具、事件、戰鬥規則等小型可重現案例。
- 中觀整合用例: 三至五個 MOD、完整任務鏈、商店與 NPC 關係的長回合模擬。
- 宏觀壓力用例: 多 MOD、大型地圖、長時間存檔、極端資料量、非典型載入順序。
若以 AI 生成測試世界,應保留種子、生成器版本、測試資料權利與驗證 Oracle;只有 AI 自己判斷自己產生的世界「沒問題」,不足以構成獨立測試。
10.MOD 的安全與信任模型
10.1 讓玩家能創作不等於取消安全責任
MOD 生態的安全風險不止惡意程式碼。即使是合法創作者,也可能因無意的資源消耗、無限事件回呼、未授權資料覆寫或引用錯誤造成遊戲故障。外部下載與更新渠道還可能遭遇帳號盜用、檔案替換、遭污染的依賴套件及釣魚連結。
Godot 官方明確警告,PCK 中可能包含惡意腳本,並說明相同資源路徑的覆蓋問題。[E03] 因此本文不將 load_resource_pack() 當成可信隔離邊界。
10.2 風險分級不只是評分高低
至少分為:
- 資料完整性風險: 導致存檔無法使用或悄悄刪除物件;
- 本機執行風險: 原生程式取得超出玩家預期的檔案、程序或網路權限;
- 內容安全風險: 含惡意內容、非法素材、騷擾或未經同意的私人資料;
- 供應鏈風險: MOD 更新、下載器、依賴包或發布憑證遭入侵;
- 資源耗盡風險: MOD 非惡意但導致 CPU、GPU、記憶體、磁碟或遊戲回合時間失控;
- 生態治理風險: 官方認證被誤認為商業背書,或單一作者被不成比例地賦予市場控制力。
各類風險需要不同測量方法,不能只用單一「可信分數」自動解除所有限制。
10.3 官方下載、安全告知與驗證關係
建議分開標記:
origin_verified:能確認檔案與聲稱的發布者或來源關係;integrity_verified:檔案摘要與官方記錄一致;interface_tested:曾通過指定版本的契約測試;behavior_tested:曾通過特定行為或存檔案例;officially_curated:官方有條件地推薦或展示;official_content:公司已取得相關權利並正式整合進產品。
以上六項不會自動相互推出。例如官方推薦一個 MOD,仍不表示其原始碼已接受完整安全審查;下載來源被驗證,也不表示其遊戲設計符合平衡要求。
10.4 有能力界線的隔離與降級
T0 資料包可使用嚴格大小上限、欄位驗證、路徑正規化、圖像音訊處理安全、解壓縮上限及資源配額。T1 規則型 MOD 只有在真正實作受限執行環境時才能稱為沙盒。T2 程式型 MOD 若與遊戲同權限執行,必須明確警示其風險;必要時採用獨立程序與有限 IPC,或限制允許發布此類 MOD 的渠道。
同時避免不實保證:程序隔離可降低部分系統存取風險,但不等於能證明 MOD 不會破壞玩法、存檔或使用者體驗。
10.5 AI 不得因為可以讀取程式而取得部署權限
AI Agent 可以分析一個上傳的 MOD,但不能因此自行把不可信檔案裝入公司的 CI 主機、訪問營運資料、取得簽署金鑰或使用者存檔。理想做法是將候選 MOD 放在權限受限的隔離工作場,只提供必需的資料和驗證工具,任何正式版簽署與發布都通過更高階的授權關卡。[E07][E08][E09]
10.6 安全控制本身應驗證失敗與恢復
只測試「合法 MOD 可以載入」不足以檢驗風險模型。還要測試惡意或不正確的 Manifest、路徑穿越、巨量遞迴解壓、重複 ID、失效簽章、被替換的依賴包、無限事件回呼,以及高權限 MOD 被標記為 T0 的情境。測試應使用受控資料,不發布會對真實玩家或第三方造成危害的可利用細節。
11.AI 輔助 MOD 遷移閉環(AAMC)
11.1 AI 的角色是提出可測試變更,而不是宣稱魔法式相容
當官方從 v1.4 更新 v1.5,舊 MOD 可能因事件名稱、資產位置、資料欄位、技能規則或引擎更新而需要修改。傳統上,MOD 作者須逐個查看變更日誌、搜尋程式碼、修補、執行遊戲並觀察錯誤。
AI 可以降低部分對比、搜尋和候選修補成本,但要區分:生成補丁、補丁編譯、完整行為一致、既有存檔可繼續遊玩、作者授權發布。它們是不同階段。
11.2 提議的八階段遷移流程
AAMC-0 Intake & Authorization
Identify MOD, source availability, license and allowed scope
AAMC-1 Contract Delta Discovery
Compare old/new API, events, schemas, assets and permissions
AAMC-2 Dependency & Save Impact Graph
Map affected modules, cross-mod links and persistent state
AAMC-3 Candidate Migration Plan
Propose reversible mechanical edits and semantic changes separately
AAMC-4 Isolated Patch Generation
Generate candidate changes only in a restricted workspace
AAMC-5 Multi-Layer Validation
Static -> schema -> integration -> scenario -> save -> security
AAMC-6 Maintainer / Authorized Review
Require appropriate human or delegated authorization
AAMC-7 Release, Evidence & Monitoring
Publish version-specific artifacts, rollback path and provenance
任何一步有重大不確定性,狀態應轉為 BLOCKED 或 NEEDS_REVIEW,而非在報表中自動標記 PASS。
11.3 AI 遷移工作不可以只有一個成功/失敗旗標
應分別記錄:
migration_candidate_created:AI 是否生成候選;syntactic_validation_passed:是否通過語法及格式檢查;contract_validation_passed:是否符合 SEC;behavior_tests_passed:是否通過具體遊戲情境;save_tests_passed:既有世界是否保留關鍵不變量;maintainer_approved:權利與維護者是否授權該修補;released:是否真的完成有來源紀錄的發布;post_release_incident_free:在限定觀察窗口內是否無重大事故。
這些證據不能任意相互替代。對不存在足夠測試 Oracle 的情境,應標記 UNKNOWN,而不是由 AI 充當自己的唯一驗證者。
11.4 將遷移難度分成六類
| 分類 | 範例 | AI 可期待的作用 | 必要外部判斷 |
|---|---|---|---|
| M0 純資料搬移 | 欄位改名、路徑改名 | 高度可自動化 | schema/資料回歸 |
| M1 API 語法調整 | 函數參數新增預設值 | 常可生成候選 | 介面契約測試 |
| M2 事件語義差異 | 事件觸發時機變動 | 比對文檔並提出方案 | 行為情境測試 |
| M3 世界狀態遷移 | MOD 專有實體需重建引用 | 候選遷移與證據整理 | 存檔驗證、玩家同意 |
| M4 設計變更 | 新戰鬥規則衝突舊 MOD 目的 | 提出多種保留意圖的方案 | 作者與玩家判斷 |
| M5 權利或來源缺失 | MOD 源碼不可取得或不能改作 | 搜尋合法替代路徑 | 權利與合法性審查 |
「模型越強,所有遷移都可自動完成」並非本研究假設。尤其 M5 是授權問題,不能透過算力直接解除。
11.5 遷移候選應保留原作者意圖
一個 MOD 是為了把原版生存難度提高兩倍,AI 不應只為了通過測試就把修改功能關掉、削弱到與原版相同、刪除玩家角色,或讓原本應觸發的事件不再發生。通過「無崩潰」測試但失去 MOD 主要功能,是一種偽成功。
因此候選方案應列出:保留的功能、不再保留的功能、因新版本而無法直接保留的原因、替代方案、預期行為差異及證據不足之處。當作者不可聯繫時,應避免把 AI 對作者原意的猜測包裝為本人授權。
11.6 AI 遷移的最後一關是正式來源與發布權
AI 提交一個候選 Pull Request,可以是對開源專案的正常協作;但若 MOD 只以禁止再發布的形式提供、或遊戲整合涉及未授權素材,通過測試也不代表公司可以直接代為發布。涉及商業轉正與付費報酬的細節,留待 ANIE-06 處理。本文要求的是遷移權限與產品發布權必須獨立確認。
12.MOD 相容性工程的測試閉環
12.1 由「人工覺得能用」轉向持續的證據矩陣
最低應對每個 MOD 發行版和遊戲分支,產生下列測試證據:
| 測試類型 | 所需輸入 | 可見輸出 | 無法獨立證明 |
|---|---|---|---|
| Package 驗證 | MOD、Manifest、摘要 | 安裝可解析與來源匹配 | 玩法合理 |
| Static 檢查 | MOD 原始碼/資料 | 危險 API、Schema、版本問題 | 執行行為 |
| Contract 檢查 | SDK 介面描述 | 事件、型別、授權符合 | 跨 MOD 衝突 |
| Integration | 測試遊戲 Build | 啟動、載入、初始化與基本互動 | 長時間穩定 |
| World Scenario | 固定種子與任務 | 語義不變量、任務/經濟結果 | 全部可能世界 |
| Save Migration | 舊存檔+MOD Lock | 遷移成敗與關鍵狀態差異 | 玩家完全滿意 |
| Security | 安全限制與惡意樣本 | 已定義威脅是否受控 | 絕對無漏洞 |
| Human Acceptance | 受試玩家/作者 | 體驗接受度、意圖保留 | 整體玩家代表性 |
12.2 應對 MOD 組合爆炸
對 個可以同時啟用或停用的 MOD,理論上就有 種基本組合(尚未計算版本、參數、順序、平台與存檔)。不應承諾官方可以完整測試所有組合,而應做:
- 高使用率組合與高失敗風險組合優先;
- 強依賴圖與共享資產修改者優先;
- Pairwise 或其他覆蓋陣列,用有限組合提高交互作用覆蓋;
- 已知相容清單與已知不相容清單;
- 未測試組合維持
UNKNOWN並提供安全開啟方式。
12.3 測試資料不能只來自人工設計的乾淨案例
乾淨的全新存檔最容易通過,也最容易掩蓋真實玩家的複雜狀態。應允許玩家在知情且明確同意的情況下提供匿名化、最小化的故障資料,或由本地診斷工具產生能重現問題的去識別摘要。不能為了改善 MOD 相容而要求玩家上傳所有私人存檔、裝置資訊或帳號資料。
12.4 失敗必須提供可行的操作
測試失敗後,系統不應只顯示 MOD BROKEN。至少應指明:哪個模組及版本、哪個契約或存檔關係、可否停用/降級、是否存在更新版、有無安全舊版分支、是否需要先備份、官方或作者的處理狀態。這些都是讓遊戲社群能自行維護的重要資訊。
13.以季度單機產品制支援 MOD 預先相容
13.1 更新速度越快,越需要對外相容窗口
ANIE-02 提出的 AI 原生季度交付制度若真的使官方版本增速提高,MOD 維護壓力也可能同步增加。換言之,AI 提高官方產能,不必然提高整個玩家生態的淨效益。若核心每週都破壞事件語義,外部作者即使能使用 AI,也可能持續疲於修補。
因此每季應有與技術風險匹配的對外版本流程,而不是每季固定要求所有作品同日推出重大破壞性變更。
13.2 建議版本發行流程
| 階段 | 對外資訊 | 核心驗收 |
|---|---|---|
| 提前預告 | 可能受影響的 API、資料 Schema、存檔規則與預計變更性質 | 變更紀錄有具體範圍 |
| 測試分支 | 提供可供 MOD 作者測試的 Build(若適用) | 基本資安與發行品質閘門 |
| 相容窗口 | 作者回報 PASS/FAIL/UNKNOWN、官方提供 migration guide | 有結構化相容性紀錄 |
| 正式發布 | 發布簽署 Build、契約差異與已知風險 | 舊存檔與關鍵 MOD 組合驗證 |
| 發布後追蹤 | 收集崩潰、存檔、平衡與相容性問題 | 能回退或採取緊急修復 |
| 季度回顧 | 本季兼容成本、故障、修補、棄用與例外 | 記錄未完成事項與原因 |
這是研究建議,並非 Steam 平台強制要求的固定週期。Steamworks 已提供可用於測試、回滾與版本相容描述的分支和 Workshop 工具。[E02][E10]
13.3 SDK 棄用不是一句 deprecated
若要廢除一個對外介面,應說明:
- 最後支援的 SDK 版本;
- 替代 API 的具體語義差異;
- 已知受影響的 MOD 類型;
- 官方維持適配層的期限或條件;
- 哪些遊戲分支繼續支援舊契約;
- 進度變更如何通知作者;
- 若破壞性更動被迫提前,如何提供例外與恢復路徑。
這可以是定義於版本或事件的條件承諾,不一定每次都要提供絕對日期;但無法執行或違反約定時應留下公開修正紀錄。[I01][I02]
13.4 優先避免破壞比事後用 AI 修補更經濟
自動遷移是一種救援工具,而不是鼓勵官方隨意改 API 的理由。若一個介面能以低成本保持向後相容,增加適配層常比強迫數千個外部 MOD 重新發布更有利。相反地,如果維持舊介面造成重大安全漏洞、永續維護成本或無法滿足核心產品需求,也不應將舊相容視為絕對不可改變的義務。
13.5 與 Steam/自有網站的分工
Steam 最適合讓玩家購買、管理版本、安裝與訂閱 Workshop 項目;自有網站可以更完整地公布 SDK 文檔、測試證據、跨平台 MOD 對照表、已知衝突、作者協作、遷移指南與政策討論。官方公告負責讓玩家知道應到何處查看資訊;網站不應假稱可取代 Steam 的商店發行與權利機制。[E02][E11]
14.MOD 生態的經濟與治理成本
14.1 原生 MOD 並非免費功能
發布 SDK 後,官方需要維護文檔、版本適配、CI、相容性案例、安全更新、社群爭議、授權審查及外部作者支援。AI 可以分擔其中某些成本,卻可能同時使 MOD 數量與支援需求增加。
可以建立生態總成本的概念模型:
各項均需附有實際人力/機器資源、觀察窗口與計量依據;不能僅因模型產生程式碼速度很快,就把成本設定為零。
14.2 兩種外部成本轉移
失敗形式 A: 官方快速更新,但大量 MOD 作者必須無償跟進,企業把維護負擔轉嫁給創作者。
失敗形式 B: 官方為了避免任何 MOD 壞掉而拒絕修復核心架構,使玩家、公司與未來開發者承擔長期技術債務。
合理制度不是把所有成本單向交給公司或作者,而是透過明確支援範圍、預告、回退、穩定接口、授權合作及必要的報酬機制,降低無效重工並協商責任。[I04]
14.3 生態利益與官方競爭優勢可以並存
開放 MOD SDK 並不必然公開引擎全部演算法、內部美術資產、未上市內容或營運決策。公司保有對正式產品的集成權與品質責任;外部 MOD 作者保有自己的合法創作權與發布選擇。雙方可藉由穩定接口降低創作成本,但彼此仍可以對是否合併、付費、分潤或保持獨立持不同看法。
14.4 授權與商業轉正:本篇的必要邊界
正式收錄玩家 MOD 可能涉及素材、音樂、字體、第三方程式庫、著作財產權、署名、地區授權與再授權。可安裝、可測試、可在 Workshop 公開,不等於公司已取得買斷或商業再利用權。 Steam Workshop 有其投稿與法律協議流程,但每個具體商業整合仍需理解相應條款及實際權利鏈。[E11]
本篇只提出技術建議:Manifest 應保留來源、作者、權利狀態、授權文件參照與第三方素材標註,避免在準備正式收錄時才發現來源不可追溯。具體合約與報酬模型屬 ANIE-06。
14.5 與平台依賴的關係
若全部 MOD 識別、測試資料、作者聯絡與版本歷史只存在單一第三方平台,未來平台規則或 API 調整將增加生態接續風險。但建立自有網站不應變成擅自複製其他平台的私人資料、授權內容或建立未被許可的鏡像。建議維持自己合法產生的 SDK 契約、測試證據、相容性資訊與作者自願提供的連結,並使用平台支持的正式 API 與政策。
15.形式化:在有限資源下管理相容、成本與創作自由
15.1 從單一相容率走向多目標約束
定義在一個季度 ,考慮已登錄的 MOD 集合 、官方版本集合 與情境集合 。一個可觀察的相容性函數為:
為指定測試 PASS; 為 FAIL; 為 UNKNOWN。若缺少測試資料、合法授權或必要依賴,狀態不得自動視為通過。
15.2 以測試人口和測試覆蓋共同構成分母
假設 為在當季、指定遊戲分支與目標平台上,有足夠測試資料且具合法處理條件的 MOD-版本-情境三元組。則:
其前提是 ;若分母為零應標示 N/A,不能填 100%。此指標是測試樣本內的通過率,不可誇稱為所有玩家 MOD 都相容。
同時公開測試覆蓋率:
其中 是預先定義且可計數的優先測試樣本框架。兩者應並列,防止官方只測三個容易成功的 MOD,便宣稱相容率極高。
15.3 玩家權重與少數高風險事件不得互相取消
若以使用量加權,可以衡量已驗證相容在實際安裝配置中的涵蓋比例,但應保護隱私並說明資料來源。有一千名玩家使用的單一常見 MOD 值得關注;同時,只有一名玩家通報「升級會毀掉不可恢復的存檔」也可能需要高優先度。故玩家權重指標不得取代嚴重程度、安全與存檔破壞等硬性風險門檻。
15.4 AI 遷移效率需要測量全部成本
定義每個遷移案例的完整投入成本:
並以相同的驗收準則比較 AI 協助組與基準組。若 AI 生成速度提高 60%,但人工驗證與修正成本翻倍,仍可能使總成本上升。不能以 token 消耗或 PR 件數直接等同維護效率。
15.5 成本不是唯一目標
可用概念上的多目標規劃描述:
在工程預算、資安、權利、可用性及官方產品承諾約束下,尋找非支配方案。此處不是主張所有目標能由一個客觀權重固定加總;不同作品和玩家群體的價值排序可能不同,應保留取捨的公開解釋。
16.衡量 MOD 生態是否真正改善:指標體系
16.1 不能把瀏覽、訂閱、安裝與實際使用混為一談
Workshop 頁面瀏覽量、訂閱數、下載數、實際啟用數、成功載入數,以及同一 MOD 在長期存檔中仍被使用的數量,都有不同意義。訂閱並不保證啟用,啟用也不保證玩家滿意。因此需要從取得、啟動、驗證、持續使用、修復與退出分別設計指標。
16.2 核心指標分層
| 代碼 | 指標 | 定義與用途 | 反面風險 |
|---|---|---|---|
| MCT | MOD Compatibility Test Coverage | 已被測試的目標組合比例 | 只測容易的案例 |
| MCR | MOD Compatibility Pass Rate | 指定條件下通過率 | 忽略 UNKNOWN |
| SIR | Save Integrity Retention | 遷移後滿足存檔不變量比例 | 只驗證可載入 |
| MMR | MOD Migration Resolution | 有結果的遷移案例比例 | 大量用停用 MOD 充數 |
| TTR | Time to Repair | 已確認破壞到發布有效修復的時間 | 只看表面回報速度 |
| BCR | Breaking Change Rate | 對外 SEC 被破壞的頻率/暴露量 | 隱藏更新的 API 變更 |
| AVER | AI-Verified Effective Repair | AI 候選真正通過最終驗收比例 | 把 AI 自評當證據 |
| CMB | Compatibility Maintenance Burden | 作者+公司維護成本 | 外部無償勞動不可見 |
| PRV | Player Recovery Viability | 發生破壞後可恢復有效世界的比例 | 只有舊備份卻無可執行環境 |
| ICR | Intent Conservation Rate | 遷移是否保留 MOD 原設計意圖 | API 能跑、MOD 功能失真 |
| SEC-I | Security Incident Rate | 與 MOD 相關且按嚴重度分類的安全事件 | 少通報被誤當更安全 |
| CTR | Creator Trust and Retention | 作者是否願意維護/續作 | 留存偏誤與自願問卷偏誤 |
每項指標均應同時記錄觀察窗、分母、排除條件、資料缺漏、相容性階層與可追溯證據,不能單憑名稱宣稱有跨遊戲可比性。
16.3 破壞率與修復率需要事件定義
例如一次遊戲更新令 400 個 MOD 產生載入錯誤,與更新後令一個關鍵 MOD 引發大量玩家存檔損毀,其嚴重程度不可直接按 MOD 數量排序。對於「官方造成的破壞」,還要區分:
- 違反明確 SEC 的破壞;
- 官方依法或基於安全必須移除的高風險接口;
- MOD 使用未承諾私有 API 所造成的問題;
- MOD 作者自行更新導致的錯誤;
- 多 MOD 組合才會發生的交互作用。
若未做來源歸因,可能不公平地把全部事故算成官方或 MOD 作者單方責任。
16.4 恢復能力比「沒有報錯」更重要
設 當第 件被確認的重大存檔或相容事故,在規定時間與可取得的工具/合法資產條件下,玩家能回到可接受的有效遊戲世界;否則 。則在給定事件集合 下:
若事件集合空白,回復能力不能以本式直接估計。可另設置人工注入的受控破壞測試,避免低事故數導致沒有足夠樣本。
16.5 AI 生成候選補丁的實際貢獻
對於同級難度、相似修改幅度的任務,應測量:
- 候選成功率;
- 端到端合法可發布修復率;
- 新引入的回歸錯誤;
- 存檔/語義損壞;
- 人類審查時間;
- 總額度/算力與經費;
- 初版修補後的再次修補率;
- 作者是否認為核心意圖得到保留。
特別要觀察「AI 可以修好幾乎所有編譯錯誤,但對世界語義錯誤毫無改善」的結果;它仍是有價值的侷限性發現,而不是研究失敗。
17.可重現的實證研究設計
17.1 研究應分開比較「有沒有 SDK」與「有沒有 AI」
為避免把不同改善因素混在一起,建立最基本的四組:
| 組別 | 官方外部擴充介面 | AI 遷移協助 | 預期可觀察差異 |
|---|---|---|---|
| A | 非正式/既有非公開介面 | 無 | 傳統基準維護成本 |
| B | 非正式/既有非公開介面 | 有 | AI 對脆弱掛鉤的補救能力 |
| C | 穩定版 SEC/SDK | 無 | 介面治理自身的效果 |
| D | 穩定版 SEC/SDK | 有 | 兩者交互作用及額外效益 |
同一功能應設計在兩條可比較的獨立樣本線上,避免同一作者做完 A 組後帶著知識優勢直接做 D 組。受試開發者、任務序列與遊戲 Build 的配置需隨機化或至少平衡;若只能做非隨機案例研究,就須降低因果主張的強度。
17.2 第二因子:破壞類型不同,結果可能反轉
至少交叉比較 M0/M1 這類語法資料變更與 M2/M3/M4 這類語義或存檔變更。AI 或 SDK 可能在機械類任務改善顯著,在語義類沒有改善,甚至因虛假自信而惡化。
可預註冊的主要交互作用是:SEC 提供正式語義上下文後,AI 是否能更容易產生可驗收的候選,而不是只學會針對特定程式碼庫自動補丁。
17.3 難度與參與者能力如何控制
實驗任務應按事前定義的尺度分級,包含變更觸及模組數、依賴深度、世界狀態影響、是否涉及存檔、是否有完整原始碼、是否有測試 Oracle 及所需合法權限。參與者記錄先前 MOD 經驗、程式語言經驗與對該遊戲的理解;不應把新手+AI 與資深作者無 AI 的結果直接視為相同條件。
17.4 真正的驗收要與補丁生成者分離
若 AI 負責產生候選,同一個模型不能僅藉由自評語句決定已通過全部測試。驗收證據應包含可重現建置、獨立測試、固定存檔、動態情境和不知組別的評估者;在無法盲測的情況下應記錄可能偏誤。
需要區分「模型知道該修什麼」與「模型知道評分者會檢查什麼」。若 AI 專門對測試樣例過度最佳化,可能產生測試通過卻非泛用相容的修補。
17.5 誤報與漏報亦是效能指標
相容性檢查可能產生:
- 誤報:標記不相容,實際可用;
- 漏報:標記相容,實際損壞;
- 不確定:欠缺足夠資訊。
對保存型世界遊戲,漏報的代價可能比誤報高得多,尤其涉及不可逆存檔損失。但若系統永遠把所有 MOD 判成 UNKNOWN,也沒有實用性。應依不同風險選擇警告閾值,並公開錯誤率與覆蓋。
17.6 玩家實測不等於純技術測試
玩家可被邀請比較遷移前後的任務、戰鬥、世界關係與 UI;但玩家原本偏好可能不同,且參與者有自選偏誤。高級 MOD 作者認為完美的改版,不一定適用所有一般玩家。[I04] 因此玩家體驗評估可用分層樣本,且嚴重的存檔缺陷不得因一般玩家未注意就被忽略。
17.7 研究資料、倫理與公開界線
實驗應盡量使用自製的測試 MOD、具有明確授權的示例資料或已取得同意的創作者作品;不應為了研究而散布未授權的逆向檔案、私人存檔或尚未修補的安全漏洞。公開論文可提供匿名化彙總指標、Schema 與方法,但必要的商業機密、第三方著作權與安全細節應保留在適當權限內。[I00][I03]
18.十二項可反駁假說
以下皆為待測研究假說,不是已觀察的因果事實。
H1:原生 SDK 降低一般跨版本重工
在相似更新幅度、MOD 複雜度與支援人力下,使用明確 SEC 的 MOD,其每次官方更新後需要的人工維護工時,低於依賴非公開內部 API 的 MOD。
反例/否證條件: SEC 實作與維持成本顯著增加,且無法降低外部修復工時,或開發者因適配層反而被更多技術債務拖累。
H2:資料型 MOD 的生存率高於直接核心掛鉤
其他因素控制後,T0 資料型 MOD 在常規更新後繼續正常工作的比例高於任意修改內部程式結構的 T2 MOD。
反例: 遊戲將所有內容都綁定在經常改變的資料 Schema,導致 T0 仍大量崩壞;或成熟的 T2 API 反而更穩定。
H3:多軸版本宣告改善問題定位
相較於只有「Game Version」的 MOD,帶有 SDK、資料 Schema、存檔版本與已測 Build 標籤的 MOD,失敗原因定位所需時間較短。
反例: 額外維度增加作者填寫錯誤,讓診斷時間不降反增。
H4:兼容性預告窗口減少官方更新衝擊
在控制更新幅度後,具有預先測試分支與作者回饋窗口的重大更新,其正式版第一週重大相容事故比例,低於沒有窗口的更新。
反例: 創作者很少使用預告分支,或預告構建與正式版差異過大而無實際改善。
H5:有版本鎖定與回退機制者更能保存長期世界
具有遊戲/MOD 版本鎖定、可靠備份與舊分支保留的配置,在受控故障演練中的 PRV 高於只接受最新版本的配置。
反例: 舊版依賴、授權或外部服務消失,使保留分支未能提供實際恢復能力。
H6:AI 對機械式遷移有正向邊際效益
在 M0/M1 任務中,AI 輔助將降低每項合格修補的總時間或成本,且不增加最終驗收後回歸錯誤。
反例: AI 的審查、提示調整、除錯與生成錯誤超過節省的時間。
H7:AI 在語義遷移中的效益有較大不確定性
AI 在 M2~M4 的改進幅度與穩定性低於 M0/M1,且不同模型、作品及情境間差異更大。
反例: 具完整世界模型、契約與驗證環境的 AI 在複雜語義任務中表現同樣穩定,甚至更佳。
H8:SEC 與 AI 可能具有正向交互作用
具有明確事件與狀態契約的 MOD,比起只有原始程式碼的 MOD,更容易被 AI 產生高品質、可解釋的遷移候選。
反例: 模型直接處理原始碼更有效;或契約限制了它可使用的最佳修補方法。
H9:高頻更新可能降低整個生態淨效益
在外部維護者數量和工具成熟度固定時,官方更新頻率增加若伴隨高破壞率,MOD 生態總修復成本可能成長得比新增玩法價值更快。
反例: 更新全為向後相容、小步增量並有高效工具,總成本沒有上升甚至下降。
H10:高風險 MOD 的權限告知可降低部分事故
清楚區分資料型與原生程式型 MOD、提供來源與驗證狀態的安裝提示,可降低玩家在未知條件下啟用高權限 MOD 的比例。
反例: 玩家習慣性忽略警示或有意承擔高風險,且事故並未減少。
H11:相容證據透明有助於提高作者留存
對外公布契約差異、已知破壞、修復狀態與測試證據的遊戲,比起只有簡短更新日誌者,MOD 作者更可能長期維護作品並信任開發團隊。
反例: 資訊過載與公開排名壓力使作者退場,或實際技術支持不足以支撐透明承諾。
H12:MOD 兼容治理改善玩家對正式更新的接受度
當玩家明確知道新版本對其 MOD 組合的影響,且能選擇安全更新、回退或暫緩升級,重大更新後的實質世界損失與不可控感將下降。
反例: 玩家無法理解複雜選項或系統預測不準,導致錯誤決策與信任下降。
19.案例推演:成功、衝突與失敗的界線
本節案例皆為構造型情境,不是 EveMissLab 的實測報告。
案例 A:新字串翻譯 MOD 與資料包
某玩家提供繁體中文介面修正包,只有本地化字串,沒有改變遊戲狀態。若核心語系鍵維持穩定,更新通常只需補充新增欄位。此案例適合以 T0、Schema、差異比對與自動補齊候選進行測試。
問題: AI 可能把翻譯風格自動改變、刪除原作者刻意保留的術語,或以看似合理的文字翻譯錯世界觀設定。語法通過不表示符合作者意圖,仍需人類語言審查。
案例 B:戰鬥規則 MOD 遭遇公式重構
官方將傷害流程從「攻擊/防禦直接計算」轉成「物理、魔法、環境、姿態多階段結算」,原 MOD 原本讓近戰暴擊增加 15%。AI 很容易把舊數值欄位映射到新欄位,但可能讓加成套用兩次,或套用到非近戰傷害。
正確處理: 保留原 MOD 的設計意圖,寫出新的事件與計算語義對照,運用固定戰鬥用例檢查各種攻擊類型,而不是只確認程式可執行。
案例 C:派系 MOD 與百小時世界存檔
某 MOD 生成新派系、地理區域和外交條約。官方更新後,舊版 MOD 的建築類型被更名;單純停用 MOD 會讓派系引用失效。
正確處理: 保存舊 MOD Lockfile、在副本上遷移、重建或隔離孤兒引用、驗證多回合狀態,並讓玩家確認新世界是否可接受。若條件不成立,保留舊版組合可能比強制轉換更合理。
案例 D:MOD 與 MOD 的競合
A 增加新的食物資源,B 修改所有食物的營養分配,C 則針對 A 的食物追加過敏系統。三者單獨可以運行,組合後卻可能造成食物成本無限下降。
正確處理: 檢查依賴、覆蓋與語義規則,將已知問題公布為特定組合條件的 FAIL,而不是直接宣布 A、B、C 各自不相容。
案例 E:失去維護者的舊 MOD
玩家持有合法下載的舊版 MOD,但作者停止更新且無法取得可合法修改的源碼。AI 可對可用文件提出替代介面設計或幫助玩家保留安全舊版環境,但不能自動代表作者同意重編、轉售或正式收錄。
正確處理: 將修改權利與技術可行性分離。具合法來源的替代作品或受許可維護者接手,才可能形成長期方案。
案例 F:Steam 可選舊分支卻無法真正回到舊世界
玩家在 Steam 切回遊戲 1.4 並取得相容 MOD 版本,但存檔已被 1.5 寫入新格式且沒有備份。
教訓: 平台版本功能只提供取回軟體版本的條件,存檔恢復仍需要產品自己管理備份與不可逆遷移。不能把下載舊 MOD 視為已具備世界回滾能力。
案例 G:惡意 MOD 偽裝成修復補丁
攻擊者取得某 MOD 作者的上傳帳號,將惡意腳本打包為「支援最新版本」並發布。若玩家只看版本標籤和下載數,可能誤啟用高權限程式。
正確處理: 來源身分、發行物摘要、異常更新、權限變更警告與可撤回的認證狀態分開檢查。版本相容聲明不是安全證明。
案例 H:玩家不喜歡官方改版,但 MOD 可以保留舊風格
官方將戰鬥速度調快,部分玩家認為失去策略深度。雙方不必強迫彼此接受同一設計;官方可保留自己認定的正式方向,玩家則透過合法穩定 SDK 修改回舊風格。若該 MOD 創作者提出更有說服力的數據,官方也可重新評估,這是 ANIE-04 相交域在實作上的延伸。[I04]
案例 I:AI 修補通過測試,但破壞 MOD 的存在理由
某大型 MOD 以完整城鎮模擬為目標。AI 為消除 CPU 過載,簡化所有居民狀態更新,使遊戲不再掉幀,測試也 PASS;但居民已不再具有原作者要求的長期自主行為。
判定: 這是效能測試通過、語義與創作意圖驗收失敗。應列入失敗樣本,而不是宣稱 AI 完成兼容修復。
20.第一款遊戲如何逐步導入:不需要一次做完所有功能
20.1 用成熟度階梯處理三個月短週期產品
若作品只有三個月開發期,最不合理的做法是要求團隊先寫出比遊戲本體還龐大的 MOD 市集。合理做法是定義 MVP 需要的最小穩定擴充面,以及哪些功能可以延後,但不讓最初世界資料結構毫無邊界。
| 階段 | 對外可宣告能力 | 必須完成的驗證 | 不應宣稱 |
|---|---|---|---|
| NME-M0:邊界預備 | 規範資料 ID、擴充掛點與存檔命名空間 | 官方內容至少可透過資料配置載入 | 已全面支援 MOD |
| NME-M1:資料型 MOD | 可安裝一種資料包,有 Manifest 與停用說明 | 範例包、錯誤報告、基本存檔回歸 | 任意第三方腳本安全可用 |
| NME-M2:契約化 SDK | 公開事件/查詢/動作的穩定子集 | 兩個 SDK 版本的契約測試 | 對所有非公開內部掛鉤負責 |
| NME-M3:版本維護 | 官方版本、MOD 依賴、相容測試與回退入口 | 版本差異、舊存檔、失敗恢復 | 不需任何人工就永遠相容 |
| NME-M4:AI 遷移服務 | 在受權範圍內生成、驗證並提議升級候選 | 對照實驗、風險分級、作者授權 | AI 可代替作者取得所有權利 |
不要求 M0~M4 各自對應固定月份;它們是能力與品質里程碑,完成順序可依遊戲類型調整。
20.2 若短期只能做一件事
應先做 Manifest + Data Contract + Stable ID + Save Namespace + 最小相容測試。這幾個決策能最大程度保留未來擴張空間;完整 Workshop 工具或高階視覺化 MOD 編輯器可放在後續版本。
20.3 小品與長期模擬遊戲的差異
對以短劇情、解謎、動作挑戰為主的小品,T0 資料包、語言與視覺素材替換可能已足夠。對策略、經營、世界狀態機與長期模擬遊戲,關鍵在於持久化狀態、關聯資料與可解釋規則擴充,可能較早需要事件與動作契約。不能把一套單一 SDK 開放程度當成所有遊戲應遵循的硬性標準。
20.4 與公司內部軟體中樞的關係
行界遊戲若以統一的產品線長期開發多款單機作品,部分工具可以跨遊戲共用,例如套件格式校驗、權利標註、CI 報告格式、版本變更摘要、玩家回饋鏈結,以及 AI 修補工作區。但每款遊戲的世界規則與資料模型仍應保有獨立契約,避免讓一款遊戲的內部概念侵入另一款遊戲,導致所謂「通用」反而造成全面耦合。
20.5 長期不變的是治理邊界,不必是不變的技術實作
SDK 語言、套件格式、渲染器、遊戲引擎甚至發行渠道都可能改變。真正應維持的是:公開了什麼契約、誰擁有權限、哪些變更需要相容遷移、什麼證據能判定完成、玩家如何保留已投入的世界。這些安排能提升技術替換的可能性,而不是把公司永久綁死在某一套模組框架上。
21.產品公開與社群合作的制度介面
21.1 官方公告應能連結到真實工程證據
遊戲更新公告可區分三個讀者層:
- 一般玩家摘要: 新增內容、已修復問題、是否可能影響 MOD 和存檔;
- MOD 作者變更說明: SDK 差異、變更 Schema、風險 API、測試分支、舊版維持政策;
- 可機器讀取契約差異: 包含版本號、事件 ID、棄用欄位、修改類型、測試證據與遷移建議。
這能使玩家與作者各取所需,避免所有資訊只能靠冗長新聞公告人工閱讀。[I00][I01]
21.2 讓玩家知道哪些問題「官方會處理」,哪些需要作者處理
公開 MOD 問題單應至少有以下歸因:
- 官方違反公開 SDK 契約;
- MOD 使用未保證穩定的私有行為;
- MOD 互相衝突;
- MOD 與新增官方功能語義衝突;
- 權利與安全導致該方案不能直接提供;
- 尚無法判定。
在問題尚未確認時,不應為公關便利而把所有責任推給 MOD 作者,也不應因玩家抱怨便宣布官方必然有錯。這是 ANIE-04「非服從式協商」在故障管理上的延續。[I04]
21.3 MOD 作者可以參與,但不等於員工
官方可以提供 RFC、Issue、SDK PR、範例 MOD、測試資格和安全回報機制。當作者擁有特殊技能或提出有商業價值的修改,還可進一步談委託、授權或 MOD 正式整合;但這些安排需要獨立的權利與報酬制度,不能默認只要有人回報或提交 PR,公司就可以取得無限制商業使用權。詳見 ANIE-06 預定研究。
21.4 讓 AI 成為社群技術翻譯層,而不是決策權來源
可由 AI 把「新版本把我百小時存檔弄壞」轉譯為需調查的版本向量、MOD 集合和狀態不變量,並把複雜工程結果解釋給玩家。AI 也可以連結歷史問題、提示已知可用分支、提出重現步驟。但 AI 應保留原始證據與不確定狀態,不得擅自宣布「官方已保證修好」「這個 MOD 已認證安全」或假裝已代表作者批准修改。
21.5 公開維護並非公開所有資訊
官方可以公開版本範圍、測試結果、修復理由、API 差異和恢復路徑,同時保留內部風險評估、未公開營運資料、第三方授權條款、漏洞細節、個資與其他保密資訊。這種資訊投影恰好符合 ANIE-00 所述的選擇性揭露,而不是全透明主張。[I00]
22.失敗模式與反向檢驗
22.1 用「安全」作理由,把所有 MOD 禁止
當第三方 MOD 出現安全風險,完全關閉擴充是一種政策選項,但不必然是唯一方法。可先考慮允許低風險資料包、限制執行能力、提高來源驗證、修補載入器與讓玩家清楚知道風險。若確有無法接受的攻擊面,應坦承技術限制並暫時限制功能,而不是假裝能提供無條件安全。
22.2 為了相容,維持所有錯誤 API
若某個 API 原本會暴露敏感資料或允許越權修改存檔,安全修復可能需要破壞舊版行為。SEC 應提供緊急安全例外、替代路徑與合理遷移協助,但不能賦予外部創作者要求官方永久維持危險接口的絕對權力。
22.3 為了顯示 AI 成功,關掉無法修復的 MOD 功能
一個錯誤的 KPI 會鼓勵模型把有問題的功能註解掉、跳過測試、修改驗收條件或將所有待驗證項目判成 PASS。因此 CI 和驗收應把原作者關鍵需求、語義不變量、測試修改紀錄與簽署權限分開,避免修補者同時控制全部評分規則。
22.4 相容清單讓玩家有虛假的安全感
若清單只根據 MOD 作者自填版本範圍,卻以「相容」作為強烈信任標籤,可能增加玩家受害。因此最好依證據等級顯示:作者聲明、靜態分析、啟動測試、場景測試、存檔測試、實地觀察。尤其對不可逆的舊世界,應優先要求備份。
22.5 網站公布的相容統計缺乏代表性
假設一款遊戲只有 20 個官方測試 MOD,但社群存在 8,000 個 MOD。即使 20 個全部 PASS,也不能聲稱「相容率 100%」而不說明分母。這與 ANIE-04 討論的社群代表性問題相似:取樣偏誤可讓看似漂亮的數字掩蓋真正的產品風險。[I04]
22.6 社群大量產出,官方審核能力被淹沒
AI 降低創作門檻,可能使低品質 MOD、重複包、抄襲、版本不符與安全事件同步增多。此時應提升自助文件、機器驗證、作者信任與多層發布制度,而非期待公司可以人工審核每個檔案。反過來,若自動審查產生錯誤封鎖,也必須有申訴與更正流程。
22.7 過度標準化使創作失去自由
若官方只允許極少數美術素材與固定數值修改,可能無法滿足創作型社群需求。可將穩定受支援的 T0/T1 路徑與較高風險、較低相容保證的 T2 路徑區分,讓玩家在知情條件下承擔不同風險。官方沒有義務為一切任意原生掛鉤提供永久相容承諾,但可以清楚標示其地位。
22.8 正式整合 MOD 反而傷害作者
若公司以「你的 MOD 已被收錄」作為理由,未談授權、付款、署名或後續維護責任,可能傷害社群信任。技術整合可行不代表合作制度合理;同意為 Workshop 提供 MOD,也不能自動等同同意被商業買斷。這不是工程測試能代替的倫理與契約問題。[I04]
23.本研究的限制與必要的未來證據
23.1 概念完整不等於產品有效
本篇主要提出定義、架構、流程和實驗規格,並未提交任何 EveMissLab 已完成 Steam Workshop 正式接入、跨版本存檔恢復、AI MOD 自動遷移或作者實證調查的紀錄。不能將附錄規格視為經過正式產品場景驗證的 SDK。
23.2 不同遊戲生態的權衡無法以單一標準統治
大型長期模擬遊戲可能非常需要 API 相容與舊存檔保存;純敘事短篇、競技性遊戲或具有多人反作弊的產品,可能有更大的設計與安全限制。本研究主要以可持續更新的商業單機遊戲,特別是世界狀態與模組化內容密集的作品作為優先研究對象。
23.3 無法推論 AI 發展必然讓所有相容問題消失
AI 能幫助分析與改寫,但推論成本、模型品質、訓練資料分布、合法程式取得、可驗證 Oracle、硬體平台差異和安全政策都會變動。AI 對不同遊戲語義的理解能力也不一樣。若未來模型顯著進步,應更新各類任務的實證結果,而不是將本篇的保守邊界當成永久能力上限。
23.4 尚未解決的跨遊戲與跨平台問題
本篇尚未完整處理:不同遊戲之間的通用語義、專有引擎與 Godot 等多 Runtime 相容、主機平台 MOD 政策、跨平台第三方市集的同步、商業 MOD 市場的稅務與分潤,以及 AI 生成素材的多法域著作權問題。它們應進入後續個別研究,不宜在本篇未取得證據就做統一結論。
23.5 最小實證閉合條件
要從提案進入更強的研究結論,至少需要:
- 具有明確授權的真實或測試 MOD 集合;
- 至少兩次具實質變更的遊戲版本更新;
- 兩種 SDK/非正式掛鉤條件;
- AI/非 AI 維護對照;
- 保留原始存檔及固定情境;
- 獨立的測試 Oracle 與錯誤分類;
- 真實維護時間、完整成本及作者接受度;
- 安全與授權界線的人工稽核;
- 所有負面結果與 UNKNOWN 的公開紀錄。
若沒有這些證據,本研究應保持在「有明確工程可行路徑的可檢驗假說」地位。
24.結論:把第三方創作視為可以持續存在的產品關係
原生 MOD 生態的核心,不是對外發布一個資源載入器,也不是承諾 AI 未來能修復一切。真正的轉變是:官方遊戲從第一版起,就承認玩家可能將作品帶向與作者不同、但合法且可維護的方向;官方可以保持商業核心與創作決策權,外部創作者亦能擁有自己的創作主體性、擴充路徑與合作選擇。
當更新不再只是公司單方向市場交付新檔案,而涉及玩家已投入的世界、其他作者的程式與第三方依賴時,相容性就成為一種跨主體的產品責任分配問題。這種責任不是要官方替所有不受支援的 MOD 買單,也不是要求玩家接受任何被描述為技術必要的破壞,而是透過公開契約、授權範圍、風險證據、版本選擇與可審核的遷移程序,把衝突和損失降到可以辨識、修正與協商的程度。
AI 在這個體系的作用,是降低理解陌生 MOD、轉換介面、產生候選、擴張測試與長期接手的成本;其價值必須以最後有效交付衡量,不能讓生成速度取代功能品質、存檔安全或合法授權。若 AI 遷移真的能在明確契約與測試支持下持續減少無效重工,未來外部創作者與商業遊戲公司就可能形成比傳統「官方更新、MOD 作者被迫修補」更可持續的合作分工。
本篇最精簡的命題是:
MOD 不應只是遊戲完成後可以被容忍的外掛;它可以從產品初期就成為有明確邊界、可驗證相容、能隨版本演化的外部創作制度。
而最重要的限制同樣清楚:
公開擴充不等於公開所有原始碼,支援協作不等於交出公司決策權,AI 能修補不等於 AI 能授權;技術可執行不等於世界仍被保存。
這些分離,正是 ANIE-04 的「非服從式協商」轉化為軟體工程契約的結果,也將成為 ANIE-06「商業遊戲也可以 PR」討論外部貢獻與公平報酬的前提。
附錄
附錄 A.NME MOD Manifest v0.1 參考格式
下列 JSON 為研究規格的示範資料,非已發布的官方 NME SDK;sdk 等版本區間的字串語法、解析器與安全政策仍需在工程實作時正式定義。它示範不同版本、身分、依賴、能力與證據如何分開紀錄。所有 ID、名稱、檔案摘要與測試標籤均為示例,不代表真實 MOD 或驗證結果。
{
"schema_version": "1.0.0",
"mod_id": "org.example.longwinter",
"mod_version": "0.3.2",
"display_name": "Long Winter Example",
"publisher": {
"id": "creator.example",
"display_name": "Example Creator"
},
"entrypoint": {
"kind": "data",
"path": "content/root.json"
},
"compatibility": {
"sdk": ">=1.1.0 <2.0.0",
"game_branches": ["version_1.4", "version_1.5"],
"data_schema": "2.0.0",
"save_schema": "1.2.0"
},
"relationships": {
"requires": [
{
"mod_id": "org.example.sharedlibrary",
"version_range": ">=1.0.0 <2.0.0"
}
],
"optional": [],
"conflicts": [],
"load_after": []
},
"capabilities": ["content.read", "world.query"],
"artifacts": [
{
"path": "content/root.json",
"sha256": "0000000000000000000000000000000000000000000000000000000000000000"
}
],
"rights": {
"license_reference": "licenses/MOD-LICENSE.txt",
"third_party_assets": []
},
"verification": {
"status": "author_declaration",
"last_tested_game_branch": "version_1.4",
"evidence": []
}
}
特別說明:範例 sha256 的 64 個零只是結構佔位,不代表該檔案經過雜湊驗證;實際系統必須從建置產物計算摘要、確認發行檔案與紀錄一致,並且拒絕把占位值視為通過驗證。author_declaration 表示作者聲明,不能自動顯示為官方認證。版本字串類似 SemVer 範圍,但與 Steam Workshop 的遊戲分支區間不是同一套資料模型。
A.1 契約強制性與選填性
schema_version、mod_id、mod_version、entrypoint、compatibility:最低必要欄位。publisher:對正式公開發行建議必要;作者仍可使用筆名,但應符合平台身分政策。rights:對需要授權分發的資產必要,缺失時不得被視為商業再利用已獲許可。verification:可為待檢查,但不可自動填成 PASS。capabilities:以最少授權為原則,不能由 MOD 宣告就直接取得所有權限;Runtime 必須實際執行審查。
A.2 本範例故意不處理的事
本檔案本身不保證外部程式碼隔離,也沒有約束所有世界語義,更不包含真正的 Steamworkshop 發布憑證。Manifest 是其他驗證的入口,而不是驗證的替代品。
附錄 B.Manifest 結構檢查用 JSON Schema 草案
下列 Schema 使用 JSON Schema Draft 2020-12 常見語法,主要示範格式檢查。其包含研究設計選擇,並非現有 Steam 或 Godot 的官方 Manifest 格式;對於版本範圍、檔案存在性、所有權及權限授予仍必須另做語義驗證。[E05]
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://example.invalid/schemas/nme-mod-manifest-v0.1.json",
"title": "NME Mod Manifest Research Schema",
"type": "object",
"required": [
"schema_version", "mod_id", "mod_version",
"entrypoint", "compatibility", "capabilities", "artifacts"
],
"additionalProperties": false,
"properties": {
"schema_version": {"type": "string", "minLength": 1},
"mod_id": {
"type": "string",
"pattern": "^[a-z][a-z0-9]*(\\.[a-z][a-z0-9]*)+$"
},
"mod_version": {"type": "string", "minLength": 1},
"display_name": {"type": "string", "minLength": 1},
"publisher": {
"type": "object",
"required": ["id", "display_name"],
"additionalProperties": false,
"properties": {
"id": {"type": "string", "minLength": 1},
"display_name": {"type": "string", "minLength": 1}
}
},
"entrypoint": {
"type": "object",
"required": ["kind", "path"],
"additionalProperties": false,
"properties": {
"kind": {"enum": ["data", "restricted_rules", "native_code"]},
"path": {"type": "string", "minLength": 1}
}
},
"compatibility": {
"type": "object",
"required": ["sdk", "game_branches", "data_schema", "save_schema"],
"additionalProperties": false,
"properties": {
"sdk": {"type": "string", "minLength": 1},
"game_branches": {
"type": "array", "items": {"type": "string", "minLength": 1},
"uniqueItems": true
},
"data_schema": {"type": "string", "minLength": 1},
"save_schema": {"type": "string", "minLength": 1}
}
},
"relationships": {
"type": "object",
"additionalProperties": false,
"properties": {
"requires": {" $ref": "#/$ defs/dependencyList"},
"optional": {" $ref": "#/$ defs/dependencyList"},
"conflicts": {" $ref": "#/$ defs/dependencyList"},
"load_after": {"type": "array", "items": {"type": "string"}}
}
},
"capabilities": {
"type": "array", "uniqueItems": true,
"items": {"type": "string", "minLength": 1}
},
"artifacts": {
"type": "array", "minItems": 1,
"items": {
"type": "object",
"required": ["path", "sha256"],
"additionalProperties": false,
"properties": {
"path": {"type": "string", "minLength": 1},
"sha256": {"type": "string", "pattern": "^[a-fA-F0-9]{64}$"}
}
}
},
"rights": {
"type": "object",
"required": ["license_reference", "third_party_assets"],
"additionalProperties": false,
"properties": {
"license_reference": {"type": "string"},
"third_party_assets": {"type": "array", "items": {"type": "string"}}
}
},
"verification": {
"type": "object",
"required": ["status", "last_tested_game_branch", "evidence"],
"additionalProperties": false,
"properties": {
"status": {
"enum": ["author_declaration", "unknown", "automated_tested", "official_reviewed"]
},
"last_tested_game_branch": {"type": "string"},
"evidence": {"type": "array", "items": {"type": "string"}}
}
}
},
"$defs": {
"dependencyList": {
"type": "array",
"items": {
"type": "object",
"required": ["mod_id", "version_range"],
"additionalProperties": false,
"properties": {
"mod_id": {"type": "string", "minLength": 1},
"version_range": {"type": "string", "minLength": 1}
}
}
}
}
}
example.invalid 是明確不應作為正式服務使用的占位域名。實際發布時要替換為受公司控制的穩定 Schema URI,並維持歷史版本可取得。以上驗證器也尚未解決路徑穿越、符號連結、檔案大小、腳本沙盒、惡意多媒體解析、版本表達式解析、MOD 載入授權和 Schema 內跨欄位的所有語義約束;應另由安全的驗證及執行流程處理。
附錄 C.相容性證據紀錄範本
以下是本篇建議的機器資料記錄樣式。UNKNOWN 應被視為獨立而合理的狀態。
{
"record_id": "nme-compat-example-001",
"record_kind": "compatibility_evidence",
"game_build": "version_1.5",
"sdk_version": "1.3.0",
"mod_id": "org.example.longwinter",
"mod_version": "0.3.2",
"mod_artifact_digest": null,
"configuration_id": "example-lockfile-01",
"scenario": "load_existing_save_then_advance_100_turns",
"environment": {
"platform": "windows-x64",
"engine_version": "not_recorded",
"test_seed": 12345
},
"evidence_levels": {
"installed": "UNKNOWN",
"loaded": "UNKNOWN",
"contract": "UNKNOWN",
"behavior": "UNKNOWN",
"save_integrity": "UNKNOWN",
"human_acceptance": "UNKNOWN"
},
"evidence_links": [],
"test_provenance": "not_executed",
"reviewed_by": null,
"last_updated": "not_applicable"
}
範例刻意將所有結果保留 UNKNOWN,以避免有人把文件中的示意記錄誤認為真實實測。完整實作應加入資料庫主鍵、版本、指標定義、存取權限和事件歷史;若更新檢查結果,應保留舊版本證據及更正原因,不要靜默覆蓋。
附錄 D.AI 遷移候選計畫與批准契約
這份計畫示意如何區分 AI「建議」與真正的修改、測試與發布權。
{
"plan_id": "nme-migration-example-01",
"status": "PROPOSED_ONLY",
"source_build": "version_1.4",
"target_build": "version_1.5",
"target_mod_id": "org.example.longwinter",
"source_mod_version": "0.3.2",
"source_rights_status": "REQUIRES_REVIEW",
"planned_actions": [
{
"action": "rename_data_field",
"old_path": "content.weather.severity",
"new_path": "content.weather.intensity",
"classification": "M0",
"reversibility": "EXPECTED_REVERSIBLE",
"evidence_required": ["schema_check", "behavior_scenario"]
}
],
"protected_assets": ["original_mod_release", "original_saves"],
"tests_required": [
"manifest_validation",
"sdk_contract",
"mod_dependency_resolution",
"world_behavior_scenario",
"existing_save_integrity"
],
"unknowns": [
"author_intent_confirmation",
"rights_to_publish_modified_version"
],
"permissions": {
"read_source": false,
"write_candidate_workspace": false,
"publish_release": false
},
"approval_state": "NOT_APPROVED"
}
此檔案沒有暗示 AI 真正取得任何系統權限,示範中的 false 代表未核發。正式實作時,即便計畫中寫了 true,仍需要外部權限控制系統實際檢查,不能信任模型自行設定的欄位作為授權證明。
D.1 不可直接自動批准的情況
- 修改涉及玩家唯一存檔、未保留備份或不可逆世界變更;
- 新增本機檔案、網路或其他高權限執行能力;
- MOD 包含未知第三方授權素材;
- 更新後的原設計意圖不明或受到實質改變;
- 修補候選需要修改驗證器以便通過測試;
- 變更與正式版產品的簽署、商店發布或付款系統有關。
D.2 建議建立「停止與回復」權限
AI 可以在經授權的工作區自行重試低風險候選,但即使長期測試通過,也不能因此無視人工維護者或公司保留的停止權。若外部權利人要求撤回使用授權,應依適用契約及法律處理,不能由模型判斷「技術上很有價值」就跳過。
附錄 E.CI 驗收契約與範本流程
以下為流程級 YAML 提案,其中 nme-validate、nme-test 等命令僅代表未來需實作的 CLI 介面;不是可直接執行的現成軟體。實際 CI 需加上環境隔離、輸入摘要校驗、憑證保護、權限政策、惡意套件防護與結果不可否認性。
name: NME Mod Compatibility Research Pipeline
version: '0.1-proposal'
source:
game_build: version_1.5
sdk: '1.3.0'
mod_manifest: mod.json
stages:
- id: ingest
command: nme-validate manifest mod.json
output: artifacts/manifest-report.json
- id: dependencies
command: nme-validate dependency-lock mod-lock.json
output: artifacts/dependency-report.json
- id: contract
command: nme-test contract --sdk 1.3.0
output: artifacts/contract-report.json
- id: scenarios
command: nme-test scenarios --suite world-core
output: artifacts/scenario-report.json
- id: saves
command: nme-test saves --readonly-original
output: artifacts/save-report.json
- id: publish-evidence
requires_approval: true
command: nme-report aggregate --out artifacts/compatibility-evidence.json
E.1 不應省略的發行閘門
ingest PASS 不等於 contract PASS;contract PASS 不等於 save PASS;所有 CI PASS 也不等於已取得合法發布權。正式版的發行流程應確認版本、批准者、遊戲分支、依賴、檔案摘要、測試結果與授權狀態皆與最終產物一致。
E.2 變更造成安全疑慮時的處理
若有人用 AI 生成一個建議修改 CI 的 PR,驗證器與受測者不應被同一個無限制工作區控制;否則 AI 可能無意或有意使測試變得過度寬鬆。對照實驗更應凍結評分集與核心品質門檻,減少對測試集的過擬合。
附錄 F.破壞性變更公告範本
Title: MOD SDK v1.4.0 — Compatibility Notice
Status: Proposed / Beta Available / Released / Corrected
Game Builds Affected: version_1.5 and newer
SDK Change Type: Deprecated / Added / Breaking / Security Emergency
Affected Contract IDs: event.combat.on_damage.v1
Old Semantics: [describe observed before/after conditions]
New Semantics: [describe observed before/after conditions]
Known Affected Mods: [identified list, with evidence level]
Unknown Coverage: [what was not tested]
Safe Migration Route: [SDK adapter or documented code change]
Save Integrity Impact: [none / tested / unknown / known risk]
Availability of Old Game Branch: [available / unavailable / limited]
How to Test: [branch, test suite, instructions]
Author Feedback Channel: [official page or issue tracker]
Owner / Decision Authority: [team role]
Publication Evidence: [build and test references]
Correction and Retraction Policy: [how erroneous claims are fixed]
範本刻意保留 UNKNOWN。對外承諾應由有權限的人員批准,不能因 AI 撰寫公告或自動計算了「預計相容」就轉變成法律或產品上的無條件擔保。
附錄 G.季度公開 MOD 生態報告模板
G.1 範例格式
| 類別 | 本季內容 | 證據要求 |
|---|---|---|
| 遊戲版本 | 發布、測試與保留的分支 | Build/發行紀錄 |
| SDK | 新增、棄用與破壞介面 | 契約差異 |
| MOD 兼容 | PASS/FAIL/UNKNOWN 與分母 | 測試矩陣與實測紀錄 |
| 存檔 | 已知損壞與恢復成功率 | 匿名化事故統計 |
| AI 遷移 | 候選、驗收、撤回與失敗 | PR/測試/授權紀錄 |
| 安全 | 事件分類與適度揭露的改善措施 | 內部可稽核證據 |
| 作者協作 | 官方回應、範例更新、SDK 建議 | Issue/公告鏈結 |
| 下季方向 | 已承諾、暫定、研究中 | 變更類型與理由 |
G.2 絕不應作為粉飾的五個數字
- 只公布
PASS/已測試,卻隱藏測試範圍很小; - 只公布 AI 候選 PR 數,不公布真正採納與再次返工;
- 只公布 MOD 增長數,卻隱藏大量舊 MOD 失效;
- 只公布客服結案數,卻沒有追蹤修復有效性;
- 只公布遊戲發行頻率,卻不統計長期玩家存檔損失。
本研究主張:公開不足的證據,不等於建立信任;能公開尚未解決的邊界,才有可能讓制度獲得事後驗證。
附錄 H.工程驗收矩陣:從第一個 MOD 到可用生態
| ID | 驗收情境 | 必要結果 | 不能接受的假通過 |
|---|---|---|---|
| NME-T01 | 安裝符合格式的 T0 MOD | 正常解析與顯示來源 | 不驗檔案完整性 |
| NME-T02 | 安裝重複 mod_id 的套件 |
明確拒絕或要求解決衝突 | 靜默覆蓋 |
| NME-T03 | 依賴缺失/形成環 | 顯示可辨識的依賴診斷 | 隨機次序繼續載入 |
| NME-T04 | 同路徑內容覆蓋 | 遵循明示覆蓋政策 | 不可預期修改官方資產 |
| NME-T05 | 發布新增 API 的 SDK 小版本 | 舊範例仍通過相容測試 | 只測最新版 |
| NME-T06 | 事件前後條件改動 | 標記語義變更並要求新驗收 | 參數一致就標 PASS |
| NME-T07 | 帶 MOD 的舊存檔升級 | 保留原始備份、驗證實體引用 | 直接改寫唯一存檔 |
| NME-T08 | 升級後退回舊遊戲分支 | 提供可行的舊資料世代 | 強制新格式回寫舊檔 |
| NME-T09 | 停用新增地圖的 MOD | 有風險提示或安全轉換 | 靜默刪除世界區域 |
| NME-T10 | AI 生成 M0 修補 | 結構與行為證據一致 | 只提供 AI 自述完成 |
| NME-T11 | AI 生成 M3 修補 | 多回合世界驗證及審查 | 關掉功能規避失敗 |
| NME-T12 | 高權限腳本要求升級 | 權限提示和授權閘門 | 假稱 PCK 是沙盒 |
| NME-T13 | 發行檔被替換 | 摘要或來源檢查揭露不符 | 只比對檔名 |
| NME-T14 | 授權不清的 MOD 要求轉正 | 保留不批准狀態 | 技術 PASS 即收錄 |
| NME-T15 | 低頻但重大存檔損壞 | 高優先級處理與恢復路徑 | 因票數少而忽略 |
| NME-T16 | 作者申訴錯誤不相容標籤 | 可更正紀錄且保留歷史 | 無申訴與解釋 |
這份矩陣仍需按真正的遊戲引擎、作業系統、平台與產品玩法轉化成 executable tests。它們是研究驗收條件,而非已執行的測試報告。
附錄 I.縮寫與概念對照
| 縮寫 | 中文 | 英文 |
|---|---|---|
| ANIE | AI 原生互動企業論 | AI-Native Interactive Enterprise |
| NME | 原生 MOD 生態 | Native Mod Ecosystem |
| SEC | 穩定擴充契約 | Stable Extension Contract |
| MACR | 多軸相容關係 | Multi-Axis Compatibility Relation |
| AAMC | AI 輔助 MOD 遷移閉環 | AI-Assisted Mod Migration Closure |
| PDID | 玩家—開發者相交域 | Player–Developer Intersection Domain |
| NSN | 非服從式協商 | Non-Subordinate Negotiation |
| SDK | 軟體開發工具組 | Software Development Kit |
| API | 應用程式介面 | Application Programming Interface |
| CI | 持續整合 | Continuous Integration |
| UGC | 使用者產生內容 | User-Generated Content |
| SIR | 存檔完整性保留 | Save Integrity Retention |
| PRV | 玩家世界恢復能力 | Player Recovery Viability |
| UNKNOWN | 不足以作通過或失敗判定 | Unknown / Insufficient Evidence |
參考文獻與前置研究
本篇外部來源以 2026-10-16 可取得之官方規格、平台文件及研究資料為界。官方功能和平台政策後續可能更動;部署時仍須以當時有效版本再核對。除特別標明外,公式、分類、假說、案例與附錄規格均屬本文的概念提案或推演,不是外部文獻已證實之實驗結論。
A.外部規格、官方文件與研究
- [E01] Valve/Steamworks Development. New! Version Control For Steam Workshop Mods. 2026-01-08. 官方公告,說明遊戲版本分支與 MOD 發行版本的新控制能力。https://steamcommunity.com/groups/steamworks/announcements/detail/497183817277113901
- [E02] Valve. Steam Workshop Item Versioning. Steamworks Documentation. 說明 Steamworks SDK 1.60 的 MOD 版本支持、遊戲分支、
GetSupportedGameVersionData、SetRequiredGameVersions等功能及開發者流程。https://partner.steamgames.com/doc/features/workshop/itemversioning - [E03] Godot Engine. Exporting packs, patches, and mods. Stable Documentation. PCK/ZIP、資源載入、MOD 結構與安全注意事項。https://docs.godotengine.org/en/stable/tutorials/export/exporting_pcks.html
- [E04] Preston-Werner, T. 與社群維護者. Semantic Versioning 2.0.0. 官方規格。https://semver.org/spec/v2.0.0.html
- [E05] JSON Schema. Draft 2020-12. JSON 結構、驗證與規格文件入口。https://json-schema.org/draft/2020-12/
- [E06] Players’ rights to game mods: Towards a more balanced copyright regime. Computer Law & Security Review, 43 (2021), 105634. DOI: 10.1016/j.clsr.2021.105634. 以玩家創作、著作權與社群實務為研究背景。https://doi.org/10.1016/j.clsr.2021.105634
- [E07] NIST. SP 800-218: Secure Software Development Framework (SSDF), Version 1.1. 2022. https://csrc.nist.gov/pubs/sp/800/218/final
- [E08] OpenSSF/SLSA. Provenance, SLSA v1.2 Specification. 軟體建置及來源追蹤的供應鏈完整性。https://slsa.dev/spec/v1.2/provenance
- [E09] OWASP Cheat Sheet Series. CI/CD Security Cheat Sheet. 外部插件與整合的審查、最小權限及供應鏈風險參照。https://cheatsheetseries.owasp.org/cheatsheets/CI_CD_Security_Cheat_Sheet.html
- [E10] Valve. Branches (Betas). Steamworks Documentation. 說明遊戲分支的建立、測試與使用者選擇。https://partner.steamgames.com/doc/store/application/branches
- [E11] Valve. Steam Workshop Implementation Guide. Steamworks Documentation. 說明 UGC 接入、上傳、Workshop 能力與法律協議流程。https://partner.steamgames.com/doc/features/workshop/implementation
- [E12] mod.io. Get Mod Dependencies and Add Mod Dependencies. 外部 MOD 平台的依賴描述設計參照;本文不將其作為 Steam Workshop 內建功能。https://docs.mod.io/restapi/docs/get-mod-dependencies;https://docs.mod.io/restapi/docs/add-mod-dependencies
B.本系列內部前置研究
- [I00] Neo.K × GPT-6. ANIE-00:從產品黑盒到 AI 原生互動企業. 2026-10-16,UTF-8 Markdown 工作論文。
- [I01] Neo.K × GPT-6. ANIE-01:從 EA 到持續交付. 2026-10-16,UTF-8 Markdown 工作論文。
- [I02] Neo.K × GPT-6. ANIE-02:季度單機產品制:AI 工業化、算力額度與品質交付率. 2026-10-16,UTF-8 Markdown 工作論文。
- [I03] Neo.K × GPT-6. ANIE-03:可繼承的遊戲產品:資產移轉、AI 接手與長期可維護性. 2026-10-16,UTF-8 Markdown 工作論文。
- [I04] Neo.K × GPT-6. ANIE-04:玩家—開發者相交域:需求、設計主權與可行性的非服從式協商. 2026-10-16,UTF-8 Markdown 工作論文。
- [I05] EveMissLab. SEDB-GAME × ModWorld:AI 原生遊戲理解與 MOD 共創 Runtime 技術白皮書 v0.1. 2026-09-01,內部/研究文件。研究使用既有有效世界、遊戲語義、MOD 關係與驗證 Runtime 概念,不宣稱本篇已實作該系統。
文件版本紀錄
| 版本 | 日期 | 狀態 | 變更摘要 |
|---|---|---|---|
| v0.1 | 2026-10-16 | Public Working Paper | 首版總體定義、穩定擴充契約、版本向量、世界存檔與安全邊界、AI 遷移、12 項假說、對照實驗及附錄規格 |
Canonical Authoring Notice: 本 UTF-8 Markdown 檔案為正式研究原始稿;聊天渲染畫面不是 canonical source。數學定界符僅使用 $...$ 與 $$...$$。本文尚未完成同行評審、產品環境部署或跨團隊實證。示意 JSON/YAML 可供後續工程設計與驗證,但不代表現成 SDK、測試執行結果或法律授權。