可以在Super Mario Maker中加载无法逾越的关卡吗?

此条目是视频的免费转载。 是否可以在Super Mario Maker中上传不可能的关卡? 。 该视频中有一个指向“不可能的关卡”视频的链接,所以我也要复述。 我的转述并不假装准确,我只想分享有趣的材料。

将讨论什么


在软件中查找错误可能大不相同。 我在源代码,二进制文件,大型软件组合甚至某些硬件中搜索错误。 但是在某个领域中,我几乎从未做过任何事情-寻找计算机游戏中的错误。

人们花费大量时间查找游戏中的错误。 这些可能是逻辑,数学甚至程序员错误。 有人这样做是为了从一个新的角度看待游戏,而有人试图比其他玩家更快地通过游戏。 在我看来,是Speedran的社区(为提高速度而玩游戏的人)为寻找游戏故障和错误做出了巨大贡献。 但是我们会在这段时间里节省时间,今天只是一个有关发现游戏逻辑错误的故事。

2015年9月,任天堂发布了Super Mario Maker,这是有关著名Mario水管工的平台游戏。 游戏的主要功能之一是用户能够自己创建关卡(在这里称为课程)并与其他玩家共享关卡的能力。 有人创建了级别,跟踪成功的百分比,实际上有人通过了这些级别。 就在这时,研究人员开始梳理他们的手-是否有可能发布一个不可逾越的关卡?


绘制这样的东西是没有意义的,尽管这个关卡确实是不可能的,但是我们也无法发布它。

任天堂面临着一个相当有趣的任务-如何防止图书馆因空旷和无法逾越的关卡而变得“混乱”。 他们与她相处得很好。 该解决方案非常优雅,并已在具有类似创意概念的游戏中多次使用:您需要亲自研究关卡,然后才能将其发布并上传到服务器。 从头一次,从每个检查点一次。 实际上,该任务归结为以下事实:必须开发出作者在出版期间(而不是在出版之后)能够上的课程。

尝试号码1.密码锁


游戏中有许多根据已知规则相互影响的对象。 您可以尝试播放类似密码锁的内容。

例如,您可以取出以下工件:


kupa(1)不能穿过其路径(3)中的一大群怪物,但幽灵(2)除外。 怪物在彼此的头上时,不会分散并静止不动。 如果马里奥(Mario)撞到一个砖块(4),那么堆中的下一个怪物将死,将鬼魂降下一个块。 如果幽灵与隔间在同一条线上,则她可以走得更远。 关卡作者知道每个鬼魂之前的怪物数量,并且他知道击打每个块需要多少次才能为隔间扫清道路。 轿跑车一经所有怪物通过,便激活扳机并清除马里奥的通道。

此示例仅出于说明目的-在实际尝试锁定代码的过程中,一切都变得更加复杂。 玩家看不到怪物,而是将关卡分为独立的部分,在每个部分中,您需要知道多少次打砖。 而且只有所有路段的确切通道才能打开通往该路线出口的通道。

不幸的是,这种方法有很多明显的缺点:

  • 某种书呆子爱好者可能会花费大量时间并定量地评估所有内容。
  • 一个成功的玩家只需击中随机选择的方块,然后突然,这些方块将需要被击中相同的次数。
  • 玩家可以简单地下载课程并在编辑器中将其打开。 在学习后,他们会认真学习“代码”。

我们继续寻找下载不可逾越关卡的方法。

尝试2号。红色硬币


用户ReflectivistFox发布了“不可能的关卡 ”的视频,其中他提出了一个有趣的想法来发布不可逾越的关卡。 确实,有一个很大的局限性:如果您从头到尾都玩过它,我们会经历整个过程;如果您使用检查点,则绝对不能完全精确-全部。 在这样的限制下,似乎似乎没有必要考虑关卡的概念,但实际上,即使是这样的步骤也很重要。 您是否还记得在关卡加载期间,不仅需要从头开始,而且还需要从每个检查点开始遍历它? ReflectivistFox克服了一半的限制-在启动时可以达到其级别,但在正常模式下无法达到此级别。

