GS_DialogueSystem

Overview of the incredibly powerful Dialogue System and all of it’s contributing parts.

Dialogue Data Structure

Sequences

Clusters of dialogue meant to represent a single dialogue encounter. Used for Dialogue Selection, as well as sorting/organizing in the Editor.

Dialogue

The core of the system. The actual dialogue that will be presented within the game runtime.

Selectors

A system to allow branching out from a starting point into many destinations. Defined by the unique selectors processing of those branches.

Selector paths are affected by the preceding conditions, culling options that are invalid.

Option Selector & Options

The standard “Dialogue Option” method of allowing a player to select their responses.

Random Selector

A randomizer selector. This selector does not pause for input, it simply randomly selects where the branch will lead.

Pure Random & Weighted variants.

Events

Triggered functionality that encompasses many systemic outcomes, used intertwined with the dialogue paths being navigated.

Records

Integrated with the GS_Save record keeper system. This event type allows for changing records that affect the rest of gameplay, as well as dialogue conditions.

Actions

A broad reaching type. Using GS_Actions and likely more. Actions can drive unique behaviour in and outside of the Dialogue Sequence.

Things like activating and deactivating things, spawning, character moving and pathfinding.

Additionally allowing the use of custom actions, like RPGStats changing stat, or vitality. Inventory giving/taking an item, or affecting currency.

Posing

A targeted event type that supports the many data points used for shifting and changing an actors state.

Pointed at actors it affects:

Poses, Emotional state, Profile Images, and the blending of all these things.

Conditions

A very critical system. Conditions are meant to evaluate MANY possible data points as a means to filter possible outcomes of navigating dialogue.

As a standard, uses Records to determine if a dialogue path is available to the navigation system. Greater than, Less than, equal, not equal evaluations used with the Records integer format.

Additionally allowing the use custom conditional evaluators, like RPGStats enabling stat or vitality checks. Inventory enabling “hasItem”, and “hasCurrency” checks.


Dialogue Editor

The in O3DE Editor GUI for authoring dynamic and complex branching dialogue.

It includes interfaces for editing settings, as well as defining actors and many meta-data points around presenting the actors in dialogue sequences.


Dialogue Sequencer

The actual system that pressents the dialogue at runtime, using the dialogue data to properly deliver the dialogue experience.


Built in Dialogue UI

Overlay UI

In-world UI

Subtitle UI


Dialogue Predefined Actors

Actors Outline

Actors Names, Profile images, pose animations, pose images

Pose groupings based on emotion category.


Data Structure

Editor

Information on the in engine GUI.

Sequencer

The runtime system that presents the dialogue in gameplay.

Built-in UI

Actors