The Swiss Cheese model, pt. 3

Marcin Wichary

瑞士奶酪模型(三)

原文由 Marcin Wichary 发布,订阅该博客

在这个系列已经有了两篇比较严肃的文章之后,我想找个更轻松、无关紧要的话题歇一歇。

“来试试这个好玩的小把戏吧,”这支 13 分钟的视频一开头就这样说道,它来自 Retro Game Mechanics Explained:

视频里介绍的这个小戏法的步骤有点绕:

  • 拿出你的任天堂 NES,插入《马里奥》卡带并开机;
  • 在不关机的情况下,直接拔出卡带,换上《网球》卡带;
  • 开始游戏,等音乐停下来后,随便走动一会儿;
  • 再把《网球》卡带拔出来,换回《马里奥》;
  • 按下 A+Start,你就会发现自己进入了一个本不该存在的随机“无效”关卡。

具体的原理就留给你自己去看视频里的精彩讲解吧,不过在我看来,这正是瑞士奶酪模型的一个绝佳例子:

  • A+Start 是一个真实存在的功能,可以让你从上一次通关的关卡继续新游戏(而按 Start 则总是从第一关开始)。
  • NES 允许你在不断电的情况下拔插卡带。
  • 《马里奥》的制作者决定让游戏在每次 Game Over 时都会重置,并以一种特定的方式来区分冷启动和热启动。
  • 《网球》在启动时不会清空内存。
  • 《网球》恰好会以一种非常特殊的方式改写内存,结果与《马里奥》意外地“兼容”了。
  • 《马里奥》在进入关卡时不会对关卡编号做有效性校验,所以你才能从一个无效/损坏的关卡开始游戏。

和之前一样,只要这些瑞士奶酪上的洞少一个,这个 bug 就不会发生。但这些洞偏偏完美地对上了。

我觉得整件事既有趣又让人愉快,而且我也终于理解了《马里奥》的制作者为什么要在每次 Game Over 时(除了一个小例外)重置游戏——这种做法虽然粗暴,却很优雅,也是我在过去几十年参与的各种项目中,时常希望能更轻松实现的效果。

当然,也有人会说,这整个场景未免太过刻意(话说回来,当初到底是谁发现这种玩法的!?),而且价值有限,毕竟最后也只是随机进了一个关卡而已。我们会在以后的文章里再来展开这个话题,因为故事到这里还没有结束。那些常年钻研老游戏破解的人,做得可比这要深入得

本文章由 muse-spark-1.2-contributor 进行翻译

评论