Новости интернет-IF

2015-08-31T22:45:46+06:00

Интерактивная литература постепенно уходит в Интернет. До недавнего времени основным движком для интернет-IF был Twine. Это очень старая система для игр, которая была основательно переработана для удобства и уже приобрела репутацию движка для самых странных игр. Twine настолько популярен, что у него есть бесплатный хостинг для игр, на котором появляется по 5-6 релизов в день.

Тем не менее, это далеко не единственный игрок в Интернете, и в последнее время начали появляться новые интересные движки (а также дорабатываться старые) для людей, которые хотя бы понаслышке знают, как ориентироваться в HTML.

Squiffy

Этот обзор я начну с очень простой программы под названием Squiffy. Это лёгкий движок для простых CYOA от создателей движка Quest.

Четвёртая версия вышла в июле и она просто прекрасна. Посмотрите, как выглядит код игры, а это Markdown с парой особых тегов:

@title Заголовок игры

Вы стоите на перекрёстке в лабиринте похожих [коридоров,] одинаковых на вид.

Вы можете пойти [[направо]].

[коридоров,]:

Абсолютно одинаковые коридоры, идущие во всех направлениях.

[[направо]]:

Вы уходите направо, не возвращаясь на этот перекрёсток.

Движок полностью поддерживает Unicode, так что проблем с русским языком не возникнет (хотя предупреждаю, что [[Коридор]] и [[коридор]] — это разные ссылки). Компилятор поддерживает даже смайлики в описаниях ссылок. В Squiffy есть встроенные счётчики, условия, отслеживание пройденных абзацев, автосохранение игры — но это всё дополнения.

Настоящая крутизна в том, что Squiffy - это программа с открытым исходным кодом, по лицензии MIT. Вы можете взять игру, выкинуть всё кроме файла squiffy.js, в котором будут лежать ваша игра вместе с самим движком, и сделать с остальным HTML всё, что захочется. То есть, это можно использовать ещё и как фреймворк, если включить в самом компиляторе режим “только JS”. Можно оформлять игру как захочется. Стандартное оформление более-менее делает свою работу, но я бы взял хотя бы стили для типографики.

Вы можете попробовать Squiffy прямо в браузере. Если вам понравится, можно скачать редактор для Mac, Windows и Linux (это та же самая страница, только упакованная с браузерным движком) или установить консольную версию на Node.js.

Нечёткая логика

Filip Hracek написал не очень обычную игру на конкурс Ludum Dare. В его текстовом квесте, написанном на Dart, используются нечёткая логика и искусственный интеллект, чтобы просчитать действия врагов главного героя.

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

Тем не менее, движок игры достаточно интересен и открыт для экспериментов. Лицензия похожа на BSD, но в неё даже не вписано имя автора. Тем не менее, для двухдневной работы качество кода очень прилично. Язык Dart компилируется в Javascript при помощи отдельного SDK от Google.

Ссылка на обсуждение игры

Raconteur

Помните движок Undum? Это был очень интересный фреймворк на Javascript, но слишком уж необработанный. Писать игры на чистом JS+HTML всё-таки неудобно, поэтому некоторые авторы (и я в том числе) делали свои обёртки-препроцессоры.

Теперь же Bruno Dias представил свою надстройку, и это Raconteur. Он оборачивает Undum в CoffeeScript, и вот как это может выглядеть:

situation 'west_of_house',
  content: (character, system, from) -> 
    """
    # К западу от дома

    Вы стоите возле поля с рожью, *уходящего за горизонт.* Перед вами находится запертая дверь.

    #{roomContents(character, system)}

    choices: ['forest', 'inside_house']
    """

Помимо обычного синтаксического сахара CoffeeScript (многострочные строки, стандартная модель наследования классов), Raconteur включает синтаксис Markdown для всего текста, систему модулей, по возможности общий подход для простых CYOA и динамической генерации и много ещё хорошего. Движок хорошо документирован с прицелом на людей, слабо знакомых с CoffeeScript.

Бруно планирует выпустить игру Cape на IFComp и собирает бета-тестеров игры на форуме Intfiction. Разработка движка в самом разгаре, репозиторий на Github открыт под лицензией MIT.