Новости :: Переводы :: Наши проекты :: Ромхакинг :: GameFAQs :: Документация :: Утилиты
Гостевая книга :: Форум :: 2RTeam :: Zelda64Rus :: О нас


Really fast


Excitebike - прохождение игры за 05:31.37



РОМ: Excitebike (JU) [!].nes
Жанр: Гонки
Страница пробега: 1070M
Фильм опубликован: 2008-02-25
Автор: JXQ
Комментарии автора: частично тут

Характеристики фильма:

* Максимально быстрое прохождение
* Выбран максимальный уровень сложности
* Эксплуатируются ошибки в программе

В озарённом 8-битной культурой детстве, очевидно, под влиянием пиратских терминов и штампов мы с друзьями условно разделяли все Дендевские игры на "простые" и "супер".

Конечно, сформулировать чёткий критерий отбора никому не приходило в голову, но обычно все понимали друг друга без лишних объяснений. "Простыми" играми были забиты многоигровки вида "9999 in 1", а "супер" в начале 90-х можно было достать только на одиночных картриджах или малых сборниках. Естественно, простые игры не ставились с "супер" ни в какое сравнение, и обладание одноигровкой с модным блокбастером значительно повышало шансы обменяться картами с единомышленниками. Какой-нибудь вшивый "Робокоп" умудрялся разом переплюнуть "Марио", "Тетрис" и "Бомбермен".

Время расставило всё на свои места. Нынешнему эмуляторщику подчас интереснее запустить РОМ размером 24kb, чем играть в 256-килобайтный "Tale Spin". Согласитесь, тот же Бомбермен оказался намного жизнеспособнее большинства сверхпопулярных когда-то NES-платформеров.

В сфере Tool-Assisted Superplay, о которой я рассказывал в статье "Искусство игры на эмуляторе", ситуация практически та же. Конечно, современные 2D-шедевры с GBA тоже пригодны для создания скоростных видеопрохождений, но чаще именно благодаря простоте игр прошлого века спидраннеры добиваются удивительных результатов, превращающие видеозапись в самоценное развлечение, не зависящее от великолепия самой игры.

В этой статье я хочу рассказать о нюансах создания отличного инструментального пробега самой что ни на есть "простой" игры, увидевшей свет ещё в 1984 году. Excitebike!

Как известно, целью TAS является не само прохождение игры (элементарно выполняемое при использовании инструментов), а максимально эффективное решение поставленной перед спидраннером задачи. Для успешного прохождения Excitebike достаточно на протяжении 6 трасс всего лишь приходить к финишу в первой тройке. Но матёрого ТАСера подобная программа-минимум совершенно не устраивает, поэтому целью спидрана становится: а) максимально быстрое достижение финиша в каждой трассе; б) предельно захватывающее и эффектное выступление (развлекательный фактор); в) сталкивание с трассы максимально возможного числа соперников (аналог 100% kills в шутерах).

Основная сложность Excitebike состоит в умелом управлении непослушным мотоциклом. Даже если не брать во внимание препятствия и агрессивных соперников, продержаться на высокой скорости достаточно долго может лишь опытный игрок, запомнивший трассу наизусть и чувствующий состояние машины буквально по звуку мотора и его реакции на нажатия кнопок. На высокой скорости любая неточность может привести к перевороту, падению с трассы или перегреву двигателя.

Визуально довольно трудно определить, какой угол наклона ещё безопасен, а какой уже может привести к крушению. Даже врождённое чувство гармонии пасует в момент острой необходимости выбирать между A и B, когда за секунду мимо героя проносится пол-экрана препятствий. Поэтому игроки стараются не рисковать, перемещаясь по трассе на разумной скорости. Должно быть, этим и руководствовались разработчики, когда опрометчиво решили не вводить в игру дополнительное ограничение на максимум скорости.

Конечно, обычный максимум разгона при зажатии рукоятки газа у мотоцикла имеется - 3.25 пикселя за кадр (3 целых + 64/256 субпикселя). Но это всего лишь число, при превышении которого кнопки A и B перестают действовать. А если игроку удастся найти побочные методы разгона, он теоретически может увеличивать скорость хоть до максимально умещающегося в байте значения. Однако, уже на скорости 200 пикселей в секунду становится трудно оценивать происходящее. Парадокс - на высокой скорости веселье только начинается, но играть уже практически невозможно. Отличный повод применить инструменты!

Под словом "инструменты" каждый понимает что-то своё. Кто-то считает турбо-кнопки на пиратских джойстиках вполне допустимым средством честной игры, а кто-то наоборот - причисляет к читам даже возможность нажать на паузу и отдышаться. Даже в сообществе ТАСеров нет однозначно признанного набора методов - при создании инструментального пробега каждый использует то, что знает, что смог освоить или изобрести лично.

Изучая Excitebike с разной степенью кропотливости, можно выработать разные подходы к управлению. На заре TAS люди пользовались лишь замедлением и сэйвами. С помощью этих рычагов они смогли освоить базовые навыки балансировки мотоцикла в воздухе, выявили ряд закономерностей наращивания скорости. Например, в воздухе можно отпускать кнопку B без потери импульса, и двигатель не будет перегреваться. Прикосновение к треугольному трамплину задним колесом увеличивает скорость на единицу, даже если максимум обычной скорости уже достигнут. В то же время простой въезд на трамплин может не дать прироста скорости. Ещё, в воздухе мотоцикл движется чуть быстрее, если на фазе взлёта переднее колесо направлено вверх, а на фазе падения - вниз, но перед столкновением с землёй необходимо выровнять положение.

