Телефон: 8-800-350-22-65
WhatsApp: 8-800-350-22-65
Telegram: sibac
Прием заявок круглосуточно
График работы офиса: с 9.00 до 18.00 Нск (5.00 - 14.00 Мск)

Статья опубликована в рамках: LXXIII Международной научно-практической конференции «Научное сообщество студентов XXI столетия. ТЕХНИЧЕСКИЕ НАУКИ» (Россия, г. Новосибирск, 17 января 2019 г.)

Наука: Информационные технологии

Скачать книгу(-и): Сборник статей конференции

Библиографическое описание:
Юрлов М.В. ИСПОЛЬЗОВАНИЕ ИНСТРУМЕНТАЛЬНЫХ ВОЗМОЖНОСТЕЙ ЭМУЛЯТОРОВ ИГРОВЫХ КОНСОЛЕЙ ДЛЯ СКОРОСТНОГО ПРОХОЖДЕНИЯ ВИДЕОИГР // Научное сообщество студентов XXI столетия. ТЕХНИЧЕСКИЕ НАУКИ: сб. ст. по мат. LXXIII междунар. студ. науч.-практ. конф. № 1(72). URL: https://sibac.info/archive/technic/1(72).pdf (дата обращения: 22.11.2024)
Проголосовать за статью
Конференция завершена
Эта статья набрала 0 голосов
Дипломы участников
У данной статьи нет
дипломов

ИСПОЛЬЗОВАНИЕ ИНСТРУМЕНТАЛЬНЫХ ВОЗМОЖНОСТЕЙ ЭМУЛЯТОРОВ ИГРОВЫХ КОНСОЛЕЙ ДЛЯ СКОРОСТНОГО ПРОХОЖДЕНИЯ ВИДЕОИГР

Юрлов Михаил Викторович

студент 3 курса, кафедра АСУ, УГАТУ,

РФ, г. Уфа

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

Что такое спидран? Спидран — это прохождение видеоигры, ставящее своей целью полное максимально быстрое её завершение или прохождение до определенной точки. Эти прохождения могут быть нацелены на прохождение всей игры целиком или отдельной её части, допустим, одного или нескольких уровней. Некоторые спидраны могут быть обусловлены дополнительными правилами, которых игроки должны придерживаться при прохождении, например сбор каких-то дополнительных предметов или отсутствие использования внутриигровых багов, глитчей. Обычно эти правила, объединенные по какому-либо признаку, называются в сообществе спидранеров категориями. Игроки занимаются этим, в основном, чтобы бросить вызов самим себе, развлечься и соревноваться с другими.

Одним из мест, на котором демонстрируются спидраны являются Games Done Quick [1], благотворительные марафоны по скоростному прохождению игр, проводимые в режиме прямой трансляции два раза в год. Эти мероприятия проводятся с 2010 года, собранные на них денежные средства отправляются в несколько благотворительных организаций, наиболее распространенными из них являются Фонд «Предотвратить рак» и «Врачи без границ». На данном марафоне люди проходят видеоигры на пределе человеческих возможностей, есть много примеров, демонстрирующих это. В некоторых случаях, прохождение видеоигр требует запоминания больших пластов информации о том, как правильно проходить какой-либо участок, а также требует долгих тренировок для того, чтобы воспроизвести это с определенной точностью на марафоне. Некоторые видеоигры проходятся спидранерами “в слепую”, человек надевает повязку на глаза и использет лишь звуковые сигналы о том, что происходит в видеоигре в данный момент.

Спидранигом занимаются даже люди, имеющие физические ограничения. Клинт Лекса [2], также известный под ником "Halfcoordinated" имеет редкое заболевание, которое ограничивает использование почти всей правой части своего тела и, соответственно, его правой руки, но это не мешает ему выступать на марафоне каждый раз с 2015 года, проходя видеоигры с использованием лишь левой руки [3].

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

