Dialogue System Extensions

While working on Bone Voyage, we heavily relied on a plugin called DlgSystem. This plugin is an open source plugin for the Unreal Engine, which has an easy to use dialogue design tool.

While that dialogue plugin was extremely easy to use, it did have its limitations. You could conditionally filter out certain dialogue options. But this was done using a static input method. Due to the way Bone Voyage was setup code wise. This meant we had to create a load of duplicate code. Eventually we ended up with over 300 copies of the same functionality spread out over 10 blueprint files. Once I realized how much code was being copied over and over, I decided to try and see if it was possible to extend the dialogue plugin so we could directly execute blueprint functions to execute code logic. Not only would this prevent dialogue designers from having to dive into the blueprints, it would also allow the programmers to keep a better track of the current blueprint functionality. Eventually I successfully managed to create a system that allowed us to use blueprint and C++ functions directly for the Enter Events (functionality which is run when a dialogue node is entered), Enter Conditions (functionality that allows you to conditionally limit the access of a dialogue node) and Text Arguments (string formatting using arguments).

The extensions mentioned previously eventually became the backbone for Bone Voyage and allowed us to quickly create new dialogues without requiring the dialogue designers to dive into blueprints to adjust certain logic.

Usage Tutorial