Група за превод на конзолни игри MASTERPIECE - Преглед на инструменталното ръководство на Super Mario Bros

Винаги е изглеждало като нещо и епичното представяне на SMB не може да бъде подобренопо дефиниция. Защото това есъщата игра. Играха се от милиони хора, хиляди се опитваха да ускорят, а стотици фенове разглобяваха играта парче по парче, включвайки в изследване целия аналитичен апарат, с който човечеството разполага днес.

След 20 години (1985-2005) всички характеристики на играта бяха проучени, всички трикове бяха открити, ROM беше разглобен и напълно разглобен на логически компоненти. Повечето от находките са подробно документирани и вече са достъпни за всеки. Някои от триковете на играта са описани на отделна страница на TASvideos - SMB Tricks.

Сред феновете на TASer ожесточеното състезание за секунди приключи през същата 2005 г. и крайният резултат беше истински еталон за трудното шлайфане на въвеждане с бутон.

Не може да се каже, че въобще не е имало опити за счупване на стария рекорд. Старият перфекционист Фил, който се занимава с TAS от 2004 г., отдавна се заканваше да спре изпреварването с 2 кадъра (1/30 от секундата), но повечето бяха скептични към идеята. Трудно е да се забележи подобрение в 2 кадъра дори и при най-внимателното наблюдение на експертите.

Физическият двигател на Super Mario Bros е доста сложен в сравнение с други игри от 80-те години. В движенията на Марио има много нюанси, които не се забелязват с просто око. В нормална игра (така да се каже, на макро ниво на изследване на SMB) е възможно да се контролира героят само с голяма степен на грешка в действията. По навик е доста трудно да се предскаже къде ще скочи героят, ако натиснетеНапред + A + Bза част от секундата. За щастие, благодарение на интелигентния дизайн на нивата, борбата с гениалната физика остава единственото предизвикателство за начинаещия. И опитен играч вече подсъзнателно взема предвид силата на гравитацията, допълнителното ускорение на бутонаБ и много други фактори. Въпреки това, някои грешки все още остават.

С инструментална игра изчисляването на действията може да се пренесе от сферата на подсъзнанието в сферата на напълно рационалното мислене. Става възможно да се опишат причинно-следствените връзки с доста очевидни формули. Например, как обикновен спийдрънър започва ниво на Супер Марио? Дори по време на кътсцената натиснетеНадясно + Bи задръжте. TASer не може да се суети, но ясно дефинира първия момент, когато натискането наRight + Bще действа като бягане. След като сте написали тривиално решение във файла (Дясно + Bсе натиска в момента, в който фоновото изображение на нивото се изчертава на екрана), можете също да експериментирате с по-малко логични опции, например да натискате B всеки друг път или да редувате натискането наДяснос натискане наЛяво + Дясно.

Именно с такива нелогични методи древните TASers откриха най-бързия начин за ускоряване от нулева до максимална скорост. В началото на нивото (или излизане от тръбата) трябва да се обърнетеналявои да направите малък скок назад (надясно, но с гръб), след което да задържитеНадясноза няколко кадъра. Докато скоростта на Марио достигне "40", повторете скока назад със завой, след което можете просто да задържитеНапред + Bи да се втурнете през нивото с максимална скорост.

Вероятно вече се досещате, че по време на цялото бягане Марио е предназначен да остане малък, тъй като големият Марио няма предимства в скоростта и никой няма да губи време в чакане на награди. В този случай има пълна стъпка.

Както знаете, в първото ниво на SMB има възможност да съкратите пътя, като слезете по тръбата до подземния тайник. Тук си струва да отбележим още един прост трик: за да стигне до изхода възможно най-скоро, играчът скача ипада от високо, набирайки по-висока скорост на спускане. Това използване на гравитацията е приложимо в почти всички платформени игри и е интуитивно дори за човек, който е далеч от компютърните игри.

Много по-невероятни каскади започват от второ ниво - Марио безсрамно скача покрай месоядни цветя от тръби, преминава през стени и убива врагове с главата си.

Всичко е ясно с цветя от тръби - добре изчислените движения могат да предотвратят преминаването на физическите граници (кутия за сблъсък) на обекти. И дори ако визуално спрайтовете се пресичат забележимо, докосването на врага няма да бъде регистрирано от системата.

Но удрянето на врагове отдолу изглежда като някаква нагла измама. Врагът пада върху главата на Марио, който скача под него, но след сблъсъка героят продължава да скача нагоре и врагът пада победен. Всичко се случва по съвсем различен начин, тъй като обикновените конзолни играчи са свикнали да разбират правилата на играта.

Поради тази логическа непоследователност, феноменът TAS не беше лесно приет от масите в ранните си дни. Работата е там, че хората са склонни да заменят реалността с представите си за нея.

