Dialoguer - A Dialogue Creator Tool For Unity

Update Dec 18, 2014: Lately I’ve been working with Studio MDHR on their upcoming title, Cuphead. This is a large project and it’s taking all of my attention right now. Rest assured though, when Cuphead is finished, I’ll be dedicating all of my time back to Dialoguer in order to give it the much needed re-haul I’ve been talking about, as well as adding examples for the new Unity GUI system. This update is going to be huge, and I have big plans for it! I am still 100% supporting Dialoguer, so send me an email at tonycoculuzzi@gmail.com if you need help or have any questions, or post here on the forum and I will help you as soon as I can!

This is Dialoguer, a dialogue creation and management tool that lets you visually create branched and dynamic dialogue for your game and play them back at runtime. It allows you to create dialogues and conversations similar to those of Mass Effect, and Final Fantasy.

Dialoguer provides you with:

  • An editor to create branched, dynamic dialogues
  • A playback engine with a very easy skinning API, supporting all major UI solutions (the new Unity GUI, the old Unity GUI, NGUI, Daikon Forge, etc.)

Links:
Asset Store Link
Official Website
Documentation
Videos
Images





Dialogue Editor
As you can see, Dialoguer is a visual node-based editor for creating dialogue objects, which can be used in your game. These objects can then be accessed through a dialogue manager, which handles progression of the dialogue object, firing events which you can listen to in order to display the dialogue on screen.

Using Dialoguer
Dialoguer does NOT provide you with the in-game gui. Instead, it gives you access to a number of events that allow you to quickly throw together your own dialogue gui (using Unity GUI, NGUI, etc. It’s meant to be versatile and extensible) which will handle these events accordingly, and display/hide/wait based on what type of node or page is currently being shown/processed. Each event will return the text and metadata for the dialogue, which you can then easily handle on your end to create an in-game dialogue GUI that looks and acts however you want it to.

Dialoguer Variable System
Dialoguer also contains a visual Variable editor, used for creating global and local variables, which you can use specifically in your dialogues, or in your game.

Global variables are accessible in dialogues, and in-game, so you can change them with logic outside the dialogue editor, and allow them to be effected by in-game events. (Got an item, triggered an event) These are accessible by every dialogue.

Local variables however are specific to their dialogue, and can’t be accessed outside of them. These are used for per-dialogue conditions (how many times you’ve picked this option, an answer you’ve chosen for that specific dialogue’s question, etc)

Dialoguer has the following nodes that you can use in your dialogue:

  • Text Node - Used for showing a block of text
  • Branched Text Node - Used for showing a block of text, with associated selectable choices
  • Wait Node - Waits a number of seconds or frames before continuing (optionally close the current window and open another when finished waiting)
  • Set Variable Node - Set a local or global variable (Dialoguer variable system)
  • Conditional Node - Checks a local or global variable (Dialoguer variable system) and progresses to a branch accordingly
  • Send Message Node - Send a GameObject.SendMessage message to the stage, making is super easy to call events on stage, play animations, etc.

Every Text Node and Branched Text Node also has an advanced mode which gives you access to more fields, such as:

  • Theme - allows you to choose a theme for the current window, allowing you to use multiple dialogue GUI’s that you’ve created (dialogue, cinematics, “you’ve got an item”, etc)
  • Name - allows you to associate a name with that specific page of dialogue
  • Portrait - allows you to associate a portrait or avatar with that specific page of dialogue
  • Metadata - allows you to associate any other data with that page of dialogue, allowing you to add to the dialogue system however you see fit
  • Audio - allows you to play audio with that page of dialogue, with an added audioDelay property
  • Window Rect - allows you to choose a specific position and size for that dialogue to be displayed at

Current Features

  • Dialogue Editor tool to create your dialogues visually
  • Dialoguer class that will allow you an easy way to call, manage and progress your dialogues, firing events that you can listen/react to.
  • Local and Global Variables manager
  • Exports to an XML file, which can be changed/backed up/copied easily and reloaded
  • Parsed string parameters - The ability to display global Dialoguer variables in the text
    (using html-like syntax. 0 = Global Boolean at id 0)

Future Planned Features

  • UI rehaul, including zooming and selecting multiple nodes
  • PlayMaker support. This has been requested by a lot of people, so I’m doing it.
  • Importing of other story-engine files (Twine, Articy Draft, etc)
  • Localization (Though currently it is very easy to display localized text with the current system)
  • Dialoguer Debugger - A way to allow you to change local and global variables on the fly during Play mode

There’s a demo here: Dialoguer Themes/Skins Demo

UPDATE: 21/02/2014
Dialoguer is out now! You can get it on the Asset Store for $30.
Here’s a first look video, or check out the online documentation!

1 Like

Something like this would be a huge boon. As someone planning on making a whack of graphic adventures, I find dialogue to be pretty damned important. In my current Flash workflow, I accomplish a lot of this with XML. Having something in-editor could potentially make Unity a preferred engine choice for upcoming games.

As someone who could REALLY rely on something like this, I’m afraid I can’t give you good pricing advice (I’d really want it, but also really need it to be affordable).

Looks good. Keeping an eye on this.

Does this or will this support translation?

I’m currently looking into a few ways to support localization. There are a few very good external solutions to this though, and they’d all be incredibly easy to implement with dialoguer.

I’m going to add a “planned features” to the main post.

That’s why I want everyone to give me an idea on how much they would be willing to pay for something like this. More than anything want it to be accessible and used. I’d rather have a lot more people using it, and make less off of it.

look’s interesting, hmm $25 - $50 would be my sweet spot

Good to hear, I’m thinking between $30 - $45!

25-35$ if it features a manual that explains not only how to use it, but also how to set it up with UnityGui and NGui. And yeah, would be cool to have something like that.

One Question, can you play a sound for the text? Like in Diablo, where you can read the text, but also listen to it?

George

That’s the plan. Serialization of AudioClips is slightly iffy though, so I’m still figuring out a way to implement it.

Hey, I am very interested in this!

Will this require Unity Pro? or will it be compatible with unity free?

It will be compatible with free.

Really cool stuff! As for suggestions, we prefer JSON over XML since it’s tidier… but not really a deal breaker.

My original plan was to use json instead of xml, but Unity doesn’t support importing .json files as TextAssets to my knowledge. I really would have preferred json as well, but XML just seemed like the viable choice for Unity serialization, for now.

If you’re going to allow it to import, a killer feature would be to add direct support for Articy Draft (available on steam for $85). That would give unity developers an end to end solution for story authoring to game rendering.

When you say you are going to release this “soon”, can you give some idea of what this means? - days, weeks, months??? Thanks. I would likely be a customer for this in a couple of weeks or so, if it’s priced reasonably.

A few weeks, a month tops. I’m aiming for April 19th. I’ll include that in the original post.

Just an update, Dialoguer is feature-complete! I’m going through a bunch of bug testing, and rethinking the visuals. Also, throwing together a few examples of the kind of dialogues you can create with it.

Woohoo! I’m very much looking forward to seeing what this can do.

Here’s a demo of what it can do:

http://tonzie.com/tools/dialoguer/

Edit:
New demo available here: http://www.dialoguer.info/demo.php
Check out the demo scene by clicking the button in the top right corner!

This looks really awesome! I’ll be watching for this in the Asset Store.