关键思想是使用“红色硬币”游戏元素(我将立即澄清,玩家将它们分别称为“红色”和“粉红色”。在以前的Mario系列游戏中它们是红色,在Super Mario Maker中是粉色。他们的工作原理是相同的,因此,在下文中,我将仅使用“红色”)。 在普通级别中,红色硬币用作所收集密钥的一部分。 该课程的作者在难以到达的地方有几个这样的硬币。 一旦Mario收集了所有硬币(玩家知道了确切的硬币数量),他就会收到一个特殊门的钥匙,在这扇门后面可能会有一些奖金或上一层楼的通道。

一个重要的特征是这些点特别受这些点影响。 当Mario激活时,Checkpoint会保存游戏。 如果玩家输了,则角色死亡,然后从最后一个检查点开始加载。 恢复了所有游戏元素:敌人,奖励等。 但不是红色硬币。 尽管收集的硬币数量仍然保留,但它们没有还原。 这不是全部功能。 如果您收集了所有红色硬币而输了,则行为会发生变化-计数器将重置为零,并且硬币将位于其原始位置。

ReflectivistFox在其级别上使用了游戏的两个功能。


请注意,检查点(中间的红色标记)被该块关闭了一半。 这样的设置会产生有趣的效果-您可以通过到达顶部方块来激活它,并且在加载游戏时将无法在方块内创建角色,并且它将“掉落”在门和恐龙附近。

因此,从检查站启动的玩家将被带到替代路线。 在这条路线上,有以下等着他:


有很多元素,很难简单描述,因此,我仅重点介绍最重要的内容。

马里奥(Mario)从门出现,他的视线与图片中的方向相同,但他需要直达右边的门(4)。 为此,他需要沿着左侧的箭头,向上并从右上方穿过各个块(在屏幕截图中,路径沿边框向上和向右移动,但是您无法获得更好的拍摄效果)。 对象(1)的特殊构造禁止角色转弯,如果角色转弯,则对象(2)将消失,并且其上方的移动墙将关闭通道。 所有其他方法都使用POW块(3)与龙绑在一起-他将向后移动并向后移动,这将使他能够向左移动而不会引起团队的早期攻击(1)。 不幸的是,移动POW单元(3)使其无法使用门(4)。 要进入门,玩家需要在门下放置一些东西,以使其与门处于同一水平。 玩家可以尝试用手将POW块(3)拿起并带到门上,但作者也注意了这一点-路线的垂直部分过高,无法通过正常跳跃来克服。 播放器可用的所有选项都将导致POW爆炸或无法将本机带到门(4)。 正是这种无法解决的情况,玩家决定从检查点通过此级别。 但是作者本人是如何在出版时通过它的呢?

请注意我用数字5标记的块(空)。最初,一个红色的硬币位于此位置。 在通过过程中,在检查站之前,玩家无法通过并且一定会拿走这枚硬币,这就是为什么现在这个地方是空的。 在检查过程中,游戏无法确定玩家收集了哪些红币,因此,通过将游戏状态加载到检查点中,它会还原所有红币,从而使有条件的玩家可以在必要时收集所有红币。 第二枚红色硬币被围在墙上,不可能收集它,从而确保无法重新装上硬币计数器,因此在游戏过程中,在需要时不会有任何硬币代替方块(5)。 并且在发布时将得到保证-允许您使用它而不是POW块(3)向左移动并平静地退出门(4)。 并且附近的路线已经有出口。

尝试的结果:

  • 如果您根本不使用检查点,则可以通过该级别。 因此,这种方法不适合我们。
  • 在发布过程中和游戏过程中达到关卡仍然存在游戏差异,这意味着我们必须继续进行搜索。

不要灰心,继续看下去。

尝试3号。奇怪的蘑菇


发现差异! 这就是所谓的“奇怪的蘑菇”。 出现蘑菇的可能性为1%,而不是通常的蘑菇。


这就是一个奇怪的蘑菇的样子。


但是马里奥之后,嗯...用蘑菇。 奇怪的马里奥与通常的明显更高和更长的跳跃不同。 另外,如果马里奥先吃普通的蘑菇,然后又变怪,那么马里奥就会变得奇怪。 如果您采取相反的操作,它仍然会很奇怪-普通的蘑菇不会有任何效果。

