Skip to content

Определить формат системы диалогов #7

@SDesya74

Description

@SDesya74

В игре будут диалоги с NPC, "диалоги" с предметами, происходящие в момент взаимодействия игрока с ними. Для удобства описания диалогов, я решил сделать для них специальный декларативный язык разметки, в котором можно будет описывать то, как будет происходить диалог между персонажами.

Список требований к языку, которые я сейчас вижу:

  • язык должен быть простым и лаконичным, с минимумом ключевых слов и без необходимости указывать каждой реплике того, кто её сказал (после указания автора реплики, все последующие будут оцениваться как высказанные этим же персонажем до тех пор, пока не будет указано обратное)
  • нужны описания происходящего, которые не имеют автора, например для описания предметов
  • должна быть возможность указания эмоций для говорящего, в зависимости от которых можно будет менять аватарку персонажу
  • текст должен быть экспрессивен, надо иметь возможность указать эмоции с помощью изменения стиля, цвета текста, или добавления эффектов типа дрожания букв в тексте
  • должна быть настройка для изменения способа вывода текста на экран (побуквенно, целыми словами) и возможность добавлять паузы между ними
  • должно быть ветвление, позволяющее задавать игроку вопросы, на которые он отвечает и, в зависимости от ответа, его будет перекидывать на другой фрагмент диалога, расположенный в этом же файле под определённой меткой, или же на фрагмент диалога в другом файле, также отмеченный меткой
  • нужны события, происходящие в момент достижения какого-то места в диалоге и на которые можно реагировать из кода снаружи, чтобы обрабатывать это событие. Например, в диалоге написано, как гг открывает дверь, и после этой реплики проигрывается анимация открытия двери.
  • в диалогах должны быть заданные снаружи значения, чтобы в зависимости от них по-разному проигрывать этот диалог

Также нужно обсудить следующие вопросы:

  • как будут работать переводы: каждый файл диалогов будет переведён на другой язык отдельно, или же сами диалоги внутри будут использовать ключи, переводы которым будут представлены в папке с переводами?
  • нужна ли возможность NPC общаться между собой?
  • должны ли диалоги иметь возможность быть проигранными без привязки к конкретным персонажам? Например, рандомный диалог двух NPC не должен знать, какие конкретно NPC его говорят, чтобы можно было запускать диалоги рандомно
  • должна ли быть возможность получения некоторых параметров персонажа, например его имени и пола, чтобы вышеупомянутые рандомные диалоги нормально работали для любых ситуаций?

Простейший пример разговора между двумя NPC с репликой, описывающей поведение одного из персонажей:

Image

Источники вдохновения:

Metadata

Metadata

Labels

help wantedExtra attention is neededquestionFurther information is requested

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions