Новости интернет-IF
Интерактивная литература постепенно уходит в Интернет. До недавнего времени основным движком для интернет-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.