如果一切都这么简单,那么任何人都可以创建这样的关卡:


护城河的长度经过特殊设计,因此通常的马里奥不会越过它,而奇怪的护城河很容易。 一次又一次地重播就足够了,直到一个奇怪的蘑菇掉了出来。 不幸的是,这种方法不适合我们,因为它给出了1%的整体通过概率。 幸运的是,任天堂的水平也不满意,因为99%的水平是无法实现的,因此他们决定解决这一问题。 在出版时,绝不会出现奇怪的蘑菇。

在这里! 我们只需要反转逻辑。 如果在通常的通过过程中蘑菇会掉下来,但在出版过程中不会掉下来,那么您需要将所有东西都放到绝对位置。 必须强迫蘑菇出现,然后在通常的模式下,总是会玩奇怪的马里奥,而在发行时-通常是那种。


这可能看起来像是一个完整的“蘑菇农场”,这将迫使Mario收集约200个蘑菇(一种类型限制100个块,但您可以在主要世界放置100个蘑菇,在另一个世界中放置100个)。


这是一个怪异的马里奥“陷阱”的例子。 由于跳得更高,他将无法变成左侧的分支并将被锁定,直到计时器结束(准确地说,有一个狡猾的炸弹和障碍物系统迫使马里奥跳得更高,而对于奇怪的马里奥来说,这足以锁定自己,并且通常情况下,它只会激活炸弹并可能偏离航向。

放在一起总结:

  • 一次非常好的尝试,极有可能使它无法以正常模式通过游戏。
  • 但是,有可能发生13.4%的概率(0.99 ^ 200〜0.134,如果我们相信所有事物都是以相等的概率生成的),则奇怪的蘑菇不会掉落,并且该水平仍然会通过。 即使不是均匀的,也仍然有机会,并且有可能达到该水平。

怎么办 最后机会。

尝试次数4。具有双重实体的方块


您还记得本文的第一张照片吗? 我将重复一遍:


该级别实际上是在其他级别中发布的。 而且它还可以发布。

当任天堂提出检查级别的逻辑时,任天堂做得很好,但是情况并非总是如此。 刚发布游戏时,它就有错误。 如果我们使用其中之一,我们将能够实现我们的计划。

首先,您需要擦除Wii U上的所有数据并安装Super Mario Maker v1.0。 您必须离线进行此操作,以便游戏不会更新。 并且可以像发布时一样玩游戏。

现在我们需要讨论具有双重实体的块。 这是一个小故障,允许块以一种方式看起来,而实际上它们是完全不同的。 要创建一个街区,您必须采取三种类型的街区之一-硬币,云朵或固体不可通行街区,将其放置在地图上,然后将另一个街区放在同一集合的顶部,但沿着路线移动,然后删除路线(最初具有路线的街区具有小方法)。


我们将带有路由的连续块放在云上。

这样的块将折叠并表现为原始块,并且看起来像是重叠的。 一段时间后,Nintendo对其进行了修补,这打破了使用此bug的所有层次,因为实际上对双重块的修复仅是叠加的。


块(1)看起来很坚固,但从逻辑上讲它们是普通硬币。

创建了这样的级别后,无需立即发布它。 更准确地说,值得一试-游戏将使我们轻松地完成课程。 但是将其发送到服务器失败,我们没有打开Internet。 但是无论如何,该级别将被标记为已通过并发送到服务器,而无需其他检查。 即使将游戏更新为当前版本。 其中的课程已经不可能完成。

做完了! 在这里-加载,绝对可以肯定,在任何情况下都不能通过。 在第四次尝试中,取得了成功。 到此,我们结束了对Super Mario Maker游戏探索世界的短暂旅程。

结论


感谢您阅读这张附有图片的文字。 我试图谈论在应用程序逻辑中发现错误的过程。 在这种情况下,这是一个游戏,但是如果将常规方法转移到系统和应用程序软件中,则会保留常规方法。 该代码可以很好地编写,但这并不意味着一切都会按预期进行。 逻辑漏洞非常危险且难以检测,但这也很有趣。

所有的好游戏,漏洞和好!

Source: https://habr.com/ru/post/zh-CN433424/


All Articles