-
Notifications
You must be signed in to change notification settings - Fork 0
Closed
Labels
help wantedExtra attention is neededExtra attention is neededquestionFurther information is requestedFurther information is requested
Description
В игре будут диалоги с NPC, "диалоги" с предметами, происходящие в момент взаимодействия игрока с ними. Для удобства описания диалогов, я решил сделать для них специальный декларативный язык разметки, в котором можно будет описывать то, как будет происходить диалог между персонажами.
Список требований к языку, которые я сейчас вижу:
- язык должен быть простым и лаконичным, с минимумом ключевых слов и без необходимости указывать каждой реплике того, кто её сказал (после указания автора реплики, все последующие будут оцениваться как высказанные этим же персонажем до тех пор, пока не будет указано обратное)
- нужны описания происходящего, которые не имеют автора, например для описания предметов
- должна быть возможность указания эмоций для говорящего, в зависимости от которых можно будет менять аватарку персонажу
- текст должен быть экспрессивен, надо иметь возможность указать эмоции с помощью изменения стиля, цвета текста, или добавления эффектов типа дрожания букв в тексте
- должна быть настройка для изменения способа вывода текста на экран (побуквенно, целыми словами) и возможность добавлять паузы между ними
- должно быть ветвление, позволяющее задавать игроку вопросы, на которые он отвечает и, в зависимости от ответа, его будет перекидывать на другой фрагмент диалога, расположенный в этом же файле под определённой меткой, или же на фрагмент диалога в другом файле, также отмеченный меткой
- нужны события, происходящие в момент достижения какого-то места в диалоге и на которые можно реагировать из кода снаружи, чтобы обрабатывать это событие. Например, в диалоге написано, как гг открывает дверь, и после этой реплики проигрывается анимация открытия двери.
- в диалогах должны быть заданные снаружи значения, чтобы в зависимости от них по-разному проигрывать этот диалог
Также нужно обсудить следующие вопросы:
- как будут работать переводы: каждый файл диалогов будет переведён на другой язык отдельно, или же сами диалоги внутри будут использовать ключи, переводы которым будут представлены в папке с переводами?
- нужна ли возможность NPC общаться между собой?
- должны ли диалоги иметь возможность быть проигранными без привязки к конкретным персонажам? Например, рандомный диалог двух NPC не должен знать, какие конкретно NPC его говорят, чтобы можно было запускать диалоги рандомно
- должна ли быть возможность получения некоторых параметров персонажа, например его имени и пола, чтобы вышеупомянутые рандомные диалоги нормально работали для любых ситуаций?
Простейший пример разговора между двумя NPC с репликой, описывающей поведение одного из персонажей:
Источники вдохновения:
USBashka
Metadata
Metadata
Assignees
Labels
help wantedExtra attention is neededExtra attention is neededquestionFurther information is requestedFurther information is requested