Да, в реалния живот Марио щеше да бъде смазан, тъй като врагът беше над него по време на сблъсъка. Но поради слабата мощност на микропроцесора на Dendy, SMB разработчиците решиха да спестят ресурси, като опростиха изчисленията до границата, приемлива за ума на играча. Докато адекватността на физиката не се поставя под съмнение от човек, неговото подсъзнание незабележимо ще допълни липсващите фрагменти.

Но в действителност процесът на смачкване на враговете се изпълнява съгласно едно просто правило: ако, когато играчът се пресича с вражески обект, Марио пада (векторът на вертикалното ускорение е насочен надолу), тогава автоматично се приема, че Мариоскочи върху врага отгоре.

Сравнението на Y координатите не се извършва, тъй като движението на обектите е дискретно, тоест в един кадър Марио може да падне върху врага отгоре и да лети под центъра му, така че в момента на регистриране на пресичането неговият Y се оказа под Y на врага.

И тъй като, след като смачка врага, Марио скача от него, невнимателният зрител дори не забелязва как фазата на повдигане на скока на Марио се превърна във фаза на падане точно преди сблъсъка и след това фазата на повдигане започна отново.

И накрая, въпросът за милион долара - как Марио преминава през стени? Изчисляването на сблъсъци с фона в SMB се изпълнява доста стандартно за NES - пресичането с непробиваем блок се определя постфактум, след което се включва силата на натискане, която коригира координатите на героя толкова бързо, че без да забавяте, няма да забележите как кракът на Марио влезе в тухлата за част от секундата. Въпреки това, имайки нечовешка реакция, тази сила може да бъде измамена. Бутането обикновено се извършва в посока, обратна на движението на играча. Това е логично - ако играчът тича надясно и се сблъска с каменен блок, той трябва да бъде избутан наляво. Но ако сте умни, можете да насочите Марио наляво веднага след активиране на силата на натискане, като сте успели да промените посоката на движение в тези десети от секундата, докато героят все още е частично вътре в блока. Тогава тласкащата сила ще започне неумолимо да кара спрайта надясно (обратно на движението), като по този начин го привлича все повече и повече в блока!

За пълно преминаване през блока (16x16 пиксела) такъв фокус не е достатъчен. Силата на теглене скоро се компенсира чрез натискане на бутонаНазади Марио ще излезе от блока. Но тук на помощ идва друга характеристика на физическите изчисления на SMB - при скок посоката на движение не се променя. Опитайте саминаправете голям скок надясно и се обърнете в движение, като задържитеНаляво. Нищо няма да излезе! Промяната на бутона ще се регистрира, но Марио ще продължи да се движи напред, докато не удари земята. Това не е Chip & Dale, където можете да промените посоката на скока във въздуха. Тук инерцията оставя своя отпечатък върху хода на игровите събития. Между другото, по-реалистичната SMB физика може да е основната причина за популярността на играта.

Ако няма таван пред стената (или е твърде висок), тогава все още е възможно да се осъществи проникване, но това изисква много търпение и много презаписи на неуспешни скокове. Ключовият фактор е определена скорост на вертикално и хоризонтално изместване, което ви позволява да проникнете повече от половината от него дори преди да кацнете на долната граница на блока. След това, по време на последващия скок, Марио ще може да избие горния блок по същия начин, както беше направено в случая с тавана пред стената.

Трудно е да запиша всичко. Дори ако сега разбирате всичко, което беше казано, за пълен анализ на процеса на проникване в стената трябва да гледате натиснатите комбинации от бутони в режим кадър по кадър.

Когато преминавате през нивата на земята, е важно не само да стигнете до замъка възможно най-бързо, но и да не допускате забавяния по време на демонстрации между нивата. Не забравяйте, че понякога след преизчисляване на точки, фойерверки проблясват в небето над замъка. Тези несъмнено приятни неща, за съжаление, само удължават общото време на работа, така че трябва да се избягват. Оказа се, че броят на залповете зависи от оставащото време в момента, в който Марио докосне пръта със знамето пред замъка. Ако последната цифра на таймера е 1, 3 или 6, на екрана ще се появят равен брой мигания. Затова понякога е по-добре да се забавите за половин секунда, когато преодолявате картата на нивата, за да стигнете до себе сизамък в по-добро време.

Освен това, благодарение на появата на инструмента "Frame Counter", TASers откриха много неприятна характеристика на интротата между нивата. Всеки отдавна трябваше да се примири с факта, че когато екранът затъмни (край на ниво или преход през тръба), играта спира за N кадъра (данните за новото ниво се зареждат), обикновено по-малко от секунда. Но в SMB времето за изчакване на тъмно е изкуствено зададено от играта, така че моментът, в който нивото започва, е кратно на 21. Тоест, дори ако някой успее да изпревари предишния рекорд от ниво 1 с една трета от секундата, играта просто ще увеличи забавянето между нивата с 20 кадъра и в резултат на това следващото ниво ще започне от същата времева маркировка като предишния TASer. Ако изпреварите рекорда със секунда (60 кадъра), тогава реалното изпреварване ще бъде 42 кадъра, а 18 кадъра ще изчезнат по време на затъмняването на екрана.

