RU

Редактор интерактивной литературы Non-Linear Book Builder

Antokolos #1091 09.04.2014 15:20 36 comments 25349 views

Всем привет! Хотел рассказать о своей программе-редакторе интерактивной литературы. Программа больше заточена на текстовые квесты, есть возможность экспорта книги в PDF, HTML, jsIQ, QSP, URQ, INSTEAD.

Планируется поддержать распределённую работу нескольких авторов над одной игрой, с использованием Git.

Саму программу можно скачать здесь:
nlbhub.ru/dist/NLBB.zip

Код можно посмотреть здесь:
https://github.com/Antokolos/NLB

Там же есть Maven скрипты для сборки.

Тема на quest-book.ru

Тема на http://instead.syscall.ru

Для запуска нужна Java, версии как минимум 1.7. После установки Java, откройте файл run.bat (или run.sh , если Вы под Linux) и установите верный путь к Java (переменные JAVA_HOME и JAVA соответственно).

В редакторе есть предметы и страницы (параграфы). Предметы пока хоть как-то работают при экспорте в INSTEAD, для всего остального игнорируются.

Документации, к сожалению, пока нет, но, возможно, кому-нибудь будет интересно потыкать это палочкой.

Главное применение программы я вижу для автоматизации построения сложной структуры страниц и переходов, с дополнительными возможностями по интерактивизации (переменные, которые меняют своё значение при посещении определённой страницы или при использовании определённого перехода).

Если есть вопросы, спрашивайте, постараюсь ответить.

Edited at 26.06.2014 17:40 (11 years ago)

Antokolos:

выглядит везде одинаково (плохо? :) )

Гораздо лучше, когда приложение имитирует родную тему устройства. :)
Look’N’Feel вроде бы решит проблему.

Nex, прошу прощения, не заметил пост :)
Программа не требует пользоваться Git, она мягко к этому подталкивает :) На самом деле, все изменения в репозитории будут делаться автоматом, прозрачно для пользователя, ему мы оставляем только возможность коммитить (полезная фича – иметь локальный бэкап). В будущем будут ещё Push/Pull и история коммитов. Типа: “Смотрите, как круто! Мы можем откатить игру к любому моменту в прошлом одним щелчком! А ещё мы можем редактировать игру из дома, с работы и с компьютера своей тёти и совсем не пользоваться флешкой”.

Посмотрел “исходник” Красной Шапки на битбакете … и ужаснулся
Зачем для каждой локации столько папок и пустых файлов и всё в гуидах, неужели нельзя это всё хранить в нескольких JSON файлах….

KOLANICH, я даже больше скажу, всю эту структуру целиком можно хранить в одном JSON-файле, и даже без единого гуида, а, например, как предлагал Ньюсаш, с автоинкрементом! Просто я пытался по возможности минимизировать возможные конфликты при мёрже. Вам, как человеку техническому, возможно, не составит труда правильно смёржить JSON-ы. Если же JSON увидит человек, далёкий от программирования, он будет в ужасе. Вот если сказать: “смотри, вот текст странички, слева твои изменения, справа – то, что сделал Вася, нужно посредине из этого сделать пригодный к чтению текст”, то это будет уже гораздо проще.

Хотя, возможно, с хранением координат и размера объектов как четырёх отдельных текстовых файлов (left, top, width, height) я и вправду перестарался :) Надо кое-где всё же упаковать данные. Ну и по поводу пустых файлов – это да, признаю, некрасиво. Вообще, я планирую все файлы, в которых лежат дефолтные значения, удалить, создавать только тогда, когда это действительно нужно. Это сократит число файлов на порядок, сделает структуру понятнее, а загрузку быстрее.

А я думал, что мёрж будет делаться той же программой. :)

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

Обновил дистрибутивы программы. Помимо прочего, наконец-то добавил прогресс сохранения и загрузки и немного уменьшил количество сохраняемых программой файлов.

Категорически НЕ рекомендую прерывать сохранение кнопкой Cancel, т.к. может получиться наполовину сохранённая книга со всеми вытекающими.