Сам термин «Tool-Assisted Speedrun» (спидран или суперигра с использованием инструментальных возможностей) был создан во времена, когда появлялись первые скоростные прохождения видеоигры Doom, когда и были сделаны первые из этих TAS-ов (хоть их тогда и называли «встроенными демо-записями»). Связано это было с тем, что Энди Кемплинг выпустил модифицированную версию исходного кода Doom, которая позволяла записывать такие демонстрации в замедленном режиме и в то время первые игроки могли начать записывать их. Спустя пару месяцев, в июне 1999 года, Эско Коскимаа, Пео Сьоблом и Джонатан Доннер открыли первый сайт, на котором были представлены эти демоверсии, "Tools-Assisted Speedruns" [4].

В 2003 году в Интернете начал распространяться видеоролик о том, как японский игрок по имени Моримото смог пройти игру Super Mario Bros. 3 на консоли Nintendo Entertainment System за 11 минут и выполнял в ней различные вещи нечеловеческого характера, как прохождение через стены или игнорирование врагов [5]. Это было спорное видео, потому что многие люди не знали об инструментальных возможностях эмуляторов в то время, особенно для NES. Поскольку видео не было четко обозначено как TAS, многими людьми оно было принято, как обман, когда они узнали, что это было сделано с помощью эмулятора. Видео, однако, вдохновило Джоэла "Bisqwit" Улилуома на создание веб-сайта под названием NESvideos, который был посвящен инструментальным скоростным прохождениям для NES. Сначала он размещал видео только для NES, но по мере роста сообщества, его участники добавляли функции, необходимые средства для таких прохождений в эмуляторы для других систем [6].

TASеры используют специальные эмуляторы, которые поддерживают такие инструменты, как Frame Advance и состояния сохранения, и генерируют из них «фильмы». Эти файлы «фильмов» являются не чем иным, как скриптом с описанием последовательности нажатия кнопок, не содержащих изображений или видео, лишь после запуска этого «фильма» на эмуляторе получаются сами видео с записью игрового процесса, которые зачастую выглядят как «допинговая олимпиада».

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

Эта постепенность позволяет приостановить эмуляцию, останавливая игру в каком-то конкретном состоянии на момент времени. И если мы можем сделать паузу, ничто не мешает нам отменить ее и сделать паузу в любое другое время, когда мы захотим, допустим, на следующем кадре. Таким образом появилась техника, называемая Frame Advance. Когда вы нажимаете клавишу, назначенную для продвижения по кадрам, эмулятор создаст еще один кадр и приостановит эмуляцию.

Возможность эмулировать каждый кадр в команде обеспечивает желаемую точность действий и дает время проверить все перед следующим вводом данных.

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

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

Таким образом, вы можете найти адреса, представляющие аспекты игрового процесса, которые вам нужны: положение вашего персонажа, положение камеры, скорость объектов и т.д.

Старые игры, которые в основном и подвергаются TAS-у, были написаны на ассемблере, и до компиляции разработчики должны были комментировать и интерпретировать исходные коды. Затем он был преобразован в машинный код и записан в ПЗУ (постоянное запоминающее устройство) для воспроизведения через консоль.

У спидранеров нет контактов с разработчиками, но они пытаются выяснить, какой был исходный код, дизассемблируя и перепроектируя его с помощью различных инструментов отладки. В основном их создают и используют ROM-хакеры, но некоторые TAS-еры также являются ROM-хакерами.

Как упоминалось выше, для того чтобы создавать такие прохождения нужно знать, что происходит в игре, чем больше вы знаете, тем лучше вы делаете, и насколько глубоко вы погружаетесь, зависит только от навыков и знаний. По сути, нужно знать или хотя бы понимать язык, на котором написана игра.

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

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

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

Состояния сохранения, правильно используемые вместе с файлами «фильмов» создают новый способ управления TAS-ом — статичную перезапись. Это означает, что фильм запоминает, в каком кадре сохранено состояние, какое входное значение предшествовало ему, какие значения имели некоторые полезные для создающего TAS счетчики в памяти на тот момент. Это позволяет восстановить не только игровое состояние, но и все состояние «фильма». Хорошие эмуляторы также позволяют отменить сохранение и загрузку. Последняя особенность сохранений, заключается в том, что у нас есть 10 слотов для них (в некоторых случаях эмуляторами допускается даже больше), а не только один.