Тази функция на SMB се нарича "правило за 21 кадъра". Именно заради нея надпреварата за рекорди в Super Mario Bros се смяташе за отдавна закъсняла - всички малки подобрения не можеха да променят крайния резултат, освен че в последното ниво няколко спечелени фрейма можеха да намалят крайното време с 2 единици.

Не беше възможно да се премине през блока, но след непланирано изхвърляне на спрайта нагоре се появи неочакван ефект - анимацията за спускане на флага не стартира и Марио се запъти към вратите на замъка без ненужно забавяне. В резултат на това вече първото ниво приключи 31 кадъра по-рано, отколкото в легендарния цикъл без възможност за надграждане! Въпреки това, 10 кадъра бяха загубени поради изравняване по време на затъмнението.

По-късно най-разяждащите TASers прегледаха списъка с кода на играта и намериха обяснение за този трик. Всичко е удивително просто. Когато стълбът бъде докоснат, започва анимацията за спускане на флага, която завършва на Yфлаг = най-ниската точка на полюса. Докато се изпълнява тази анимация, Марио се спуска по стълба и скоро неговото Y стига до дъното, задействайки анимацията за скок на стълб. Въпреки това, ако таймерът за понижаване на флага все още не е нулиран, достигането на ниската точка няма да започне процедурата за прескачане.

Ако Марио внезапно скочи върху стълба отдолу, а не отляво, както са предвидили създателите, тогава веднага след началото на анимацията на флага се проверява Y-координатата на Марио и в съответствие с най-ниската точка на стълба се стартира процедурата за скачане и влизане в замъка. Таймерът за спускане на флага просто няма време да се инициализира, за да забави скока, докато спускането приключи.

По такъв прост начин един китаец изпревари един японец с 84 кадъра, прилагайки трика 4 пъти (в предпоследното ниво числото 3 в последния бит на таймера попречи на използването му - нямаме нужда от фойерверки). Това е днешната ни лекция по геополитика.

За скоростен бегач пътуването нагоре по стеблото заплашва със сериозно забавяне - необходимо е да избиете редица тухли, за да оформите стълба, а след това играта също така показва анимацията на изкачване до небето за забележимо дълго време. Не напразно споменах разглобения код на играта в началото на прегледа - този път плодът на romhacking помогна на изследователите да открият сложен начин да заменят бобеното стъбло с обикновена тръба, която уж води до бонусната стая.

Как да го направим? Трябва да преместите позицията на Марио в рамките на екрана. Обикновено екранът се превърта равномерно, докато Марио бяга, така че на оста x спрайтът на героя винаги е в центъра. Можете да се придвижите вдясно от центъра само като убедите процедурата за превъртане, че Марио не бърза, но в същото време тихо се движите напред.

Такава измама се постига чрез същото проникване в стената - докато силата на изтласкване замръзвапревъртайки екрана, Марио копае надясно със сила и сила, като в крайна сметка достига оптималното съотношение на координатата X към ръба на екрана. Това разстояние е достатъчно, за да се изкачите в порталната тръба, докато левият край на екрана все още не е напуснал зоната на бобеното стъбло - този трик е показан на диаграмата по-горе със синя рамка.

Всички описани трикове бяха открити от хора от различни страни преди 4-5 години, новостта от 2007 г. беше само трик със знаме на стълб.

Когато легендарният рекорд от 2005 г. беше счупен, нещо в света неусетно се промени. Вече никой не може да бъде сигурен в съвършенството на готовите решения. Колкото и да се иска, вече няма да е възможно с чиста съвест да се обадите на поне един TAS изключително бързо.

..Но в началото бяхме смели, безспорно твърдейки, че благодарение на Tool-Assisted Superplay светът може да докосне теоретичната граница на класическите игри. Когато инструменталистите изпревариха най-известните рекорди на обикновените скоростни бегачи, те казаха - това е теоретичната граница.

Но се оказа, че всичко не е толкова просто. Съвършенството все още е неуловимо, то напуска изследователя, дори когато той е въоръжен с най-гениалните методи и устройства. Трудно е да се каже дали е много по-приятно да осъзнаваш себе си на разстояние X секунди от идеалното, отколкото на разстояние Y.

Може би това е смисълът на супериграта.

Възможни подобрения:Не знам, но съм сигурен, че съществуват.