24年8月来自谷歌和以色列特拉维夫大学的论文“Diffusion Models Are Real-time Game Engines”。
GameNGen,是完全由神经模型驱动的游戏引擎,在长轨迹上高质量地与复杂环境进行实时交互。GameNGen 可以在单个 TPU 上以每秒超过 20 帧的速度交互式模拟经典游戏 DOOM,如图所示。
下一帧预测实现了 29.4 的 PSNR,与有损 JPEG 压缩相当。
人类评分者在区分游戏短片和仿真合成片段方面,仅比随机机会略胜一筹。
GameNGen 分两个阶段进行训练:
(1) RL 智体学习玩游戏并记录训练过程,(2) 训练扩散模型,根据过去帧和动作的序列生成下一帧。
条件增强可在长轨迹上实现稳定的自回归生成。
如图是GameNGen和世界模型、GameGAN的比较:
电脑游戏是手工制作的软件系统,以以下游戏循环为中心:
(1) 收集用户输入,(2) 更新游戏状态,(3) 将其渲染到屏幕像素。
这个以高帧率运行的游戏循环,为玩家创造了一个交互式虚拟世界的幻觉。
这种游戏循环通常在标准计算机上运行,虽然已经有许多尝试在定制硬件上运行游戏(仅举几个例子,例如,标志性游戏 DOOM 已在烤面包机和微波炉、跑步机、相机、iPod 和 Minecraft 游戏等厨房电器上运行),但在所有这些情况下,硬件仍然按原样模拟手动编写的游戏软件。
此外,虽然存在截然不同的游戏引擎,但游戏状态更新和渲染逻辑都由一组手动规则组成,这些规则是手动编程或配置的。
近年来,生成模型在以多模态输入(例如文本或图像)为条件生成图像和视频方面取得了重大进展。在这波浪潮的最前沿,
扩散模型
成为媒体(即非语言)生成的事实标准,其中包括 Dall-E(Ramesh,2022)、SD(Rombach,2022)和 Sora(Brooks,2024)等工作。乍一看,模拟视频游戏的交互式世界似乎与视频生成相似。然而,交互式世界模拟不仅仅是非常快速的视频生成。对仅在整个生成过程中可用的输入动作流进行条件化的要求,打破了现有扩散模型架构的一些假设。值得注意的是,它需要自回归地生成帧,这往往是不稳定的并导致采样发散。
几项重要的研究(Ha & Schmidhuber,2018;Kim,2020;Bruce,2024)使用神经模型模拟交互式视频游戏。然而,这些方法中的大多数在模拟游戏的复杂性、模拟速度、长期稳定性或视觉质量方面都受到限制。因此,很自然地会问一个问题:
实时运行的神经模型能否高质量地模拟复杂的游戏?
相关工作
交互式 3D 模拟
。模拟 2D 和 3D 环境的视觉和物理过程并允许对其进行交互式探索,是计算机图形学中一个得到广泛发展的领域 (Akenine-Mller et al., 2018)。
游戏引擎
(例如 Unreal 和 Unity)是处理场景几何表示并响应用户交互渲染图像流的软件。游戏引擎负责跟踪所有世界状态,例如玩家位置和移动、物体、角色动画和光照。它还跟踪游戏逻辑,例如通过完成游戏目标获得的积分。电影和电视制作使用光线追踪的变型方法(Shirley & Morley, 2008),这对于实时应用来说太慢且计算密集型。相比之下,游戏引擎必须保持非常高的帧速率(通常为 30-60 FPS),因此依赖于高度优化的多边形光栅化,通常由 GPU 加速。阴影、粒子和光照等物理效果通常使用高效的启发式方法来实现,而不是物理上精确的模拟。
神经 3D 模拟
。近年来,用于重建 3D 表示的神经方法取得了重大进展。NeRF(Mildenhall,2020)使用深度神经网络参数化辐射场,该网络针对给定场景进行专门优化,该网络来自从各种相机姿势拍摄的一组图像。经过训练后,可以使用体渲染方法对场景的新视角进行采样。高斯slatting(Kerbl,2023)方法建立在 NeRF 的基础上,但使用 3D 高斯和经过调整的光栅化方法来表示场景,从而缩短了训练和渲染时间。虽然这些方法展示了令人印象深刻的重建结果和实时交互性,但它们通常仅限于静态场景。
视频扩散模型
。扩散模型在文本-到-图像生成方面取得了最先进的成果(Saharia,2022;Rombach,2022;Ramesh,2022;Podell,2023),这项工作也已应用于文本-到-视频生成任务(Ho,2022;Blattmann,2023b;a;Gupta,2023;Girdhar,2023;Bar-Tal,2024)。尽管在真实性、文本依附性和时间一致性方面取得了令人瞩目的进步,但视频扩散模型对于实时应用来说仍然太慢了。
游戏模拟和世界模型
。有几项研究尝试训练带有动作输入的游戏模拟模型。(Yang 2023) 构建了一个包含现实世界和模拟视频的多样化数据集,并训练了一个扩散模型,根据前一个视频片段和动作的文本描述来预测连续视频。(Menapace 2021) 和 (Bruce 2024) 专注于从视频中无监督地学习动作。(Menapace 2024) 将文本提示转换为游戏状态,然后使用 NeRF 将其转换为 3D 表示。(Ha & Schmidhuber 2018) 训练变分自动编码器 (Kingma & Welling,2014) 将游戏帧编码为潜向量,然后使用 RNN 模拟
VizDoom
游戏环境,根据随机策略(即随机选择动作)对随机部署进行训练。然后通过“幻觉”环境中玩游戏来学习控制器策略。(Hafner 2020) 证明,RL 智体可以完全根据潜空间中学习的世界模型生成的情节进行训练。(Kim 2020) 使用 LSTM 架构对世界状态进行建模,并结合卷积解码器生成输出帧,并在对抗性目标下进行联合训练。虽然这种方法似乎可以为像 PacMan 这样的简单游戏产生合理的结果,但它难以模拟 VizDoom 的复杂环境并产生模糊的样本。(Alonso 2024)训练一个扩散世界模型,根据观察历史预测下一个观察结果,并在 Atari 游戏上迭代训练世界模型和 RL 模型。
本文专注于可交互式玩游戏的实时模拟,并展示了对长距离轨迹的鲁棒性。利用 RL 智体探索游戏环境并创建观察和交互的展示,以训练交互式游戏模型。另一项工作探索学习环境的预测模型并将其用于训练 RL 智体。
交互环境
E 由潜状态空间 S、潜空间的部分投影空间 O、部分投影函数 V (S → O)、一组动作 A 以及转移概率函数 p(s|a,s′) 组成。给定一个输入交互环境 E 和一个初始状态 s0 ∈ S,
交互式世界模拟
是一个模拟分布函数 q(on|o
以下用教师强制目标训练生成模型。给定一个模拟分布函数 q,环境 E 可以通过自回归采样观察来模拟。
GameNGen是一种生成式扩散模型,它学习模拟游戏。第一阶段室通过智体游戏收集数据,第二阶段对生成式模型的训练。为了收集此模型的训练数据,在教师强制目标下,首先训练一个单独的模型来与环境交互。这两个模型(智体和生成模型)按顺序进行训练。智体在训练期间的全部动作和观察语料库 Tagent 都会得到维护,并在第二阶段成为生成模型的训练数据集。参见下图。
要训练一个生成扩散模型,该模型以智体在上一阶段收集的轨迹 Tagent(动作和观察)为条件。
重新利用预训练的文本-到-图像扩散模型 Stable Diffusion v1.4(Rombach,2022)。
根据轨迹 T ∼ Tagent 来调节模型 fθ,即根据一系列先前的动作 a
具体来说,为了以动作为条件,只需从每个动作(例如一个特定按键)到一单token中学习一个嵌入 Aemb,并将文本中的交叉注意替换到这个编码的动作序列中。为了以观察(即先前的帧)为条件,用自动编码器 φ 将它们编码到潜空间中,并将它们在潜通道维度中连接到噪声潜空间。