Obsidian как редактор скриптов интерактивной книги (devlog Creepy Support)
Для своей интерактивной книги в формате «симулятора поддержки людей, столкнувшихся с аномально-криповым» в качестве редактора рассказов я выбрал… Canvas внутри Obsidian. И даже без каких-либо дополнительных плагинов. Было ли это плохим решением? Ну как вам сказать…
Начнём с простого вопроса: а что вообще игромеханически представляет из себя интерактивный рассказ, если не учитывать всю обвязку в виде глобального сеттинга, атмосферы, оформления и т.п.?
Есть набор из нескольких вопросов. Задаём вопрос — получаем ответ и выставление в true одной или нескольких булевых переменных и/или увеличение одного или несколько счётчиков на единицу. Новые вопросы и доступ к концовкам истории появляются в случае сочетания выставленных или не выставленных триггеров и счётчиков. ВСЁ! Внимание, вопрос: на какой платформе можно написать такую штуку?
Ответ очевиден: НА ЛЮБОЙ. Такие взаимосвязи хоть табличками в экселе можно описать или в INI-файле))) Но естественно, существует и тьма тематических редакторов. Ren'Py, изначально созданный для визуальных новелл, Twine – для текстовых квестов, мегапрофессиональный редактор диалогов Articy Draft… Но у всех были свои недостатки. Где-то в интерфейсе не хватало фич, или он наоборот, был сложным как пульт управления космолётом. Где-то визуализация подкачала и скорее мешает, чем помогает в разобраться в хитросплетении вопросов и ответов...
В итоге я пришёл к забавному выводу: если уж все инструменты неидеальны, почему-бы не соорудить свой? Да, он тоже будет, понятное дело, неидеальны. Но он будет своим, а значит я смогу максимально детально контролировать его поведение и допиливать под свои нужды. Он будет не универсальным, но удобным лично для меня. Так что никакого NIH-синдрома, чистая рациональность...)
В качестве основы для редактора, как я уже сказал выше, взял Obsidian, который позволяет красиво и удобно рисовать блоки и связи между ними, а также искать по содержимому такого файла.
По структуре же canvas-файл является банальным JSON’ом, парсить который для последующего наполнения собственной структуры — одно удовольствие. Впрочем, самый главный вопрос тут в том, а что же именно я пишу в этих блоках для работы с упомянутыми триггерами? Ну… лучше один раз увидеть. И я надеюсь, у вас крепкие нервы)





Что, страшно?) На самом деле да, решение получилось спорным, но конкретно для меня — на удивление удобным. Таким образом я написал 45 диалогов (31 история + сюжетные вставки) с минимальным количеством багов, и ни разу формат таких «скриптов» меня не тормозил. Моя скорость придумывания историй оказывалась на порядки ниже, чем скорость наполнения таких вот файлов. Так что… я конечно не утверждаю, что это путь которым стоит идти, но тем не менее, право на жизнь он имеет ;-)
One more thing
В игре также есть встроенный справочник, и он тоже сделан с помощью Obsidian! Но в данном случае я использовал его просто как редактор пачки связанных между собой ссылками Markdown-файлов. Потом эти файлы моя самописная консолька потом собирает в единый JSON-файл, и вуаля! Вышло, на мой взгляд, довольно удобно)
В общем, берите на вооружение: Obsidian может стать неплохой основной для игрового редактора ;-)
Ну а в следующий раз я думаю рассказать о том, как на коленке делал локализацию игры и что пошло не так уже там. Что же по игре в целом - релиз запланирован на 14 июля 2026 года, но посмотреть демо-версию вы можете уже сейчас ;-)




