拆开仿真与渲染,权威共享状态让世界模型跑到 1024 玩家仍一致

MASS: Multiplayer World Models with Authoritative Shared State

Ziqi Cai, Siqi Yang, Yimu Wang, Zixian Gao, Yunheng Liu, Shuchen Weng, Erwin Wu, Kaipeng Zhang, Boxin Shi

cs.CV, cs.HC

2026-08-07

把状态塞进视觉潜变量做不了多人。MASS 拆开仿真与渲染、维护权威共享状态,1024 玩家下跨视角分歧为 0。

这篇在解决什么

视频世界模型把世界状态塞进「随视角变化的视觉潜变量」里。单视角时没问题,到了多人场景就出事:每个玩家各存一份递归视觉历史,把同一份共享内容编码好几遍,既浪费算力,又让同时呈现的多个视角对同一个实体给出不一致的画面,而且仿真成本还跟着观众数走。

MASS 借用多人网游的老架构来解决:权威服务器负责推进状态,客户端只管渲染。把世界动态和视角渲染拆开。

方法

两个学习出来的引擎,中间隔一个权威共享状态。

Logic Engine 是一个解码器 Transformer,每 tick 跑一次,从全体玩家的联合动作和外部输入推进一个全局、权威、带类型的状态。没有手写的状态转移函数,转移是学出来的。它用基于 schema 的掩码处理分词后的记录。这个状态是系统唯一的递归记忆和同步基准。

Rendering Engine 是一个残差 U-Net,按需为任意一台相机渲染独立且一致的视角,读的是同一份共享状态。因为渲染不再参与状态推进,相机可以随时增删、移动或升级,世界本身一点不变。

这样仿真成本就和视角数脱钩了。更妙的是,实体持久性、位置精度、结构合法性这些可以直接在预测状态上量,不用先渲染一帧。

结果

在匹配的多人贪吃蛇基准上,MASS 七项指标里六项领先。跨视角分歧为 0.000,基线在 0.984 到 1.000;非法状态比例 0.177,基线 0.981 到 1.000。LPIPS 0.098 最好(强基线 B-UN 是 0.123),但 B-UN 的状态可解析恢复率掉到 0,说明像素像不代表状态对。

直接在状态上评测 Logic Engine:1 步时语义准确率 97.9%、位置 99.1%;到 128 步,位置掉到 72.3%,整状态完全命中为 0。作为对照,稠密潜变量方案(Joint U-Net、独立头 CNN、RSSM)在所有时间长度上位置准确率都不超过 2.7%,而且每一个预测 tick 都是矛盾的。带类型模型则做到 99.1% 位置准确、零矛盾。这是全文最硬的结论:把状态塞进视觉潜变量里,根本撑不起权威状态。

渲染质量(256×256):贪吃蛇 38.82 dB、Pac-Man 33.95、青蛙过河 40.24、推箱子 28.50。规模上推到 1024 个并发玩家、10000 个递归步,Logic Engine 每 tick 处理 5121 条记录(1024 玩家 + 4096 食物桶 + 1 全局),渲染从单视角 189.6 毫秒到 1024 视角 842.4 毫秒。

服务器卡顿时,客户端用先知联合输入,视角内一致保持 1.000;只用本地动作则从 0.815(k=1)降到 0.429(k=8)。

为什么重要

这篇的核心论点是个架构判断:把状态压进视觉潜变量的世界模型,做不了多人。要多人,就得像真实游戏引擎那样,把仿真和渲染显式分开,维护一个权威状态。对做多智能体世界模拟的人来说,这是一条能扩到上千 Actor、上千相机的具体路线,而且状态对不对能在一帧都不渲染的情况下先验。

局限与存疑

目前只在 2D、带声明式 schema 的游戏上验证(贪吃蛇、打砖块、2048 合并、Pac-Man、青蛙过河、推箱子)。3D 环境和更丰富的实体交互,作者明确列为未来工作。

Logic Engine 的位置准确率随时间衰减明显:128 步时 72.3%,整状态完全命中为 0。长程滚动状态会漂移。渲染质量在不同游戏上波动也大,推箱子只有 28.5 dB。这些都是论文自己数据里的,但限制了「可扩展」这个卖点在现实里的成色。

术语

原文与代码

相关论文

全部论文解读