Для своей интерактивной книги в формате «симулятор поддержки людей, столкнувшихся с аномально-криповым» в качестве редактора рассказов я выбрал… Canvas внутри Obsidian. И даже без каких-либо дополнительных плагинов. Было ли это плохим решением? Ну как вам сказать…

Начнём с простого вопроса: а что вообще игромеханически представляет из себя интерактивный рассказ, если не учитывать всю обвязку в виде глобального сеттинга, атмосферы, оформления и т.п.?

Есть набор из нескольких вопросов. Задаём вопрос — получаем ответ и выставление в true одной или нескольких булевых переменных и/или увеличение одного или несколько счётчиков на единицу. Новые вопросы и доступ к концовкам истории появляются в случае сочетания выставленных или не выставленных триггеров и счётчиков. ВСЁ! Внимание, вопрос: на какой платформе можно написать такую штуку?

Ответ очевиден: НА ЛЮБОЙ. Такие взаимосвязи хоть табличками в экселе можно описать, хоть в INI-файле) Но, понятное дело, существует и тьма тематических редакторов. Ren'Py, изначально созданный для визуальных новелл, Twine – для текстовых квестов, мегапрофессиональный редактор диалогов Articy Draft… Десятки их, но у всех были свои недостатки. Где-то в интерфейсе не хватало фич, или наоборот, он был сложным как пульт управления космолётом. Где-то визуализация подкачала и скорее мешает, чем помогает в разобраться в хитросплетении вопросов и ответов...

В итоге я пришёл к забавному выводу: если уж все инструменты неидеальны, почему-бы не соорудить свой? Да, он тоже будет, понятное дело, неидеальным. Но он будет своим, а значит я смогу максимально детально контролировать его поведение и допиливать под свои нужды. Он будет не универсальным, но удобным лично для меня. Так что никакого NIH-синдрома, чистая рациональность...)

В качестве основы для редактора, как я уже сказал выше, взял Obsidian, который позволяет красиво и удобно рисовать блоки и связи между ними, а также искать по содержимому такого файла.

По структуре же canvas-файл является банальным JSON’ом, парсить который для последующего наполнения собственной структуры — одно удовольствие. Впрочем, самый главный вопрос тут в том, а что же именно я пишу в этих блоках для работы с упомянутыми триггерами? Ну… лучше один раз увидеть. И я надеюсь, у вас крепкие нервы)

Что, страшно?) На самом деле да, решение получилось спорным, но конкретно для меня — на удивление удобным. Таким образом я написал 45 диалогов (31 история + сюжетные вставки) с минимальным количеством багов, и ни разу формат таких «скриптов» меня не тормозил. Моя скорость написания и редактирования таких файлов оказалась на порядок выше, чем скорость придумывания историй и сюжетных поворотов. Так что… я конечно не утверждаю, что это путь которым стоит идти, но тем не менее, право на жизнь он имеет ;-)

One more thing

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

В общем, берите на вооружение: Obsidian может стать неплохой основной для игрового редактора ;-)

Ну а в следующий раз я думаю рассказать о том, как на коленке делал локализацию игры и что пошло не так уже там. Что же по игре в целом - релиз запланирован на 14 июля 2026 года, но посмотреть демо-версию вы можете уже сейчас)

Комментарии (0)