Как устроен текстовый квест

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

Три сущности

Комната. Название, описание и список выходов. У некоторых есть второе описание — для темноты, когда игрок в помещении, но ничего не видит.

Действие. Что можно сделать в комнате. У действия бывают условия: нужен свет, нужен предмет, нужна отметка о ранее сделанном. Действие может выдать предмет, забрать предмет или поставить отметку.

Состояние. Комната плюс предметы плюс отметки. Это самая важная штука во всей конструкции: игра — это переходы между состояниями, и именно состояниями её и надо проверять.

Почему проверять надо перебором

Автор квеста проходит его сам десять раз и считает, что всё в порядке. Но автор ходит по маршрутам, которые сам же и придумал, а игрок пойдёт иначе, и его путь почти наверняка окажется тем самым, который автор не проверял: возьмёт предмет раньше, потратит его не туда, вернётся не в ту дверь.

Перебор снимает этот вопрос целиком. Состояний конечное число, значит, можно обойти их все и у каждого спросить: есть ли отсюда путь к финалу? В нашем квесте достижимых состояний 292, комнат 5, предметов 6, а молчаливых тупиков ровно 0.

Последнее число проверяется при каждой сборке сайта. Появись там единица — сборка бы упала, и квест не попал бы на страницу.

Что ещё доказывается тем же перебором

Проба вместо прохождения

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

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

Откуда взялось это правило. Из старых квестов, где потратить единственную верёвку не на тот овраг означало начинать сначала, а узнавал об этом игрок через час блужданий. В английском для такого состояния есть имя: walking dead, ходячий мертвец. Игрок ходит, игра уже проиграна. У графических квестов Sierra восьмидесятых это считалось частью жанра, а LucasArts позже сделала обратное своим отличием: у них застрять было нельзя.

Частые вопросы

Что такое состояние квеста

Помещение, в котором вы стоите, плюс набор предметов в карманах, плюс набор отметок о сделанном. Всё вместе это одно состояние. Двух одинаковых наборов не бывает: если что-то изменилось, состояние другое.

Зачем перебирать все состояния

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

Что такое молчаливый тупик

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

Почему подсказка не подсказывает ход

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