- title
- CWSR Paper 01|世界狀態本體與可執行狀態分離
- english_title
- World-State Ontology and the Separation of Executable State: Logical Existence, Validity, Activity, and Commit in Causal World-State Runtimes
- series
- CWSR — Causal World-State Runtime
- paper
- 01 / 08
- version
- v0.1
- date
- 2026-10-16
- author
- Neo.K
- ai_research_collaborator
- Aletheia / GPT-6
- institution
- EveMissLab / 一言諾科技有限公司
- status
- Research Draft — Engineering Extension / Not an Independent Foundational Theory
- canonical_source
- UTF-8 Markdown; mathematical delimiters $...$ and $$...$$ only
- language
- zh-TW
- predecessor
- CWSR Paper 00 v0.1
- next_paper
- CWSR Paper 02 — 因果觸發、執行休眠與條件喚醒機制
CWSR Paper 01|世界狀態本體與可執行狀態分離
論域內的邏輯世界、狀態有效性、計算活動與權威提交
English: World-State Ontology and the Separation of Executable State: Logical Existence, Validity, Activity, and Commit in Causal World-State Runtimes
定位: CWSR 系列的第一篇技術基礎論文;是 GCM、GCCF 與 GCCWT 在單機遊戲中的操作性投影,不另立計算本體論。
研究狀態: v0.1 假說與契約草稿;本文定義形式責任與可實作接口,不宣稱已完成 Runtime、GPU 加速或實測驗證。
承接: CWSR Paper 00;下一篇由 Paper 02 具體化喚醒及失效傳播。
作者: Neo.K
機構: EveMissLab / 一言諾科技有限公司
日期: 2026-10-16
版本: v0.1
摘要
開放世界遊戲即使在畫面、玩家行動與可見事件幾乎沒有變化的時間窗內,底層仍可持續執行遊戲主循環、輸入輪詢、AI 更新、計時器、記憶體讀取與資料搬移。反過來說,遊戲畫面完全不動,也不代表世界內部已停止演化;休眠、快取與跳過計算若未保留時間、事件、隨機性、依賴與歷史義務,便可能改變遊戲結果。
本篇因此不把「世界狀態」定義為必須逐幀更新的一組記憶體物件,也不把「程式現在正在執行」當作世界存在、世界演化或狀態正確性的必要條件。本文提出 CWSR 的論域內工作性狀態本體(operational world-state ontology):明確區分邏輯存在、可尋址、可重建、已物化、可用性、結果有效性、觀察需求、排程義務、實際執行、候選結果與權威提交等不同維度;再建立狀態記錄、計算工作單元、依賴契約、時間契約、版本快照與提交門檻的最小語義。
本篇主要繼承 GCM 的全域一致異質計算與觀察/物化分離、GCCF 04 的可尋址狀態與選擇性物化,以及 GCCWT Paper 04、06 的資源激發與規劃/執行/修改權限區分。本文的增量不在發明快取、事件循環、反應式更新或資料庫版本控制,而在明確規定:哪些既有世界事實可以不執行卻仍有效,哪些工作因因果、時間、觀察或提交義務必須啟動,以及省略執行需要何種正確性證據。
研究成果是供 Paper 02–08 使用的可檢驗接口與反例集合,而不是一個已證明適用於所有程式的最優執行演算法。
關鍵詞: CWSR、Logical World State、Executable Work Unit、State Validity、Selective Execution、Causal Dependency、Temporal Obligation、Snapshot、Commit Authority、Observation Contract、GCM、GCCF 04、GCCWT、Incremental Computation、Single-Player World Simulation。
0. 研究定位:不是重新發明「本體論」
0.1 這裡的「本體」指工程對象分類
本篇名稱中的「世界狀態本體」不指宇宙萬物的終極存在方式,也不將遊戲世界中的每一物件視為物理上獨立的實體。它僅回答:
- 一個遊戲 Runtime 要將哪些資訊辨識為邏輯世界事實?
- 哪些資訊是計算候選、呈現結果或暫存派生資料,而非已提交的世界事實?
- 哪些狀態即使沒有常駐 RAM/VRAM、沒有被玩家看見,仍需要保持可定位、可恢復或可追溯?
- 哪些計算可合法沿用既有結果,哪些則因事件、時間、精度或副作用必須重新執行?
- 執行器計算出來的數值,要滿足哪些條件才能寫回權威世界?
上述問題採取明確的遊戲規則、有限資源、觀察語境與時間義務作為前提;不把工作定義提升為普遍數學定理。
0.2 為何先寫 Paper 01,而不是先寫 GPU 排程
若不知道「什麼算同一份有效世界狀態」,就無法安全決定是否可以跳過重新計算;若不知道「什麼能合法提交」,也無法讓 CPU 與 GPU 共同更新一個世界。
因此先決定語義邊界:
世界可存在而不活動;資料可活動而不可提交;結果可已計算而未被觀察;畫面可不變而世界有時間義務。
Paper 05 的 CPU/GPU 異質工作分配,必須等這些邊界可被檢查後,才有可靠的共享狀態接口。
0.3 不變的系列約束
本文遵守 Paper 00 的三個基本限制:
- CWSR 不強制所有遊戲純事件驅動,也不取消既有固定步、連續模擬、ECS 或引擎內部排程。
- 24/72 是可選的局部計算形式描述,不是本篇的狀態本體分類,也不是 24/72 種硬體。
- 本篇不把效能願景寫成實測結論;任何少更新、少配置或少同步的收益都要連同索引管理成本一起量測。
1. 直接繼承的原稿語義與本篇新增範圍
| 既有來源 | 確認承接的原義 | Paper 01 的工程局部化 | 本篇不取代 |
|---|---|---|---|
| GCM《全域計算方法論》v0.1 | 全域一致不等於單一計算;World 與 Runtime 表示不能混為一談 | 可在同一遊戲世界內維持異質更新與共同歷史 | GCM 的全域理論定義 |
| GCCF 04《全域可尋址狀態》v0.1 | Exists、Addressable、Recoverable、Materialized、Observed、Pinned 的分離 | 世界資料和 RAM/VRAM 駐留分離、按需求物化 | 全域分散式狀態架構 |
| GCCF 05《因果流計算與預記載》v0.1 | 因果前沿與準備未來需求;Prepare 不等於 Execute | 區分已驗證的依賴與僅用來預熱的預測提示 | Paper 02 的完整喚醒演算法 |
| GCCWT Paper 04 Draft v0.2 | Resource Presence 不等於 Excitation 或 Authority | 計算工作存在不等於已被排程或取得執行權 | 跨世界計算場的全部形式語義 |
| GCCWT Paper 06 Draft v0.2 | 規劃、執行、修改及資源所有權相互分離 | Candidate Result 須經一致性檢查才能 Commit | 世界級 Planner 與跨節點治理 |
| GCM Phase B 白皮書 v0.1 | 資源規劃與容量限制,候選配置不等於物理強制 | 現在先建立工作單元,保留後續資源路由欄位 | Phase B 的 allocation contract |
| CWSR Paper 00 v0.1 | 世界、活動工作集、觀察、物化、呈現及提交分離 | 提供可檢驗的定義、規則及原型接口 | Paper 00 的系列邊界 |
關鍵語義防線: GCCF 04 的六種狀態性質是上游理論的原義。本篇增加 Valid、Due、Running、Candidate、Committed 等遊戲 Runtime 工作性標籤,不聲稱這些是 GCCF 的原始公理。
2. 基本對象與兩個不可混淆的空間
2.1 邏輯世界狀態
沿用 Paper 00 的工作性表示,對指定遊戲世界與模擬時刻 定義:
其組件意義固定為:
- :世界內可識別的狀態實體、屬性或邏輯節點。
- :規則級依賴、事件交互及允許的高階依賴關係。
- :狀態值或其合法描述符、版本、有效性、來源及重建資訊。
- :模擬時間、計時器、到期義務和時間座標。
- :在遊戲規則下必須保留的提交歷史、事件序列及決定性重播資訊。
- :當前世界規則、觀察範圍、容許誤差、權威與表示契約。
這個 tuple 是 CWSR 工程表示,不能與上游 GCM 的 World primitive 直接畫上等號。尤其 不表示「所有數值都已同時實體存放於 RAM」;當某狀態可經事件歷史或聚合模型合法重建,其描述符仍可包含在邏輯世界中。
未被觀察、未被渲染、未被排程的狀態,仍可能屬於 。
2.2 可執行計算工作集合
另外定義:
其中 是可被執行器理解的工作單元,例如:結算某城市物價、更新某 NPC 狀態、求解某區域碰撞、重建某地圖快取或檢驗跨區域庫存守恆。
與 必須分開:
- 一個狀態實體可被多個不同工作讀取或寫入。
- 一個工作可跨越許多狀態節點。
- 不是每個世界實體都必須有一個永遠執行的同名
update()。 - 一個工作可被編譯或降級成 CPU、GPU 或無須實際執行的有效結果重用,但其語義身份不因此消失。
用 表示目前邏輯上可追蹤的狀態集合,用 表示宣告過的工作身份集合;二者屬於不同型別,不容以裸整數 ID 互換。
2.3 物理駐留與實際活動集合
定義:
表示指定執行環境中當前已物化的狀態集合;它可以再依 RAM、VRAM 或可直接存取之儲存層標註位置。另定義:
與 Paper 00 保持相同符號:整體活動域 可包含需要被訪問或處理的狀態、依賴及工作,因此:
本篇針對可執行工作單元另取工作投影:
表示目前已獲得排程資格的工作單元; 表示其中實際正在執行者。狀態資料與依賴邊進入整體活動域,不代表它們本身就是一個 CPU/GPU 工作。
因此,邏輯世界表示、物化集合、活動域及實際執行集是不同型別或不同投影,不得彼此代換。這是本篇的定義性分離,並不是對任意集合提出無條件不等式。
2.4 不要把 Logical World 變成巨大常駐資料庫
邏輯世界可用下列混合形式承載:
- 已提交的資料值或快照。
- 可尋址的不可變資產和資料頁。
- 事件紀錄加上可重建規則。
- 已提交且帶有效區間的區域統計摘要。
- 在明確精度契約內可重新細化的群體狀態。
- 不可重建、必須安全持久化的玩家或世界決策。
但**「邏輯上存在」絕不允許成為「其值可憑空創造」**。對尚未決定的隨機結果、不可推知的未來事件或未定義的遊戲規則,應標記 Unknown/Undetermined,而非偽裝為已存在的確定事實。
3. 最小狀態描述符:身份、版本、依賴、時間與授權
3.1 State Descriptor
對邏輯狀態 ,定義本篇最小描述符:
其中:
| 欄位 | 必要意義 | 典型失敗形式 |
|---|---|---|
id |
穩定邏輯身份及命名空間 | 重用舊 ID 讀到不同 NPC |
kind |
狀態型別、結構及單位 | 把庫存當成價格 |
owner |
權威所有者或負責的世界域 | 兩個系統同時聲稱可寫入 |
ver |
已提交版本/epoch | 使用過期計算結果 |
dep |
讀取來源、依賴版本、動態依賴證據 | 漏掉由事件新增的依賴 |
time |
有效時間窗、下次期限或衍生時間 | 畫面靜止但排程事件過期 |
valid |
在特定契約下結果可否重用 | 把相同數值誤當相同語義 |
mat |
物化位置和駐留性質 | 明明已釋放還持有 GPU 指標 |
rebuild |
合法重算/恢復策略與成本 | 丟棄唯一不可重建資料 |
prov |
來源、規則版本、seed、提交來源 | 讀檔後重播不一致 |
policy |
權限、精度、可變性、版本與一致性契約 | 未授權的候選結果直接覆寫世界 |
邏輯 ID 不等於記憶體位址,不等於遊戲畫面的顯示座標,也不等於 GPU buffer offset;上述映射可以改變而不必改變同一世界實體的身份。
3.2 State Identity 與 State Version 分離
令:
對同一身份的不同已提交版本:
狀態內容即使恰巧是同一個值,也不必表示相同版本、同一來源、相同時間有效性或相同提交歷史。
例如某城鎮糧食庫存先增加 10,再減少 10;目前數值回到原值,但中間的市場交易與玩家任務可能已完成。值回到原點,不代表因果歷史回到原點。
3.3 Descriptor 與實際資料分離
一份簡化的工程描述符可以是:
state_id: world-01/region-west/city-07/food-stock
kind: inventory.quantity
canonical_revision: 142
rule_revision: economy-r7
dependency_stamp:
local_production: 81
incoming_shipments: 44
local_consumption: 91
valid_through_sim_tick: 26800
materialization:
resident: false
allowed_tiers: [ram, storage]
recovery:
mode: checkpoint_plus_event_replay
checkpoint_revision: 128
authority:
writer: economy-commit-gate
上述是候選 schema 範例,並非現有 CWSR 程式的輸出格式。實作時必須校驗型別、版本、事件一致性、恢復路徑及權限,而不能只要 YAML 可以解析就宣稱合法。
3.4 不可重建資料的優先權
對玩家選擇、已提交任務結果、消費資源或不可重播的外部輸入,若 rebuild 尚未有經過驗證的程序,不得因為目前沒有被觀察而任意丟棄其唯一副本。
休眠是執行調度決策;回收是記憶體/儲存決策;刪除世界事實是另一種具有權威的操作。 三者必須獨立授權。
4. 狀態有效性不是單一 Active/Inactive 開關
4.1 不同性質應保持正交
承接 GCCF 04 的 Exists、Addressable、Recoverable、Materialized、Observed、Pinned,本篇另外引入如下 Runtime 工作性性質:
| 性質 | 對象 | 問題 |
|---|---|---|
| Exists | 邏輯狀態 | 世界是否承認它的身份或事實? |
| Addressable | 邏輯狀態 | 能否找到其描述符/引用? |
| Recoverable | 邏輯狀態 | 沒有當前物理副本時能否合法恢復? |
| Materialized | 邏輯狀態/裝置 | 是否已在指定位置形成可讀副本? |
| Observed | 狀態/觀察者 | 是否在指定語境被查詢或取得觀察? |
| Pinned | 狀態 | 是否因政策或一致性要求禁止任意回收? |
| Valid | 派生結果 | 依賴、規則、時間與精度條件是否仍允許重用? |
| Due | 工作單元 | 是否存在已到期的執行義務? |
| Scheduled | 工作單元 | 是否已被接受進候選/活動佇列? |
| Running | 工作單元 | 是否正在某個執行器上處理? |
| Candidate | 計算結果 | 是否有尚未權威提交的結果? |
| Committed | 世界修訂 | 是否已通過一致性及提交門檻? |
| Rendered | 觀察投影 | 是否已輸出到畫面/音訊/介面? |
其中 Due 不能附加在任意普通資料上,Committed 不能用來表示 GPU kernel 完成,Rendered 也不能用來證明世界狀態已更新。
4.2 可以同時存在的狀態組合
典型合法情況包括:
- 一座遠方城市的已提交庫存摘要:Exists = true、Addressable = true、Materialized = false、Observed = false、Valid = true。
- 玩家目前的可見裝備:已物化、已觀察、已呈現,但與其相關的傷害計算結果可能剛剛失效。
- 夜間結算結果:GPU 已算完,Candidate = true,但因讀取版本過時而 Committed = false。
- 尚未到期的 NPC 行程:世界規則存在、下次喚醒期限已知、Running = false,而不代表 NPC 從世界消失。
- 玩家打開城鎮地圖:Observed 由 false 變 true;可能需要物化,但不必每次都使城鎮經濟演化。
但不是任意布林組合都合法;例如 Committed = true 的世界修訂須具有對應的權威提交紀錄,Running = true 必須有合法工作身份和執行租約。
4.3 有效性是依契約而定,不是資料內容相等
令 為指定的結果契約, 為精度及觀察語境,定義:
有效性不得只由上一筆數值與現在數值是否相等判定;它還依賴於來源版本、規則版本、模擬時間及潛在副作用。
若資料不足以證明有效,必須允許 unknown;不能把「尚未發現失效」偷換成「已證實有效」。
4.4 由外部觀察到內部語義的非蘊涵
在本篇語義中:
這些都是本篇的狀態區分與反例指引,不是藉由符號自動導出的全面效能結論。
5. 依賴圖是規則證據,不只是相關性圖
5.1 規則級依賴與預測性提示分離
將 至少分成:
其中:
- :遊戲規則、資料流、寫入衝突或經驗證的模型契約所要求的依賴;可作為失效、合法執行與提交判斷依據。
- :AI、玩家行為統計或預測性模型推測的未來關聯;僅可用於可撤銷的預載、候選分組或優先級建議。
預測提示命中率再高,也不能直接授權跳過一條尚未證明可省略的規則依賴。
5.2 不只有單一讀取邊
CWSR 至少要辨識以下依賴類型:
| 類型 | 例子 | 漏掉時的典型後果 |
|---|---|---|
| Read / Derivation | 裝備屬性 → 技能傷害結果 | 使用舊傷害值 |
| Write Conflict | 交易與任務同時修改庫存 | 遺失寫入或重複扣貨 |
| Temporal | 到期薪資結算 → NPC 金錢 | NPC 明明沒動卻漏領薪水 |
| Event | 角色死亡事件 → 任務完成條件 | 任務永遠不觸發 |
| Guard / Conditional | 道路封閉時 → 啟用替代路線依賴 | 條件變更後仍使用舊路由 |
| Absence / Global Condition | 「城內沒有活著的守衛」→ 開門事件 | 只檢查一個守衛造成假陽性 |
| Scale Bridge | 區域倉儲變化 → 國家級供給摘要 | 宏中微資料不一致 |
| Random / Exogenous | 天氣抽樣或外部輸入 → 事件生成 | 延後更新卻改變抽樣序列 |
| Rule / Schema Revision | 稅法版本改變 → 經濟計算 | 沿用舊規則結果 |
有些依賴須用超邊、條件守衛或群組摘要表示,不應把所有遊戲規則強迫建成逐一的簡單二元邊。
5.3 依賴契約的工作性形式
對工作單元 ,令:
分別描述可讀、可寫、條件及時間義務。
令 為狀態 的權威修訂版本, 為上次計算時保留的依賴指紋:
只要參與推導所需的版本、守衛或時間界限改變,便不能單憑「值看起來沒有變」繼續重用結果。
對依賴集合會動態變動的工作,指紋還必須包含依賴發現結果或索引版本。只監控舊 Read Set,可能漏掉新生成的一條因果路徑。
5.4 必須處理「不存在」的依賴
某個任務寫作「所有守衛都已離開」時,不能只記住當下找到的三名守衛。新增第四名守衛,本身就可能使原條件失效。
因此若採開放名單查詢、反向索引、存在性或否定性條件,依賴契約需記錄集合版本、查詢範圍及封閉世界假設。對無法證明查詢範圍封閉者,應使用保守重查,不能宣稱可安全略過。
5.5 循環、回授與高扇出依賴
世界經濟、群體情緒和路網交通可能具有依賴循環。這不是一張單純的無環 DAG 就能完整處理的情況。對強連通分量或回授區域,可以選擇:
- 指定收斂、有限迭代或固定點契約;
- 採固定步進或時間分段而非立即全部求解;
- 使用可證明保守的群組更新;
- 超出成本上限時退回已知正確的基準更新策略。
Paper 01 不提出一個能在任意非單調環境下自動終止的依賴閉包演算法。
6. 從狀態變化到執行義務:必要集合與活動集合分離
6.1 工作單元不是每幀自動獲得執行權
在時間窗 ,令:
- :已提交狀態變更或已確認的失效源。
- :Paper 00 意義下的依賴閉包,可包含狀態與依賴節點。
- :將上述閉包及規則觸發投影為真正需要處理的工作單元,故 ;這是有型別的工作投影,不是把狀態 ID 當工作 ID。
- :時間期限已到、需要處理的工作。
- :因物理、動畫、即時互動或其他契約必須繼續運算的工作。
- :新的觀察或查詢要求其生成、物化或重建的工作。
- :恢復、重試、重新驗證或錯誤修補所需工作。
定義候選必要義務:
這是邏輯上的保守待處理義務描述,不是規定 Runtime 必須先把全世界完整閉包顯式展開再開始更新。依賴索引可懶惰展開或分塊整理,但不得因此遺失任何必須到期完成的義務。
6.2 活動工作集不得掩蓋待辦債務
令 為已獲得排程資格、被選入當前執行階段的工作投影;令 為仍合法待處理的義務集合。基本責任是:
但僅有集合包含還不夠。對具有完成期限 且被承諾可按期完成的工作,規劃時應滿足:
實際完成後仍需驗證 。若資源不足以作出合法期限承諾,必須記錄違約風險、退化或回退;不能只把工作留在佇列、仍宣稱已滿足語義。
執行中工作仍可因版本過期失去提交資格,故 不等於最後成功提交的工作集合。
6.3 有效結果重用:安全條件
令 表示工作 在已知版本快照上生成且已驗證的結果。引入:
其中:
DepMatch:所有必要資料與依賴索引版本仍吻合。RuleMatch:使用的世界規則/算子版本仍有效。TimeOK:現在仍在結果的合法有效窗內,且不存在應觸發的到期更新。PrecisionOK:結果滿足本次查詢所要求的精度或等價界限。EffectOK:重用不會跳過必須發生的事件、I/O 或不可省略副作用。
只有上述合取被可靠證明時,才可把跳過計算視為合法;否則應排程重新計算、延後並保留責任,或回退至已知正確模式。
6.4 條件性重用命題(非普遍最佳化定理)
命題 P01-1:純確定性推導的結果重用。 假設工作 是沒有外部副作用的確定函數,其所有語義輸入、規則版本與精度契約已完整包含於依賴指紋,且有效時間條件未改變。若現有指紋與上次計算時完全相同,則重用同一已驗證結果,在該契約下與再次執行該函數取得相同結果。
可簡寫為:
但此推論依賴上述純函數、輸入完整性和規則穩定性前提。它不能直接套用於讀取系統時間、使用共享可變隨機數生成器、網路請求或具隱性事件副作用的程式。
證明說明: 由完整指紋相同得到所有決定函數輸出的有效語義輸入相同;由確定性得到輸出相同。若指紋不能保證輸入完備、存在未追蹤的副作用或時間內生變化,命題前提不成立。
6.5 理論上最省的工作集不保證工程上最便宜
維護因果索引、比較版本與切換排程也有成本。若每幀只需對幾百個小整數作加法,建立複雜依賴圖可能比每次直接計算更慢。CWSR 必須容許 always_update、fixed_step、manual_region 等簡單模式作為合法、甚至最優的局部選擇。
7. 時間是世界語義,不是 FPS 的附屬欄位
7.1 至少區分三種時間
| 時間 | 目的 | 不可混用的理由 |
|---|---|---|
| Simulation Time | 世界內的日夜、任務、經濟、物理演化 | 暫停時可凍結,倍速時可加速 |
| Monotonic Runtime Time | 量測延遲、排程等待、超時與效能 | 不等於遊戲世界進度 |
| Presentation / Frame Time | 渲染和輸入感知 | 影格變化不決定世界事件是否到期 |
遊戲暫停可能停止世界時間但仍持續 UI 或背景存檔;畫面停止更新也可能不妨礙某些確實依世界時間繼續的模擬。時間意義須由子系統契約決定。
7.2 Time Contract
每個具時間依賴的工作至少需宣告:
- 所使用的時間座標與時間縮放規則;
- 是否固定步進、定期結算、期限觸發或連續演化;
- 下次合法喚醒點或允許推進的最大時間差;
- 延後執行能否以聚合/解析方法得到相同或容許誤差內的結果;
- 存讀檔、倒轉、快進、重播及暫停時如何恢復其義務。
例如,NPC 每日早上九點上班不能因玩家連續三天沒有進入該城鎮就永久停在第一天;但系統也不一定要逐幀模擬這名 NPC 的所有步行細節。
7.3 Lazy Advancement 的合法條件
對能合法快速演化的局部規則,可定義時間推進算子 。若不存在未處理的事件邊界、規則變更或外部輸入,並且該模型滿足對應組合律:
則可考慮將多個微步替換為一段合法聚合推進。
然而對碰撞、分支互動、隨機採樣或不可交換事件,此組合律不能憑直覺假定成立。能夠快進計算,不等於可以丟棄中間發生的關鍵因果事件。
7.4 時間與隨機來源的完整性
若基準遊戲每 tick 共用一個全域 PRNG 串流,單純略過某 NPC 的抽樣可能使後續所有角色取得不同亂數。CWSR 不可只檢查當前可見數值就宣稱重播等價。
可研究以世界事件身份與工作身份定義穩定抽樣子流、預先決定抽樣位置,或使用可重播事件日誌;但任何改變亂數語義的改造均須在比較之前明確聲明,不能把新的隨機分布假裝成舊系統 bitwise 等價。
8. 觀察、物化、呈現與計算是獨立要求
8.1 四種常見誤讀
誤讀 A: 沒有畫出來的城市就可以不演化。
修正: 若世界規則要求城市經濟推進,至少要滿足其時間與因果契約;具體採細節模擬、聚合更新或合法的懶惰求值另行判定。
誤讀 B: 玩家打開地圖代表必須重新計算全國。
修正: 可先查詢有效摘要;必要時只物化或細化指定區域,但不可省略必須同步的世界事件。
誤讀 C: 資料已在 GPU 就應由 GPU 直接寫入權威世界。
修正: GPU 資料的駐留位置與世界狀態的修改權限無關;候選結果仍須符合版本、數值與提交契約。
誤讀 D: Rust 所有權保證依賴完整性。
修正: Rust 的所有權與借用可協助存取安全,但不知道遊戲規則中的任務事件、城市物流依賴或時間期限;後者必須由 CWSR 專門宣告和驗證。
8.2 觀察契約
對觀察者 和觀察要求 ,定義:
為可合法返回的觀察投影。這可以是 UI、地圖、NPC 對話、物品資訊、音訊,或不顯示給玩家的測試探針。
觀察契約必須包括:
- 預期的世界時間或最大新鮮度延遲;
- 哪些狀態量必須可辨識;
- 可容許的數值或統計誤差;
- 是否要求可重現性、完整因果歷史或正式版本;
- 缺資料、未知結果與物化成本超限時的回覆規則。
新的觀察要求可能觸發計算或物化,但不是所有觀察都必須改寫世界。
8.3 物化契約的最低問題
對狀態 和設備/記憶體層 :
只有在可用性、容量、來源版本與存取合法性條件通過後才可進行。部分物化可保留摘要、索引或衍生資料,不能不加區分地當成完整世界狀態。
真正的 RAM/VRAM 預算、生命週期、所有權與回收決策交由 Paper 04。本篇先固定一個接口要求:物化操作本身不得默默提升資料的世界權威地位。
9. 已執行不等於已提交:雙態結果與世界修訂
9.1 Canonical 與 Candidate 分離
設目前權威世界修訂為 ,某工作以指定輸入快照產生候選變更:
候選變更存在於 staging / proposal 區域,不因執行器完成而自動變成權威世界。
世界提交函數採工作性形式:
包含必要的輸入版本、規則版本、時間條件、資源與權限證據、數值界限及不變量驗證結果。拒絕後仍須決定重試、回滾、保留待辦義務或明確失敗。
這是局部遊戲 Runtime 的候選提交契約,不等同宣稱 GCM 或 GCCWT 已採用本篇這份精確 API 或符號。
9.2 Commit Gate 至少檢查的事項
| 驗證項目 | 最低要求 |
|---|---|
| Input Versions | 讀取快照是否仍被規則允許;必要時驗證衝突和序列化條件 |
| Rule / Schema Revision | 算子、世界規則與輸出型別未被悄悄改變 |
| Temporal Validity | 結果的模擬時間、事件順序和有效期限合法 |
| Domain / Scale Contract | 跨區域和宏中微不變量沒有違反 |
| Authority | 寫入者對目標狀態具備授權 |
| Precision / Invariants | 數值精度、庫存、資產、任務等不變量符合政策 |
| Duplicate / Replay Safety | 相同事件或工作重試不造成重複提交 |
| Evidence | 結果可定位、可稽核並可按需求重播 |
只檢查版本一致不會自動提供完整交易序列化保證。 需要跨多狀態原子提交或防止寫入偏斜時,仍須明確使用衝突集合、鎖、交易、序列化檢查或其他已知正確機制。
9.3 CPU/GPU 的共同邊界
一個城市經濟批次工作可以在 GPU 上運算,也可以在 CPU 上運算;對權威世界而言,重要的是:
- 使用了哪個合法輸入版本與時間範圍?
- 輸出的變更對應哪些邏輯狀態身份?
- 是否滿足世界規則和數值界限?
- 是否允許寫入對應世界修訂?
這使 GPU 可以成為世界狀態演化的計算載體,而不是取得未審查修改權的第二套世界資料庫。
9.4 事件重試、重播與外部副作用
對純遊戲內計算,可藉由事件 ID、冪等檢查和版本化提交減少重複作用。對不可逆外部 I/O(例如雲端交易、網路傳送或檔案持久化),不能把遊戲內重播視為可自動撤銷外部副作用;應另外配置 outbox、去重或補償程序。第一輪單機研究以不依賴外部不可逆副作用的工作負載為主要驗證範圍。
10. 一個最小可實作的執行契約
10.1 Work Contract
本篇建議每個可調度工作至少持有下列資訊:
// 概念性介面,不是已編譯或已測試的正式 Rust API。
struct WorkContract {
work_id: WorkId,
read_set: ReadSetDescriptor,
write_set: WriteSetDescriptor,
dependency_stamp: DependencyStamp,
rule_revision: RuleRevision,
simulation_time_contract: TimeContract,
observation_contract: ObservationContract,
side_effect_class: SideEffectClass,
precision_contract: PrecisionContract,
world_authority: WorldAuthorityRef,
resource_hints: ResourceHints,
}
ReadSetDescriptor 與 DependencyStamp 必須能涵蓋動態依賴和集合變動;SideEffectClass 區分純計算、可重播事件、可補償副作用和不容許跳過之作用;WorldAuthorityRef 僅是指向驗證者的引用,不因持有此欄位就代表已取得寫入權。
10.2 最小更新管線
候選語義管線:
Committed world revision
├─ Receive: event / clock / observation demand / recovery
├─ Invalidate: rule-causal index, schema and time stamps
├─ Build obligations: required work + pending work
├─ Reuse check: certified valid? yes -> reuse/no execute
├─ Plan: admissible CPU/GPU/other route or baseline fallback
├─ Execute: produce candidate delta; no direct canonical write
├─ Reconcile: input versions, time, conflicts, precision, invariants
├─ Commit: authorized world revision or explicit rejection
└─ Observe / render: projection, not implicit world authority
若某工作已證明無須重新執行,更新管線仍可能需要維持其時間期限、世界歷史或事件監看;不能把 reuse 誤認為永久刪除相關義務。
10.3 最小安全性守則
本篇提案至少要求七個守則:
S01 — Identity Stability: 邏輯身份不能被記憶體位址、執行緒 ID 或 GPU offset 取代。
S02 — Dependency Soundness: 宣稱可重用結果者,須具完整的必要依賴證據或安全保守回退。
S03 — Temporal Completeness: 每個已宣告的到期或連續義務必須完成、仍合法待處理或被明確記錄為違約。
S04 — Candidate Isolation: 未驗證候選結果不得直接成為權威世界事實。
S05 — Materialization Independence: 駐留不直接賦予狀態有效性或權限。
S06 — Observation Separation: 可見畫面不決定全部世界因果的演化義務。
S07 — Fallback Admissibility: 當依賴不完整、回復失敗或路由成本失控時,必須有符合已知正確語義的降級/回退路徑。
11. 三個可測試的小型世界案例
11.1 案例 A:裝備屬性更新
世界: 玩家、裝備、技能傷害、介面、任務狀態與遠方城市。
事件: 玩家替換武器。
規則依賴: 武器攻擊力與附魔 → 傷害、特定技能;部分 UI → 顯示新數值。
預期排除: 無相依的遠方商隊、地形與城鎮人口摘要不需因此重新計算。
必須檢查的反例: 某武器附有全球詛咒或修改交易稅率的劇情腳本,則「更換裝備」可能真實觸發跨世界依賴。因果索引若漏掉腳本事件,應記為錯誤而非效能成功。
驗證: 同事件序列下,任務、屬性和交易狀態應與成熟參考方案吻合;同時記錄工作單元數與失效索引成本。
11.2 案例 B:畫面靜止、世界時間仍在前進
世界: 玩家停留在靜止選單;遠方農場按遊戲時間結算收成、NPC 工資到期。
事件: 玩家沒有按鍵,畫面不更新,但遊戲設計允許時間前進。
正確行為: 按期限更新收成、薪資與相關事件;可使用合法的批次或懶惰推進,不需逐幀更新全部 NPC。
失敗反例: 因畫面靜止,Runtime 將所有 NPC 與經濟系統永久休眠;三天後開地圖,世界仍停在原日時的財產與任務狀態。
驗證: 用模擬時間戳、到期事件序列和最終狀態比較,不能只錄製相同的畫面截圖。
11.3 案例 C:橋樑破壞與跨尺度供應鏈
世界: 道路圖、商隊、城鎮庫存、地方價格和國家供應摘要。
事件: 玩家在微觀層破壞橋樑。
因果傳播: 受阻路段 → 有關路線 → 到貨期限/庫存 → 區域價格 → 受影響的宏觀摘要。
可能不變者包括不經此路線的商品與地區;但若世界規則包括全國共同定價或跨區域替代供應,閉包就可能擴張。
驗證: 以事件順序、依賴版本和庫存守恆檢查真實影響域;測量依賴閉包高扇出時 CWSR 是否反而比普通批次重算更慢。
12. 研究實作最低需求:先不需要做整個遊戲
12.1 最小測試台組件
| 元件 | 初版責任 | 可檢驗的輸出 |
|---|---|---|
| World Registry | 管理邏輯身份、權威版本與描述符 | 同一狀態可被定位與還原 |
| Typed Dependency Index | 記錄讀取、寫入、守衛和動態集合依賴 | 失效集及因果證據 |
| Time / Obligation Registry | 管理模擬時鐘、期限與必須連續執行的工作 | 無漏到期事件的時序日誌 |
| Validity Tracker | 檢查版本、規則、時間、精度及副作用 | reuse 或 recompute 證據 |
| Work Planner Stub | 在 CPU baseline 上形成合法工作計畫 | 不需真正 GPU 也能核對活動集合 |
| Candidate Staging | 保存計算候選與讀取快照 | 候選與已提交版本分離 |
| Commit Gate | 驗證衝突、權限、時序及不變量 | commit/reject/retry 記錄 |
| Observer Probe | 對不同解析度輸出讀取軌跡 | UI 之外的世界一致性測試 |
| Replay Harness | 固定 seed、事件順序、版本與規則 | 可重播失敗案例 |
本篇不指定 Godot 或 EveWorld 為必要前提。若要使用 Rust,可先以單程序、CPU-only 實作最小參考系統;Paper 05 再加入 GPU Compute adapter。
12.2 提案的機器可讀事件格式
{
"world_revision": 142,
"simulation_tick": 26800,
"event_id": "e-2026-000045",
"event_type": "road.blocked",
"causal_source": "world-01/region-west/bridge-02",
"rule_revision": "road-logistics-r4",
"affected_domains": ["region-west/road-network", "city-07/supply"],
"authority": "world-event-commit-gate",
"replay_order": 450
}
該格式只是可測試的最小範例。affected_domains 是事件已知影響的線索,不可直接假定完整;正式依賴擴張仍由規則和索引驗證決定。
13. 正確性與可觀測等價測試
13.1 不只比較影格畫面
定義一個指定測試語境 ,其觀察投影 可包含 UI、遊戲時間、NPC 行程、任務旗標、庫存、事件日誌與未顯示的內部不變量。
令基準執行和 CWSR 候選執行分別產生 與 。則可設定:
這是按任務定義的驗證義務,不宣稱單一距離函數可涵蓋所有世界因果。對時間事件、歷史一致性或不可替代的決策,需另設事件序列或邏輯不變量測試;數值相近不代表事件正確。
13.2 精確、近似與隨機語義分開驗證
確定性/精確工作: 固定 seed、事件序列、運算規則及比較精度,檢查可要求的 bitwise 或數值等價。
浮點/異質工作: 事先指定容忍度、平台差異與不可逾越的守恆條件。
隨機工作: 分開檢驗是否需同 seed 同路徑重播,或僅需經預先指定統計規格達到分布等價;不得在失敗後變更判準。
近似多尺度工作: 評估細化時是否違反已提交歷史、局部庫存和其他不可近似的世界事實。
13.3 最低測試集
| 測試 ID | 情境 | 必須抓到的錯誤 |
|---|---|---|
| T01 | 重複讀取有效派生狀態 | 不必要重算或錯誤失效 |
| T02 | 修改上游依賴,結果剛好相同 | 用值相同掩蓋版本/事件差異 |
| T03 | 動態新增符合查詢的實體 | 否定條件/集合依賴漏失效 |
| T04 | 時間到期但畫面不變 | 漏喚醒或非法永久休眠 |
| T05 | 暫停、快進、讀檔與重播 | 世界時間/執行時間混用 |
| T06 | 多個工作同時修改同一資源 | 遺失寫入、提交競爭與重複作用 |
| T07 | 計算途中上游版本改變 | 過期候選提交 |
| T08 | 物化副本被回收後重新讀取 | 使用失效記憶體引用或錯誤重建 |
| T09 | GPU 與 CPU 結果路徑切換 | 數值契約、權威與重播不一致 |
| T10 | 依賴循環及高扇出事件 | 不終止、失控重算、過長延遲 |
| T11 | 隨機事件與共享 PRNG 狀態 | 隱性抽樣序列漂移 |
| T12 | 不可重建玩家決策資料 | 資料被錯誤釋放且無法恢復 |
13.4 量測執行與管理成本
本篇不提出「只要活動節點數很少,成本就按活動節點線性降低」的無條件主張。若 為世界狀態節點總數、 為依賴關係規模、 為實際變更數,完整圖掃描仍可能花費 ;有效索引與局部變更才有機會把部分工作成本壓向受影響閉包。
記錄至少包括:
- 工作總執行次數、合法跳過次數、違規跳過次數;
- 版本檢查、依賴索引維護與失效傳播耗時;
- 活動工作單元數、待辦期限債務及遺失喚醒數;
- Canonical/Candidate 的版本衝突與拒絕比例;
- 已物化資料量、RAM 峰值、VRAM 峰值及重建成本;
- Wall time、CPU time、P95/P99 延遲及能耗(若可量測);
- 遊戲觀察與事件重播的正確性差異。
這些資料供 Paper 08 與成熟事件驅動、Dirty Flag、ECS/Job System 及固定更新基準比較。
14. 反例與可證偽性:本篇何時失效
14.1 反例 F01:未知依賴使結果失效
若遊戲腳本可以在 Runtime 未知的情況下新增依賴,而 CWSR 仍因舊版本指紋不變就重用結果,則本篇的安全重用契約被違反。解法是補足依賴發現或保守回退,不是宣稱腳本不合理。
14.2 反例 F02:高頻、廣域、連續事件
若幾乎所有 NPC 每個時間步都受全域天氣或共享狀態影響,且規則不允許聚合,則活動集可能接近總世界規模。此情形下固定或批次更新可能更好。CWSR 不具有保證次線性執行成本的普遍定理。
14.3 反例 F03:管理成本大於省下的計算
若索引、版本、指紋和提交追蹤在可接受的工作負載中持續比成熟事件系統更昂貴,則必須縮小 CWSR 適用範圍,或捨棄其中若干治理層。新分類本身不構成效能價值。
14.4 反例 F04:時間或副作用被錯誤省略
若由於休眠而遺失 NPC 關鍵事件、亂數消耗順序、任務觸發或不可逆 I/O,則無論 FPS 是否提升,都不能算 CWSR 的成功案例。
14.5 反例 F05:候選世界變成第二份不受控真實世界
若 CPU/GPU/UI 任一執行器繞過 Commit Gate 寫入不相容的權威狀態,則規劃/執行/提交分離失敗。該架構不可因為算得快就視為正確。
14.6 反例 F06:依賴維護無法閉合
若常見遊戲規則需要反覆全世界掃描才能找出可能的新增依賴,而保守策略成本接近或超過完整更新,則本篇僅能提供正確性框架,不應宣稱帶來額外效能優勢。
可證偽規則: 遇到失敗時,必須保留事件、seed、版本、設備、測試條件、輸入快照與錯誤觀察;不能事後刪改測試門檻以保留原假說。
15. 與 Rust、C/C++、Godot 與 EveWorld 的整合邊界
本篇不要求替換現有語言和引擎,也不宣稱 Rust 原生具備因果有效性。建議的漸進式策略是:
- 在 Rust 或現有 C/C++ 程式中建立可識別的 world-state descriptors 與版本化工作單元。
- 對純函數、任務條件、經濟結算等易於追蹤依賴的系統先加入 Validity Tracker。
- 對角色物理、即時動畫和需要持續更新的引擎子系統保留原有正確排程。
- 先採 CPU-only 參考執行與 Commit Gate;再測試 GPU 批次計算。
- 由 Godot/EveWorld adapter 映射世界事件、查詢和狀態快照,不讓新 Runtime 默默接管引擎物件的全部所有權。
- AI 可協助辨識依賴、產生測試和改造程式碼,但未經驗證的 AI 推測只能作為
hint,不得作為安全跳過計算的證明。
此路線保留傳統遊戲開發的畫面與物理優勢,同時針對哪些世界計算實際有必要建立更嚴格的管理層。
16. 九篇系列中的責任邊界與交接
| 篇次 | 本篇已建立的前置內容 | 後續專篇的增量責任 |
|---|---|---|
| Paper 00 | 系列目標、研究界限、硬體與效能基準 | 不因本篇而改寫 |
| Paper 01 | 邏輯世界/可執行工作單元分離、版本/依賴/時間/候選提交最小語義 | 本篇交付 |
| Paper 02 | N_t、A_t/A_t^Q、P_t、ReuseOK 與 Time Contract 的接口 |
因果觸發、期限佇列、休眠/喚醒、循環和漏喚醒演算法 |
| Paper 03 | State Descriptor、Scale Bridge 與觀察契約 | 宏中微聚合、細化、跨尺度一致性及時間分辨率 |
| Paper 04 | materialization、recovery、owner、policy 欄位 |
動靜態記憶體契約、RAM/VRAM 駐留、回收、重建與預算 |
| Paper 05 | Candidate Staging 與 CPU/GPU 不同執行載體共享的 Commit Gate | 因果小流、批次 Compute、顯存、同步與渲染競爭 |
| Paper 06 | Work Contract/依賴與形態的分離 | 24/72、GCM 風格資源配置與自適應路由成本 |
| Paper 07 | Registry、Index、Tracker、Scheduler、Commit Gate 的原型義務 | Rust 參考 Runtime、接口、回復與遊戲引擎適配 |
| Paper 08 | T01–T12、反例與最低量測 | 成熟對照組、可重播效能與正確性測試、適用域裁定 |
16.1 不得破壞的術語版本
Paper 00 已使用的 Logical World State、Active Workset、Rule-Causal Dependency、Predictive Hint、Wake Contract、Residency Contract、Commit Authority 與 Observation Contract 均保留原義。本篇新定義 State Descriptor、Validity Tracker、Work Contract、Necessary Obligation Set、Candidate Staging 及 ReuseOK,只作為 v0.1 工程提案;若後續修訂,必須在新版本 changelog 明確註記,不得直接修改歷史原稿。
16.2 Paper 02 的直接起點
下一篇不需重寫何謂世界存在或狀態權威,只需回答:
- 如何將事件、時間、依賴與觀察需求轉為精確的喚醒工作?
- 如何維持因果閉包而不必每幀掃描全世界?
- 哪些休眠和批次規則可被證明不漏事件?
- 什麼時候應將局部工作回退為固定 tick 或全量重算?
17. 文獻與原始文件索引
以下是本篇實際承接的 EveMissLab 原始研究資料;其狀態為既有內部/公開草稿,不宣稱是外部獨立驗證或經同行評審的科學結果。為避免重複撰寫母理論,本文僅提取其已明確界定的研究問題和概念接口。
- Neo.K × Aletheia,CWSR Paper 00|因果世界狀態運行:既有計算理論的單機遊戲 Runtime 延伸總綱,v0.1,2026-10-16。原稿:
CWSR_Paper00_Causal_World_State_Runtime_Series_Charter_v0.1_2026-10-16.md。 - Neo.K × Aletheia,全域計算方法論:異質計算的全域一致組合,v0.1,2026-08-23。原稿:
01_全域計算方法論_異質計算的全域一致組合_v0.1.md。 - Neo.K × Aletheia,GCCF 04|全域可尋址狀態:大內存之外的選擇性物化模型,v0.1,2026-09-22。原稿:
GCCF_04_Globally_Addressable_State_and_Selective_Materialization_v0.1_zh-TW.md。 - Neo.K × Aletheia,GCCF 05|因果流計算與預記載:面向未來需求的分散式執行,v0.1,2026-09-22。原稿:
GCCF_05_Causal_Flow_and_Predictive_Preloading_v0.1_zh-TW.md。 - Neo.K × Aletheia,GCCWT Paper 04|計算場與資源激發:跨 CPU/GPU/Memory/Agent 的動態執行域,Draft v0.2。原稿:
GCCWT_Paper04_Draft_v0.2.md。 - Neo.K × Aletheia,GCCWT Paper 06|AI 原生全域調度:從 Task Scheduler 到 World Computation Planner,Draft v0.2。原稿:
GCCWT_Paper06_Draft_v0.2.md。 - EveMissLab,GCM Phase B:Deterministic Compute Allocator 技術白皮書,v0.1,2026-08-27。原稿:
GCM Phase B:Deterministic Compute Allocator 技術白皮書 v0.1.md。
外部技術背景(非本篇新增發明,暫不偽造精確文獻書目): 事件驅動程式設計、增量計算、反應式/資料流系統、版本化資料庫、事件溯源、ECS/Job System、Physics Sleeping、Simulation LOD、GPU Compute 及快照一致性。對外投稿版本應補齊逐項核對過的正式書目、引用頁碼、基準程式版本與重現材料。
18. 結論
本篇確立 CWSR 第一個工程原則:世界狀態的邏輯存在,不必等同於它此刻正在執行;反過來,程式或 GPU 工作確實執行,也不表示其結果具有成為世界事實的權威。
這個分離只有在保留因果依賴、時間義務、結果有效性、物化規則、觀察契約、候選提交與回復責任時,才可能成為安全且有價值的效能優化基礎。
CWSR 不承諾讓所有遊戲都減少執行工作,也不否認固定 tick、持續物理與普通 CPU 更新在某些情境下更合理;它主張在可以提出正確性證據的局部世界中,將不必要的執行轉化為有條件且可驗證的結果重用、延後與選擇性活動。
至此,Paper 01 交付的是可被反駁的世界狀態/執行語義契約,而非效能成績。其直接移交給 Paper 02 的問題,是如何由這些狀態和義務產生不漏事件、可度量成本、可安全回退的因果觸發與休眠/喚醒機制。
版本紀錄
- 2026-10-16|v0.1: 初版完成;沿用 Paper 00 的上游來源、世界狀態 tuple 和九篇地圖;新增狀態描述符、依賴與結果有效性契約、邏輯必要義務集合、時間責任、候選/權威提交分離、最低測試與反例。尚無獨立 runtime 實測。
End of CWSR Paper 01 — Research Draft v0.1.