RPG Dialogue Editor

DialogueEditorLogo-Transparent

DOWNLOAD

Unity
Solo
20 Weeks

Highlights


Nodes


Branching


Scripting


SOURCE


Play









Previous
Next





With the RPG Dialogue Editor you can create a Dialogue Graph in Unity, in which you can build branching dialogue based on data (player choices and actions) through the use of a light scripting system that extends the concept of nodes. 

I built it in Unity to accomplish a few things: explore computer role-playing game (cRPG) development, better my Unity skills and gain experience in creating tools for developers.

I wrote up how this plugin and idea came to be. If you want more, check below.


READ MORE

Nodes

Branching dialogue is a hallmark of cRPGs, and it implies that dialogue flows like a river with different outcomes. I decided to represent this with a node system, represented graphically for ease-of-use by designers.

Branching is done via either player choice, represented by the Choice node, or through player actions (stored data), represented by the Condition Node.

DialogueNode1
ConditionNode1
ChoiceNode1
StarEndNodes1

Previous
Next

Branching

I supported inquisitive questions (which loop back to another branch), skill checks, and quest history by creating a small variable system.

I modeled the system after Unreal Engine – each Node Graph would hold local variables, a Blackboard would hold a reference to all variables (local and global), and through Condition Node you are able to create Conditions, and through the Edit Variable Instruction you can edit the variable.

Blackboard Resized
Edit Variable Instruction Resized
Condition Node Resized 2
Create Condition Window Resized

Previous
Next

Scripting

To allow more flexibility, I chose to allow Nodes to be modified and created easily so that they may be used however the end-user wants. I used Unity’s Scriptable Objects to achieve that – you can create the Nodes and Graphs (and Variables!) as if you were using Unity’s quintessential way of scripting – MonoBehaviours – Scriptable Objects allow you to use Unity’s in-built serialization and automatic GUI generation, as if it were a MonoBehaviour, but a Scriptable Object can be saved as an asset (saving the data on disk!).

Test Node
Test Node Code

Previous
Next