Редактор интерактивной литературы Non-Linear Book Builder
Всем привет! Хотел рассказать о своей программе-редакторе интерактивной литературы. Программа больше заточена на текстовые квесты, есть возможность экспорта книги в 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, для всего остального игнорируются.
Документации, к сожалению, пока нет, но, возможно, кому-нибудь будет интересно потыкать это палочкой.
Главное применение программы я вижу для автоматизации построения сложной структуры страниц и переходов, с дополнительными возможностями по интерактивизации (переменные, которые меняют своё значение при посещении определённой страницы или при использовании определённого перехода).
Если есть вопросы, спрашивайте, постараюсь ответить.
Я вижу только одну возможную пользу от такого инструмента. Создание игры один раз, и последующую выгрузку её во все платформы, чтобы опубликовать сразу везде.
Но.
Привести игры QSP, Instead, URQ к единому формату, невозможно даже на мета-уровне. То есть, нельзя создать такой формат, который бы поддерживал полноценно все платформы, и при экспорте генерировал код под конкретную.
Можно только делать игры с весьма ограниченными возможностями. А ограниченные по возможностям игры никого не интересуют.
Этот минус начисто перечёркивает возможную пользу. Так что смысла в этом не вижу.
Nex, к сожалению, программа уже написана и “родить её обратно” у меня уже не получится. Я могу только перестать вносить обновления в код, но теперь, после того, как столько сил отдано, просто бросить проект уже жалко.
Я мог бросить проект тогда, когда узнал об AXMA, но тогда это было жалко сделать по тем же причинам. Мой редактор визуального типа, наподобие AXMA. Я старался сделать так, чтобы игру мог написать любой, по тем или иным причинам не желающий программировать. Многие любители книг-игр пишут книгу просто в текстовом редакторе, вручную рисуя граф параграфов на бумаге. Преклоняюсь перед усидчивостью и целеустремлённостью таких людей; я бы точно так не смог, такая рутина бы убила у меня всё вдохновение. Поэтому программа и была создана. Даже больше скажу, создавал я её больше для себя, ибо до сих пор тешу себя мыслью, что когда-нибудь смогу написать большое, увлекательное и нелинейное приключение, где от твоих поступков будут зависеть судьбы галактик :) Но когда это свершится – пока неизвестно, и я решил, что, возможно, кому-нибудь она пригодится.
Кстати, в ветке Эпика на вашем форуме высказывались мнения, что “я бы написал, да QSP плохо знаю”. Думаю, таким авторам программа бы очень помогла. Да и не такие уж “ограниченные возможности” она имеет. Книга-игра (ну или текстовый квест) – это прежде всего текст. И пусть даже в коде игры используются все навороты той или иной платформы, если она написана плохим языком, читать её лично мне будет неинтересно. С другой стороны, даже простое приключение (даже без использования переменных, с использованием только ветвления сюжета), написанное талантливым автором может быть очень интересным.
Ну и в завершение приложу хоть скриншот что ли, чтобы не быть голословным. Правда ведь, даже такое лучше делать в визуальном редакторе, чем держать в голове?
Кстати, в ветке Эпика на вашем форуме высказывались мнения, что “я бы написал, да QSP плохо знаю”. Думаю, таким авторам программа бы очень помогла.
А ты попробуй поговорить с ними на эту тему. Попробуй в реальности, насколько твоя программа годится для авторов QSP. Я полагаю, нам всем будет интересно увидеть результат.
Кстати, попробовать проблематично. Я, например, не знаю, куда именно устанавливается java. И что в принципе значит: “путь к java”. Путь к приложению java.exe, если брать windows? Или до папки, где лежат и bin и lib? Или может она ещё куда устанавливается? Стандартный блокнот у меня почему-то глючно разбивает на строки. Ловить кодировку мне лень. Хорошо, что есть акелпад, в противном случае я бы даже не стал заморачиваться прописыванием переменной в батнике. Ладно. Прописал. Что прописал, не знаю. Пробовал всякие варианты, ничто не помогло. Видимо моих знаний о батниках слишком мало, чтобы правильно что-то прописать. Так и не запустил. Уже потом вылез на форум по ссылке выше и прочитал указание Xpromt, что надо %JAVA_HOME%/bin/java в кавычки поставить. И тут до меня дошло. Но лень взяла своё, и я бросил дальнейшие попытки. Буду ждать версию с инсталлятором. :D
Aleks Versus, спасибо, что попробовали :)
“Путь к Java” означает путь к ПАПКЕ Java (у меня C:\Java\jdk1.7.0_51, уже в ней лежат bin и lib, но нам нужна именно эта, родительская папка). И да, если в пути есть пробелы, то последняя строчка bat-ника должна выглядеть так:
“%JAVA_HOME%/bin/java” -classpath %CP% com.nlbhub.nlb.builder.NLBBMain
Сделал дистрибутив типа “всё включено”, где уже содержится нужная версия Java и всё настроено. Нужно только распаковать и запустить run.bat. Скачать можно по ссылке http://nlbhub.ru/dist/NLBB_WithJRE.zip
Просьба ко всем заинтересованным попробовать этот новый дистрибутив.
Было исправлено несколько критичных багов (работа с Git под Linux и ошибка с переменными во время сохранения), дистрибутивы на сайте обновлены. Просьба ко всем заинтересованным скачать программу заново.
А зачем нужны случайно сгенерированные названия локаций (похоже, что не только локаций)?
newsash,
полагаю, чтобы избавиться от необходимости их придумывать.
Nex, по мне, так сквозной инкремент с фиксированной шириной поля тоже неплохо справляется.
Nex, почти в точку! Но не только, чтобы не придумывать.
Изначально была идея постараться максимально безболезненно поддержать работу нескольких авторов над одной книгой (игрой). Именно поэтому поддержка Git, именно поэтому все эти GUID-ы на всё, чтобы минимизировать конфликты при мёрже. Другое дело, что экспортируемые исходники действительно страшноваты, надо обязательно подумать о каких-нибудь алиасах.
Коллеги, хочу ещё раз предупредить, что программа пока сыровата, ещё не все баги отловлены. Если вдруг кто-нибудь всё же захочет её использовать, сохраняйтесь почаще, а ещё лучше, делайте локальные коммиты или резервные копии, чтобы можно было восстановить работу. Сохранение пока неоправданно долгое (т.к. сохраняется вся книга целиком, а не только изменённые части плюс очень много лишних файлов), я этим обязательно займусь, когда появится свободное время.
Попробовал скачать по ссылке из первого поста, запустил. Скачал репозиторий красной шапки, попробовал открыть и получил “Error while loading: java.lang.NullPointerException”. Что я сделал не так?
newsash, видимо, вы скачали файлы одним архивом, а не сделали git clone. NPE возникает, поскольку программа пытается открыть .git, а её нету. Благодарю за найденный баг!
Чтобы открыть нормально, сделайте git clone в локальную папку. Или используйте приложенный архив.
Программа для новичков, которая требует обязательно пользоваться git? Гхм.
Из приложенного архива открылось нормально. Времени на посмотреть было мало, поэтому опишу только то, что бросилось в глаза.
1) Граф локаций и переходов для игры - это замечательно.
2) Я не знаю, тема интерфейса относится к Linux или Java, но в Windows она смотрится диковато. Особенно чувствуется в диалоге открытия игры.
3) Нашел только один тултип и тот “New game”. Назначение других кнопок выяснял методом тыка.
4) Свойства локации/перехода было бы удобно открывать дабл-кликом.
Тема интерфейса относится к Java, называется Nimbus. В будущем обязательно сделаю выбор Look’N’Feel, но не факт, что другие стандартные темы Java понравятся больше, внешний вид Swing-приложений всегда вызывал нарекания. Просто мне Swing нравится тем, что не требует никаких дополнительных нативных библиотек и выглядит везде одинаково (плохо? :))
Недоработок интерфейса, конечно, тьма, да и документации пока нет. Некоторые кнопки, кстати, просто не работают (к примеру, выбор цветов на экране редактирования параграфа/перехода). Скоро постараюсь заняться этим вопросом. Пока хотел максимально приблизить код к рабочему состоянию, так что программа напоминает дом на этапе строительства. Жить можно, но поручней на лестницах пока не приделали, так что ходите осторожно :)
В последней версии, которая есть на GitHub, добавил экспорт в AXMA Story Maker. Экспортированный граф локаций выглядит в AXMA пока диковато, т.к. не заморачивался с координатами, а просто разложил параграфы стройными рядами, но кнопка “запустить” работает нормально. См. пример.
