Dev Blog #4: Conversation Editor

Hello there!

I’m Dennis Soemers, currently the Lead Programmer at Epoch Games. Apart from implementing features for the actual gameplay, we also work on extending the Unreal Editor by adding new, user-friendly tools specifically for our game. Today I’m going to give you a sneak peek at our Conversation Editor.

The Conversation Editor is a new custom part that we have implemented inside the Unreal Editor that enables the team to create new Conversation assets in the project in a user-friendly manner. See the image below for an early version of this custom tool:

ConversationExample

This example conversation starts with an appropriately named “Quest Giver” NPC first telling the player he has something interesting for the player to do, and then has him ask the player for 10 Wolf Pelts.

  • If the player already has 10 Wolf Pelts, he can tell the NPC “I’ve already got them” (note: the blue box is a condition that checks if the player currently has the required wolf pelts), to which the NPC will respond with “Awesome! Here’s your reward!”. The purple node that follows is a script node. In this case, a node has been placed that adds 1 Gold to the player’s inventory.
  • If the player does not already have 10 Wolf Pelts, he can respond to the NPC by telling him “Sure, I can do that.”. Note that, to implement this, the same condition has been used as above, but this time it has been marked as inversed.
  • Finally, there is another option available to the player that is not restricted by any conditions, in which the player asks for better content in his game.

The tool has been designed to easily allow people to quickly create and test new conversation assets and immediately see how a conversation can progress in-game. It supports branching dialogue, and scripts and conditions can easily be placed anywhere in a conversation which enables conversations to affect, and be affected by, the remainder of the game. Nodes have a variety of properties that can be edited to change their behavior in-game. For instance, in every text node, one of the participants of a conversation can be assigned as the Character that speaks at that point in the conversation. There are also more advanced node types, that allow for jumping back to previous points in the same conversation, or jumping to entirely different conversations. These nodes encourage re-using existing work and help to avoid duplicating work, which is always important in (game) development!

A funny note: this tool actually started out as something completely different, namely the tool already in the Unreal Editor for the creation of Behavior Trees (assets used for AI). This is an image from Epic Games’ tutorial on Behavior Trees:

fullTree

We hope you enjoyed getting this early look at our custom Conversation Editor! A number of its features are still in progress, but we think it is starting to shape up nicely.