Context
Wispfire is a small Dutch game studio that specializes in interactive storytelling and is best known for their Herald games series.
​
For my graduation internship i joined the company for 5 months to build a new branching narrative tool for them to use in their future projects, as their current solution was too intertwined with their Herald series. The result of this is Branshee, a node-based editor built into the Unity engine that can be easily expanded and modified depending on the project.
Modularity
Rather than conventional node-based editors, the nodes in Branshee are modular. What this means is that a single node consists of multiple components such a Text, Actor, and Variables to change.
​
These nodes can be saved as presets as well for easy re-use of handy combinations or to maintain a style convention within your team.
Asset Management
To make managing dialogue-related assets easier, Branshee has it's own explorer.
This window:
-
Matches a lot of functionality of Unity's own explorer to keep the editor consistent.
-
Makes it much easier to add new, dialogue related assets to the project in the right places.
-
Makes those assets easy to use inside your dialogues.
-
Manages dialogue-specific assets which are otherwise difficult to use inside Unity because they're sub-assets.
Node components
Node components can do practically anything you want them to do. Their UI can be generated automatically based on the fields present within the class, or written by hand if it requires more advanced functionality.
A component can let it's base class draw a default UI based on the fields present in the data class.
A component can draw completely custom UI, allowing for a custom layout or additional functionality
Layers
Despite the reduction in node count achieved with modular nodes, dialogues can still get quite large and cumbersome. To combat this Branshee can hide or disable certain types of node components with controls akin to image editing tools.
​
This also helps developers focus on their own roles. An animator can disable all layers and only view those relevant to adding animation hooks, for example.