Ловушки для новичка

И еще немного о западнях, в которые попадают начинающие авторы текстографических игр. Во все перечисленные ниже ловушки — я с успехом вляпывался (и вляпываюсь) сам, что привело к появлению папки «Мусор» на моем рабочем столе. И поскольку такой печальный опыт достаточно типичен — привожу его здесь. Может быть, это удержит кого-то от подобных ошибок.

Читать дальше

Оформления пост!

Этот пост хочу посвятить оформлению. Почему? Как ни парадоксально, но мне по-прежнему кажется, что именно для текстографических квестов — этот пункт особенно важен. Основываясь на опыте виденного на разных ресурсах, посвященных игроделанию и IF — я бы выделил несколько типовых ловушек, в которые попадают даже очень хорошие разработчики.
Читать дальше

ЯРИЛ 2.0

ЯРИЛ (Язык Разметки Интерактивной Литературы) — это русская платформа для парсерной интерактивной литературы. Отличается изначальной ориентированностью на русский язык и визуальным программированием всей игровой логики.
Платформа состоит из Редактора, Плеера и Тестера. Тестер — приложение для проведения автоматизированных проверок проходимости игр. (Тестер пока находится в начальном состоянии разработки.)
Технологическая платформа: Java SE 8.

Структура игр

Игра (или в терминологии ЯРИЛ — история) описывается как набор локаций, предметов, действий, процедур, настроек и их взаимосвязей.
Основные понятия:
  • Локация — выделенная единица пространства. Может содержать предметы и игрока.
  • Предмет. Может содержаться в локации, у игрока, содержать другие предметы.
  • Действие — логическая связка для действия игрока, состоит из набора шаблонов парсера и процедуры игровой логики для обработки. Имеет набор ограничений (условий для выполнения).
  • Процедура — набор инструкций игровой логики. Используется как обработчик действия, так и может вызываться из других обработчиков (процедур и проч.).
  • Перехват — возможность перехватить выполнение какого-либо действия над предметом или в локации и задать отдельную игровую логику.
  • Роль — совокупность свойств и специальных обработчиков для предметов. При «навешивании» роли на предмет он принимает её свойства, что можно проверять по имени роли (например, выражение «предмет.открываемый» будет истинным, если на предмете навешана роль «открываемый»).
  • Библиотека — файл с набором сущностей ЯРИЛ для использования в игре. С платформой идёт стандартная библиотека «Глаголы» с набором действий и ролей. Дорабатывается.

Парсер

Парсер в ЯРИЛ работает по принципу подбора шаблона для введённой фразы. Шаблоны состоят из двух типов элементов: литерал (набор фраз) и объект (упоминание предмета по словарю в каком-либо падеже). При удачном подборе шаблона выполняется привязанная к нему процедура игровой логики.

Визуальный редактор игровой логики

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

Выпуски

Свежие выпуски публикуются на страничке проекта на GitHub.
Читать дальше

Владыка степей

Беда надвигается на Полесье – земли русичей. Все чаще с юга приходят вести о налётах на мирные деревни банд степняков, оставляющих после себя сожжённые дома и разлученные семьи. И это не обычные лихие разбойники или жаждущие наживы бандиты, а регулярные отряды степняков. Что случилось в южном государстве, торговые отношения с которым ещё недавно приносили только прибыль? Что делать разрозненным городам русичей в случае войны, которая кажется неминуемой?

Перед вами книга-игра – книга, в которой читатель сам принимает участие в происходящих событиях и решает, как будет развиваться сюжет. И сюжет этот может привести не только к счастливому концу – все зависит от самого читателя, который станет героем сказочного мира, где мужественному, но разрозненному народу русичей угрожает нашествие воинственных степняков. А чтобы в конце все жили долго и счастливо, придется воспользоваться смекалкой и запастись терпением. А ещё вам понадобятся два игральных кубика, листок бумаги, карандаш и ластик.

Самая большая книга-игра на русском языке и одна из лучших книг в жанре (на всех языках). Отличный текст, увлекательный сюжет и огромное количество путей, один интересней другого. Очень рекомендуется всем, кто по каким-то причинам ее еще не читал.
Читать дальше

Как удобно рисовать кнопки для фурки

Фурка умеет кнопки-декораторы. Другими словами, в любое место экрана можно воткнуть кнопку, которая будет там висеть и в которую можно будет тыкать. Но многие авторы эти кнопки не используют, потому что это сложно. В смысле, сложно подготовить такую картинку, которую фурка воспримет в качестве исходника для отображения кнопки.

Здесь я попробую рассказать, как с помощью бесплатной утилиты быстро сделать такую картинку.
Читать дальше

Опять фурка и шрифты

Кажется, начинает получаться. По совету Peter заюзал PT Serif в качестве основного шрифта. Написал утилитку для подбора параметров рендеринга шрифтов:


И вот. Прошу сравнить.

Это рендеринг в текущей версии фурки, 2.0:


А это — в новой, с бесплатными шрифтами и тщательно подобранным рендерингом:


Новый мне нравится больше. :)

В планах:
  1. Заюзать и подобрать параметры для санс
  2. Сделать дефолтные параметры рендеринга шрифтов в виде переменных
  3. Сделать эти параметры задаваемыми внутри скина
  4. Доточить утилитку подбора параметров и выпустить её в свет
  5. Сделать красивых светлых и тёмных скинов для фурки

