Search Unity

DUNILOG - dialog engine

Discussion in 'Assets and Asset Store' started by Kray-C, Apr 19, 2013.

  1. Kray-C

    Kray-C

    Joined:
    Apr 8, 2013
    Posts:
    152
    Hi all,
    I am happy to announce that DUNILOG v1.7.0 is available in the asset store.
    http://u3d.as/content/kray-c/dunilog

    Description:
    DUNILOG is a graphical node based dialog engine. It can handle text logic for simple things like presentations and even better highly complex conversation logic used in advanced games like Fallout, Mass Effect, Zelda, Final Fantasy and so on. Read on to see what DUNILOG can do for you.

    Node based editor:
    The editor contains a rich set of features to make your work easier when you have to handle a big project. You can zoom, move and focus in the node view just by the mouse. You can also split up your story in different scenes to get a better view on it. The project files are stored as xml to make editing and backing them up simpler.

    Editor test environment:
    All the conversations and logic can be tested in an editor test environment to separate the author work from the game creation process. This makes your workflow faster than testing it all the time in the game. One of the key features here is the possibility to make changes during run time.

    The in game UI:
    DUNILOG comes with an example ingame UI with a lot of features (alignment, skin, proportions). But also custom UI with any system (Unity GUI, 3D GUI, NGUI, etc.) is simple to create.

    DUGManager:
    Just one click and the editor exports all necessary features in one self containing prefab that does the whole job for you. Drop it into your scene and press play.
    It follows the MVC pattern, a player (see in game ui), a controller (the interface to the engine features) and the data container.

    Localization:
    That is a quick task - export a csv file, translate and import it again. Done.
    You can also do this in the node editor if you want to. All languages are testable in the editor and the test environment.

    Variables:
    DUNILOG can not just handle normal text nodes, it also comes with the possibility to handle variable logic like math operations and conditions. The variables can store all kind of information for example scores, names, counters, bools etc..
    Variables also can be used to store visual objects like collected items which should be displayed in some way.

    Event System:
    There are many events you can hook into to get all informations about the current status of your story. So you are totally free to react to whatever change in the conversation (like a decision was selected, a decision was taken x times, etc.). The events always contain an object which holds all necessary data and variables to work with.

    You are no coder?
    Perfect, all of this cool features are completely accessible without a line of code. The DUGManager contains a list with all nodes and events you wanna hook into to spawn prefabs, sounds, script and so on. The UI is customisable (see in game ui). And the complex conversation logic is done visibly in the node editor without any coding.

    Scriptable nodes and variables:
    There is a in text scripting language which can do a lot of cool things like use random lists of words. An example: (Hi, Hello, Good morning, Good evening) so each time you visit the node it will say something else.

    The API:
    Everything in there is (I think) pretty straightforward to use. It contains all you need to query data, catch events, build players, inject data and so on. Also a function set to save and load the inner state of your story, which is not given by the most dialog engines. Also the whole code runs with an own prefix to not interfere with any other code and extensions.

    Example project:
    DUNILOG is shipped with an example project to see how to use it in a small game. Hope this will get you started very fast.

    Any questions?
    Please let me know if you have any kind of question? Especially feature requests are totally welcome to make DUNILOG even better and everybody happy.

    URL:
    1.) Download
    http://u3d.as/content/kray-c/dunilog
    2.) A demo project I made up in less than one hour:
    http://kray-c.net/unity/DUNILOG/ExampleProject/
    3.) Some basic docu for the beginning
    http://kray-c.net/unity/DUNILOG/Doc/
    4.) The work in progress thread:
    http://forum.unity3d.com/threads/177489-DUNILOG-quot-dialog-engine-quot-needs-testers

    Attention this video and images are very old!
    I will update them soon.


    Video:
    First tutorial video by my team mate Dan Fury


    Images:

    The editor:
    $attachment.png

    The example project:
    $attachment-2.png

    Localization:
    $Bildschirmfoto 2013-06-03 um 18.45.10.png

    Testing mode:
    $A.png

    The editor + example project
    $attachment-1.png

    Attention this video and images are very old!
    I will update them soon.
     
    Last edited: Sep 1, 2013
  2. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    Looks nice - a few questions:

    1. Is is possible to specify the location of the Speaking actor? For example - above or behind the dialog?
    2. Can you change the image for the speaker? (For example, to show emotion)
    3. Can you have multiple Speaker images at one time? (showing both parties - ex: http://www.rpgland.com/content/media/2009/10/luminous3eyes01.jpg )
    4. Can dialogs be programatically created?

    Thanks
     
  3. Kray-C

    Kray-C

    Joined:
    Apr 8, 2013
    Posts:
    152
    Hi Jaimi,

    1. Is is possible to specify the location of the Speaking actor? For example - above or behind the dialog?
    DUNILOG creates a prefab for you which has a "Player" component which can be completely customized.
    2. Can you change the image for the speaker? (For example, to show emotion)
    One possibility would be to create the actor emotion in the actor inspector and pick the right one for your node.
    Or create a prefab for the node with the right images in it (actor and listener) and DUNILOG will do the rest.

    3. Can you have multiple Speaker images at one time? (showing both parties - ex: http://www.rpgland.com/content/media/2009/10/luminous3eyes01.jpg )
    Same answer as 2.
    4. Can dialogs be programatically created?
    Would be possible all classes are available - but DUNILOG was meant to do this for you in a node based form ;)

    Also if you have any special needs I would be happy to help out with examples and code snippets if needed. Because I really want to grow DUNILOG in direction of my users. The main thing DUNILOG takes care about is the dialog logic and how to hook this up as flexible as possible to your graphical needs.
     
    Last edited: Apr 19, 2013
  4. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    Cool - I'll pick it up this afternoon.

    The reason I'm asking for the programmatic access is because 95% of dialogs will be 1 or 2 liners with a simple "OK", or maybe a "yes/no" type answer. that stuff can all be stored in a database. :)
     
  5. Kray-C

    Kray-C

    Joined:
    Apr 8, 2013
    Posts:
    152
    No, problem if you need a data base connection I can possibly help out with an extension of DUNILOG.
    Just let me know what you need.
    The editor is working with xml so you can use a DB to XML conversion.
    Just drop mit a private notification if I can support you.
     
  6. BSECaleb

    BSECaleb

    Joined:
    Jan 29, 2009
    Posts:
    72
    Does the package come with source code? Is there any documentation we could have a look at before making a purchasing decision?
     
    Last edited: Apr 20, 2013
  7. Kray-C

    Kray-C

    Joined:
    Apr 8, 2013
    Posts:
    152
    In the moment the Package comes as two dlls. I can generate docu for you if you want to take a more precise look at it.
    There is one editor dll and one for editor and frontend datamodel dll.
    If you want to talk about that just drop me a PM.

    In this first release is only a readme because it is so simple to use but I am already working on a doxygen documentation with the Basic API plus all special examples and modifications which are possible.
     
    Last edited: Apr 20, 2013
  8. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    Please release source code with it. It's very hard to work with DLL version of components - especially if there are conflicts, etc. Plus, about 80% of the time, the authors abandon their work after sales slow down. :( We need to have source code for it, so we can be sure it works in the next version, or so we can fix bugs if you are not able. It's in my cart waiting to buy.
     
  9. BSECaleb

    BSECaleb

    Joined:
    Jan 29, 2009
    Posts:
    72
    I agree with every point here.
     
  10. Kray-C

    Kray-C

    Joined:
    Apr 8, 2013
    Posts:
    152
    Just to explain myself in this point...
    I released it as dlls because I am still under heavy development of new features. And people who use my tool get it for a very cheap price and participate in the further development. This will help all users of DUNILOG to get the best features.
     
    Last edited: Jun 2, 2013
  11. Kray-C

    Kray-C

    Joined:
    Apr 8, 2013
    Posts:
    152
    Version 1.0.1 is online.
    DUNILOG is now Unity 3.5 compatible (before 4 only)
    Bugfix for export in windows file system
     
  12. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    I have purchased this based on your promise to release the source. Thanks!
     
  13. Kray-C

    Kray-C

    Joined:
    Apr 8, 2013
    Posts:
    152
    So this was my PM to you. Just to keep the discussion complete.
    Please provide your email, then I will send you the current status.
     
    Last edited: Jun 2, 2013
  14. TheNorthridge

    TheNorthridge

    Joined:
    Jan 4, 2012
    Posts:
    193
    Could this be used to create something like a Fallout Dialog system for NPCs?
     
  15. Kray-C

    Kray-C

    Joined:
    Apr 8, 2013
    Posts:
    152
    Hi Northridge,
    I never played it but yes same same I think.
    DUNILOG get shipped exactly with this kind of demo ui.
    DUNILOG is very customizable so you could also go for speech bubble 3D ui, if you want to.
    When I can provide you any infos let me know.
     
    Last edited: Apr 23, 2013
  16. Kray-C

    Kray-C

    Joined:
    Apr 8, 2013
    Posts:
    152
    Hi all,
    a new version 1.1.0 will pop up soon in the assetstore with these cool new workflow features:

    - You can now change nodes while you are in the testmode
    - Right click a node to start testing from this node on
    - Right click a node to duplicate it
    - Bugfix for unity 4.1 when window is behind a menu button

    Hope this will make you more productive ;)

    $Bildschirmfoto 2013-04-29 um 16.06.03.png
     
  17. zephren

    zephren

    Joined:
    Dec 7, 2012
    Posts:
    25
    I am very impressed with your product, and look forward to seeing some youtube tutorials, as I am trying to work full-time, make a game singlehanded, etc I am very busy.

    so it is very dificult for me to try and test things figuring out things for myself, also I am trying to learn Playmaker. and that takes a lot of my time.

    I am looking for a quick way to make dialogue not necessarily for quest but random information gathering as it seems this product would excel at.

    please keep up the good work, as I am really liking what I see so far.

    let me know when it is ready with documentation and tutorials. if the price is right i will be among the first to purchase.
     
  18. Dan Fury

    Dan Fury

    Joined:
    Jul 18, 2010
    Posts:
    158
    Hi, I'm the other half of the team of DUNILOG and here is the first tutorial to get you started.
    We will add more tutorials and explain all the different features soon, but we wanted to get this mighty tool in your hands as soon as possible to get your feedback.
    At the moment DUNILOG is extremely cheap, because we are relatively early in the development process and we need your feedback and project implementations to make it as good as it can be. Every game behaves differently and has different needs for dialogue implementation and we want to make as many people happy with it as possible.

    With this tutorial I show you the basic features without using any scripts, so that pretty much any Unity user can handle it.

    If you can code, then this tutorial is probably not for you. We will adress the possibilities with programming in an upcoming tutorial.

     
    Last edited: May 7, 2013
  19. Kray-C

    Kray-C

    Joined:
    Apr 8, 2013
    Posts:
    152
    Here the new features:
    - Multi window moving and editing by right click
    - Middle mouse button or ctrl+N to add nodes
    - Backbutton for test environment and live player
     
  20. sen3d

    sen3d

    Joined:
    May 21, 2013
    Posts:
    3
    Is there a way to manage several conversations?
    If I build a larger scene like in any kind of RPG the player will encounter several NPCs.
    Lets say there are 10-30 characters with possible conversations, if this is all in one file I might loose overview.

    Anyway, awesome tool!
     
  21. Kray-C

    Kray-C

    Joined:
    Apr 8, 2013
    Posts:
    152
    Hi sen3d,
    If I can help out with some feature let me know.
    Can you describe your problem more precise.
    Do you need a kind of search function to see which actor is used in which scene?
     
  22. Dan Fury

    Dan Fury

    Joined:
    Jul 18, 2010
    Posts:
    158
    Hi sen3D, the easiest way to have a good overview is to work with different scenes. You could create a scene for every character and if that's still too crowded you can create scenes for characters in specific situations or locations, it's entirely up to you how many nodes you want to put in a single DUNILOG scene.
     
    Last edited: May 23, 2013
  23. sen3d

    sen3d

    Joined:
    May 21, 2013
    Posts:
    3
    This is embarrassing! :oops: I was really busy that day and also checked out Dunilog at the same time. So I missed the part with Dunilog-scenes...
    Anyway, this looks like the best dialogue-system for Unity.

    We gonna get it!

    And thanks for the quick replies!
     
  24. Kray-C

    Kray-C

    Joined:
    Apr 8, 2013
    Posts:
    152
    Hi sen3d,
    thx for the reply happy to hear that you like the tool.
    For further questions just PM me.
     
  25. spartan

    spartan

    Joined:
    Mar 10, 2010
    Posts:
    174
    @Kray-C, do you provide an API to extend your tool? If not, can you provide the source code to modify it?

    Sent you a PM with more questions :)
     
  26. Kray-C

    Kray-C

    Joined:
    Apr 8, 2013
    Posts:
    152
    Hi Spartan,
    I sent you a PM.
    I am happy to say, that I can answer all questions with yes.
     
  27. spartan

    spartan

    Joined:
    Mar 10, 2010
    Posts:
    174
    Thank Kray-C, just bought it :).
    Sent you a pm with some stuff.
     
  28. Kray-C

    Kray-C

    Joined:
    Apr 8, 2013
    Posts:
    152
    Hi Spartan,
    I can take care of these things. I will update you as soon as I am done with it.
     
  29. Kray-C

    Kray-C

    Joined:
    Apr 8, 2013
    Posts:
    152
    DUNILOG 1.3.0 is available now.
    NEW: Localization with csv files or in the node editor.

    $Bildschirmfoto 2013-06-03 um 18.45.10.png
     
  30. Kray-C

    Kray-C

    Joined:
    Apr 8, 2013
    Posts:
    152
    DUNILOG 1.4 available
    First special thx to Spartan for his input.
    What is new:
    Complete new subnode system
    De/Activatable subnodes through click and view count
    New nodes to switch by subnode selection
    A SendMessage Node
    Selectable which node events will be shown in the DUGManger
     
  31. Kray-C

    Kray-C

    Joined:
    Apr 8, 2013
    Posts:
    152
  32. Kray-C

    Kray-C

    Joined:
    Apr 8, 2013
    Posts:
    152
    New:
    Easy save and load functionality
    Player component extended with save and load menu
     
  33. pneill

    pneill

    Joined:
    Jan 21, 2007
    Posts:
    207
    Any chance you'll support XML import from Articy Draft?
     
  34. Kray-C

    Kray-C

    Joined:
    Apr 8, 2013
    Posts:
    152
    Sure would be possible. If you can send me an example xml would be helpful.
     
  35. zeitweise

    zeitweise

    Joined:
    Aug 12, 2013
    Posts:
    7
    Hi. I have updated to version 1.6 but I can’t figure out how to get the in dialog scripting to work.
    When I write: {listRandom:Hi|Hallo|Good evening} Dunilog just prints {listRandom:Hi|Hallo|Good evening} instead of Hi, Hallo or Good evening.
     
  36. Kray-C

    Kray-C

    Joined:
    Apr 8, 2013
    Posts:
    152
    Hi zeitweise,
    1.6 is not in the assetstore jet. It hanging now for 14 days in the unity review?!?
    But it should pop up soon.

    Edit: ok strange 1.6 is available but I did not get any notification from the unity team?!
     
    Last edited: Aug 13, 2013
  37. zeitweise

    zeitweise

    Joined:
    Aug 12, 2013
    Posts:
    7
    Hi. What about my question? Did you have time to check it? Am I doing something wrong?
     
  38. Kray-C

    Kray-C

    Joined:
    Apr 8, 2013
    Posts:
    152
    Hi,
    I already sent you about 4 hours ago an example XML via PM.
    Did you check your PMs?
     
  39. zeitweise

    zeitweise

    Joined:
    Aug 12, 2013
    Posts:
    7
    Ah. Sorry. Didn’t see that.

    Strange enough everything is working fine now. I’ve been eagerly awaiting variables so I am really content now.
     
  40. Kray-C

    Kray-C

    Joined:
    Apr 8, 2013
    Posts:
    152
    No worries. Just pm me for questions :)
    I am away from my hometown till Sunday.
    So sorry if the answers have a little delay
     
  41. bali33

    bali33

    Joined:
    Aug 14, 2011
    Posts:
    232
    Hi,

    Is it possible to add conditions to make a line visible or not in a node ?

    Thanks
     
  42. Kray-C

    Kray-C

    Joined:
    Apr 8, 2013
    Posts:
    152
    That is one of the features I am working on in the moment.
    I will upload the new version by wednesday next week (including this feature).

    In the moment you can it make it visible/invisble at a specific show/visit count.
     
  43. Kray-C

    Kray-C

    Joined:
    Apr 8, 2013
    Posts:
    152
    Hi all,
    I am happy to say that DUNILOG 1.6 is available in the assetstore.
    In this version I added some of the most requested features:
    1.) the most interesting one - the variables system
    2.) on top of this you can now script in your dialogs

    To get more information on that read the main entry of this thread
    http://forum.unity3d.com/threads/179039-DUNILOG-dialog-engine

    Or check out the docs( I am still working on this part, to show more examples and come up with detailed infos on all possibilities DUNILOG offers)
    http://kray-c.net/unity/DUNILOG/Doc/
     
    Last edited: Aug 16, 2013
  44. Kray-C

    Kray-C

    Joined:
    Apr 8, 2013
    Posts:
    152
    V1.7.0 available
    New features:
    - New node type Switch
    - Conditions for entries
    - More script and math functions
     
  45. kristalize

    kristalize

    Joined:
    Aug 14, 2013
    Posts:
    2
    Hi Kray-C,

    I have a question pertaining the workflow for using Dunilog. Currently I have this issue where I have scripts attached to specific entries in the DUGModel while at the same time I am adding in more dialogue. This results in when I export the DUGManager after I added the new dialogues, the old DUGModel file will be overwritten, hence losing all the previous attached scripts in their respective entries.

    Is there any better way to do this?
     
  46. Kray-C

    Kray-C

    Joined:
    Apr 8, 2013
    Posts:
    152
    Hi kristalize,
    the changes normally just get overwritten when you click apply in the inspector. This is the normal behaviour.
    Do not push the apply button, just save the scene.
    If this is not working for you, let me know.
     
    Last edited: Feb 11, 2014
  47. Kray-C

    Kray-C

    Joined:
    Apr 8, 2013
    Posts:
    152
    Hi all,
    final I have released the source. So no more dll stuff...
    I also added a DUNILOG Lite version to the store to test it for 10$.
    The Lite version has all features but is packed as DLL.
    Will let you know when they passed the review.
     
  48. Ganteous

    Ganteous

    Joined:
    Aug 28, 2014
    Posts:
    1
    What features are limited and not included in the lite version?
    I'm going to be using it as a School Project for a 3D maybe 2D game.
    Can you help me out? thanks for reading!
     
  49. feddarkk

    feddarkk

    Joined:
    Jun 6, 2013
    Posts:
    12
    Hi Kray-C! I'm not coder. How can I trigger my parts of dialog within game? For example if I have several NPC in scene and want them to speak different parts of dialog when I reach close distance from them.
    I shown in attachment what I think must be in the plugin!
    It also needed the "end" node cause now the last phrase still on the screen all the time
     

    Attached Files:

    Last edited: Sep 27, 2015
  50. Kray-C

    Kray-C

    Joined:
    Apr 8, 2013
    Posts:
    152
    Hi feddarkk,
    I would suggest you test this. First a script you have to add to your NPC to trigger the Dialogue
    (example from unity site: https://unity3d.com/learn/tutorials/modules/beginner/physics/colliders-as-triggers)
    Code (csharp):
    1.  
    2. using UnityEngine;
    3. using System.Collections.Generic;
    4. public class TriggerScript : MonoBehaviour {
    5.  
    6. void OnTriggerEnter( Collider other )
    7. {
    8. // REPLACE STRING_ID WITH THE ONE YOU NEED
    9. DUGViewCustom.Instance.CurrentNode = DUGModel.Instance.GetNodeById(STRING_ID);
    10. // COMMENt IN TO HIDE DUGViewCustom
    11. // DUGViewCustom.Instance.CurrentNode = null;
    12. }
    13.  
    14. }
    15.  
    And a simplified View which displays your text ( replace the one you have in the demo )
    Code (csharp):
    1.  
    2. using UnityEngine;
    3. using System.Collections.Generic;
    4. public class DUGViewCustom : MonoBehaviour {
    5.  
    6. public bool visible = true;
    7.  
    8. public DUGDataNode CurrentNode { get; set; }
    9.  
    10. public static DUGViewCustom Instance;
    11.  
    12. void Start()
    13. {
    14. DUGController.Init( gameObject.GetComponent<DUGModel>() );
    15. CurrentNode = DUGController.Run();
    16. Instance = gameObject.GetComponent<DUGViewCustom>()
    17. }
    18.  
    19. void OnGUI()
    20. {
    21. DrawAll( DUGController.data );
    22. }
    23.  
    24. public void DrawAll( DUGModel data )
    25. {
    26. if( CurrentNode == null ) return;
    27. if( CurrentNode.type == DUGDataNode.Type.Dialog_Text ) {
    28. GUILayout.BeginVertical();
    29. List<DUGDataNodeEntry> entries = CurrentNode.listEntries;
    30. for( int i=0; i<entries.Count; i++ ) {
    31. if( DUGController.IsEntryActive( entries[i] ) ) {
    32. string text = DUGController.GetRunTimeTextForEntry( entries[i] );
    33. GUILayout.Label( text, GUILayout.Width(400) );
    34. }
    35. }
    36. GUILayout.EndVertical();
    37. }
    38. }
    39. }
    40.