Speedrunning —初学者入门

注意:该文章最初是为 Coopinionated 网站 编写的 ,但是由于该网站不再使用以及我希望巩固自己的著作,我在此处进行了编辑。

几年前,我一直意识到视频速成是一种业余爱好,在我决定观看很多直播的《 Awesome Games Done Quick 2016》之前。 这次经历改变了我对超速行驶的看法,我决定更仔细地研究这一切,这对我所看到的东西非常感兴趣。 我是观看速跑的新手,可悲的是,我手中神经末梢的伤害意味着我可能永远无法亲自亲自进行速跑游戏。 但是我仍然喜欢观看跑步比赛,并想把它写在纸上(采用二进制代码?HTML?.txt格式?比计算机之前的隐喻要简单得多),这是一本关于提速跑步的初学者手册。 这一特殊之处在于,我本人还是速跑的一个相对较新的人,因此希望在撰写此书时,我在尝试掌握一些基本知识时不会太过头。 因此,这是我为准备本帖子而收集的所有信息的总汇:

Speedrunning是真正快速玩电子游戏的行为。

而已。 文章结束时,本文的其余部分将专门讨论随机生成的不愉快的Cyanide和Happiness漫画。

基础

好吧,我承认,我撒了谎。 Speedrunning有很多方面。 初次使用Speedrunning时,要记住的最重要的事情之一是Speedrunning 不仅仅是快速玩游戏的行为。 实际上,通常游戏的实际“游戏”部分几乎没有考虑其中。 当您着手解决时,Speedrunner不在玩游戏,他们正在操纵物理和逻辑引擎,以尽可能快地得出结论。

为此,特定视频游戏的气氛甚至是预期的游戏风格可能完全被抛在了窗外。 我们可能都已经注意到,在《塞尔达传说:时之笛》中不断滚动的速度比跑步要快得多,而Z定向中的侧跳甚至更快。 因此,当然,如果您希望秒表在完成时尽可能少地读取时间,那么您将想以绝对最快的方式走动。 因此,在Speedrun中,您会发现Link永远不会走到任何地方,他总是朝侧面看,跳到他想去的地方,因为那是快速的。

继续以《时之笛》为例,地牢需要花费很多时间。 您可能会想,也许时间太多了。 完成后,您希望在手表上花费尽可能少的时间。 如果您可以从任务中删除那些讨厌的地牢,以便更快地在字幕中看到宫本茂(Shiguro Miyamoto)的名字,那不是很好吗? 许多Speedrunner正是这样做的! 当您第一次在社区中四处寻找视频时,您可能会注意到各种标签,例如“ Any%”或“ 100%”。

Any%运行正是这样。 尽可能快地完成游戏,而没有任何限制或对跑步者的实际完成要求。 您可能会认为他们只是想尽可能多地减少游戏,这是得出合理的结论。 但是,构建这些路径路径需要进行大量的理论设计。 对游戏路径进行的深入研究可能表明,尽管通过跳过游戏的某个特定区域可能会获得x秒的时间,但是由于被跳过的游戏部分缺少关键项目,会导致x + y秒的损失,因此实际上,浪费时间进行游戏的一部分更快,以节省以后的时间。

除此之外,有时以后可能有人发现第二部分的可信跳过,从而消除了对关键项目的需求,因此再次跳过关键项目变得可行。 如果听起来真的很复杂,那是因为。 但是像这样的理论构成了加速运行的基础,几乎比游戏的实际玩法还要重要。 即使在古代游戏中也一直发现新的故障,这些故障动摇了这些游戏的既定路径,并掀起了新一轮的战略和理论研究。

例如,从理论上讲,玩家可以跳过Super Mario 64中的第一个Bowser键,但这是有可能的,但从未得到证明。要做到这一点,就要求玩家以某种方式打开水下门,这是物理引擎不允许的。 但是,最近(实际上是在几周前的2016年11月中旬进行编辑时),发现跳过动作涉及在山坡上建立足够的速度,以便马里奥在游戏注册之前拉开门并将其打开他在水下。 但是,如果没有工具助手,当前是不可能的,这将在本篇文章中进一步介绍。 提出这一点的要点是,在旧游戏中发现了全新的大规模跳过动作(Super Mario 64于1996年发布),现在针对新现实迅速形成了新的路线。

另一方面,100%的奔跑要求跑步者不仅尽快结束游戏,而且还需要获得游戏中的每一项和收藏品。 毫不奇怪,这些运行时间通常比Any%长很多,但这仅仅是因为您必须与游戏中的所有内容保持联系,并不意味着构建路径就不会涉及任何策略。 同样,在许多游戏的背后都存在着一门理论流派,以确定收集物品的最佳路径,以使游戏尽可能快。 如果您曾经玩过《洛克人》,那么您就会知道有一条最佳途径,您击败的每个上司都会为您提供立即杀死下一个上司的武器。 这就是这种策略,被极端化了。 各种各样的故障和技巧将用于在时间未到之前获取项目,从而使某些部分变得更快,更容易。

当然,除了Any%和100%之外,还有更多种速度运行方式,并且许多游戏将具有针对该游戏的特定类别,通常围绕着执行或故意放弃某些技巧来进行。 例如,超级银河战士(Super Metroid)有一个叫做“逆向老板命令”的类别,这恰好是它在罐头上所说的:毛刺和花招被用来按照与游戏意图完全相反的顺序进行游戏。 但是,Any%和100%是相当通用的类别,通常在任何给定游戏中最受欢迎,因此,我选择它们作为主要示例。

