RU

Модуль для написания диалогов от Aleks Versus

Aleks Versus Moderator 10.12.2014 23:10 2 comments 6609 views

Поскольку это очередной движок, который скорее всего будет мало кому интересен, размещаю здесь.

easy.dialog v.1.0

Подключаемый модуль для интерпретации диалогов, написание которых, как мне кажется, не очень сложно.

Собственно диалоги пишутся в текстовой константе, или переменной, и в качестве аргумента передаются одной из локаций. Механизм обрабатывает диалог и выводит реплики соответственно его структуре.

Основное предназначение: написание простых ветвистых диалогов. Однако, можно писать и более сложные вещи; так в примере был реализован диалог Чешира.

Из основных возможностей:
- механизмы, интерпретирующие диалог, очищают основное и дополнительное описания, список действий, перед выводом диалога на экран, и восстанавливают обратно, когда диалог закрывается. Диалог “происходит” на той же локации, из которой вызывался интерпретатор диалога (все переходы в модуле по gosub).
- можно задавать настройки форматирования реплик неписи и героя для всего диалога, ветки, или отдельной реплики;
- есть возможность вывода блоков последовательных реплик.
- можно создавать циклические диалоги и при этом совсем не следить за переменными.

В архиве помимо модуля есть примеры реализации диалогов (файл game.easy.dialog.qsp), подробное руководство по написанию диалогов для интерпретатора, краткое описание и вспомогательная библиотека.

Скачать архив с модулем, примерами и руководством можно здесь.
Ссылка на описание и руководство онлайн.

При работе модуля используется несколько массивов, но после завершения диалога все они уничтожаются. Посмотреть список используемых массивов можно на локации dialog.closeup.

Новая версия модуля диалогов. Easy.Dialog v.3.0.0

В новой версии было решено вынести самую ресурсоёмкую часть модуля, а именно генератор, за пределы QSP. Теперь генератор написан на python. В связи с чем полный цикл работы с модулем выглядит так:
1. Пишем диалоги в отдельных файлах, используя разработанный для этого синтаксис.
2. С помощью скрипта на python генерируем общий файл qsps c таблицей данных в которую записаны все диалоги (qsps содержит валидный код QSP).
3. Вставляем тем или иным образом сгенерированный код в свою игру, и подключаем к ней интерпретатор, написанный на QSP.
4. Воспроизводим с помощью интерпретатора нужный диалог из таблицы данных.

Онлайн-версия руководства для новой версии модуля: github/easy.dialog/manual
Релиз последней версии модуля: github/easy.dialog/realeses

Edited at 28.11.2023 15:36 (2 years ago)

Переместил в подходящий раздел.

Aleks Versus Moderator 28.11.2023 15:38 (2 years ago)

После семилетнего перерыва, новая версия модуля. EASY.DIALOG 3.0.0

Смотрите дополнение в шапке.

Log in or Register to post comments.