Post

Dialogue Graph

Node-based dialogue editor for Unity.

Dialogue Graph

Creation year: 2024

Programming language: C#

Engine: Unity


Project

I started this project during 2022 and finished most of the core features but the project went on a hiatus until 2024 where I started a project that required a dialogue system. During that project I polished most of the issues and improved some of the older systems.

Dialogue Graph

Dialogue graph is node-based dialogue editor made using Unity’s experimental GraphView API which allows quick and easy way to create complex scenarios with branching dialogue.

Key features

  • Ability to create branching dialogue using choices and flags
  • Creating, saving and loading graph assets, runtime data is saved separately
  • Blackboard for managing graph data
  • Minimap for navigating large graphs
  • Node groups
  • Event triggers

Nodes

Entry node

Index based entry point for the dialogue.

Entry node

Dialogue nodes

Single choice dialogue node is used for showing dialogue to the player while multiple choice dialogue node presents player multiple choices and branches out depending on the choice made.

Dialogue node

Flag nodes

Flag nodes can be used to set or unset flags and check whether a flag is set or not and branch out depending on the outcome.

Flag nodes

Event node

Event nodes trigger an event which listeners can react to during runtime.

Event node

Blackboard

Blackboard is used to store data on which characters are included in the graph and interpolation data which is used to replace tags with variables like how many times the player has died.

Blackboard

Characters

Dialogue graph uses character assets to specify information about the current “actor” that is talking. They can include information like name, portrait or text color.

Character inspector

This post is licensed under CC BY 4.0 by the author.