Конспект спидраннера
Создание спидранов является наиболее простым видом ТАСинга, и его основные приёмы давно изучены. Здесь приводится классификация типовых задач спидраннера, возникающих во время шлифовки Ввода на участках. Перед чтением этого раздела рекомендуется усвоить материалы Процесс ТАСинга и Методология ТАСинга.
При создании спидрана необходимо находить кратчайший способ прохождения каждого участка игры. Процесс поиска заключается в тестировании множества вариантов прохождения участка и выборе самого лучшего варианта.
Для ускорения этого процесса обычно сравниваются между собой только два варианта: новый рабочий вариант и наилучший старый вариант, а все остальные старые варианты забываются (впрочем, некоторые любопытные варианты можно сохранить в Закладки) .
Самый лучший из всех ранее протестированных (старых) вариантов может храниться:
Когда новый рабочий вариант оказывается лучше (оптимальнее) наилучшего старого, автоматически подразумевается, что он лучше всех остальных старых вариантов, поэтому этот рабочий вариант становится наилучшим. В случае использования Закладок следует сохранить новый вариант в тот же слот, где хранился наилучший старый вариант.
Критерием оптимальности может быть:
Соответственно, при сравнении двух вариантов требуется делать одно из трёх:
1. Сравнивать наличие/отсутствие требуемого события.
2. Сравнивать время наступления целевого события.
3. Сравнивать состояние игры на одном и том же кадре
1. Сравнивать наличие/отсутствие требуемого события.
Выигрывает вариант, где требуемое событие происходит в рамках текущего участка (а вредное событие, соответственно, не происходит). Обычно появление требуемого события – это всего лишь первый этап при создании Ввода на участке, а следующим этапом будут попытки ускорить момент появления этого события.
Перебор вариантов проходит до первого успешного варианта, либо пока не надоест.
Аналогия с программированием: сравнение двух Boolean (переменная логического типа), сравнение двух массивов Boolean.
A. Для большинства участков подходит простое запоминание того факта, что требуемого события пока не удалось добиться. Пример: нажатие кнопки Start.
B. Если требуемое событие является комплексным (например, требуется одновременно подстрелить нескольких врагов), рекомендуется в процессе перебора вариантов сохранять в Закладки те варианты, где требуемое событие выполнилось хотя бы частично (например, игрок подстрелил одновременно двух врагов из трёх). Если в конце концов требуемого события так и не удастся добиться, может сгодиться и такой частичный успех.
2. Сравнивать время наступления целевого события.
Выигрывает вариант, где целевое событие наступает раньше всего. Время наступления целевого события определяется кадром, перед которым целевого события в игре ещё не было, а на этом кадре оно уже есть. Номер этого кадра определяется при наведении на него Курсора Проигрывателя и просмотре экорана FCEUX.
Перебор вариантов проходит до тех пор, пока не надоест.
Аналогия с программированием: сравнение двух целых чисел.
A. Для простейших участков и подучастков бывает достаточно запомнить лучший номер кадра в уме и сравнивать все последующие номера с этим числом. Для более-менее сложных участков такое не рекомендуется. Подробнее: Процесс ТАСинга.
B. Для несложных участков можно воспользоваться зелёной стрелкой. Для этого нужно после просмотра каждого варианта оставлять Курсор Проигрывателя на кадре целевого события. Если новый кадр целевого события находится выше зелёной стрелки, то новый вариант лучше предыдущего варианта. Подробнее: Методология ТАСинга.
C. Для участков средней и высокой сложности используйте Маркеры, отвязанные от Ввода. При каждом смещении целевого события во времени нужно вручную перетаскивать соответствующий Маркер. Если новый кадр целевого события находится выше Маркера, то новый вариант лучше наилучшего старого. Подробнее: Настройка программы.
D. Для участков средней и высокой сложности используйте Закладки, отображаемые в столбце иконок Piano Roll. Если новый кадр целевого события находится выше иконки Закладки, то новый вариант лучше старого варианта из этой Закладки, и вам следует установить эту Закладку на этот новый кадр, сделав быстрый сэйв.
3. Сравнивать состояние игры на одном и том же кадре.
Выигрывает вариант, в котором у игры в целом более выгодные характеристики. Этот тип сравнений рекомендуется использовать для оценки сложных и многогранных игровых ситуаций. Например, в гонке Формула-1 цель – найти оптимальный баланс между максимальным продвижением вперёд и минимальной изношенностью шин.
Перебор вариантов проходит до тех пор, пока не надоест.
Аналогия с программированием: сравнение двух строк, сравнение двух массивов целых чисел.
A. Для простых участков бывает достаточно запомнить некоторые характеристики состояния игры, достигнутого в наилучшем варианте прохождения участка. При просмотре новых вариантов Курсор Проигрывателя всегда останавливается на том же самом кадре, и в окне FCEUX и в Memory Watch отображаются новые значения интересующих характеристик. Если некоторые характеристики оказались лучше, а некоторые хуже, то требуется взвесить их в уме (или использовать обобщающую Lua-формулу) и решить, стал ли новый вариант в целом лучше, чем старый. Если решено, что новый вариант лучше, необходимо запомнить его характеристики вместо характеристик предыдущего наилучшего варианта. Однако, когда таких характеристик больше, чем одно число, рекомендуется не полагаться на память, а использовать Закладки. Пример: манипуляция удачей.
B. Для участков средней и высокой сложности, а также для гигантских участков (размером с целый уровень игры) используйте Закладки, хранящие альтернативные ответвления мувика. Наилучший вариант сохраняется в один слот, а тестируемые варианты сохраняются в другой слот. После этого можно легко переключаться между этими слотами и сравнивать значения каждой существенной характеристики. Кроме того, можно наводить курсор мыши на соответствующие Закладки в Списке Закладок или Дереве ответвлений, чтобы видеть скриншоты состояний игры и сравнивать характеристики визуально. Также можно не сохранять текущий вариант в Закладку, а визуально сравнивать текущее изображение в окне FCEUX со скриншотом наилучшего варианта прохождения участка. Для отображения ячеек памяти на скриншотах рекомендуется использовать Lua-вывод, тогда окно Memory Watch не понадобится, и об оптимальности можно будит судить по скриншотам. Подробнее: Настройка программы.
После нахождения самого быстрого варианта прохождения ТАСер может дополнительно улучшить участок, добавив немного развлекательности в игровые события. Критерии оптимальности при этом могут быть самыми разными, но время прохождения участка должно оставаться без изменений.
Created with the Personal Edition of HelpNDoc: Single source CHM, PDF, DOC and HTML Help creation