论文导读 · 2026-08-28

Xu与Verbrugge:把"重力方向"与"时间"变成关卡生成的坐标轴 — Fukai解读

PCG / 关卡自动生成 / 扩展状态图 / FDG 2026

一段式摘要

长久以来,关卡自动生成一直是"制作地形的工作"。先排好墙壁、地板与通道,然后再对"能反转重力""脚手架会移动"这类机关做事后检验。麦吉尔大学的Kaijie Xu与Clark Verbrugge把这个顺序颠倒了过来。他们提出的是把机关本身升格为坐标轴,与地形一起搜索的方案。

该框架名为HDPCG(High-Dimensional Procedural Content Generation,高维度的程序化内容生成)。它在格子坐标(x, y)上加入"现在处于哪一层"或"现在是第几秒",构建出一张大型图。在这张图上做普通的寻路,就能在生成阶段——而不是事后判定——满足诸如"恰好经过3次重力反转的路径"这样的订单。

我读的是发布在arXiv上的版本。同题论文已收录于FDG 2026(第21届Foundations of Digital Games)的会议论文集,是通过同行评审的研究。

关于这篇论文

题名是「High Dimensional Procedural Content Generation」。作者是Kaijie Xu与Clark Verbrugge二人,均隶属于加拿大蒙特利尔的麦吉尔大学。

我读的是arXiv版本,页面左侧印着"arXiv:2602.18943v1 [cs.AI] 21 Feb 2026"。是2026年2月21日提交的preprint(评审前公开的稿件)。不过同题论文已经带着DOI收录进8月10日至13日在哥本哈根皇家丹麦学院举办的FDG 2026会议论文集中。也就是说已经通过了同行评审。需要事先说明的是,以下数值均出自arXiv版本,与会议论文集的最终版本在细节上可能存在差异。

今天选择这篇论文,是因为从解谜类网站的角度看,这是一种少见的"可以直接拿来实装"的研究。重力反转、平行世界切换、让时间停止通过的脚手架——这些都是解谜平台跳跃游戏的主要动词,本站也曾以把重力翻转过来这一动词为题讨论过。这项研究的定位,就是把问题从"能不能生成"往前推到了"能否按订单生成"。VVVVVV的截图《VVVVVV》(Terry Cavanagh,2010)Steam商店页面截图。按一下按钮就能让上下方向的重力互换。论文将这款游戏作为用Unity重现的范例点名提及。

目前已知的内容

PCG(Procedural Content Generation,内容的自动生成)是让机器制作关卡与素材的技术。经过数十年的研究,制作地形的部分已经相当成熟。但按作者们的说法,关卡生成的表述方式仍然"largely geometry-first(大体上以地形优先)"。

那么机关是如何被处理的呢?论文整理道,依赖时间的移动、离散的交互规则、地形以外的状态等,并非在生成器内部被直接表示,而是作为使用模拟的目标函数或后处理启发式(经验法则)被注入进去。顺序是先做出来,再让它运行,不行就扣分。

这种顺序有弱点。作者写道,由于"模拟只能间接地强制满足要求",在生成过程中瞄准特定机关等级的结构会变得困难。即便想做出"有3次重力反转的关卡",也只能靠随机生成、计数、丢弃地反复尝试。

因此,出发点在于:欠缺的不是个别算法,而是表示方式本身。需要一种能处理机关丰富关卡的、通用且可扩展的表示方式与问题设定方法。

如何解决的

思路出乎意料地直接。给格子赋予"属性",把世界状态写成扩展状态空间上的单元格。这样一来,寻路程序就能在一张图里把地形和机关合并起来考虑。只是图变大了,搜索方式本身并没有改变。

一つ目の軸は空間(Direction-Space)である。地形に「層」という飛び飛びの次元を足し、(x, y, z, 層)という4つの座標で到達できるかどうかを検証する。こうすると、重力の反転も、並行世界の切り替えも、「層をまたぐ辺を1本通った」という同じ出来事として扱える。バラバラだった仕掛けが一つの型に収まる。

第一个轴是空间(Direction-Space)。在地形上加入"层"这个离散维度,用(x, y, z, 层)这4个坐标来验证是否可达。这样一来,重力反转与平行世界切换,都能作为"经过了一条跨层的边"这同一件事来处理。原本各自为政的机关被收进了同一个模型。

第二个轴是时间(Direction-Time)。这里使用的是时间展开图(time-expanded graph,把同一张地图按每个时间刻度复制一份,再用表示时间推进的边连接起来的图)。玩家的行动被写成"等待""行走""搭乘"三种转移,并附带诸如该格子当前是否被占用、移动脚手架只能在端点处上下等约束。

两个轴都要经过共通的四段流程。先做出大致的骨架,接着一边控制一边落实到地形上,再验证在高维图上是否成立,最后用多项指标打分。空间一侧准备了3种方法:仅用i.i.d.(独立同分布)噪声生成的Naive Noise Baseline(NNB);在经过的位置周围放置排斥力使其分散的Naive Penalty A*(NP-A*);以及用引力与斥力场直接瞄准切换点的Potential Field A*(PF-A*)。

时间一侧也是3种。先用2D/3D的A*画出骨架,之后再放置周期性脚手架与障碍物、用广度优先搜索确认是否成立的Static Backbone Baseline;用位掩码带有轻量记忆的TEG-A*;以及在分层的有向无环图上正向求解的动态规划方法TEG-DP。

结果

空间一侧最容易理解的是"是否符合订单"这一数字。关于切换间隔与目标的误差(MAE,平均绝对误差),表3中PF-A*在小、中、大三种规模下分别为0.002 / 0.000 / 0.000。NP-A*为0.091 / 0.093 / 0.097,无引导的NNB为0.288 / 0.284 / 0.326。有针对性放置的方法,几乎完全遵守了间隔的订单。

切换密度这一方面,就没那么整齐了。同一张表3中PF-A*为2.247 / 2.078 / 1.343,NP-A*为2.217 / 1.366 / 2.554。两种方法互有胜负,取决于规模。不过NNB为9.410 / 8.738 / 10.978,差了一个数量级。可以读出的是:"引导确实有效"这一点很明确,但"哪种引导更强"取决于规模

作为鲁棒性指标,论文测量了ARR(alternative route robustness,迂回路径的存留率)。单次运行的平均值,PF-A*在小、中、大规模下为0.338 / 0.319 / 0.530,NP-A*为0.156 / 0.215 / 0.360,NNB为0.037 / 0.042 / 0.057。与无引导相比,PF-A*留下的备用路线多出约9~10倍。也就是说,不会到处都是死路。

速度也在实用范围之内。根据表4,PF-A*的单次运行在小规模下为0.138±0.060秒,中规模为0.663±0.278秒,大规模也只是4.119±1.136秒。做一个关卡只需几秒,用于每日批量生成绰绰有余。

时间一侧的实验规模写得很明确。表2中,小规模为30×15格、时间上限200,随机种子12个;中规模为50×25、上限300,种子8个;大规模为80×40、上限500,种子4个。表6的综合得分(单次运行),大规模下Static Backbone为7.81±1.77,TEG-A*为13.30±3.51,TEG-DP为20.35±9.58。所需时间分别为0.31±0.20秒 / 0.25±0.18秒 / 6.42±0.68秒。

