Как стать автором
Обновить

Любителям текстовых квестов. Конструктор.

Время на прочтение2 мин
Количество просмотров5.1K
31 декабря я предложил идею о создании сайта, на котором любой пользователь сможет создать и разместить свой собственный текстовой квест. Потом был довольно затянувшийся новый год, и вот я снова в строю.

В этом топике я хочу поделится с вами своими соображениями по конструктору квестов — наиболее важном элементе проекта. Хотелось бы услышать как ваши замечания по планируемому функционалу, так и по архитектуре в целом.



За основной структурный элемент я решил принять локацию. Локация будет описываться названием, описанием и картинкой. Между локациями можно будет перемещаться. На локацию можно будет помещать следующие элементы:

1. Действие (Action)
Которое будет представлятся в виде текстовой ссылки ( с иконкой? ) и будет приводить к выполнению следующего элемента — события. Действия могут быть нескольких стандартных типов — пока в голову пришло только взять/отдать вещь, или просто вывод события.

2. Событие (Event)
Результат действия. Событие также описывается названием, описанием и картинкой. К каждому событию можно привязывать неограниченное количество действий, которые выводятся в список при загрузке события. Пример — при переходе в локацию загружается дефолтное действие — index которое вызывает событие, выводящее описание локации.

3. NPC
Игровой персонаж. Описывается опять же именем, описанием и картинкой. При клике на ссылку персонажа в локации открывается окошко с доступными диалогами. Диалоги, кстати, делаются в отдельном модуле конструктора и представляют из себя те же действия и события, только представленные в несколько иной форме.

Также при создании диалога можно будет указывать какие нужны вещи для продолжения той или иной его ветки или получения другой вещи ( обмена ).

Вещи ( Item )

Я уже упоминал возможность получения/отдачи вещей. На мой взгляд это значительно расширяет возможности текстовых квестов. Кто играл в квесты вроде «Петьки и Василия Ивановича», тот, думаю, помнит вечную проблему «кому нужно отдать канделябр, чтобы получить презерватив, который в дальнейшем нужно использовать для похода к путане, что владеет важной информацией». Интересно ведь было?

По-хорошему массив со итемами игрока нужно хранить в кэше по ключу связанному с id пользователя — но для такого дела надо брать как минимум vps. Мы к марту запускаем проект и будем брать под него сервак — но не ждать же нам до марта? Поэтому думаю, что для начала можно массив с вещами хранить в сессии.

Сохранение результатов диалогов и поступков

Сначала — пример. Я «нагрубил» NPC и он отказывается давать мне key-item. Если не сохранять результат диалога, то его можно будет пройти заново — т.е. всё упрётся тупо в перебор вариантов. А так результат диалога сохранится в той же сессии и если авторами не предусмотрено других вариантов развития событий, то квест завален. Над этим моментом стоит ещё подумать, т.к. при неграмотном использовании в квестах станут появлятся тупиковые моменты.

Думаю такого функционала для начала хватит с лихвой. Потом можно будет добавлять более интересные вещи. Времени я уже запланировал потратить больше, чем несколько дней.
Теги:
Хабы:
+19
Комментарии33

Публикации

Изменить настройки темы

Истории

Ближайшие события

Weekend Offer в AliExpress
Дата20 – 21 апреля
Время10:00 – 20:00
Место
Онлайн