Infinite Mario Bros 指南:随机关卡是如何运作的
了解如何在浏览器中玩 Infinite Mario Bros、它的程序化关卡生成器如何工作,以及通关高难度随机关卡的生存技巧。
阅读约 5 分钟

Infinite Mario Bros 是史上最具影响力的同人游戏之一。它由 Markus “Notch” Persson 于 2008 年用 Java 编写,后来由 Robert Kleffner 移植到 HTML5。这款游戏的关卡永远不会用完:每一关都是在你进入时即时生成的。
快速上手
在标题画面按 S 键,就会出现带有道路、关卡圆点和城堡的世界地图。用方向键移动,按 S 进入关卡。进入关卡后,S 键跳跃,A 键奔跑(拿到火焰花后还可以发射火球)。
生成器如何构建关卡
生成器从左到右工作,依次选择一系列区段,并用各种元素来填充:
- 平地区段:有 ? 方块、金币和敌人
- 小山:可以站上去的凸起平台,有时会层层叠起
- 水管:有些水管里还有吞食花
- 跳跃区:宽度不一的缺口,有时两侧还带有台阶
- 加农炮:架在短柱上的 Bullet Bill 发射器
随着你在地图上不断推进,难度值也会逐渐增长。难度越高,缺口越宽,敌人越多,带翅膀和带甲壳的敌人也越多。关卡类型(地上、地下或城堡)会改变地形图块和背景音乐。
它为何意义重大
由于代码公开、关卡无穷无尽,研究人员把 Infinite Mario 当作了试验平台。从 2009 年起,Mario AI Competition 向程序员发起挑战,要求他们编写能玩通这些关卡的智能体,后来的赛道还要求程序设计关卡。Robin Baumgarten 开发的著名 A* 智能体能毫无失误地通过生成的关卡,相关视频在网上疯传。许多关于程序化内容生成的论文至今仍会引用 Infinite Mario 框架。
生存技巧
- 只要前方地面没有障碍就一直奔跑,因为高难度下的缺口会变得很宽。
- 留意 Bullet Bill 加农炮:它们是间隔发射的,所以等一发飞过后再前进。
- 带翅膀的敌人会呈弧线跳跃,踩一次就能去掉它们的翅膀。
- 善用地图:如果某一关太难,往往还有另一条路线。
- 在城堡里要沉住气,那里把狭窄的平台和成群的敌人混在了一起。


