Dialogue Editor Tools

Often times when working with other designers it is essential to have the right tools for the job. This means Setting up the components in a way that makes sense for someone without the technical knowledge of how to code. Being able to focus on design while creating content is priceless for most designers.

Node Based Editor

I created this simple node based editor tool in Unity to be easily understandable for narrative designers to work with. By allowing designers to visually create and link nodes in a dialogue tree they can easily write and implement branching dialogue into a game without the headache that branching dialogue can cause.

This simple dialogue system consists of 4 types of nodes: The Start Node, Dialogue Nodes, Choice Nodes, and Exit Nodes.

The start node is the starting point for the dialogue tree. It can only have 1 branch, and immediately moves the dialogue to the next node in the sequence. Every dialogue sequence must have exactly 1 start node.

The dialogue nodes are simple nodes containing only 1 outgoing branch. When the dialogue stored on the dialogue node is completed the dialogue system can load up the next node in the sequence.

Choice nodes present the player with choices. The number of choices are equal to the number of outgoing branches which can be as many as the designer chooses to include. Both the preceding dialogue which is relevent for the choice is stored on the dialogue node as well as each of the options which are presented to the player. The designers are able to link the branch for each choice to any node of their choosing.

Finally the exit nodes indicate to the dialogue system that the dialogue has ended for the sequence.

A Dialogue Sequence

Dialogue Graph Nodes

Saving and Loading Dialogue Trees

In order to save the dialogue tree into a form which can be used in games, the dialogue data is stored as a Scriptable Object. This allows the data to be saved and referenced in the game by the dialogue system which has been implemented.

In order to edit a saved dialogue tree, the designers can also load the scriptable object back into the editor tool to make changes. This was achieved by recreating the dialogue nodes and links procedurally based on the stored data.

Save Menu

Easy Navigation

Dialogue trees can quickly become large in some games. That is why I created a minimap for navigating in my dialogue tool. While the designers can simply click and drag to navigate, having a minimap allows the designer to easily see the layout of the nodes in a dialogue tree that are offscreen. It also allows them to quickly navigate to one location or another with a simple mouse click.

Minimap

Check Out the Code on Github: