Как Ocarina of Time speedrunners разбиват играта по нови начини

respect dt показано изображение 2
Тази история е част от поредицата ReSpec на Джейкъб Роуч, обхващаща света на компютърните игри и хардуера.

ReSpec обикновено е колона за прекрасния, технически свят на компютърните игри, но понякога има теми, които са твърде добри, за да бъдат подминати. Легендата за Зелда:Окарина на времето е всеобщо признат като един от най-добрите игри за Nintendo 64 правени някога и въпреки че не е заглавие за компютър, най-високото ниво, повечето технически скорости на играта разкриват как работят игрите на фундаментално ниво. По-важното е, че тези невероятни подвизи са възможни само с много усилия на общността.

Съдържание

  • Далеч от произвола
  • Хакване в движение

Препоръчани видеоклипове

Окарина на времето е игра, която би отнела на нормален играч около 30 часа, за да я победи; най-квалифицираните спийдрънъри, които имат за цел да играят играта възможно най-бързо, могат да я победят за около три часа и 40 минути без проблеми. Но категорията Any% на играта, която натоварва играчите да завършат играта, независимо от използваните методи, е намалена до три минути, 54 секунди и 566 милисекунди. И да, тези милисекунди имат значение. Рекордьорът на второ място е на по-малко от цяла секунда зад световния рекорд.

Игра Ocarina of Time за Nintendo 64.

Дори да е толкова забележително постижение, това не е всичко Окарина на времето speedruns донесе на масата. На Summer Games Done Quick 2022, полугодишен маратон за скоростно бягане с благотворителна цел, имаше демонстрация, която подчерта група от бързоходци, които препрограмират играта в движение, за да показват нови графики, да пускат нова музика и дори да стартират чат в Twitch наслагване. И всичко това беше направено на стоково копие на играта без предварително програмиране.

The Окарина на времето общността на speedrunning продължи да разбива играта по привидно невъзможни начини. Свързах се с двама от водещите умове в общността, за да разбера какво кара класическата игра Nintendo 64 да работи и всичко се свежда до един експлойт: Изпълнение на произволен код.

Далеч от произвола

Nintendo 64 конзола и игри.
Роб Тек/Shutterstock

Изпълнението на произволен код, или ACE, звучи много по-плашещо, отколкото всъщност е. Това е термин, използван в киберсигурността, който основно означава стартиране на код (или програма), който не трябва да се изпълнява. Ето как dannyb, спийдрънър за Окарина на времето който държи рекорда на второ място в категорията Any%, описан от ACE в Окарина на времето: „Изпълнението на произволен код в OoT е експлойт, чрез който играч може да използва действия в играта, за да подреди куп данни в паметта, за да имитирайте кода на играта и след това манипулирайте местоположението, където играта търси да изпълни кода, за да бъде мястото, където току-що направихме това подреждане.”

С правилните действия, dannyb казва, че играчите са в състояние „по същество да стартират всеки код, който харесваме от играта, и да накарат играта да прави неща, за които не е програмиран.“ Тези действия включват неща, привидно безполезни като името, което въвеждате, когато стартирате игра. Това е точно действието, което е позволило Окарина на времето да бъде бит толкова бързо.

В игра като Окарина на времето, играта проверява паметта си за определено изискване, което трябва да бъде изпълнено, за да победи играта. Целта на Any% speedrun е да пренаредите паметта така, че да гледа името на вашия герой вместо там, където обикновено изглежда. Това се нарича Stale Reference Manipulation, или SRM, и dannyb казва, че експлойтът е това, което е кракнало Окарина на времето speedruns отворени по основен начин.

[Предишен световен рекорд] OoT Any% Speedrun за 3:55.300!

„ACE във всяка видео игра винаги се нуждае от тези две неща: фино настроен контрол върху някакъв регион на паметта, така че играчът да може направете данните там да имитират код и възможността да промените местоположението на изпълнение на кода, за да бъде мястото, където персонализираният код лъжи. През 2019 г. проблем, наречен Stale Reference Manipulation, беше открит в OoT, което отвори второто изискване в голяма степен“, каза dannyb.

В случай на нормален Окарина на времето стартирайте, привидно произволни действия се събират, за да подмамят играта да проверява области (като името на вашия герой) за изискванията за завършване, когато не трябва. Това е процес от две части. Създайте полезен товар с данни, като например името на вашия герой, и манипулирайте паметта с SRM, за да насочите към този полезен товар.

Хакване в движение

OoT Triforce Percent ACE Showcase: TASBot ни събира тук на SGDQ 2022! (Бета + ново съдържание)

Ето как бият скоростните бегачи Окарина на времето само за няколко минути, но не обяснява напълно как витрината с любовно име Triforce% успя да добави нова текстура, модели, музика, код и дори наслагване на Twitch към играта без никакви модификации на патрон. Savestate, един от умовете зад този дългогодишен проект, обясни, че всичко е свързано с подготовката на конзолата Nintendo 64 да разбира данните от контролера като данни за играта.

Това е витрина, която е възможна само благодарение на TASBot, който е в състояние да изпълнява входове с нечовешки скорости. Както обяснява Savestate, „Ние модифицираме инструкция в паметта, за да започнем да четем данните на контролера като инструкции N64. Обикновено това ще се срине, но благодарение на TASBot той е в състояние да симулира контролери и да ги манипулира по нечовешки начин скорости да изглеждат като инструкции на N64, така че играта да изпълнява данните на контролера като набор от предварително определени инструкции.”

Бегачите могат да добавят всеки код, който желаят, към играта само чрез въвеждане на контролер.

Накратко, витрината Triforce% използва ACE и SRM като нормално Окарина на времето speedrun, но конкретно променя начина, по който конзолата Nintendo 64 разбира инструкциите. С тази настройка бегачите могат да добавят всеки код, който искат, към играта само чрез входове на контролера. Savestate продължи: „Няма модификация на игралната касета. За да получим персонализирани данни в паметта, използваме проблем, който ни позволява да започнем да добавяме и модифицираме неща памет с помощта на TASBot, докато само взаимодейства с конзолата N64 чрез нейния контролер пристанища.”

Порт за контролер на Nintendo 64.

Тези подвизи също не се откриват случайно. Savestate обясни, че Окарина на времето общността е разработила инструменти за разглеждане на това как е подредена паметта в играта, както и програми за симулиране на различни подредби на паметта. Емулатори като Project64 помагат много, позволявайки на бегачите и разработчиците на инструменти да преминат през това как играта изпълнява кода стъпка по стъпка.

Окарина на времето е една от най-емблематичните игри, създавани някога, а силната, отдадена общност на speedrunning позволи на играта да процъфтява с нови разработки в продължение на десетилетия след първоначалното й пускане. Експлоатира като този, който захранва най-бързо Окарина на времето speedruns тривиализират предизвикателството, обикновено свързано с победата на играта възможно най-бързо, но те също подчертават невероятната техническа експертиза и усилията на общността, които се влагат в дисекцията и анализирането на любимия игри.

Общността също е наясно с този баланс, според dannyb: „Категорията Any% speedrun на OoT е единствената в нашите основни класации, която позволява ACE като валиден начин за постигане на целта. За всичко останало ние забраняваме ACE, за да запазим уникалността, която на първо място даде живот на тези категории.“

Тази статия е част от ReSpec – текуща двуседмична колона, която включва дискусии, съвети и задълбочени доклади за технологиите зад компютърните игри.

Препоръки на редакторите

  • Zelda: Ocarina of Time се присъединява към Залата на славата на видеоигрите
  • Разширението N64 на Switch Online няма да бъде пълно без полупрозрачни контролери