После осознания преимуществ покадровой записи (когда в обиход вошёл инструмент Frame Advance) ТАСеры открыли новые грани этой простенькой игры. Вот вы бы могли догадаться, что с помощью прицельного и своевременного перемещения центра тяжести мотоцикла можно менять высоту и длительность полёта? Такое можно ожидать от современного симулятора мотокросса, но никак не от 16 килобайт кода!

Короче говоря, за годы соревнований между разными ТАСерами было выявлено немало тонкостей и разработана не одна тактика вождения. Автор обозреваемого TAS фактически не придумал ничего нового, но объединил наработки предшественников и нашёл наиболее оптимальную комбинацию старых подходов к управлению.

Вместо того, чтоб оценивать скорость мотоцикла по скорости скроллинга экрана, товарищ JXQ отыскал в ОЗУ приставки ячейки, хранящие значение вертикальной и горизонтальной скорости, и затем просто отслеживал их состояние в процессе записи пробега. Это позволило оптимизировать вариацию скоростей с точностью до сотой доли пикселя.

Спросите, зачем варьировать скорость, если логика шепчет "чем больше - тем лучше"? Но ведь в гонках эта формула верна далеко не всегда! Пусть в Excitebike нет угловых заносов, зато сами трамплины на уровнях зачастую расставлены таким образом, что для их касания необходимо иметь строго определённую скорость (с точностью до второго знака после запятой), иначе мотоцикл проскочит мимо трамплина и упустит возможность приобрести дополнительный импульс.

Так что в некоторых местах трассы спидраннер специально снижает скорость до определённого предела, чтобы затем получить более значительный выигрыш в ускорении. И вот что интересно, можно сотню раз просматривать итоговую видеозапись, но моменты умышленного замедления вы не обнаружите. Эти манипуляции незаметны для невооружённого глаза. Внутренняя сущность фильма скрыта от зрителя, снаружи виден лишь бесшабашный полёт.

Несмотря на безумную скорость езды двигатель мотоцикла совершенно не нагревается - всё благодаря продуманному распределению кнопочных нажатий. Во-первых, нажатие на газ регистрируется в лишь раз в 4 кадра, поэтому кнопку B не нужно всё время зажимать. Во-вторых, при достижении стандартного максимума скорости кнопка A действует аналогично B, но практически не нагревает двигатель.

В воздухе кнопки Вверх-Вниз действуют несколько иначе, чем на земле, и в совокупности с кнопками Влево-Вправо ими можно серьёзно изменять вертикальное ускорение мотоцикла в прыжке. В нашем спидране игрок нередко улетает выше экрана, а затем выскакивает снизу под трассой. Эта телепортация связана с тем, что координата Y хранится в рамках одного байта и может принимать лишь 256 разных значений. При достижении нуля последующее снижение будет идти с максимального значения байта (255), и мотоцикл появится в нижней точке изображения.

Подобный трюк использовался в пробеге Чёрного Плаща и в некоторых других ТАСах. Вообще, это уникальное свойство NES-игр - разрешение экрана совпадает с размерностью ячейки, хранящей координаты точки на экране. Благодаря этому совпадению в играх типа Ice Climber при выходе за край экрана персонаж появляется с противоположной стороны. И отчасти благодаря этой аппаратной особенности старушка NES остаётся наиболее популярной платформой для ТАСеров 21 века.

С помощью быстрого возвращения на трассу после высоких прыжков автор обозреваемого спидрана успевает коснуться даже очень близко расположенных трамплинов, в результате наращивая скорость до 9+ пикселей/кадр. Эта скорость настолько выше запланированного разработчиками темпа развития событий, что уже к концу первой трассы игру начинает КЛИНИТЬ. Натурально. Бешеный темп просто рвёт её на части, и ради одного этого момента стоит посмотреть пробег пять раз подряд. Когда рвущиеся колёса перенимают импульс шести трамплинов, мотоцикл превращается в неуправляемый снаряд, его сложно вести даже с сохранениями. Мотор захлёбывается и переходит на ультразвук. Движок игры не справляется с отрисовкой объектов, и обезумевший мотоциклист прёт сквозь недостроенную трассу навстречу неотрендеренной пустоте...

..Этот глюк не приносит спидраннеру никаких скоростных преимуществ, но выглядит очень эффектно, особенно в первый раз. Не зря этот фильм рекомендуется к просмотру новичкам для ознакомления с возможностями Tool-Assisted Superplay. И хотя я далеко не новичок, с удовольствием смотрю его уже, наверное, в десятый раз.

Вот так с помощью эмулятора и встроенных в него программных инструментов ретрогеймерам-творцам удаётся вдохнуть новую жизнь в игры, казавшиеся примитивными даже во времена расцвета 8-битных приставок.

Кстати, интересный факт! На каждой трассе нужно преодолеть два круга. Пока некоторые соперники едут по первому кругу, игрок успевает обогнать их (и столкнуть с трассы) во второй раз!

Всё, больше никаких спойлеров. Приятного просмотра!

Возможные улучшения: Написать программный симулятор физики и вычислить экстремум его комплексной функции.

АнС, 16.03.2008
Ссылками мы не меняемся.
Страница админа
        © 2001-2014 Shedevr Team.