Из Тишины Александр Яковлев 2015-08-31 22:45:46 http://oreolek.me/ KohanaPHP Новости интернет-IF <body> <p><a href="/uploads/2015/book.jpg" data-lightbox="6767c8d632002" title=""><img alt="" title="" src="/uploads/2015/book_thumb500_300.jpg" class="left"></a> Интерактивная литература постепенно уходит в Интернет. До недавнего времени основным движком для интернет-IF был Twine. Это очень старая система для игр, которая была основательно переработана для удобства и уже приобрела репутацию движка для самых странных игр. Twine настолько популярен, что у него есть <a href="http://philome.la/">бесплатный хостинг</a> для игр, на котором появляется по <a href="https://twitter.com/philomela_twine">5-6 релизов в день.</a></p> <p>Тем не менее, это далеко не единственный игрок в Интернете, и в последнее время начали появляться новые интересные движки (а также дорабатываться старые) для людей, которые хотя бы понаслышке знают, как ориентироваться в HTML.</p> <h3>Squiffy</h3> <p>Этот обзор я начну с очень простой программы под названием Squiffy. Это лёгкий движок для простых CYOA от создателей движка <a href="http://textadventures.co.uk/quest">Quest.</a></p> <p>Четвёртая версия вышла в июле и она просто прекрасна. Посмотрите, как выглядит код игры, а это Markdown с парой особых тегов:</p> <div> <pre>@title Заголовок игры Вы стоите на перекрёстке в лабиринте похожих [коридоров,] одинаковых на вид. Вы можете пойти [[направо]]. [коридоров,]: Абсолютно одинаковые коридоры, идущие во всех направлениях. [[направо]]: Вы уходите направо, не возвращаясь на этот перекрёсток. </pre></div> <p>Движок полностью поддерживает Unicode, так что проблем с русским языком не возникнет (хотя предупреждаю, что <code>[[Коридор]]</code> и <code>[[коридор]]</code> — это разные ссылки). Компилятор поддерживает даже смайлики в описаниях ссылок. В Squiffy есть встроенные счётчики, условия, отслеживание пройденных абзацев, автосохранение игры — но это всё дополнения.</p> <p>Настоящая крутизна в том, что Squiffy - это программа с открытым исходным кодом, по лицензии MIT. Вы можете взять игру, выкинуть всё кроме файла squiffy.js, в котором будут лежать ваша игра вместе с самим движком, и сделать с остальным HTML всё, что захочется. То есть, это можно использовать ещё и как фреймворк, если включить в самом компиляторе режим “только JS”. Можно оформлять игру как захочется. Стандартное оформление более-менее делает свою работу, но я бы взял хотя бы <a href="https://cmcenroe.me/writ/">стили для типографики.</a></p> <p>Вы можете попробовать Squiffy <a href="http://textadventures.co.uk/squiffy/editor">прямо в браузере.</a> Если вам понравится, можно <a href="http://textadventures.co.uk/squiffy">скачать редактор</a> для Mac, Windows и Linux (это та же самая страница, только упакованная с браузерным движком) или установить <a href="http://docs.textadventures.co.uk/squiffy/cli.html">консольную версию на Node.js.</a></p> <h3>Нечёткая логика</h3> <p>Filip Hracek написал не очень обычную игру на конкурс Ludum Dare. В его текстовом квесте, написанном на Dart, используются нечёткая логика и искусственный интеллект, чтобы просчитать действия врагов главного героя.</p> <p>Сам по себе квест не претендует выиграть конкурс: вы играете за Лох-Несское чудовище, которое “гуляет” по окрестностям <em>одного неизвестного озера в Шотландии</em> и крушит города - в одиночку или с помощью детей, которые вылупляются из отложенных яиц. Это стратегия с очень неудобным интерфейсом и очень недостаточной информацией о движениях противника, поэтому вы, скорее всего, не сможете в неё выиграть.</p> <p>Тем не менее, движок игры достаточно интересен и <a href="https://github.com/filiph/lochness">открыт для экспериментов.</a> Лицензия похожа на BSD, но в неё даже не вписано имя автора. Тем не менее, для двухдневной работы качество кода очень прилично. Язык Dart компилируется в Javascript при помощи <a href="https://www.dartlang.org/downloads/">отдельного SDK от Google.</a></p> <p><a href="http://www.intfiction.org/forum/viewtopic.php?f=19&t=18494">Ссылка на обсуждение игры</a></p> <h3>Raconteur</h3> <p>Помните движок <a href="/undum/">Undum?</a> Это был очень интересный фреймворк на Javascript, но слишком уж необработанный. Писать игры на чистом JS+HTML всё-таки неудобно, поэтому некоторые авторы (и я в том числе) делали свои обёртки-препроцессоры.</p> <p>Теперь же Bruno Dias представил свою надстройку, и это <a href="https://sequitur.github.io/raconteur/">Raconteur.</a> Он оборачивает Undum в CoffeeScript, и вот как это может выглядеть:</p> <div> <pre>situation 'west_of_house', content: (character, system, from) -> """ # К западу от дома Вы стоите возле поля с рожью, *уходящего за горизонт.* Перед вами находится запертая дверь. #{roomContents(character, system)} choices: ['forest', 'inside_house'] """</pre></div> <p>Помимо обычного синтаксического сахара CoffeeScript (многострочные строки, стандартная модель наследования классов), Raconteur включает синтаксис Markdown для всего текста, систему модулей, по возможности общий подход для простых CYOA и динамической генерации и много ещё хорошего. Движок хорошо документирован с прицелом на людей, слабо знакомых с CoffeeScript.</p> <p>Бруно планирует выпустить игру Cape на IFComp и собирает бета-тестеров игры <a href="http://www.intfiction.org/forum/viewtopic.php?f=19&t=18558">на форуме Intfiction.</a> Разработка движка в самом разгаре, репозиторий на Github открыт под лицензией MIT.</p> </body> keloero@oreolek.me (Александр Яковлев) http://oreolek.me/Post/view/3098 http://oreolek.me/Post/view/3098 Mon, 31 Aug 2015 22:45:46 +0600