Как подсчет телеграфных столбов помогает разгадать тайный код в Final Fantasy VIII, и немного о проблемах случайности.
Со случайностью в видеоиграх дело обстоит туго – это и для человека не самая интуитивная вещь (действительно ли событие случайно, или все же мы просто не распознаем паттерн?), так и сам характер случайности зависит и от материальных особенностей (машина и бросающая два шестигранника рука работают немного по-разному), и от синтаксиса в коде игры. Поэтому нередко в играх случайность оказывается управляемой, и это управление иногда похоже на ритуал. Недавно как раз такое увидел в Final Fantasy VIII.
В игре есть эпизод, в котором нам нужно пройти в особняк, и для этого необходимо назвать код из трех цифр. Подсмотреть его нам предлагают в лабиринте за городом. А чтобы игроки не могли пропустить это путешествие и сразу ввести подсмотренный заранее код, игра генерирует его случайным образом. Для спидранов это не очень удобно, и неужели кто-то написал отдельный алгоритм специально для этого момента? Если бы можно было подобрать код заранее, экономия времени пошла бы на минуты – для спидрана и без того большой игры это много.
Первый крупный прорыв произошел примерно в 2013 году; решение оказалось предельно простым – перезагрузка консоли сразу после ближайшего к особняку сохранения. Так генератор случайных чисел сбрасывался к исходному состоянию, и в результате код каждый раз становился одним и тем же. Таким образом срезали 7 минут, но есть нюанс – из-за тотального сброса уже нельзя было ходить “проторенными тропами” и манипулировать “случайными” энкаунтерами.
Позже обнаружилось, что генерация в городе с особняком определяет не только код, но еще и влияет на NPC — какие из них появятся на экране и как они будут двигаться. В теории это позволяло предсказать код, просто наблюдая за определенными визуальными сигналами по пути к особняку (где-то начинает шелестеть фольга): за детьми у эскалатора, за прохожими на улицах или за временем появления автобуса. При идеальном исполнении это не стоило бы ни одной лишней секунды. На практике же метод не очень хорошо работал – слишком много вещей надо держать в голове, бегая по минному полю вероятностей.
Самое изящное решение было найдено в 2015-м году игроком BeujSensei. Оказалось, что внутренние значения игры, отвечающие за код, влияют не только на NPC в городе, но и на количество… телеграфных столбов, пролетающих за окном поезда, едущего в город. Поезд “проезжает” столбы – вернее, за окнами проигрываются видео со столбами – четко разграниченными паузой сериями. Нужно зайти в коридор, как можно быстрее прокручивать реплики общающихся персонажей, считая столбы и вводя числа в специальную разработанную спидранерами утилиту, и выйти из коридора ровно в тот момент, когда диалог закончится. Сама утилита уже проводит вычисления и дает код, который и нужно сообщить.
Помимо очевидного “грань между безумцем и пророком размыта” еще думается мысль про неустаревающий дизайн. История со столбами в “финалке”, конечно, нужна только спидранерам, но было бы любопытно увидеть такое распознавание паттернов на максималках в дизайне действительно хитро запрятанных секретов в играх, особенно если нарративом подобное подчеркнуть.
Post #1156
3.16K
Гипермда Сергей Гиммельрейх некоторое время назад написал небольшой (и хороший!) гайд с вопросами для самопроверки при работе со случайностью в играх. Меня вопросы алеаторики тоже интересуют в последнее время, так что докину пару мыслей. 1. Случайность сокращает разницу…YouTube How Telephone Poles Changed FF8 Speedrunning Let's dive into how Final Fantasy 8 speedrunners control RNG in a strange and unusual way. Watch live: https://www.twitch.tv/syoTV Support the show: https://www.patreon.com/syo5940 FF8 history: https://docs.google.com/document/d/1JgQr0JngxJ9S9jEKmVO93Ng…
- 🔥 47
- ❤ 16
- ✍ 8