Undum

Undum

Undum - это чисто клиентский (client-side) игровой движок для повествовательной интерактивной литературы. Он создан для HTML 5 и CSS 3. Вы можете прочитать о нём и скачать исходный код здесь.

Персонаж

Undum

Движок гипертекстовых игр

Нажмите, чтобы начать


Ситуации

В Undum, любое взаимодействие происходит в ситуации. Вы можете думать о ситуации либо как о 'Комнате' (Room) в традиционной интерактивной литературе (хотя этот подход не так гибок), или как о 'Странице' в книге-игре. В любой момент времени, персонаж находится точно в одной ситуации, и эта ситуация отвечает за всё, что происхожит с ним.

Ситуации - это кусочки кода, которые генерируют вывод - то есть то, что вы сейчас читаете. Например, этот текст был сгенерирован методом enter первой ситуации.

Давайте снова сделаем шаг вперёд.

Сохранение и загрузка

Единственный элемент интерфейса, о котором мы не заговорили, это кнопки «Сохранить» и «Стереть» на левой панели. Они видны только если ваш браузер поддерживает клиентское хранилище данных.

Нажатие на «Сохранить» складывает вашу игру в хранилище, чтобы вы смогли подобрать её позже. В настоящее время здесь нет кнопки «Загрузить», и сохранённая игра загружается, когда загружается страница. Также нет способа сделать несколько сохранений, и выбрать то, с которым вы хотели бы играть. Это те вещи, которые я хотел бы изменить в будущем.

Потенциально, ваша игра может генерировать огромное количество текста. И это было бы сложно сохранять в на стороне клиента (существуют непредсказуемые ограничения), особенно если мы хотим двигаться к владению несколькими файлами сохранений. Поэтому вместо того Undum сохраняет вашего персонажа как список ссылок, на которые вы нажали. Загрузка файла сохранения состоит из переигрывания вашей игры заново, только очень быстро. Этот подход удобен и в отладке тоже. Это означает, что, когда вы отшлифовываете и исправляете ошибки, вы можете сохранить, затем загрузить игру и пройтись по всему транскрипту, чтобы увидеть свои правки. Если бы мы сохраняли текст, ваш файл сохранения был бы ошибочным, и вам бы пришлось вручную переигрывать всю игру, чтобы увидеть изменения.

Давайте вернёмся к списку тем.

Темы

Выберите тему, о которой вы хотите узнать подробнее. Если вы сомневаетесь, пройдите по порядку.

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

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

Чтобы помочь, Undum может составлять списки ссылок на ситуации за вас. Он делает это в три шага. Сначала, каждой ситуации вы назначаете одну или больше меток (тегов). Это позволит вам, например, попросить список ситуаций с меткой "в коридоре".

Во-вторых, ситуации имеют метод canView, который решает, может ли эта ситуация появляться в списках. Этот метод может следить за сложными зависимостями, по-своему оценивать текущее состояние игры.

Наконец, ситуации SimpleSituation имеют опцию choices. Если вы запишете в неё одну или несколько меток, то построение списков выбора будет полностью автоматизировано.

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

Вы можете вернуться к списку тем или выбрать другую ссылку из этого примера: