Unity Dialog / Dialogue Tree Extension
Hello internet, its been a while hasn’t it? I thought i’d share one of the things i’ve been working on since the last Old Jolty update. Its a Dialogue Tree Extension for Unity; it manages the editing, display and interaction of in-game dialogue or conversations in a visual, relatively simple and un-intrusive manner. Thusly its easy to integrate and doesn’t take over the whole Unity project. It can manage player choices/options in the dialogue and its all done via GUIText and GUITextures, so runs no risk of OnGUI based lag.
I started work on this for two reasons: Firstly to prove to myself (And any potential employers) that I can rock the C# and secondly because it’ll be really useful for another game project I’d like to start one day. The extension will likely be going up on the asset store for free when its finished. At least initially, ideally i’d like it to evolve over time with critique until a point where I start charging a small amount for it. However i’m aware its not the only editor extension of its kind out there, (Even if i’m not sure how many of those tools are OnGUI independent.)
As it stands it currently has the following features:
• Works through just two parts, dialogue components you add to whatever objects you want to speak and one or more dialogue box GameObjects tweaked to your preferences.
• Simple to integrate, just add a Dialogue component to a GameObject, edit it’s dialogue in the dialogue editor (It opens in the editor at a press of a button), add a DialogueBox to the scene, configure it to your preferences and then finally script a method call for the dialogue into your game.
• Completely OnGui independent, no need to shove stuff in your main OnGui call or risk lag from multiple (Or single) OnGui implementations.
• Formats the dialogue text to fit inside your DialogueBox’s GUITexture, splitting the text up into multiple “viewings” if there’s not enough space for the whole body of text. Compatible with other scripts which alter your GUITexture to scale with resolution as long as they do so on Awake();
• Can process an unlimited number of dialogue options or choices, (Where the dialogue diverges based on what option the player picks.) Though it will shout warnings at you if you put in more options then can physically fit in your dialogue box.
• Visually shows the structure of your dialogue in a clean and concise manner within the extension’s dialogue editor.
• Supports multiple dialogues using multiple dialogue boxes simultaneously. It also supports multiple dialogues using the same dialogue box, though obviously not at the same time.
Ideally I’d like to add the following features:
• An option to make the text load character by character instead of instantly.
• a GOTO option in the dialogue editor where you can put in the # number of any text box and that’ll be the next piece of dialogue.
• Support for “click to continue” indicator textures/images at any alignment at the bottom of dialogue boxes.
• An option to make option/choice text become highlighted when the mouse is over it.
• Touch screen support so it can be used on mobile platforms, but remains testable on PC using the mouse (I’m considering using the unity web browser for testing in the future). Also adjustable gaps between the text options, so that they can be pressed by big fingers more easily.
• Optional field for “Header” dialogue box, which displays speaker names, titles etc.
• Optional field for “Echo” dialogue box, which shows the previous “viewing” of dialogue.
• An optional mode that makes the echo box become used for normal dialogue whilst the main dialogue box becomes used solely for the display of choices/options. The result being one box for player input and one box for NPC dialogue.
• An option in the dialogue editor which sends a message to call other methods/functions on the dialogue’s game object at a certain point in the dialogue.
• Variables held by the dialogue system, editable by method calls.
• An IF option in the dialogue editor which will cause a choice/option to only be presented if conditions involving said variables are met.
• Options to slot the variables into the text for showing gender, player name etc.
• Some kind of set up for integrating image/character portrait display into the dialogue.
We’ll see how far I get through them before putting it up. As usual if you have an opinion i’d love to hear it, until next time internet.
Posted on November 16, 2013, in Uncategorized and tagged conversations, development tools, dialog, dialog tree, dialogue, dialogue management, dialogue tree, dialogue tree extension, editor extension, game development, games development, indie game development, indie games development, Unity, unity3d. Bookmark the permalink. Leave a comment.