Инженер-программист
0,1
рейтинг
30 июля 2012 в 12:50

Tool-assisted speedrunning из песочницы

Много в наши дни существует игрушек — и 3D, и 2D; и браузерные, и standalone; под Windows и под UNIX. Все их объединяет одно — запускаются они на компьютере. Но ещё совсем недавно, в 90-е годы XX века, самыми популярными, несомненно, были приставочные игры. Игровые приставки были наверняка почти у всех, чьё детство пришлось на тот период времени.

Казалось бы, эти примитивные игры давно уже отжили свой век. И так оно и было бы, если бы однажды не родилось такое явление как TASинг. Аббревиатура TAS означает «Tool-assisted Speedrun» и по сути под ней скрывается давнее развлечение — прохождение игр на скорость. Однако, если традиционный спидраннинг подразумевает игру в реальном режиме времени и наличие огромного игрового опыта, то при TASинге определяющими факторами становятся терпение, понимание принципов функционирования игр и наличие достаточного количества свободного времени.

Описание


TASинг появился как следствие обыкновенного человеческого любопытства («а как быстро можно пройти эту игру?») и представляет собой технику скоростного прохождения игр при помощи специальных эмуляторов. Функциональный базис таких эмуляторов включает:

  • возможность сохранения и восстановления;
  • полный контроль над ходом игрового времени;
  • просмотр содержимого памяти;
  • скриптинг;
  • генерирование файлов ввода.


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

Но как определить, какой из вариантов является оптимальным? Казалось бы, если в первом случае игрок «добежал» до какого-то пункта и игровой счётчик в этот же момент времени показал 13 секунд, а во втором случае в этой же самой точке на счётчике всё ещё 12 секунд, то вторая попытка успешнее? Но не всё так просто. Скажем, в первой ситуации игрок мог прийти к отметке позднее, но с большей скоростью, позволяющей ему впоследствии опередить свою вторую попытку. Возникает необходимость получить некоторую дополнительную информацию, которую сама игра не предоставляет. И здесь приходит на помощь функция просмотра содержимого памяти. Зная, по какому адресу расположены те или иные данные, и в каком виде они представлены (однобайтовое беззнаковое целое, 2-байтовое целое со знаком и так далее), средствами эмулятора можно включить отображение этой информации. Таким образом можно не только максимизировать скорость движения персонажа, но и, к примеру, просмотреть содержимое ячейки, в зависимости от состояния которой в игре происходит некоторое случайное действие — например, выпадает какой-то случайный бонус. Это называется манипуляцией удачей. Манипулируя удачей, игрок может, к примеру, максимально быстро получить наиболее разрушительное для своих врагов оружие и благодаря этому расправиться с ними быстрее, чем он сделал бы это, не имея возможности манипулировать удачей.

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

Пример хождения сквозь стенку

Наконец, эмулятор генерирует файл, в точности воспроизводящий кнопочный ввод, необходимый для прохождения данной игры. Реакция игры на нажатия всегда одинаковая, что даёт возможность «воспроизвести» файл ввода даже на настоящей игровой приставке, используя специальное устройство. Файлы ввода получили в русскоязычном TASерском сообществе неофициальное прозвище «мувики».

Тонкости


Многие игры можно пройти быстрее, чем это задумано разработчиками. Из-за различных программных ошибок в процедурах определения столкновений игрок во многих случаях может буквально «войти в стенку». Если это происходит, начинает работать wall ejection — «костыль», корректирующий положение персонажа так, чтобы он покинул рельеф. Цель игрока — заставить этот механизм работать на него, выталкивая персонажа именно туда, куда это нужно игроку. При использовании инструментов для TASинга эта цель становится достижимой. Такой подход порой позволяет пройти тот или иной уровень в десятки раз быстрее, чем при нормальной игре.

Sonic the Hedgehog 3 с Lua HUD

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

Видео


Конечно, всё вышесказанное нужно как-то проиллюстрировать. Например, в этом видео TASер, зная, как функционирует игра, обманывает её, рисуя в игровом поле рисунки и заставляя игру «думать», что он вводит правильные ответы.



Здесь же мы наблюдаем типичное прохождение игры на скорость, в котором, однако, в моменты ожидания игрок не стоит на месте, а занимается тем, что стреляет и прыгает под музыку, что придаёт прохождению особый вкус. Развлечение зрителей — важная особенность TAS, которая часто встречается, когда игрок вынужден ожидать какого-то события (как, например, в этом случае он ожидает момента, когда босс готов принять очередной удар).



Те же, кому незнакомы эти игры, могут посмотреть пробег Sonic the Hedgehog 3 and Knuckles. Эта игра примечательна тем, что в ней можно быстро «телепортироваться» в конец уровня, переполнив беззнаковую X-координату персонажа путём «вылета» (к примеру, при помощи механизма wall ejection) за левую границу уровня.



Сообщество


Существует международное сообщество людей, занимающихся TASингом игр. Сайт сообщества включает в себя wiki, форум (в том числе русскоязычный) и систему публикаций. Игрок, создавший новый пробег, отправляет его на рассмотрение, состоящее из двухэтапной модерации: сначала все участники сообщества дают пробегу оценку «да» или «нет» (то есть должен ли быть этот пробег принят к публикации), затем его оценивают привилегированные участники сообщества — судьи. Если по итогам голосования судей пробег является хорошим, он экспортируется в видеофайл и публикуется на сайте. Сообщество TASvideos существует с 2003 года и насчитывает сотни постоянных участников.

Литература


Илья @WST
карма
51,0
рейтинг 0,1
Инженер-программист
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое

Комментарии (7)

  • +2
    Прекрасная тема, не знал о таком (хотя со спидранами знаком, конечно).

    Стрельба в такт на первом видео (3:40 примерно) впечатлила. Думаю, некоторые корейцы так могут и вручную :) :))
    • 0
      Пример glitchfest-а уже не стал приводить, чтобы не запихивать слишком много видео в один пост. Если кому интересно, то есть вот такое видео.
  • +1
    shedevr.org.ru/cgi-bin/parse.cgi?id=contra_tas_review
    shedevr.org.ru/cgi-bin/parse.cgi?id=chip_and_dale_tas_review
    Вот еще две интересных статьи-обзоры про ТАS-прохождения Chip and Dale и Contra на NES.
  • +1
    Спрошу и тут. Если у кого-то есть генезис или мегадрайв с battletoads & DD, запишите, пожалуйста, звук ломания бонусных капсул, мне кажется, что этот звук неправильно эмулируется всеми движками эмуляции 68000.
    • 0
      Может, стоит написать багрепорт?
      • +1
        Я знаю несколько движков:
        68000: Cyclone, fame, musashi, faze
        z80: cz80, drz80, mz80, raze
        Все, кроме faze и raze, и частично fame, старые, написаны в 1999-2004, и, что самое главное, я не уверен, что он играется неправильно, именно поэтому прошу записать звук. Мне кажется, что он неправильно воспроизводится, т.к. я много играл в эту игру, но с уверенностью не могу этого сказать, не играл на реальной приставке давно.
        • 0
          Увы, реальной приставки у меня давно уже нет.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.