@iamalizade

Как создавать игру квест(текстовый)?

Хочу создавать игру в стиле квест, но не знаю как это делается. Точнее опыт программирования все есть, только не знаю как игры в жанре квест создаются. Как проверять введенный ответ и как предлагать сценарий согласно ответу? If-Else думаю тут не прокатит.

У кого то есть представление как это работает? Как обрабатывать введенные данные и предлагать юзеру новый сценарий?
  • Вопрос задан
  • 5372 просмотра
Пригласить эксперта
Ответы на вопрос 3
BasmanovDaniil
@BasmanovDaniil
Геймдизайнер-телепат
Вариантов реализации текстовых квестов много, но в конечном итоге всё сводится графу и механике путешествия по нему. Возьмём примитивный вариант, где у вас есть вопрос с двумя вариантами ответа, каждый из которых приводит к своему результату. Вы можете представить этот вопрос как вершину графа, из которой есть два выхода в другие вершины. При таком раскладе количество вершин будет расти экспоненциально, но никто не мешает вам на оба ответа вести в одну вершину и таким образом управлять ветвлением. На такой механике можно построить очень большое количество историй, но, если хочется большего, то можно добавить другую механику.

Ответы на вопросы могут выставлять специальные флаги, которые проверяются позже по графу. "Убить злодея?" - "Да", выставили флаг, через несколько вершин графа проверили условие и попали в другую сюжетную ветку. Флаги можно комбинировать и получать дополнительные варианты концовок.

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

Короче говоря, я бы предложил вам начать с абстракции над switch-case, которую можно связывать друг с дружкой, а потом почитал бы блог Emily Short, она специалист в текстовых квестах и делала кучу всевозможных механик учёта решений игрока.

UPD: Ещё советую попробовать Twine, сейчас это самый популярный движок для текстовых игр.
Ответ написан
Комментировать
k12th
@k12th
console.log(`You're pulling my leg, right?`);
Что-то популярная тема последнее время:) Отвечал тут недавно: https://toster.ru/answer?answer_id=991939#comments...
Судя по вопросу, вы хотите традиционную парсерную игру, в этом случае Inform/RInform. Можете попробовать еще TADS, но там бооольшие проблемы с русским языком (и не только).
Ответ написан
edinorog
@edinorog
Троллей не кормить!
instead.syscall.ru/ru или ему подобные готовые оболочки для текстовых квестов
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы