Ansible2 / Kiska-Function-Library

0 stars 1 forks source link

Create A Dialogue System #2

Open Ansible2 opened 3 years ago

Ansible2 commented 3 years ago

Description

Create a dialogue GUI/API that allows users to have conversations with NPCs.

Acceptance Criteria

Implementation Suggestions

Ansible2 commented 2 months ago

It seems impossible to implement this without using .bikb files to some extent (assuming we want proper radio effects) without doing some relatively advanced stuff with extensions. Unfortunately this seems like it's going to require some hoops to be jumped through with configs and will be a bit of a nightmare to generate for more complicated conversations.

Some amount of hybrid configuration can be used. By "hybrid" I mean that between the .bikb and normal config we will be able to access at least some of the details for a given line. For example, we define everything in the .bikb classes but then #include these in a normal config so they can be read when building a conversation.

Ansible2 commented 1 month ago

For configuration it seems like the best option in terms of flexibility is to keep the lines and conversation configuration separate. Line configuration is anything that pertains to playing the audio of the line and possibly subtitles, I'm not sure about that. Conversation configuration will pertain to how the whole UI and sort of selecting an option and that plays what lines etc.

I think the current configuration in the conversation section just needs to get moved to a line section. Her conversations my expectation would be that you have like the kiska conversations config that houses essentially what lines the player can select and then the responses then what lines the other conversation participants respond with (and in what order), and lastly what response class that option ultimately leads to or if it exits the conversation.

If multiple lines need to played, it probably involve waiting until the preceding line in an order was said within the last 30 seconds (this might not be exact enough) before proceeding with the next line.