Обычно у TAS-еров должно быть одно сохраненное состояние, которое он использует очень часто, называемое быстрым сохранением. Помимо быстрого, он должен иметь второе сохранение, которое можно использовать для резервного копирования. Другие сохранения — для воспроизведения уже записанного на данный момент «фильма» или для возобновления записи в определенный момент. Также у TAS-еров должно быть хотя бы одно сохранение в начале уровня, на котором он находится.

Существует две системы коммутации состояний сохранения. Первая система — это пара кнопок, используемых для изменения номера ячейки с сохраненным состоянием, и пара кнопок для сохранения и загрузки. Вторая система состоит из 20 кнопок, каждая пара которых управляет сохранением и загрузкой отдельного временного слота с сохраненным состоянием. Эмуляторы имеют либо вторую систему, либо обе. Назначенные кнопки по умолчанию зависят от эмулятора.

Также TAS может быть воспроизведен на настоящей игровой консоли, в декабре 2013-го года Алланом Сесилем был создан TASBot [7] — робот со специальной печатной платой, которая может точно имитировать поведение контроллера Nintendo Entertainment System. TASBot может играть в игры на настоящих игровых приставках со сверхчеловеческими способностями, что обычно приводит к сбивающим с толку играм перед живой аудиторией [8]. TASBot имеет длинную и легендарную историю, которая начинается с первоначальных попыток воспроизведения TAS-ов на физическом оборудовании с помощью процесса, называемым «проверка консолью».

Это стало возможным так как контроллер NES — это просто сдвиговый регистр, где 8 входов являются 8 кнопками на контроллере. Когда игра ищет сигнал от игрока, импульс отправляется на контроллер, сдвиговый регистр получает этот импульс, и состояние 8 кнопок считывается и сохраняется до тех пор, пока игра не прочитает их по одной кнопке за раз.

 

Список литературы:

  1. Awesome Games Done Quick 2019 // Games Done Quick [Электронный ресурс] – Режим доступа. –  URL: https://gamesdonequick.com (дата обращения: 08.01.2019)
  2. How a gamer with a disability speedruns some of the wrold’s fastest games // Polygon [Электронный ресурс] – Режим доступа. – URL: https://www.polygon.com/2016/1/6/10723150/agdq-2016-halfcoordinated-speedrun-disabled-gaming (дата обращения: 09.01.2019)
  3. Semblance by halfcoordinated in 27:26 – AGDQ2019 // YouTube [Электронный ресурс] – Режим доступа. – URL: https://www.youtube.com/watch?v=mwJ2DYIu50g (дата обращения: 12.01.2019)
  4. Information about Tools-Assisted Speedruns // DoomWorld [Электронный ресурс] – Режим доступа. – URL: https://www.doomworld.com/tas/about.html (дата обращения: 11.01.2019)
  5. [TAS] [Obsoleted] NES Super Mario Bros. 3 "warps" by Morimoto in 11:03.95 // YouTube [Электронный ресурс] – Режим доступа. –  URL: https://www.youtube.com/watch?v=qXEEobKbfX0 (дата обращения: 11.01.2019)
  6. Tool-Assisted game movies // TASVideos [Электронный ресурс] – Режим доступа. – URL: http://tasvideos.org (дата обращения: 12.01.2019)
  7. DwangoAC // TASVideos [Электронный ресурс] – Режим доступа. – URL: http://tasvideos.org/DwangoAC.html (дата обращения: 15.01.2019)
  8. TASBot at DEF CON 24 - Robot Hacks Video Games full talk // YouTube [Электронный ресурс] – Режим доступа. – URL: https://www.youtube.com/watch?v=2kj5ZmoTckI (дата обращения: 09.01.2019)
Проголосовать за статью
Конференция завершена
Эта статья набрала 0 голосов
Дипломы участников
У данной статьи нет
дипломов

Оставить комментарий

Форма обратной связи о взаимодействии с сайтом
CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.