CHAPTER 03 // CORE ARCHITECTURE
确定性涌现内核与多模态空间
深入 cyberpsychosis-core:DeterministicECS、五维原语注册表与三种空间拓扑索引。
3.1 DeterministicECS 与属性黑板
涌现游戏的调试高度依赖可复现性。DeterministicECS 保证所有实体按严格递增的 EntityId 顺序遍历,所有浮点数标量属性按 VocabularyRegistry 定义的 [min, max] 区间自动钳制并保留千分位精度,彻底消除跨平台浮点漂移。
每个实体由三部分正交数据构成:离散标签集合(tags)、连续标量属性表(props)与键值元数据(meta)。
// TYPESCRIPT
CYBERPSYCHOSIS SDK
import { EmergenceKernel } from "cyberpsychosis-core";
const kernel = new EmergenceKernel({ seed: 20261014, gridWidth: 16, gridHeight: 12 });
// 注册带上下界约束的共享标量属性
kernel.vocabulary.registerProperty(kernel.ecs, {
name: "temp",
defaultValue: 20,
min: -40,
max: 600,
description: "Temperature in Celsius"
});
// 创建实体
const generatorId = kernel.ecs.createEntity({
name: "CoreGenerator",
glyph: "G",
x: 9,
y: 5,
tags: ["generator", "machinery", "explosive"],
props: { temp: 58, integrity: 100 }
});
3.2 多模态空间索引 (MultiModalSpatialIndex)
不同类型的涌现需要不同的空间拓扑:落沙与推箱子需要离散网格,爆炸冲击波与危险感知需要连续欧氏距离,而物流管线与社交关系需要有向图。
MultiModalSpatialIndex 在内核层同时提供这三种空间查询原语,且允许同一个实体同时处于网格、连续空间与有向图节点中:
- Grid2D:getEntitiesAtGrid(x, y) 与 getGridNeighbors(x, y, eightWay) 支持 4 邻域/8 邻域元胞匹配;
- Continuous2D:queryRadius(cx, cy, radius) 支持连续半径内的冲击波与 Agent 感知查询;
- GraphTopology:addEdge({ from, to, kind, capacity }) 支持物流管道(pipe)与社交信任边(social_trust)拓扑建模。