表5显示,TEG-DP显著优于TEG-A*的情形是"除了两种设置(小规模单次、中规模单次)之外的全部",效应量(Cliff's δ)报告为"large"。这是一个常见的结果形态:解得越细致越好,但也相应地更慢

制作者可以怎么用

第一。如果在制作重力反转的解谜游戏,可以把"切换次数"与"切换间隔"作为订单传给生成器。这篇论文显示,只要是间隔方面的订单,几乎能做到零误差地遵守。可以用语言定下"前段间隔放宽、后段收紧"这样的难度曲线,直接作为生成器的参数使用。不用再靠随机生成、计数、丢弃来反复尝试了。

第二。如果是移动脚手架的关卡,可以用时间展开图设计"等待"与"搭乘"的比例。玩家停下等待的时间占比、待在脚手架上的时间占比、接触间隔——这些都作为指标排列出来,因此可以把"被迫等待的感觉"当作一个可调的旋钮。节奏的调整,从凭感觉变成了数字上的订单。Contrast的截图Contrast》(Compulsion Games,2013)Steam商店页面截图。在立体世界与映在墙上的影子世界之间往返。作为"切换层"这一动词的直观范例放在这里(并非论文中实际使用的游戏)。

第三。即便不做生成,也能用得上。只要把手工制作的关卡放到这张扩展图上就行。是否存在"不使用重力反转也能到达终点的漏洞",只要在禁止跨层边的状态下跑一遍寻路就能知道。不必整套引入生成器,也可以只把它抽出来当验证器用。

第四。作为质量把关的扰动测试。论文在生成之后加入微小扰动,通过能否重新生成来测量鲁棒性。同样的做法也能用在运营上。如果是每日解谜,可以在发布前尝试"把脚手架挪一格""延迟一个刻度",解会崩坏的盘面就不发布。这是把ARR之类的指标用作出货判定的思路。

第五,作为提醒。"符合订单"和"好玩"是两回事。这篇论文的所有指标测的都是前者。引入生成器时,即便指标全绿,也最好不要省略试玩测试。

局限

作者们列出了5项局限。第一,时间一侧理想状态的TEG-A*,为了促成"有意义且不重复的接触",需要用记忆与奖励来扩充状态,这会招致状态爆炸。因此实际使用的是简化版,虽然易于处理,但严格塑造交互的能力有所下降。文中写道,这在Static基线与DP之间留下了空隙。

第二,处理的仅限于构造式、基于搜索的方法,尚未整合能在高维状态空间上学习先验知识或价值函数的PCGML(使用机器学习的PCG)或强化学习(通过试错学习能获得更高奖励的行动的框架)。第三,机关的各个轴是逐一分别评估的,尚未评估把多个机关混合在同一状态空间中时的成败与规模增长情况。第四,鲁棒性只是在生成之后加以扰动来测量,并未纳入遗传算法的适应度之中(因为那样需要反复重新生成,成本会大幅上升)。

而第五项分量最重。作者们明确写道"we have not conducted user studies(尚未进行用户研究)",虽然可玩性与节奏由指标与回放数据支撑,但也承认关于趣味性的正式证据仍是今后的课题

Fukai在这里想指出的是比较对象的问题。空间一侧的基线NNB,是"i.i.d.噪声加按编号顺序切换层"这种几乎无引导的方法。以9~10倍的差距胜过它这个数字,老实说,更应该理解为仔细确认了"有引导会胜过无引导"这一理所当然的事实。就我读到的范围而言,并没有找到与既有PCG方法正面比较的表格。

还有一点。TEG-DP在大规模下单次运行是6.42秒,但如果跑遗传算法,数量级就会改变。像每日解谜那样一天一份的话没问题,但如果是那种要在游玩过程中当场生成的用途,我认为按这篇论文目前的状态还达不到。

Fukai的解读

我想把这项研究,放进"关卡生成从制图工作搬迁到约束满足"这条脉络里来看。用设计批评的语汇来说,这是一项把关卡设计师在脑中默默进行的"动词配置",翻译成可搜索的坐标的工作。当重力反转从"画面上的要素"被改写成"图上的一条边"的那一刻起,间隔与次数都变得可以下订单了。有趣的是,为此几乎没有发明任何新算法。用的还是A*与动态规划这些旧工具,改变的只是棋盘的书写方式。我认为,这是一篇用解谜平台跳跃游戏的语汇,展示了"改变表示方式就能让问题变简单"这一经典教训的论文。

结语

论文中也收录了Unity的实机演示。空间一侧是重力反转的2.5D关卡,以及切换两种时间状态、穿过地形与敌人的3.5D关卡。后者以《Dishonored 2》的A Crack in the Slab与《Titanfall 2》的Effect and Cause作为参考范例。作者写道"生成出来的东西就是Unity关卡本身,看到的就是能玩的"。结论部分把将这些指标与体感节奏、手感、趣味性联系起来作为今后的课题。

想进一步了解的人,可以一并阅读同一会议脉络下处理PCG评价本身的研究,比如致力于整备PCG基准的那一支(The Procedural Content Generation Benchmark),就能看清"以什么作为好的生成"的地图。本站的磁力与重力时间操作解谜平台跳跃这三个分类,恰好对应了这篇论文所坐标化的那些动词。在动手实装之前,先看看实际的游戏是如何使用这些动词的,应该就能看清该向生成器下达怎样的数字订单。

参考文献

本文参考的论文与相关资料:

High Dimensional Procedural Content Generation (Kaijie Xu, Clark Verbrugge, McGill University, 2026, arXiv:2602.18943v1 [cs.AI], 21 Feb 2026)

同一论文 / Proceedings of the 21st International Conference on the Foundations of Digital Games (FDG 2026), DOI 10.1145/3815598.3815606(通过同行评审的版本)

FDG 2026官方网站(2026年8月10日至13日,哥本哈根皇家丹麦学院)

・文章中的图片来自Steam商店页面:VVVVVV(Terry Cavanagh,2010)/ Contrast(Compulsion Games,2013)。两者均非论文中的实验对象游戏,仅作为动词的实例收录。

・图解为Fukai自制(仅使用英数字)。

Reactions (no login)

Anonymous • one of each per visitor per day