我一直在围绕小故障和技巧进行跳舞,以便为您提供速跑的基本框架,因为下一部分将变得更深入。 您可能会想到,游戏的玩法通常不是很宽松。 开发人员将牢记预期的经验,并可能采取措施以非预期的方式阻止玩家意外进入游戏。 当然,这都不适合Speedcoin。 该死,我们希望现在就完成这场比赛。 因此,超速跑手会寻找各种可能的跳过动作,以使游戏比预期的更快完成,并且如果这些技巧破坏了预期的动作顺序,而不是仅仅加快动作速度(即跳过游戏的一部分,或执行某些操作)主要是无序的),它们称为序列中断。

可以说,其中一些最著名的可以在《银河战士》系列中找到。 许多银河战士的道具跳跃早在速跑成为现实并进入游戏绝迹之前就已经存在,以至于银河战士Fusion故意包含了一个极其困难的跳跃,导致了复活节彩蛋,几个角色对萨姆斯的意外到来感到惊讶。

Speedrunner的口号是:“不应该这么快来到这里”。 跑步者会利用游戏机制来利用微小的怪异现象,而这些怪异现象只能在动画的单个帧(称为“完美帧”把戏)中或在游戏几何体的特定PIXEL上(称为“像素完美”的技巧),有时甚至是同时使用。 当然,并非所有漏洞利用程序都要求很高,很多漏洞利用程序都有余地。 总的来说,许多研究都经过充分研究,足以使跑步者在评论跑步时能够准确地告诉您技巧的帧和/或位置窗口。

在这种性质中,最著名的技巧之一就是Paper Mario 64中的“ Blue House Skip”。它是游戏中最大的序列中断,使玩家可以跳过第2、3、4和7章的大部分内容。 5,再加上另一跳,意味着进行Any%运行的玩家完全不需要第4章或Mario的搭档Watt。 要了解它到底需要什么,我们去看录像!

通常,工具辅助的速度运行遵循大致相同的公式,并且在TAS和“常规”速度运行社区之间通常共享策略,但是TAS脚本极其精确的本质意味着,脚本编写者有时可以使用普通人无法访问的策略。 以原始人NES版本《洛克人》的TAS为例。

从跑步的中间开始,由于跑步者利用了如何将游戏加载到内存中,因此游戏的图形完全变成了垃圾。 对于普通的人类玩家,这将导致游戏无法进行。 但是,由于在这种情况下speedrun实际上是仿真器正在执行的脚本,因此它可以继续“玩”游戏而不会出现问题,因为它完全运行在脚本之外,并且不需要任何视觉参考即可。屏幕上显示的内容。 我们可以将直接与游戏代码进行交互的想法带到另一个层次。

任意代码执行

这是speedrunning有点存在的地方。 您最好的朋友Mario,谁为您提供了无尽的娱乐时间? 他真正要做的只是以位置变量为中心的命中盒的图形表示,该变量在屏幕上的位置根据与物理引擎和关卡几何体交叉引用的控制器的输入进行操作。 他是代码。 他占据的整个宇宙都是代码。 它被加载到内存中,并且如果以非常特定的方式操纵游戏的内存,事实证明,很奇怪的事情最终可能会发生。 证人口袋妖怪黄在1分钟9秒内被殴打。

在视频的分钟标记左右有些失控,不是吗? 这里发生的是Speedrunner获得了一些小故障项和Pokemon派对插槽,由于第一代Pokemon引擎极其笨拙的性质,最终以一种非常特定的方式来操纵游戏内存,这可能会让您无所适从。的详细信息(尽管不是,您可以在此处阅读作者的技术评论)。 这种记忆操作使跑步者对游戏具有绝对的控制权,他们使用它来执行一个脚本,该脚本通过激活从玩家击败Elite 4冠军时开始的序列,触发结束的Pokedex等级以及随后的启动来立即结束游戏。学分。 而已! 游戏已经完成。

这种执行方式也可以用来炫耀。 任意代码执行的极端示例通常是Games Done Quick TAS块的核心,通常这些类型的运行完全超出了游戏的范围。 例如,此运行将Pong和Snake的游戏编程为Super Mario World:

它也具有通过游戏玩法演示记忆操纵的价值。 在重新编程游戏之前,Mario和Yoshi所做的所有事情似乎都是完全随机的垃圾,但实际上,物品已放置并留在游戏内存中的精确位置,以使其易于重新编程。

有趣的是,这种运行方式不仅限于TAS! 在《超级马里奥世界》中运行的特定代码执行被发现实际上可以被人类玩家执行。 这是人类玩家尝试超级马里奥世界的代码执行运行以完成游戏的四方竞赛,该游戏的文件中存在零退出信息:

不仅如此,在某些情况下,TAS本身也可以在实际系统上执行。 这导致我们……

控制台验证的TAS

经过控制台验证的TAS,是我们旅程的最后一步,本质上是工具辅助运行的顶峰。 通过硬件向导,计算机可以直接连接到控制台,并在实际硬件上运行的实际游戏上执行TAS脚本。 当前,这是一个非常利基的市场,因为,如您所想,将计算机直接挂接到控制台以欺骗控制器的过程在技术上非常密集,并且需要很高的专业知识。 无论如何,经控制台验证的运行通常是Games Done Quick的TAS块的核心,并且通常具有任意代码运行来启动。 上面运行的《超级马里奥世界》是在Awesome Games Done Quick 2014上的实际SNES控制台上执行的。

经过快速精简了大多数流行的Speedrunning类别之后,我们才完成了一个人类Speedrunner玩游戏,该游戏由TASer通过任意代码执行在实际控制台上重新编程,这才是合适的。

在以上视频中,运行从7:05开始。