easy.dialog v.3.0.0
Библиотека интерпретации диалогов для Quest Soft Player
Разрабатывался для плееров версии 5.8.0 и выше, а в частности плеера qSpider. Тестировался на qSpider и на классическом плеере версии 5.8.0.
Концептуально серьёзно отличается от версии 1, поэтому если вы пользовались первой версией, внимательно прочитайте инструкцию, прежде, чем переходить к использованию третьей версии.
Вторая версия так и не была написана, поэтому не ищите промежуточный вариант.
В этой версии easy.dialog было решено отделить самую ресурсоёмкую часть, и вынести её за пределы QSP. А именно: генератор диалогов был переписан на язык python. Теперь процесс написания и воспроизведения диалогов в модуле состоит из трёх этапов:
- Пишем диалоги, используя специальный синтаксис "edsynt".
- Используем генератор, чтобы сконвертировать диалоги, написанные в "edsynt", в рабочий код QSP и добавляем их к своей игре.
- С помощью интерпретатора диалогов, написанного на QSP, воспроизводим диалоги в игре.
Общие правила написания исходников для диалогов не изменились. Изменились названия некоторых настроек и команд, а также вместо отдельных настроек различных элементов для оформления реплики появились "роли" — объекты, в которых автор по своему желанию может прописывать любое оформление репликам.
Некоторые функции ещё не реализованы в интерпретаторе, однако в данной версии руководства они могут присутствовать. Для уточнения обратитесь к руководству на гитхабе.
Требования
Предполагается, что вы уже пробовали писать игры на QSP, знаете основные команды и, возможно, знаете, что такое функции, переменные и массивы, и как формируется html-форматирование.
Для написания диалогов требуется, чтобы у вас на компьютере был установлен интерпретатор python версии 3.11 или выше, так как именно под эту версию писался генератор диалогов.
Интерпретатор "easy.dialog" в большей степени предназначен для использования в qSpider, хотя вы можете применять его и в классическом QSP, с учётом урезанного HTML.
Интерпретатор больше не работает с окнами дополнительного описания, предметов и действий и соответственно не "запоминает" и не "восстанавливает" содержимое этих окон.
Модуль поставляется в комплекте с библиотеками "easy.math" и "easy.database" и без них работать не будет.
Также с модулем поставляется пример игры с реализацией нескольких стандартных QSP-шных диалогов, на который в данном руководстве будут делаться отсылки.
Внимание!!! Если в вашей игре небольшие диалоги, или вы пишете только один диалог на всю игру, сравните объёмы текста и объём модуля диалогов (в сумме с модулями, которые идут в комплекте). Возможно целесообразнее написать вашу игру без использования "easy.dialog".
Установка и подключение
- Скачайте и распакуйте в папку с вашей игрой архив из последнего релиза. В ней должны появиться три папки и два файла:
- папка
tools
— руководство, генератор, примеры edsynt, и пакет с подсветкой синтаксиса для Sublime Text. - папка
lib
— модуль "easy.dialog" и вспомогательные библиотеки. - папка
res
— ресурсы (ассеты) игры для qSpider. - файл
eid.start_game.
— пример игры, в которой используется модуль "easy.dialog". - файл
game.cfg
— конфигурационный файл для qSpider.
- папка
- Напишите диалоги в формате edsynt (см. Создание диалогов) и сгенерируйте на их основе общий файл qsps (см. Работа с генератором).
- Скопируйте из общего файла qsps локации в свою игру, или сконвертируйте в файл QSP и подключите, как модуль.
- В своей игре подключите "easy.dialog" и вспомогательные библиотеки, прописав, например, на самой первой локации:
inclib 'lib/easy.dialog.qsp'
inclib 'lib/easy.database.qsp'
inclib 'lib/easy.math.qsp' - Чтобы вызвать диалог используйте команду:
@dialog.int(
, — где'UNIQUENAME'
)UNIQUENAME
— уникальное название диалога. Подробнее о воспроизведении диалогов в своей игре читайте в разделе Работа с интерпретатором.
Работа с исходниками
Вы можете скачать исходный код библиотеки из репозитория, а затем собирать интерпретатор "easy.dialog" в виде отдельной библиотеки, либо непосредственно встроив его в свою в игру.
Следует помнить, что в этом случае вам потребуются также исходники двух других библиотек для сборки:
Обратная связь и поддержка
Если ваш диалог после генерации работает неправильно, либо вообще не генерируется, пришлите мне файл edsynt вашего диалога, чтобы я мог установить причину. Это поможет улучшению и исправлению ошибок в модуле.
Написать мне можно на aleksversus@mail.ru, или найти меня в дискорде на сервере интерактивной литературы.
Вы очень поддержите меня, если подпишетесь на мой бусти (это можно сделать бесплатно), или на канал "Пишем игры на QSP" на YouTube.
История версий:
-
Версия 1.0.1
- Первая стабильная версия.
-
Версия 3.0.0
- Первый стабильный релиз новой версии модуля.
- Реализовано всё, что было в первой версии с изменённым синтаксисом написания диалогов
- Генератор вынесен в python-скрипт
- Изменены многие команды
- Добавлены роли
- Интерпретатор полностью реализован на принципах работы easy.database.
Работа с модулем
- Создание диалогов
- Синтаксис edsynt
- Простые диалоги
- Назначение ролей. Форматирование реплик
- Подключение ролей
- Общие настройки диалога
- Обёртки
- Настройки отображения реплик
- Настройки порядка вывода реплик
- Управление репликами
- Комментирование реплик
- Ремарки
- Корни, ветви, узлы
- Наследование, каскадность
- Скрытый узел
- Как избежать очистки списка действий
- Работа с генератором
- Работа с интерпретатором
- Термины и понятия, применяемые в данном руководстве
- Теги, конструкции, команды
Заключение
Если Вы прочитали данное руководство залпом и составление диалогов для интерпретации модулем "easy.dialog" показалось вам слишком сложным, ознакомьтесь с другими возможностями составления диалогов в QSP. Чуть ниже даны ссылки на примеры от WladySpb и y4ndexx, а так же на пример реализации сложного диалога с помощью движка от Olegus.t.Gl. Может быть вам подойдёт что-нибудь из этого. Или перечитайте руководство ещё раз, и ознакомьтесь с примерами диалогов, составленных для модуля, в файле eid.game_start.qsp
, чтобы лучше усвоить, как и что работает.
В тексте руководства использованы реплики из киносценариев и пьес разных авторов.
Огромное спасибо WladySpb и y4ndexx, подготовившим примеры диалогов для QSP, добавленные в официальные материалы для разработчиков. Они мне очень помогли, когда я только познакомился с QSP. А так же - Olegus t.Gl за реализацию "диалога Чешира", откуда я почерпнул немало идей и решений. Диалоги, реализованные в примерах, а так же "диалог Чешира", я постарался воспроизвести в примере использования модуля. Смотри файл eid.game_start.qsp
в архиве.
Также выражаю отдельную благодарность Oliver'у за неугасимый интерес и тёплые слова, которые поддерживают во мне желание работать над этим и другими проектами для Quest Soft Player.
Если вы хотите поддержать проект, подпишитесь на мой бусти (это можно сделать бесплатно), а также на канал "Пишем игры на QSP" на Ютубе.