Search Unity

Dialoguer - A Dialogue Creator Tool For Unity

Discussion in 'Assets and Asset Store' started by tonycoculuzzi, Mar 22, 2013.

  1. cygnusprojects

    cygnusprojects

    Joined:
    Mar 13, 2011
    Posts:
    767
  2. TokyoDan

    TokyoDan

    Joined:
    Jun 16, 2012
    Posts:
    1,080
    Did anyone take advantage of this offer to get Dialoguer for free?
    I did. I tweeted, Shared on Facebook and Goggle+. Then today I get a an email telling me Thanks, and that Dialoguer is now on the Asset Store and it is $35 bucks. But I never got it for free as was promised for tweeting and Sharing about it.

    Was this a scam?


     
  3. tonycoculuzzi

    tonycoculuzzi

    Joined:
    Jun 2, 2011
    Posts:
    301
    Hmm, very strange. I'll look into this asap, it shouldn't be behaving this way. You have to make sure to save your global variables at runtime though, using Dialoguer.GetGlobalVariableState() which will return an XML string of the global variables that you must then re-load every time you load the game from a save point, etc. This is done by passing that XML string back into Dialoguer through Dialoguer.SetGlobalVariablesState(xmlString)

    No, it wasn't a scam, I've been swamped trying to deal with the response it's received. Did you check your junk mail? Everyone who followed the instructions had an email sent to them. Send me an email at email@dialoguer.info.
     
    Last edited: Feb 13, 2014
  4. TokyoDan

    TokyoDan

    Joined:
    Jun 16, 2012
    Posts:
    1,080
    Hello Tonzie, No it was not a scam. I just got your email with the free package. Thank you very much.

    But no previous mail from you got caught in my spam filter because your mail of this morning announcing Dialoguer in the Asset Store safely got through to my inbox.

    Thanks Again, And your kindness is more that worth some more sharing and tweeting about Dialoguer from me.
     
  5. tonycoculuzzi

    tonycoculuzzi

    Joined:
    Jun 2, 2011
    Posts:
    301
    No problem Dan! I hope you enjoy it. :)
     
  6. cygnusprojects

    cygnusprojects

    Joined:
    Mar 13, 2011
    Posts:
    767
    Hi Tonzie,

    Ok, seems like you have to open up the actual dialog editor and click 'Save' to store the values entered within the other variables window. This is very confusing as if you only want to alter a value you'll have to open up the dialog editor before you can save the new value.
    This is ofcourse no problem at runtime but for testing purposes it would be nice to have a 'Save' button within the Variables screen as well. (Just my 2 cents.)
     
  7. tonycoculuzzi

    tonycoculuzzi

    Joined:
    Jun 2, 2011
    Posts:
    301
    That's a great suggestion. I'm actually thinking about including the variables window in the same window as the dialogue canvas when I rehaul the UI, and this is a very good reason why.
     
  8. Seith

    Seith

    Joined:
    Nov 3, 2012
    Posts:
    755
    Woah, I just discovered this asset because it's currently featured on the Asset Store front page and I have to say at first sight it looks amazing! :)

    I'm on the market for a simple, node-based, NGUI-compliant dialog system for "Ghost of a Tale" and Dialoguer seems to fit the bill nicely. Are there any known limitations/quirks/problems with the system at the moment? Does it work with the latest version of Unity? Does it work with DX11 (I can't see why not but I just have to be certain)? Thanks...
     
  9. TomasSala-Falconeer

    TomasSala-Falconeer

    Joined:
    Jul 29, 2013
    Posts:
    50
    Perhaps this has been asked before, but would it be possible to add a export function to a simpler XML format, for copywriters and writers to change and edit text, without them messing it up?

    It's not required, but a nice to have. (setup looks great, been fooling around with it, definetly waiting for the playmaker bindings as that will save me so much time later on)..

    awesome addon by the way.. well worth the very very reasonable price
     
  10. tonycoculuzzi

    tonycoculuzzi

    Joined:
    Jun 2, 2011
    Posts:
    301
    Thanks Seith! The prerequisites you listed pose no limitation to Dialoguer, it should work in your project without a problem!

    There is currently a problem with deserialization on iOS that I'm looking into right now, but it is meant to (and seems to) work on every platform, that issue aside. This issue will be fixed very very soon.

    By the way, Ghost of a Tale looks wicked!


    I'm considering throwing in some extra serialization methods, but having a simple xml version could definitely prove useful to some people. I'll be looking in to this. :)

    As for the playmaker addons, I've contacted the PlayMaker guys for some info on how to start implementing some bindings but haven't heard back from them yet. Here's hoping I'll hear from them soon. uScript on the other hand, the dudes at Detox reached out to me a few days ago about Dialoguer so I'm going to try to get some bindings for that in as well.
     
    Last edited: Feb 17, 2014
  11. Seith

    Seith

    Joined:
    Nov 3, 2012
    Posts:
    755
    Thank you Tonzie! :) I'll buy Dialoguer and let you know how that goes...
     
  12. ChrisMacDee

    ChrisMacDee

    Joined:
    Feb 17, 2014
    Posts:
    1
    This looks very interesting, may buy it later today. Was considering making a tool like this myself for unity, but this will save me a good deal of work :)
     
  13. TomasSala-Falconeer

    TomasSala-Falconeer

    Joined:
    Jul 29, 2013
    Posts:
    50
    Actually the playmaker bindings are very very easy. they just have a simple cs template.. you just need to add some extra input and ouput .value variables in their syntax, and that's it. For the rest its just a normal class.. If they don't reach out to you let me know, and i'll push it on their forums.
    My C# skills are incredibly basic (read basically poo)
    , otherwise i'd volunteer.
     
  14. tonycoculuzzi

    tonycoculuzzi

    Joined:
    Jun 2, 2011
    Posts:
    301
    That's good to hear. I'll be picking it up really soon, and implementing support as soon as I do.
     
  15. Seith

    Seith

    Joined:
    Nov 3, 2012
    Posts:
    755
    Hi Tony, I just started using Dialoguer and so far so good. Here are some suggestions though:


    1) From a visual point of view the different available ports for each node are not readily apparent because they are located well within each node. Having them stick out of the node's silhouette would make them easier to identify. Here's a quick mockup:

    $2whicdi.jpg


    (Shader Forge uses a great node system btw: http://forum.unity3d.com/threads/222049-Shader-Forge-A-visual-node-based-shader-editor)


    2)
    The connecting process could be simpler (well, more intuitive) if it allowed a click-drag in the Out port and release/drop in the In port, as that's usually the way those kind of applications work.


    3) It would be great if the connecting line were a little more helpful in some cases where nodes don't all line up in a row:

    $2whqgqo.jpg


    4) Last but not least: the Delete node button (in the top right-hand corner) looks exactly like the connection In-port and is located at the same level. So basically it looks like an Out port. Coupled with the lack of undo this really is a recipe for unnecessary frustration (clicking on the delete node button when you want to access the Out port of a node is definitely not a nice experience). Implementing point 1) would take care of the problem but I would suggest at the very least changing the icon to a red cross, which visually sets it apart. Or implementing an Undo function. Ideally both...


    I really hope you don't mind the feedback and I hope you'll consider implementing some of those suggestions in the future (in as much as they make sense to you). Keep up the great work! :)
     
  16. tonycoculuzzi

    tonycoculuzzi

    Joined:
    Jun 2, 2011
    Posts:
    301
    Lots of great feedback here, thanks Seith! I've been wanting to tweak the line rendering system I'm using to make it more intuitive, and Shader Forge seems to be a great example of the direction it should go. As for the connections being outside the nodes, I'm considering going that route when I remake the UI, as it makes a lot more sense. Thanks for the input, I don't mind at all! :)
     
  17. cygnusprojects

    cygnusprojects

    Joined:
    Mar 13, 2011
    Posts:
    767
    Hi Tonzie,

    Sorry to ask but I noticed a new version/update is available in the asset store. Where can we find the release notes before updating? I didn't find any in this thread nor on the official website.
     
  18. tonycoculuzzi

    tonycoculuzzi

    Joined:
    Jun 2, 2011
    Posts:
    301
    There are some release notes in the Asset Store. You should be able to click on the version number to see them. This new version just adds copy/paste support. The next version will be adding a much needed rehaul of the Enum generation system, which makes using the DialoguerDialogues enum a lot more feasible and easy to use
     
  19. cygnusprojects

    cygnusprojects

    Joined:
    Mar 13, 2011
    Posts:
    767
    And so you see we are never old enough to learn somthing new :D
    I didn't even think on clicking on the actual version number, it's so intuitive (not!) but thanks for pointing that out, will keep it in mind.
     
  20. Seith

    Seith

    Joined:
    Nov 3, 2012
    Posts:
    755
    Hi Tonzie, I just updated to the latest version of Dialoguer and when opening the Dialogue editor window after that I found out all the dialogues I had created are now gone. That... is obviously a HUGE problem!

    So my thoughts are two-folds: First, how can I get my dialogues back? Second, this should of course never happen. I had saved my work normally and got absolutely no warning that my work would be wiped out by the updating process. Did I do something wrong by updating normally? Was there a manipulation I should have done to avoid that situation? Thanks...


    Update:

    In a somewhat desperate attempt I just clicked on "Generate Dialog Enum" (I have no idea what that means) and after that when I opened the Dialogue editor again my dialogs were back. That was... interesting. I would like to suggest that there might be a need for some warning or at least some explanations/tutorial regarding the updating process to avoid unnecessary grief... :)
     
    Last edited: Feb 20, 2014
  21. Seith

    Seith

    Joined:
    Nov 3, 2012
    Posts:
    755
    After updating to the latest version I thought the copy/paste would work but when I select some text within a node and then do a CTRL+C and a CRTL+V, nothing gets copied or pasted. Am I doing something wrong?
     
  22. bullardo

    bullardo

    Joined:
    Jan 5, 2013
    Posts:
    46
    I managed to get everything working with Daikon Forge. This works pretty well. Thanks for making such a solid product. Do you have a roadmap of features planned? I have your free version but I am for sure going to purchase seeing how well it works.

    Also if anyone is interested in getting this to work in DF and or NGUI I could probably do a small video tutorial unless the developer already has that coming.
     
    Last edited: Feb 20, 2014
  23. tonycoculuzzi

    tonycoculuzzi

    Joined:
    Jun 2, 2011
    Posts:
    301
    This is very strange to me, updating should not have created this problem in the first place because there were no changes made to the XML structure. My advice to everyone is Save and backup before updating, then update, then close and re-open Unity. When your dialogues don't show up, it usually means that Dialoguer has not properly read your output XML file and needs to reinitialize it. I'm going to throw a "Reinitialize" option in the menu for this exact reason.

    Hmm, that's strange, it should just work. Are you sure the updated version copied over to your project? It honestly shouldn't be a hassle at all. Did you exit and re-open Unity?

    You're very welcome! I've actually been working on a game using NGUI for UI, and I've got a popup text box working with under 50 lines of code, which compared to the Unity GUI Dialoguer examples is pretty amazing haha. I made Dialoguer with this in mind, trying to make it as simple as possible to use! :)

    You can absolutely make a video demoing it if you'd like, I do have plans for that in the future though!

    As for a feature roadmap: The first post on this thread has a "Planned Features" section where I write all the major plans I have for Dialoguer, if that helps at all. :)
     
  24. red2blue

    red2blue

    Joined:
    Feb 26, 2013
    Posts:
    200
    Hi Tonzie,

    i got your PlugIn from your GiveAway promortion (thanks a lot for this). Now I have a question. How do I get this version updated?

    Thanks a lot
     
  25. Seith

    Seith

    Joined:
    Nov 3, 2012
    Posts:
    755
    I just did a re-import of the latest version and the same thing happened again: the Assets/DialoguerOutput/Resources/dialoguer_data.xml file content was replaced by the default "My first dialogue..." content.

    What I had to do is manually copy/paste the previous xml data content into the file. Then click on "Generate..." again and then my dialogues were back.

    This time though I checked the copy/paste of text within the nodes and it does work, so that's good news.

    I did but that didn't fix the problem with the update I'm sorry to say.

    By the way this update problem is a serious issue of course but besides that I really love Dialoguer. And the documentation is very clear as well. So I don't regret my buying it at all. Please keep on improving it as much as possible! :)
     
    Last edited: Feb 21, 2014
  26. tonycoculuzzi

    tonycoculuzzi

    Joined:
    Jun 2, 2011
    Posts:
    301
    Unfortunately there are no updates for the free version. It'd be way too difficult to keep track of all the people who managed to get a free copy, and give them an update when a new one comes out. The only way to receive updates to Dialoguer is by buying it through the Asset Store.


    That is really strange. I didn't run into any problems like that when I was testing the update, but I'm looking into this now to see if I can find anything. I'm really sorry you ran into that problem, and if it's a common occurrence then it's a definite issue. Thanks for bringing it up. And will do, I'm glad you like it. :)
     
  27. sqallpl

    sqallpl

    Joined:
    Oct 22, 2013
    Posts:
    384
    Hey Tonzie.

    I have a question.
    Is it possible to display different choices in branched text state based on variables?
    I would need some choices to be available only after something happened before.

    Is there any way to achieve this with your system?
     
  28. tonycoculuzzi

    tonycoculuzzi

    Joined:
    Jun 2, 2011
    Posts:
    301
    Absolutely! :)
    I've done a small writeup here about how to go about achieving this:

    http://www.dialoguer.info/faq.php#branches
     
  29. damagefilter

    damagefilter

    Joined:
    Nov 6, 2012
    Posts:
    23
    I kept playing around with it. Super awesome.
    It might be that I'm(still) using the pre-asset-store copy - but the refresh rate (can you call it FPS within the Unity Editor? lol) seems to drop when the Dialogue Editor is open. I'll go and buy the asset store version ofc because, quite frankly, Dialoguer rocks.

    Anyway, what I was wondering about is, if it would be possible for you to come up with a way of having the resource paths configurable.
    You know, so one can tell Dialoguer where to look for the GUI resources.

    In my project, the folder structure is vastly different from what Dialoguer expects.
    I keep all my code under a certain folder and the rest is ... well ... on other folders :D
    So, for the fun of it, I moved the Dialoguer files around.
    Code into code folder, Resources into a folder that contains my GUI resources.

    It didn't work out of the box but after manually adjusting some hard coded paths, it went alright.
    Would be really awesome to have the option to adjust the paths from a configuration file perhaps.

    And about the seprated XML files:
    That would be amazing, indeed.

    Cheers!
     
  30. tonycoculuzzi

    tonycoculuzzi

    Joined:
    Jun 2, 2011
    Posts:
    301
    I'm trying to come up with a way to make the whole addon modular, so you can move it around. I've almost implemented a modular system for the output file, now that Dialoguer uses a ScriptableObject for data storage, but it's still not completely modular. This is going to be the next big thing I tackle, making it easy to move the Dialoguer files around. :)
     
  31. Seith

    Seith

    Joined:
    Nov 3, 2012
    Posts:
    755
    @Tonzie: Hi, I have a couple of questions: First I noticed the text written in the text node field does not seem to wrap around. I mean the text stays on one very long line that forces you to scroll back and forth to see the text. Could it be possible for the text to actually wrap around inside the text field (which seems like a logical thing)?

    The second thing is I can't seem to copy/paste the text nodes themselves. Which means I have to manually re-type all the advanced fields for each new node. Am I doing something wrong or are those official bugs/limitations? Thanks...

    Update 1:
    And a third point: How do you move a bunch of nodes at the same time? A very simple way would be to click and hold the titlebar of a node for a second; that would select the node and all its descendents which you could then easily move around. I really hope there is a simple solution aside from clicking and moving every single node individually...

    Update 2:
    A fourth question: Is there a way to zoom out to get a wider view of a dialog tree? Or at least a minimap to quickly reach any part of a large dialog tree?
     
    Last edited: Mar 11, 2014
  32. tonycoculuzzi

    tonycoculuzzi

    Joined:
    Jun 2, 2011
    Posts:
    301
    Thanks for the feedback Seith. I thought I fixed the text-wrapping in the last update, are you using the latest version?

    There is not yet a way to copy/past full nodes, but that is in the plans. Same with moving multiple nodes at once. The idea you proposed of clicking and holding on a title bar is a pretty good idea, so I'll see if that works well and if it does I'll include it!
     
  33. Seith

    Seith

    Joined:
    Nov 3, 2012
    Posts:
    755
    Hey Tonzie I wasn't using the latest version so I updated to the latest version but as usual my dialog trees have disappeared after the update. This is a problem.

    I can see the dialoguer_data.xml file still contains all my dialogs info but this info is obviously not recognized by the Dialoguer editor window; I just get the default "my first dialogs" things. How can I get the dialoguer editor to actually recognize my dialogs? That is to read the dialogs from the xml file?

    Update:
    As a last desperate attempt I tried using the new "Import XML" feature with the dialoguer_data.xml file (created by Dialoguer) but all I got is this error:
    Code (csharp):
    1. FormatException: Input string was not in the correct format
    2. System.Int32.Parse (System.String s, NumberStyles style, IFormatProvider provider) (at /Users/builduser/buildslave/monoAndRuntimeClassLibs/build/mcs/class/corlib/System/Int32.cs:640)
    3. System.Xml.XmlConvert.ToInt32 (System.String s)
    4. System.Xml.Serialization.XmlCustomFormatter.FromXmlString (System.Xml.Serialization.TypeData type, System.String value)
    5. System.Xml.Serialization.XmlSerializationReaderInterpreter.GetValueFromXmlString (System.String value, System.Xml.Serialization.TypeData typeData, System.Xml.Serialization.XmlTypeMapping typeMap)
    6. System.Xml.Serialization.XmlSerializationReaderInterpreter.ReadPrimitiveValue (System.Xml.Serialization.XmlTypeMapElementInfo elem)
    7. System.Xml.Serialization.XmlSerializationReaderInterpreter.ReadObjectElement (System.Xml.Serialization.XmlTypeMapElementInfo elem)
    8. System.Xml.Serialization.XmlSerializationReaderInterpreter.ReadListElement (System.Xml.Serialization.XmlTypeMapping typeMap, Boolean isNullable, System.Object list, Boolean canCreateInstance)
    9. System.Xml.Serialization.XmlSerializationReaderInterpreter.ReadMembers (System.Xml.Serialization.ClassMap map, System.Object ob, Boolean isValueList, Boolean readByOrder)
    10. System.Xml.Serialization.XmlSerializationReaderInterpreter.ReadClassInstanceMembers (System.Xml.Serialization.XmlTypeMapping typeMap, System.Object ob)
    11. System.Xml.Serialization.XmlSerializationReaderInterpreter.ReadClassInstance (System.Xml.Serialization.XmlTypeMapping typeMap, Boolean isNullable, Boolean checkType)
    12. System.Xml.Serialization.XmlSerializationReaderInterpreter.ReadObject (System.Xml.Serialization.XmlTypeMapping typeMap, Boolean isNullable, Boolean checkType)
    13. System.Xml.Serialization.XmlSerializationReaderInterpreter.ReadObjectElement (System.Xml.Serialization.XmlTypeMapElementInfo elem)
    14. System.Xml.Serialization.XmlSerializationReaderInterpreter.ReadListElement (System.Xml.Serialization.XmlTypeMapping typeMap, Boolean isNullable, System.Object list, Boolean canCreateInstance)
    15. System.Xml.Serialization.XmlSerializationReaderInterpreter.ReadMembers (System.Xml.Serialization.ClassMap map, System.Object ob, Boolean isValueList, Boolean readByOrder)
    16. System.Xml.Serialization.XmlSerializationReaderInterpreter.ReadClassInstanceMembers (System.Xml.Serialization.XmlTypeMapping typeMap, System.Object ob)
    17. System.Xml.Serialization.XmlSerializationReaderInterpreter.ReadClassInstance (System.Xml.Serialization.XmlTypeMapping typeMap, Boolean isNullable, Boolean checkType)
    18. System.Xml.Serialization.XmlSerializationReaderInterpreter.ReadObject (System.Xml.Serialization.XmlTypeMapping typeMap, Boolean isNullable, Boolean checkType)
    19. System.Xml.Serialization.XmlSerializationReaderInterpreter.ReadObjectElement (System.Xml.Serialization.XmlTypeMapElementInfo elem)
    20. System.Xml.Serialization.XmlSerializationReaderInterpreter.ReadListElement (System.Xml.Serialization.XmlTypeMapping typeMap, Boolean isNullable, System.Object list, Boolean canCreateInstance)
    21. System.Xml.Serialization.XmlSerializationReaderInterpreter.ReadMembers (System.Xml.Serialization.ClassMap map, System.Object ob, Boolean isValueList, Boolean readByOrder)
    22. System.Xml.Serialization.XmlSerializationReaderInterpreter.ReadClassInstanceMembers (System.Xml.Serialization.XmlTypeMapping typeMap, System.Object ob)
    23. System.Xml.Serialization.XmlSerializationReaderInterpreter.ReadClassInstance (System.Xml.Serialization.XmlTypeMapping typeMap, Boolean isNullable, Boolean checkType)
    24. System.Xml.Serialization.XmlSerializationReaderInterpreter.ReadObject (System.Xml.Serialization.XmlTypeMapping typeMap, Boolean isNullable, Boolean checkType)
    25. System.Xml.Serialization.XmlSerializationReaderInterpreter.ReadRoot (System.Xml.Serialization.XmlTypeMapping rootMap)
    26. System.Xml.Serialization.XmlSerializationReaderInterpreter.ReadRoot ()
    27. System.Xml.Serialization.XmlSerializer.Deserialize (System.Xml.Serialization.XmlSerializationReader reader)
     
    Last edited: Mar 11, 2014
  34. tonycoculuzzi

    tonycoculuzzi

    Joined:
    Jun 2, 2011
    Posts:
    301
    Hey Seith,

    So, when upgrading to Dialoguer 1.1.0 you did the right thing by importing your XML, which is supposed to be how the transition is made. Unfortunately it looks like you have a nulled int (int?) somewhere in your dialogue trees that has caused this exception. Can you send me your XML and I'll fix it for you? I had to change all nullable ints to regular ints because unity's serialization system doesn't like them.

    If you still have the older version of Dialoguer, all you need to do to fix this is make sure all nodes (including Start nodes) have a node attached. This includes all endings, make sure they have End nodes attached. If you empty dialogue trees, make sure an End node is attached to the Start node. Also, make sure you have a dialogue selected when you save.

    Then, when you try to import your newly saved xml into Dialoguer 1.1.0, it should be seamless.

    Sorry for the confusion and the frustration! I'll be fixing this asap.

    Edit: The issue was that there were nodes in your dialogues that had empty outputs. In order to make the transition to 1.1.0 all nodes must have a node attached to their outputs, even just an End node. :)
     
    Last edited: Mar 12, 2014
  35. rterranova

    rterranova

    Joined:
    Nov 6, 2009
    Posts:
    43
    Is there a demo scene of how you hooked up NGUI to your dialoguer? It would be a great help to me.

    Thanks
     
  36. tonycoculuzzi

    tonycoculuzzi

    Joined:
    Jun 2, 2011
    Posts:
    301
    Hey Richard,

    Unfortunately at this time, there is no demo scene that I can give out to people with NGUI examples. I'm working on some NGUI and Daikon Forge examples though, which should be available to the public soon.

    Basically, it's the same process as hooking up to the Unity GUI, only you need to make sure your GUI controller has reference to your NGUI elements. It's very simple, you just need to control your NGUI elements with the GUI controller, reacting to Dialoguer's dispatched events. Let me know if you have any more questions! :)
     
  37. Deleted User

    Deleted User

    Guest

    Finally getting around to playing with the free version I got to see how I like the system. Here are some of my issues/bugs. Forgive me if some have already been fixed on the Asset Store version.

    1. If I hit Cmd-S it appears to re-save the dialogue enums, even if they haven't changed. This forces Unity to recompile the code which then forces the editor to reload. Basically if I hit Cmd-S and then move or change something, it'll get wiped out when the code finishes compiling. You might want to fix that to only write out the enums if they've actually changed. I've lost a bit of work figuring out what was going on with this one.

    2. I'd second the delete node button concerns from a page or two ago. I accidentally deleted two or three trying to link them up. The fact that the input node is a mirror of the delete button is not a very good UI design, but it shouldn't be terribly hard to fix it. I'd actually suggest adding some concept of a "selected node" (sounds like you might already be doing this for copy/paste) and then just using backspace/delete to delete the nodes. Then you can get rid of the UI button altogether to clean up the nodes.

    3. There doesn't appear to be any undo/redo support in the asset. When I accidentally delete a node there seemed to be no coming back. I'd hope that's next on your list; lack of undo/redo is a huge problem IMO and really a deal breaker for me paying up for the Asset Store version.

    4. Is there any way to have a local variable maintain its value between runs? I don't want a global variable because it's local to a single dialogue. Basically I have a boolean switch at the start to go down two main branches. At the end of one branch I toggle the boolean. It doesn't seem to persist the value outside of the single run of the dialogue. Would be handy to have persistent local variables that basically act like global variables but are only accessible to the current dialogue.

    5. Having the ability to zoom the canvas out would be nice for larger dialogue trees to be more manageable.

    6. Middle mouse clicking on a node both moves the node and pans the canvas. It should only ever pan the canvas; require left click for moving nodes.

    7. The code generator for the enum doesn't let me have numbers at the end which has caused me some conflicts. Add two dialogues called "NPC 01" and "NPC 02" and it'll call both enum values "NPC". While the enums can't start with numbers, they can contain them.

    Otherwise I'm really liking it. Took only a few minutes watching your video to get it hooked up into my prototype.
     
    Last edited by a moderator: Mar 23, 2014
  38. twelveplusplus

    twelveplusplus

    Joined:
    Mar 25, 2013
    Posts:
    12
    I want to start a dialogue as soon as the scene starts.

    I tried:

    void Awake(){
    Dialoguer.Initialize();
    Dialoguer.StartDialogue(0, DialoguerCallback);
    }

    But it didn't do anything. Can you please tell me how to do this?

    thanks
     
  39. tonycoculuzzi

    tonycoculuzzi

    Joined:
    Jun 2, 2011
    Posts:
    301
    This has been fixed, and many of the issues you've had are on their way in when I finish redesigning the UI. :)



    Try putting your Dialoguer.StartDialogue() call into the Start function instead. This shouldn't be an issue, but it may solve your problem. If that doesn't work, make sure you have a dialogue GUI in the scene. For example, the ClassicRPG or NextGenRPG gui example skins.
     
  40. twelveplusplus

    twelveplusplus

    Joined:
    Mar 25, 2013
    Posts:
    12
    Yes, putting into Start fixed it.

    Great work on Dialoguer, btw! I'm glad I found this. :)
     
  41. twelveplusplus

    twelveplusplus

    Joined:
    Mar 25, 2013
    Posts:
    12
    Oh, one more thing, Will you give me a clue as to how to properly use the Portrait field?

    I imagine I could figure it out, but there doesn't seem to be much to go on, right now.
     
  42. tonycoculuzzi

    tonycoculuzzi

    Joined:
    Jun 2, 2011
    Posts:
    301
    The portrait field is a string field that you can check in your GUI Controller. It just allows you a field to put your own information into and use at your own will. Whether this means character portraits, or backgrounds (for cutscenes, etc) - You have to implement your own way on the GUI side of things to use it, simple stuff! The examples don't currently use the portrait field, but I'm thinking about making a demo that shows them being used.
     
  43. exiguous

    exiguous

    Joined:
    Nov 21, 2010
    Posts:
    1,749
    Hey Tonzie,
    does a dialogue store which choices has already been made fe to display them in another color. so the user can keep track of what he already talked about and what not? especially when he returns to the same npc later.
    Thanks.
     
  44. twelveplusplus

    twelveplusplus

    Joined:
    Mar 25, 2013
    Posts:
    12
    OK, i figured it out. that was really easy. It just took a minute because I've never done any of this stuff before.

    I'm sure it would be useful, in general, if you did a tutorial on how to implement and connect a GUI. Although, i guess you might want to wait for Unity 4.6 because it looks like they are updating the GUI stuff.

    thanks.
     
  45. Bradamante

    Bradamante

    Joined:
    Sep 27, 2012
    Posts:
    300
    I am looking for a misson/dialog system for my game right now and I wonder if Dialoguer is for me. I guess Dialoguer was not meant for a mission system, but it looks to me like you can use Dialoguer for that.

    I have certain questions (like: how does the NGUI integration work?) but I guess I can read that up on your website. But ... Let's say I am designing missions/dialogues with your visual system. How do dialogues branch? How is the current state saved to a save game?

    In my game, one accepts missions on a mission computer (no real dialogue) or gets them from NPCs (dialogue). On success or failure, follow-up missions are activated or de-activated, using the usual flag/eval/bits system you see often: if ( !b08 ( b24 || b76 ) ) where bXY stands for flags in the save game. My story arcs would be quite complex, so using some visual node editor like Dialogue's would be nice.

    I had no problem using Dialoguer only for the visual editing aspect, where Dialoguer saves a XML file for me containing mission description strings, branching information and some info on what bits to set or unset in the save game. I then can go and do the XML -> visual NGUI interaction myself.

    Could dialoguer be integrated with such a system ... Or should I look for other ways to save the current Dialoguer state in a save game?
     
    Last edited: Mar 24, 2014
  46. Deleted User

    Deleted User

    Guest

    Glad to hear that. Might have to take you up on the 50% off sale today since it sounds like (from what you've said here and the Asset Store description) the asset has gotten a bit better than the free version I got from your earlier promotion.
     
  47. tonycoculuzzi

    tonycoculuzzi

    Joined:
    Jun 2, 2011
    Posts:
    301
    You can store the choice in a global variable (using a SetVariable node after the choice) and then check that variable in your GUI Controller and color the choice based on that variable next time you call that dialogue. It would take some work in your GUI Controller, but it's completely possible!


    Dialoguer is independent of UI, which means it can be used with any UI solution. It has an API which allows you to hook into it when playing it back at run-time, allowing you to create a GUI around it very easily. This GUI can use any UI solution out there, including NGUI and DFGUI. You don't have to use the XML at all, as Dialoguer deals with the management system for you.
     
  48. Bradamante

    Bradamante

    Joined:
    Sep 27, 2012
    Posts:
    300
    Hm, OK, what about the other aspects I mentioned? Can I use Dialoguer for logic checks? Can I use Dialoguer to save int or bool values to a save game?
     
  49. Fellshadow

    Fellshadow

    Joined:
    Dec 2, 2012
    Posts:
    169
    Is it possible to make conditional trees?

    In my game, there are a lot of factors that need to be considered when choosing which dialog tree to use; time of day, current location, friendship level, etc. some variables are directly on the NPC you are conversing with, whereas others, like the time of day, are on a manager type object.

    Does Dialoguer support this kind of design?

    EDIT: Some observations and questions
    -The conditional nodes don't seem to have an "else if" part that you can add/increase, so the only possible way is to chain lots of the nodes together. Is there any change planned for this, or is this as-intended?
    -The ability to zoom out would be nice.
    -Have you done any sort of stress-testing on this? I'll most likely have at least a hundred lines of dialog per NPC, and at least 30 NPCs. With all the conditions that it has to check, will there be any performance impact? Do you have any suggestions/recommendations for using Dialoguer in a large-scale RPG game like this?
     
    Last edited: Mar 26, 2014
  50. tonycoculuzzi

    tonycoculuzzi

    Joined:
    Jun 2, 2011
    Posts:
    301
    Dialoguer has a Conditional node and a SetVariable node, both used for logic. Check them out here: http://www.dialoguer.info/nodes.php

    As for saving the values to a save game, check out this link: http://www.dialoguer.info/docs.php#globalvariables - Basically, you're able to save out your global variables as a string, and import them back into Dialoguer as a string at startup.

    Absolutely! You can set global variables in your game, and then check those variables in Dialoguer and have your dialogues react based on them. To do this, you'd want to check the Conditional node, and the SetVariable node, as I mentioned in my above reply.

    As for "else if" in the Conditional node, that is how it's indented to work, but I'm considering adding that sort of functionality when I remake the UI, as well as zooming in/out on the dialogue canvas.

    I haven't done any extensive testing, but I've tested it quite a bit. Dialoguer should be fine for that amount of text, that's what it's meant for. There is no searching, only direct index linking, so it isn't (and won't be) slow at all. :)