<pclass="rvps10"><spanclass="rvts22">Здесь перечислено большинство используемых в данном Руководстве терминов, и приведена их краткая характеристика. Более подробное описание некоторых терминов дано в </span><aclass="rvts28"href="BeginnersGuide.html">Курсе новичка</a><spanclass="rvts22">.</span></p>
<pclass="rvps10"><spanclass="rvts22">Рекомендуется сразу прочитать весь глоссарий целиком, так как многие термины тесно связаны друг с другом.</span></p>
<pclass="rvps10"><spanclass="rvts22">Почти все термины имеют англоязычный первоисточник, так как ТАСерские традиции вырабатывались в среде англоговорящих игроков.</span></p>
<pclass="rvps10"><spanclass="rvts22">Данные о действиях игрока, воспринимаемые игрой и влияющие на её поведение.</span></p>
<pclass="rvps10"><spanclass="rvts22">Из-за многозначности слова "Ввод" среди русскоязычных ТАСеров чаще используется англицизм "Инпут", который можно перевести как "Вводимые данные".</span></p>
<pclass="rvps10"><spanclass="rvts22">ТАСинг базируется на допущении, что поведение игры однозначно зависит от Ввода игрока и начального состояния игры, и ни от чего более (т.н. детерминизм).</span></p>
<pclass="rvps10"><spanclass="rvts22">Примеры существующих типов Ввода: нажатие кнопки джойстика, наклон аналогового стика, прикосновение стилуса, крик в микрофон и т.д.</span></p>
<pclass="rvps10"><spanclass="rvts22">В Тасэдиторе используется представление Ввода в формате "последовательность кнопочных состояний".</span></p>
<pclass="rvps10"><spanclass="rvts22">Данные, выдаваемые игрой в ответ на Ввод игрока.</span></p>
<pclass="rvps10"><spanclass="rvts22">Из-за многозначности слова "Вывод" в данном Руководстве используются слова "результат", "реакция игры" и т.п.</span></p>
<pclass="rvps10"><spanclass="rvts22">Процесс игры в любую видеоигру можно представить в виде зацикленного взаимодействия между субъектом (игроком) и объектом (игрой).</span></p>
<pclass="rvps10"><spanclass="rvts22">Примеры существующих типов Вывода: изображение, звук, вибрация джойстика, изменение просматриваемой ячейки памяти, информация о лаге и т.д.</span></p>
<pclass="rvps10"><spanclass="rvts22">Последовательность действий для успешного завершения игры.</span></p>
<pclass="rvps10"><spanclass="rvts22">Эта последовательность вводится в игру с помощью устройства ввода (например, джойстика). Последовательность может быть либо исполнена вживую (real-time – в реальном времени), либо приготовлена в виде воспроизводимых данных (например, журнал нажатых кнопок). Во втором случае эту последовательность можно редактировать.</span></p>
<pclass="rvps10"><spanclass="rvts22">В некоторых играх присутствует встроенный режим под названием "Speedrun" или "Time Attack", при котором игра ведёт учёт затраченного времени на прохождение. Для других игр можно использовать внешний таймер, измеряя время в секундах или TV-кадрах (обычно подразумевается 60 кадров в секунду).</span></p>
<pclass="rvps10"><spanclass="rvts22">Прохождение, при создании которого были использованы инструменты для редактирования совершаемых действий игрока.</span></p>
<pclass="rvps10"><spanclass="rvts22">Благодаря редактированию Ввода ТАСер освобождается от некоторых человеческих ограничений (например, слабой реакции) и может направить все усилия на создание крайне неординарных прохождений видеоигр. Это может быть не только спидран, но и развлекательный видеоролик (playaround).</span></p>
<pclass="rvps10"><spanclass="rvts22">Контейнер для хранения Ввода и сопутствующих данных.</span></p>
<pclass="rvps10"><spanclass="rvts22">В отличие от видеороликов, игровой Вывод (изображение и звук) в мувике не хранится, он появляется на экране только в результате применения Ввода мувика к соответствующей игре.</span></p>
<pclass="rvps10"><spanclass="rvts22">Также мувиком называется файл (movie file), в котором хранится Ввод и сопутствующие данные.</span></p>
<pclass="rvps10"><spanclass="rvts22">Превышение нормы при задержке между Вводом и Выводом.</span></p>
<pclass="rvps10"><spanclass="rvts22">При зацикленном взаимодействии между игроком и игрой обычно устанавливается режим Ввода и Вывода через равные промежутки времени, например, ровно 60 раз в секунду.</span></p>
<pclass="rvps10"><spanclass="rvts22">Процессор может производить строго фиксированное количество операций в единицу времени. Но игра пытается имитировать безграничность реальной жизни, поэтому количество игровых объектов может сильно варьироваться. Как следствие, возможны ситуации, когда обработка объектов занимает больше времени, чем отведено. В таких ситуациях задерживается генерация Вывода и опрашивание следующего Ввода.</span></p>
<pclass="rvps10"><spanclass="rvts22">Лишние задержки не выгодны при создании спидрана. Поэтому лаг зачастую выступает в качестве одного из факторов, который нужно учитывать во время создания Ввода. Обычно требуется минимизировать количество кадров с лагом.</span></p>
<pclass="rvps10"><spanclass="rvts22">Наличие лага в кадре определяется эмулятором сразу после окончания обработки данного кадра. Если во время эмуляции кадра игра опросила Ввод, считается, что лага в кадре нет. Если игра не опросила Ввод – лаг в кадре есть. В Тасэдиторе кадры с лагом отмечаются красными строками. Рисовать Ввод на этих кадрах бесполезно.</span></p>
<pclass="rvps10"><spanclass="rvts22">Может произойти в случае, если Ввод проигрывается на другой игре, другом эмуляторе или с другими настройками синхронизирования. Также может произойти, если эмулятор не обеспечивает детерминизм должным образом.</span></p>
<pclass="rvps10"><spanclass="rvts22">Размер участка измеряется в кадрах, а границы участка определяются игровыми событиями. Начальное событие отсекает все предыдущие задачи и концентрирует внимание ТАСера на ближайшем наборе условий. Конечное событие служит для оценки оптимальности всех вариантов решения текущей задачи.</span></p>
<pclass="rvps10"><spanclass="rvts22">Процесс поиска оптимального (наилучшего) решения задачи на текущем участке.</span></p>
<pclass="rvps10"><spanclass="rvts22">Почти любую задачу в видеоиграх можно решить множеством разнообразных способов. У каждого способа есть свои плюсы и минусы. ТАСер перед началом работы выбирает свои цели (например, сделать пацифистский спидран), тем самым расставляя приоритеты среди вышеупомянутых плюсов и минусов. Поэтому любые способы решения можно оценить и сравнить между собой, чтобы определить лучший и худший.</span></p>
<pclass="rvps10"><spanclass="rvts22">Оптимизация ТАСа заключается в редактировании Ввода и оценке получающегося Вывода. Когда ТАСер получает от игры более предпочтительный результат, он отмечает текущий Ввод в качестве основного, пока не найдёт ещё более оптимальный Ввод. В финальном ТАСе для каждой подзадачи оставлен наилучший вариант решения.</span></p>
<pclass="rvps10"><spanclass="rvts22">Возможность решить задачу более оптимально.</span></p>
<pclass="rvps10"><spanclass="rvts22">Примеры улучшений в спидранах: устранение неточностей, использование неиспользованного таймсэйвера, повышение эффективности использования таймсэйвера, повышение развлекательности мувика без потери скорости.</span></p>
<pclass="rvps10"><spanclass="rvts22">При создании спидрана ТАСеру необходимо использовать все незапрещённые возможности для максимально быстрого прохождения игры. В первую очередь это шлифовка Ввода с целью найти наилучшее решение, исходя из имеющихся знаний об игре. Во вторую очередь это расширение базы знаний – поиск и применение трюков. Настоящий ТАСер пытается собрать максимум информации об игре и использовать все известные трюки максимально эффективно, чтобы его рекорд скорости нельзя было легко побить.</span></p>
<pclass="rvps10"><spanclass="rvts22">Замечание: иногда ТАСер сознательно отказывается от использования некоторых таймсэйверов, в этом случае для егоТАСа отводится отдельная категория на сайте. Например: спидран Super Mario Bros без использования кнопки </span><spanclass="rvts32">B</span><spanclass="rvts22"> (отказ от фичи), спидран Sonic the Hedgehog без прохождения сквозь стены (отказ от бага).</span></p>
<pclass="rvps10"><spanclass="rvts22">Некоторые фичи не существенны (а иногда и незаметны) для простого игрока, но существенны для ТАСера. Поэтому перед оптимизацией Ввода рекомендуется провести исследования игрового движка.</span></p>
<pclass="rvps10"><spanclass="rvts22">Примеры существеных для ТАСера фич: ускорение при ранении (damage boost), вынужденное ожидание при подсчёте очков, наличие субпикселей у координат персонажа, особенности искусственного интеллекта врагов и т.д.</span></p>
<pclass="rvps10"><spanclass="rvts22">Используемые ТАСером баги должны быть воспроизводимыми (хотя бы теоретически) на настоящей приставке. Использование багов, специфичных для эмулятора, не разрешается.</span></p>
<pclass="rvps10"><spanclass="rvts22">Многие баги обнаруживаются даже при обычной игре без использования инструментов. Некоторые требуют тщательного исследования поведения игры и изучения её исполняемого кода.</span></p>
<pclass="rvps10"><spanclass="rvts22">Примеры багов: упрощённая проверка коллизий, отсутствие проверки испорченных данных в сохранении, непредусмотренное изменение ячеек оперативной памяти, ошибка в порядке очерёдности проверок и т.д.</span></p>
<pclass="rvps10"><spanclass="rvts22">Неограниченная эксплуатация фич, использование которых при нормальной игре сдерживается нехваткой знаний у игрока.</span></p>
<pclass="rvps10"><spanclass="rvts22">По сути любые эксперименты с изменением Ввода являются манипуляцией с игровыми фичами. Но некоторые аспекты игр кажутся обычным игрокам особенно непредсказуемыми. Алгоритмы их функционирования нарочно скрыты разработчиками от невооружённого глаза, игроку они показаны как случайные и неконтролируемые.</span></p>
<pclass="rvps10"><spanclass="rvts22">Однако на самом деле все аспекты видеоигр являются детерминированными (однозначно зависящими от Ввода). Использование инструментов и вдумчивого анализа позволяет выявить скрытые закономерности и использовать их при создании Ввода мувика. А в некоторых случаях вместо исследования алгоритмов достаточно воспользоваться методом перебора, натыкаясь на удачный исход событий методом проб и ошибок, а затем оставляя в мувике именно тот Ввод, который приводит игру к удачному результату.</span></p>
<pclass="rvps10"><spanclass="rvts22">Наличие не только целых, но и дробных значений у координат персонажа в игре.</span></p>
<pclass="rvps10"><spanclass="rvts22">В общем случае ТАСеру следует понимать отличие между экранными координатами спрайта и реальными координатами физического объекта в игре. Только в простейших играх эти координаты совпадают, обычно же на экран выводится приблизительное положение вещей, где проекции всех объектов выравнены по сетке пикселей. Чтобы узнать реальные координаты (и другие скрытые от глаз игрока данные), нужно просматривать ячейки оперативной памяти эмулируемой платформы. Это делается с помощью просмотрщика памяти (Memory Watch) или Lua.</span></p>
<pclass="rvps10"><spanclass="rvts22">Заключается в последовательном добавлении Ввода в конец мувика, одновременно с просмотром промежуточных результатов.</span></p>
<pclass="rvps10"><spanclass="rvts22">Заключается в последовательном изменении Ввода, начиная с определённого кадра, одновременно с просмотром промежуточных результатов.</span></p>
<pclass="rvps10"><spanclass="rvts22">Пошаговая эмуляция игры минимальными порциями (единицами измерения времени) – кадрами.</span></p>
<pclass="rvps10"><spanclass="rvts22">Используется для ручного управления ходом времени, является более эффективной заменой простому замедлению эмуляции.</span></p>
<pclass="rvps10"><spanclass="rvts22">Ускорение эмуляции игры до максимально возможной скорости.</span></p>
<pclass="rvps10"><spanclass="rvts22">Используется для пропуска несущественных игровых событий и уменьшения времени ожидания при добегании к дальнему кадру мувика.</span></p>
<pclass="rvps10"><spanclass="rvts22">С помощью настроек эмулятора можно гибко варьировать скорость эмуляции, замедляя или ускоряя её при необходимости. Под Турбо понимается максимально возможная скорость эмуляции. Этот предел зависит от производительности вашего компьютера.</span></p>
<pclass="rvps10"><spanclass="rvts22">В отличие от встроенных игровых сохранений, здесь сохраняется и восстанавливается исчерпывающая информация о состоянии эмулируемой системы.</span></p>
<pclass="rvps10"><spanclass="rvts26">Piano Roll – Piano Roll</span><spanclass="rvts22"> (перфолента)</span></p>
<pclass="rvps10"><spanclass="rvts22">Тип визуального представления данных, похожий на представление в виде таблицы.</span></p>
<pclass="rvps10"><spanclass="rvts22">Этот интерфейс используется в редакторах музыки (MIDI-секвенсорах и MOD-трекерах). Его имя и принцип действия унаследован из физического аналога (давно существовавшие свёртки перфорированной бумаги для механических клавесинов).</span></p>
<pclass="rvps10"><spanclass="rvts22">В Piano Roll Тасэдитора отображаются и редактируются данные мувика (Ввод и Маркеры), а также отображаются некоторые данные эмулируемой игры (текущий кадр, Журнал лага, Закладки и т.д.).</span></p>
<pclass="rvps10"><spanclass="rvts22">Каждая строка Piano Roll соотносится с одним кадром мувика.</span></p>
<pclass="rvps10"><spanclass="rvts22">Подробнее: </span><aclass="rvts28"href="PianoRoll.html">Интерфейс Piano Roll</a><spanclass="rvts22">, </span><aclass="rvts28"href="Ideas.html#PianoRoll">Спецификации Piano Roll</a></p>
<pclass="rvps10"><spanclass="rvts22">Указатель на текущий проигрываемый кадр мувика.</span></p>
<pclass="rvps10"><spanclass="rvts22">События этого кадра отображаются в окне эмулятора в виде скриншота, а в Piano Roll соответствующая строка обозначается голубым цветом и значком "Play" (голубая стрелка).</span></p>
<pclass="rvps10"><spanclass="rvts22">Одновременно можно видеть только события одного кадра мувика. Чтобы увидеть скриншот последующих событий мувика, нужно переместить голубой Курсор Проигрывателя вперёд (вниз по Piano Roll), чтобы увидеть скриншот предыдущих событий, нужно переместить курсор назад (вверх по Piano Roll).</span></p>
<pclass="rvps10"><spanclass="rvts22">Подробнее: </span><aclass="rvts28"href="PianoRoll.html">Интерфейс Piano Roll</a><spanclass="rvts22">, </span><aclass="rvts28"href="Navigation.html#playback-cursor">Навигация Курсором Проигрывателя</a></p>
<pclass="rvps10"><spanclass="rvts22">Это хранилище автоматически собирает сэйвы для каждого кадра мувика во время эмуляции, а при необходимости использует эти сэйвы для мгновенного прыжка Курсором Проигрывателя на любой кадр.</span></p>
<pclass="rvps10"><spanclass="rvts22">Набор строк Piano Roll, отмеченных специальным цветом (обычно синим).</span></p>
<pclass="rvps10"><spanclass="rvts22">Любая строка (и, соответственно, любой кадр мувика) является либо выделенной, либо не выделенной.</span></p>
<pclass="rvps10"><spanclass="rvts22">Выделение позволяет оперировать одновременно с несколькими кадрами, например, удалить целый регион кадров вместо удаления каждого кадра поодиночке.</span></p>
<pclass="rvps10"><spanclass="rvts22">Самый верхний выделенный кадр называется Курсором Выделения.</span></p>
<pclass="rvps10"><spanclass="rvts22">Маркером можно отметить любой кадр в Piano Roll. С помощью установки и удаления Маркеров можно повысить наглядность и удобство работы.</span></p>
<pclass="rvps10"><spanclass="rvts22">Цели использования Маркеров:</span></p>
<pclass="rvps10"><spanclass="rvts22">Номерная отметка для кадра мувика.</span></p>
<pclass="rvps10"><spanclass="rvts22">Закладка сохраняет всю необходимую информацию о кадре, на который она установлена. В том числе то ответвление мувика, которое однозначно приводит игру к событиям данного кадра.</span></p>
<pclass="rvps10"><spanclass="rvts22">Закладки могут использоваться для навигации Курсором Проигрывателя, но в основном они используются для хранения ответвлений.</span></p>
<pclass="rvps10"><spanclass="rvts22">Копия мувика, хранящая его состояние на момент создания Закладки.</span></p>
<pclass="rvps10"><spanclass="rvts22">При желании текущий мувик может быть заменён на это ответвление, тем самым восстанавливается состояние мувика из копии.</span></p>
<pclass="rvps10"><spanclass="rvts22">С помощью ответвлений можно одновременно хранить в проекте несколько разных мувиков и мгновенно переключаться между ними:</span></p>
<pclass="rvps10"><spanclass="rvts22">Средство для автоматизации действий.</span></p>
<pclass="rvps10"><spanclass="rvts22">Обычно программы-боты используются для избавления человека от рутинных действий, не требующих высокой гибкости ума. В отличие от человека, боты не изобретают путь решения задачи, а методично перебирают варианты решения, следуя алгоритму, заложенному программистом.</span></p>
<pclass="rvps10"><spanclass="rvts22">В наши дни практично использовать ботов только для исчерпывающего перебора вариантов на коротком участке мувика. И в большинстве случаев ТАСеру проще перебрать варианты вручную, интуитивно отсеивая тупиковые варианты в уме, чем заниматься написанием бота и долгим ожиданием результатов полного перебора.</span></p>
<pclass="rvps10"><spanclass="rvts22">Для создания ботов требуется умение программировать. Обычно боты либо пишутся на Lua, либо встраиваются в эмуляторы с помощью модификации исходного кода.</span></p>
<pclass="rvps8"><spanclass="rvts18">Created with the Personal Edition of HelpNDoc: </span><aclass="rvts19"href="http://www.helpndoc.com">Free EBook and documentation generator</a></p>