Вход
Приветствую Вас Гость
 
Easy.Dialog.3 - Aleks Versus'GAM'RUS

easy.dialog v.3.0.0

Библиотека интерпретации диалогов для Quest Soft Player

Разрабатывался для плееров версии 5.8.0 и выше, а в частности плеера qSpider. Тестировался на qSpider и на классическом плеере версии 5.8.0.

Концептуально серьёзно отличается от версии 1, поэтому если вы пользовались первой версией, внимательно прочитайте инструкцию, прежде, чем переходить к использованию третьей версии.

Вторая версия так и не была написана, поэтому не ищите промежуточный вариант.

В этой версии easy.dialog было решено отделить самую ресурсоёмкую часть, и вынести её за пределы QSP. А именно: генератор диалогов был переписан на язык python. Теперь процесс написания и воспроизведения диалогов в модуле состоит из трёх этапов:

  1. Пишем диалоги, используя специальный синтаксис "edsynt".
  2. Используем генератор, чтобы сконвертировать диалоги, написанные в "edsynt", в рабочий код QSP и добавляем их к своей игре.
  3. С помощью интерпретатора диалогов, написанного на QSP, воспроизводим диалоги в игре.

Общие правила написания исходников для диалогов не изменились. Изменились названия некоторых настроек и команд, а также вместо отдельных настроек различных элементов для оформления реплики появились "роли" — объекты, в которых автор по своему желанию может прописывать любое оформление репликам.

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

Требования

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

Для написания диалогов требуется, чтобы у вас на компьютере был установлен интерпретатор python версии 3.11 или выше, так как именно под эту версию писался генератор диалогов.

Интерпретатор "easy.dialog" в большей степени предназначен для использования в qSpider, хотя вы можете применять его и в классическом QSP, с учётом урезанного HTML.

Интерпретатор больше не работает с окнами дополнительного описания, предметов и действий и соответственно не "запоминает" и не "восстанавливает" содержимое этих окон.

Модуль поставляется в комплекте с библиотеками "easy.math" и "easy.database" и без них работать не будет.

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

Внимание!!! Если в вашей игре небольшие диалоги, или вы пишете только один диалог на всю игру, сравните объёмы текста и объём модуля диалогов (в сумме с модулями, которые идут в комплекте). Возможно целесообразнее написать вашу игру без использования "easy.dialog".

Установка и подключение

  1. Скачайте и распакуйте в папку с вашей игрой архив из последнего релиза. В ней должны появиться три папки и два файла:
    • папка tools — руководство, генератор, примеры edsynt, и пакет с подсветкой синтаксиса для Sublime Text.
    • папка lib — модуль "easy.dialog" и вспомогательные библиотеки.
    • папка res — ресурсы (ассеты) игры для qSpider.
    • файл eid.start_game. — пример игры, в которой используется модуль "easy.dialog".
    • файл game.cfg — конфигурационный файл для qSpider.
  2. Напишите диалоги в формате edsynt (см. Создание диалогов) и сгенерируйте на их основе общий файл qsps (см. Работа с генератором).
  3. Скопируйте из общего файла qsps локации в свою игру, или сконвертируйте в файл QSP и подключите, как модуль.
  4. В своей игре подключите "easy.dialog" и вспомогательные библиотеки, прописав, например, на самой первой локации:
     inclib 'lib/easy.dialog.qsp'
    inclib 'lib/easy.database.qsp'
    inclib 'lib/easy.math.qsp'
  5. Чтобы вызвать диалог используйте команду: @dialog.int('UNIQUENAME'), — где UNIQUENAME — уникальное название диалога. Подробнее о воспроизведении диалогов в своей игре читайте в разделе Работа с интерпретатором.

Работа с исходниками

Вы можете скачать исходный код библиотеки из репозитория, а затем собирать интерпретатор "easy.dialog" в виде отдельной библиотеки, либо непосредственно встроив его в свою в игру.

Следует помнить, что в этом случае вам потребуются также исходники двух других библиотек для сборки:

Обратная связь и поддержка

Если ваш диалог после генерации работает неправильно, либо вообще не генерируется, пришлите мне файл edsynt вашего диалога, чтобы я мог установить причину. Это поможет улучшению и исправлению ошибок в модуле.

Написать мне можно на aleksversus@mail.ru, или найти меня в дискорде на сервере интерактивной литературы.

Вы очень поддержите меня, если подпишетесь на мой бусти (это можно сделать бесплатно), или на канал "Пишем игры на QSP" на YouTube.

История версий:

  • Версия 1.0.1

    • Первая стабильная версия.
  • Версия 3.0.0

    • Первый стабильный релиз новой версии модуля.
    • Реализовано всё, что было в первой версии с изменённым синтаксисом написания диалогов
    • Генератор вынесен в python-скрипт
    • Изменены многие команды
    • Добавлены роли
    • Интерпретатор полностью реализован на принципах работы easy.database.

Работа с модулем

  1. Создание диалогов
    1. Синтаксис edsynt
    2. Простые диалоги
    3. Назначение ролей. Форматирование реплик
    4. Подключение ролей
    5. Общие настройки диалога
    6. Обёртки
    7. Настройки отображения реплик
    8. Настройки порядка вывода реплик
    9. Управление репликами
    10. Комментирование реплик
    11. Ремарки
    12. Корни, ветви, узлы
    13. Наследование, каскадность
    14. Скрытый узел
    15. Как избежать очистки списка действий
  2. Работа с генератором
  3. Работа с интерпретатором
    1. Подключение интерпретатора
    2. Добавление таблицы диалогов в игру
    3. Воспроизведение диалога
    4. Составные части интерпретатора диалогов
    5. Отладчик
  4. Термины и понятия, применяемые в данном руководстве
  5. Теги, конструкции, команды

Заключение

Если Вы прочитали данное руководство залпом и составление диалогов для интерпретации модулем "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" на Ютубе.

Наверх