Кроме того, в этой версии добавлен экспорт в AXMA и обновлён экспорт в jsIQ. Про jsIQ можно прочитать здесь

Обратите внимание, что адреса файлов немножко поменялись. На всякий случай, дублирую в этом сообщении:
http://nlbhub.ru/dist/NLBB_WithJRE.zip — Дистрибутив “всё включено” ~ 117 Мб
http://nlbhub.ru/dist/NLBB.zip — Программа без среды выполнения Java ~ 23 Мб

Снова обновил дистрибутив. Добавлены ещё некоторые улучшения интерфейса. Кроме того, добавлена возможность хранить тексты на разном языке в одной структуре параграфов.

ВНИМАНИЕ! Структура папок сохранённой книги несколько изменилась. Если вы вдруг уже пользовались программой и хотите сохранить результат своих трудов, то откройте папку книги в этой новой версии программы и сохраните проект. Все изменения должны произойти автоматически.

Кроме того, для объектов добавлено новое поле Display Name. Это то, что в Инстеде именуется disp. Старое поле Name сохранено, но становится своеобразным дескриптором объекта, лучше для этого использовать одно слово и желательно латиницей. Поэтому, если вы вдруг использовали объекты, учтите этот момент.

Очередное обновление. Добавлена возможность делать картинку графа книги (в png), а также возможность добавлять картинку к тексту параграфа. При экспорте картинки параграфов корректно отображаются в INSTEAD, QSP и HTML, для остальных типов экспорта поддержки картинок пока нет.

Nex:

Я вижу только одну возможную пользу от такого инструмента. Создание игры один раз, и последующую выгрузку её во все платформы, чтобы опубликовать сразу везде.

Но.

Привести игры QSP, Instead, URQ к единому формату, невозможно даже на мета-уровне. То есть, нельзя создать такой формат, который бы поддерживал полноценно все платформы, и при экспорте генерировал код под конкретную.

Можно только делать игры с весьма ограниченными возможностями. А ограниченные по возможностям игры никого не интересуют.

Этот минус начисто перечёркивает возможную пользу. Так что смысла в этом не вижу.

Насчет сложности реализации одной игры в исполняемые кода перечисленных платформ, зависит от того, на какие книгры был ориентирована данная программа. И кстати, автор программы не описал, в достаточной мере на какие книгры по своим возможностям можно рассчитывать при создании в такой программе. Только общее представление, которое нормально понятно, лишь для бумажной книгры.

А насчет того, насколько будет программа интересна и полезна для других. Мне тоже бует интересно узнать. Однако, это в любом случае полезный опыт для ПО по РИЛ. Так что, автору спасибо, что не опустил руки и доделал до конца. =)

Eten, программа в основном ориентирована на книгры с механикой в виде ключевых слов. Ну и на квесты с применением предметов, надеюсь. Не очень удобно делать будет квесты, где нужно много программирования (тут “программирование” на уровне установки/проверки значений флагов и переменных), но зато (надеюсь) удобно будет делать сложные разветвлённые сюжеты.

P.S.: насчёт “доделал до конца” – так ещё и не доделал пока :) Многое уже работает (я сам в этой программе пытаюсь писать), но работы ещё тоже очень много.

Вчера накатил очередное обновление. Криво конвертировались операции сравнения ( ==, != ) при экспорте.

Вчера выложил новую версию программы. Поправлены некоторые баги, добавлена новая функциональность: страницы, доступные отовсюду. Т.е. есть некоторая страница, доступ на которую есть из любой страницы основного графа книги, а потом можно вернуться назад. Может быть полезно, к примеру, если есть некоторые блуждания по лабиринту, из любой точки которого можно получить доступ к некоторому диалогу между героями, а потом вернуться назад в то место, где разговор произошёл.

Если вдруг кому интересно, то вот проект с примером:
Autowired.zip

Пока проект экспортируется в QSP с ошибкой (т.к. QSP не поддерживает true и false). Вечером пересоберу дистрибутив с фиксом.

Log in or Register to post comments.