状态同步与 AOI 的结合
状态同步下,服务器是权威数据源,客户端只是”视图”。 AOI 子系统决定每个客户端的视图范围,两者通过差量广播结合。

广播节流
class SyncScheduler {
private dirty = new Set<number>();
markDirty(entityId: number) {
this.dirty.add(entityId);
}
/** 每帧收集脏实体,按 AOI 过滤后打包广播 */
flush(aoi: AoiGrid, tick: number) {
const packets = new Map<number, number[]>();
for (const id of this.dirty) {
for (const watcher of aoi.watchersOf(id)) {
const list = packets.get(watcher) ?? [];
list.push(id);
packets.set(watcher, list);
}
}
this.dirty.clear();
return packets;
}
}
关键收益:视野外的实体变更零带宽;参考九宫格 AOI的差量计算。