CHAPTER 05 // OBSERVABILITY & TIME
因果溯源图谱与平行世界推演
解决涌现游戏开发最大的痛点:看清“为什么会发生这件事”,并在新规则生效前预知未来。
5.1 自动跨系统因果缝合 (Causal Lineage DAG)
当一个结果由横跨多个模拟器的连锁反应产生时,普通日志只能看到一串按时间排列的孤立文本。CausalTracker 通过维护每个实体的最新受影响因果指针(lastCauseByEntity),在后续事件触发时自动将前置事件挂载为 parentCauseIds。
调用 kernel.causal.traceLineage(entityId) 即可通过深度优先拓扑排序,还原从根因(Root Cause)到最终现象的完整因果链:
// TYPESCRIPT
CYBERPSYCHOSIS SDK
const report = kernel.causal.traceLineage(engineerBetaId);
for (const line of report.narrative) {
console.log(line);
}
// 输出示例:
// [Step 1 | Tick 2 | USER] Player pushed [WORD:HOT] into slot (5,2)
// [Step 2 | Tick 2 | LOGIC] Compiled active grid meta-rule: [WATER IS HOT]
// [Step 3 | Tick 6 | PHYSICS] Overheated [CoreGenerator#8] triggered shockwave explosion!
// [Step 4 | Tick 6 | SOCIAL] [Engineer_Alpha#11]'s distress spread to [Engineer_Beta#12]
// [Step 5 | Tick 6 | SOCIAL] [Engineer_Beta#12] panicked and abandoned station duties!
5.2 平行世界分叉推演 (forkAndPredict)
当玩家或 LLM 在运行时注入一条新规则时,怎么知道这条规则会不会在 10 帧后导致全图死锁或殖民地全灭?
EmergenceKernel.forkAndPredict(ticks, mutateFn) 会在内存中完整克隆当前 ECS、空间拓扑与随机数种子状态,在隔离沙盒中静默高速推演未来 N 帧,返回指标对比与关键危机事件列表,而主世界状态保持 100% 零污染:
// TYPESCRIPT
CYBERPSYCHOSIS SDK
const preview = kernel.forkAndPredict(10, (forked) => {
forked.rules.injectDsl(forked.tick, "OVERRIDE smoke IS calm", forked.ecs, forked.causal);
});
console.log(preview.deltaSummary);
// ["Burning entities: 3 -> 3", "Panicked agents: 2 -> 0", ...]