Как-то так.
Читать дальше

Чем бы дитя не тешилось...

После пяти лет возни со своими любимыми книгами-играми я вдруг пришёл к пониманию, что в ближайшем окружении мне больше не попадается книг, которые бы мне хотелось иметь на своей книжной полке. Ну т.е. есть ещё несколько произведений, которые ну очень хочется. Но там есть проблемы, в связи с которыми книг этих пока не будет.
Но речь сейчас не о них. Как говорится, если гора не идёт к Магомету… В общем, пару месяцев назад пришла мне на ум идея, которой я и решил поделиться. Идея проста. Книгу нужно создать самому. Мужик сказал, мужик сделал… Хм… Только фантазии у меня кот наплакал, писатель тоже средней паршивости, а художник, как из среднестатистического человека балерина. Короче, бог не дал.
Что остаётся делать в такой паршивой ситуации? Да — обратиться за помощью к специалистам :)
Подходя к сути вопроса: хочу издать книгу-игру по определённому мной произведению. Очень хочется найти человека, обладающего недюжинной фантазией и умеющего создать прекрасный сюжет. Видимо, такие навыки должны быть у D&D-шных DM'ов и конечно же у поднаторевших в создании интерактивных игр посетителей данного ресурса.
Следующим шагом будут поиски писателя, который нацепит на созданный сторимейкером сюжет отличный литературный текст!
Ну а дальше всё по накатанной — озадачим художника, тестеров, редактора. И выдадим шедевр мировой литературы :). Ну, на счёт шедевра я приврал, конечно. Но книгу хочется очень хорошую :)

Это всё была лирика. Теперь практика:
Необходимо создать сюжет для книги-игры, включающий в себя как минимум NPC, предметы, скрытые переходы. Объём путешествия в районе 600 параграфов. За основу взять правила книг-игр Браславского.
Сюжет определён — это книга Виталия Пищенко «Замок Ужаса». Вторая часть повести. Соответственно, сюжет должен максимально полно учитывать исходник, его географию, персонажей, цель и прочие параметры.

Пока речь идёт о неспешной работе на долгосрочную перспективу. Если дело дойдёт до издания книги, гарантируется авторский гонорар, указание авторства и все прочие вытекающие регалии.

Все общие вопросы можно задавать в комментариях. Интимные вопросы лучше или в личку, или на мыло (в профиле).

P.S. На всякий случай подчеркну ещё раз. Речь идёт именно о бумажной книге-игре. В самой классической её ипостаси.
Читать дальше

Вопрос: Как ifHub классифицирует бумажные книги-игры?

Собственно, вопрос в заголовке уже задан. Смысл его в том, что имеет ли смысл, например, добавлять бумажные книги-игры в базу игр ifHab? Не будет ли это оффтопом? Можно ли публиковать свои размышления, описания и вообще всё, что связано с книгами-играми?
В общем, классификация ifHub'а предусматривает на огромном дереве interactive fiction наличие такой ветви, как ролевая книга-игра в своём классическом бумажном исполнении?
Читать дальше

Внезапный кризис и способы борьбы со злом

Творческий тупик – состояние довольно странное и малоприятное. Вот только что ты кипел идеями, фонтанировал энтузиазмом и был готов свернуть горы. И вдруг… Что-то находит. Нет, не лень. И не усталость – хотя как раз усталость, увы, мое повседневное состояние. Что-то странное.
Читать дальше

Как я делал web-INSTEAD, и что из этого вышло. Часть II

Как я делал web-INSTEAD
Часть I

Что из этого вышло
   В настоящий момент веб-инстед представляет собой вполне зрелую систему, неплохо проигрывающую достаточно широкий класс инстед-игр. Конечно, в аркадные, динамические игры, наподобие Miner Bold или Lode runner, играть не получится, но ведь они и не относятся к интерактивной литературе, не правда ли? Веб-инстед на ставит перед собой задачу полного, детального копирования движка INSTEAD — это вряд ли возможно, да и не имеет большого смысла. Вместо этого брались и запускались конкретные игры. Причем, как и в случае с движком-прародителем, новый функционал добавлялся в движок постепенно, по мере необходимости для той или иной игры.
   Благодаря значительному количеству уже адаптированных игр, движок развился настолько, что как правило, обычные игры, не использующие какие-то особые технические хитрости, запускаются в вебе сразу, как есть, не требуя дополнительной доработки, кроме оформления визуальной темы игры (это обычный css-файл стиля). Однако, все же попадаются и игры, которые не могут быть запущены на веб-инстеде без некоторого изменения их кода. В качестве примера можно привести игры, которые используют часто срабатывающий таймер (скажем, каждую секунду) для управления фоновым процессом проигрывания музыки.
   Или возьмем метапарсер. Это одно из последних достижений веб-инстеда, ставшее возможным благодаря тому, что @peter доработал оригинальный модуль (мы видим процесс обратного влияния веб-движка на своего прародителя — INSTEAD). И хотя игра «Клара — расхитительница варенья», работающая на метапарсере, уже перенесена в веб, я вообще решил отказался от «парсерного» стиля ввода через командную строку, напротив, используя возможность метапарсера подсказывать допустимые для ввода слова, фактически превратив тем самым игру в «менюшную», которой можно управлять выбирая нужные действия мышкой.
А вот картинка, как это выглядит