Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

DiaQ, Dialogue and Quest Engine

Discussion in 'Assets and Asset Store' started by Leslie-Young, Sep 3, 2013.

  1. Leslie-Young

    Leslie-Young

    Joined:
    Dec 24, 2008
    Posts:
    1,148
    $diaqlogo.png

    DiaQ is a Dialogue and Quest Engine with a graphical, node-based, editor component. This tool makes it easier to create the flow of conversations and to give the player quests and track the progress of those quests.

    A runtime and editor API makes it easy to add new nodes and interact with the quest rewards and other systems. Full C# source of the runtime and editor is provided.

    $assetstore.png

    diaq_graph.jpg

    diaq_quest.jpg
     
    Last edited: Jun 25, 2014
  2. GPSchnyder

    GPSchnyder

    Joined:
    Mar 23, 2013
    Posts:
    45
    Cool. Is the version included in UniRPG also useable standalone?
     
  3. Leslie-Young

    Leslie-Young

    Joined:
    Dec 24, 2008
    Posts:
    1,148
    Yes, simply copy the DiaQ folder to your new project, or only include it when importing UniRPG. The only thing that is not there is the sample but I think I'll add it as a package in the next UniRPG update.
     
  4. Leslie-Young

    Leslie-Young

    Joined:
    Dec 24, 2008
    Posts:
    1,148
    Version 1.2

    - Fixed error with the properties view expanding incorrectly under OSX

    Version 1.1

    - Fixed a bug with runtime changes being kept while testing play
    - Added a RandomPath Node
     
  5. 3dFoin

    3dFoin

    Joined:
    May 30, 2011
    Posts:
    631
    This will be awesome for RPG and adventure projects :D
     
  6. RandAlThor

    RandAlThor

    Joined:
    Dec 2, 2007
    Posts:
    1,293
    Please include the demo scene for this also in your rpg kit.
     
  7. Leslie-Young

    Leslie-Young

    Joined:
    Dec 24, 2008
    Posts:
    1,148
    Version 1.3

    - Fixed bug with Decision Node calculating wrong result when testing variables
    - Added UniRG Action to Set/Create DiaQ variables

    It has been included. Be sure to change the "asset folder" in the DiaQ settings panel to point to the sample's Resources folder. It defaults to UniRPG Data folder when used with UniRPG but this package's sample's data is under `\Assets\DiaQ\Sample\Resources`
     
    Last edited: Sep 9, 2013
  8. Leslie-Young

    Leslie-Young

    Joined:
    Dec 24, 2008
    Posts:
    1,148
    Version 1.4

    - Loading and Saving of DiaQ state data is now possible
    - Added an UpdateCondition Node
     
  9. RandAlThor

    RandAlThor

    Joined:
    Dec 2, 2007
    Posts:
    1,293
    Do this support different languages?
     
  10. Leslie-Young

    Leslie-Young

    Joined:
    Dec 24, 2008
    Posts:
    1,148
    Version 1.5.2

    - Added new QuestCheck Node which makes it easier to branch according to quest's status

    Version 1.5.1

    - Updated Decision Node to allow testing if Quest was handed in

    Version 1.5.0

    - Added new a Node that can make calls to a UniRPG Events
    - Updated Actions to be compatible with UniRPG 0.8+
     
    Last edited: Sep 15, 2013
  11. hike1

    hike1

    Joined:
    Sep 6, 2009
    Posts:
    401
    quote
    it has been included. Be sure to change the "asset folder" in the DiaQ settings panel to point to the sample's Resources folder. It defaults to UniRPG Data folder when used with UniRPG but this package's sample's data is under `\Assets\DiaQ\Sample\Resources`
    unquote
    But you have to import custom package 'sample.unitypackage' in /assets/diaq to see it.
     
  12. hike1

    hike1

    Joined:
    Sep 6, 2009
    Posts:
    401
    NullReferenceException: Object reference not set to an instance of an object
    UniRPG.UniRPGGlobal.RegisterGlobalObject (UnityEngine.GameObject obj) (at Assets/UniRPG/Scripts/UniRPG/UniRPGGlobal.cs:1082)
    DiaQ.DiaQEngine.get_Instance () (at Assets/DiaQ/Script/DiaQEngine.cs:585)
    DiaQSample.Awake () (at Assets/DiaQ/Sample/Scripts/DiaQSample.cs:28)
     
  13. Leslie-Young

    Leslie-Young

    Joined:
    Dec 24, 2008
    Posts:
    1,148
    When do you get this error message? What where you doing?

    [edit] oh, I see. You where trying to run the sample while in a UniRPG environment. The sample was not made for UniRPG. If you want to check it out then copy the DiaQ folder to a new clean project (without UniRPG present) and extract the sample package in that project.

    The sample is intended to show people how to use DiaQ when programming something that uses it. Under UniRPG you will not touch code and do not really need the sample.
     
    Last edited: Sep 15, 2013
  14. Leslie-Young

    Leslie-Young

    Joined:
    Dec 24, 2008
    Posts:
    1,148
    Version 1.5.4

    - Fixed bug where linked quest would not be send if option to include text was not set

    Version 1.5.3

    - Fixed possible error when DiaQ resource file is not present
     
  15. EmeralLotus

    EmeralLotus

    Joined:
    Aug 10, 2012
    Posts:
    1,459
    Nice package...

    I noticed that there is only one field for Dialogue scripts.. What about multiple languages. How can this be done ?

    Cheers.
     
  16. Leslie-Young

    Leslie-Young

    Joined:
    Dec 24, 2008
    Posts:
    1,148
    wow. sorry for this late reply. No idea why I did not get notified about the post.

    DiaQ does not support multiple languages.
     
  17. EmeralLotus

    EmeralLotus

    Joined:
    Aug 10, 2012
    Posts:
    1,459
    This is a nice package,

    In this day and age, multiple language is really needed.
    Would you consider adding this functionality in a future update?

    Cheers.
     
  18. Z0mb1e

    Z0mb1e

    Joined:
    Mar 25, 2014
    Posts:
    2
    When I tell it to increase the number of paths for RandomPath it does not expand the box to add more arrows, so I don't know how to add more paths from the box to dialog boxes. How is this supposed to work?
     
  19. Kea

    Kea

    Joined:
    Nov 12, 2012
    Posts:
    23
    Can I get event after calling UpdateQuestConditions() if the quest is completed?
     
  20. Leslie-Young

    Leslie-Young

    Joined:
    Dec 24, 2008
    Posts:
    1,148
    I have started development on DiaQ.2.
    This will be included free in plyGame and of course it will be a free upgrade for current DiaQ owners.
    UniRPG will not receive this update and continue to use DiaQ.1.

    The new version will break compatibility with the old DiaQ data as it is saved in a different way.

    It will be much easier to add custom nodes and you will not have to dig around in the scripts to make these additions but rather create new node classes that will automatically become available in the graph editor.

    This is a screenshot of what the new editor looks like. You will note that I've done away with the limited DiaQ variables. Each Node, Graph and DiaQ itself can now have any number of meta data values of various types.

    diaq02.png
     
    Last edited: Jun 4, 2014
  21. Leslie-Young

    Leslie-Young

    Joined:
    Dec 24, 2008
    Posts:
    1,148
    DiaQ.2 is now available.

    Note that this is a total rewrite of DiaQ and is not compatible with projects that uses DiaQ 1.x. Do not update to this version if you are using the older version as it can't load the data of the old version.
     
  22. kenlem

    kenlem

    Joined:
    Oct 16, 2008
    Posts:
    1,630
    I just bought this. Is there any written documentation besides the few read me files on using it?
     
  23. Leslie-Young

    Leslie-Young

    Joined:
    Dec 24, 2008
    Posts:
    1,148
    The docs are here http://plyoung.com/plygame/docs/diaq.html
    Have a look at the included sample (install the diaqsample.unitypackage). It has heavily commented scripts that explain how to work with the runtime API.
     
  24. Leslie-Young

    Leslie-Young

    Joined:
    Dec 24, 2008
    Posts:
    1,148
    Latest update

    ## DiaQ 2.0.1 ##

    - Fixed: Bug in getting metaData interface of Nodes
     
  25. Leslie-Young

    Leslie-Young

    Joined:
    Dec 24, 2008
    Posts:
    1,148
    Updated to version 2.0.4

    - Added: Graph Update Block for plyGame
    - Fixed: Giving a Quest's Rewards was not being recorded by the quest

    Version 2.0.3

    - Updated: Added a confirmation when choosing to delete a Graph or Quest
    - Updated: plyGame plugin to work with new Items System of plyGame RPG module

    Version 2.0.2

    - Fixed: Added missing `Update Quest Condition` Block (for plyGame/Blox)
     
  26. goldbug

    goldbug

    Joined:
    Oct 12, 2011
    Posts:
    766
    Hi Leslie,

    I am looking for a quest management system, and found DiaQ. I have a question:

    I want users to make their own quests. I would like for them to create an xml file and put it in a folder. The game would pick it up and add those quests.

    I know DiaQ will not do this out of the box, but perhaps there is an api to create quests at runtime? so that I will write the code to load the file and call the api to create the quests.

    Is there a way to do this?
     
  27. Leslie-Young

    Leslie-Young

    Joined:
    Dec 24, 2008
    Posts:
    1,148
    This is not supported and I would suggest you spin your own solution, rather than using an existing one, because of how you want to handle quests.

    The main reason for getting something like DiaQ is the ease of creating dialogue flow and quests. Behind the scenes it is just data manipulation to keep track of quests and that is something any good coder can do real quick.
     
  28. goldbug

    goldbug

    Joined:
    Oct 12, 2011
    Posts:
    766
    Yes, this is not rocket science, but I was hopping to avoid reinventing the wheel.
    Thanks for your answer.
     
  29. maltakereuz

    maltakereuz

    Joined:
    Mar 29, 2015
    Posts:
    53
    Does DiaQ works in Unity 5?
     
  30. Leslie-Young

    Leslie-Young

    Joined:
    Dec 24, 2008
    Posts:
    1,148
    Yes. All my tools work in Unity 5.
     
  31. JayFiraja

    JayFiraja

    Joined:
    Oct 1, 2013
    Posts:
    12
    I purchased DiaQ today
    I loved how the graphs are organized.
    Just one question.
    Lets say I already have my Npc on scene.
    How do I initialize my graph in order to assign it to the npc and make him start talking?
     
  32. Leslie-Young

    Leslie-Young

    Joined:
    Dec 24, 2008
    Posts:
    1,148
    Have a look at the sample scene. It has a script that shows how you how to start a specific graph.
     
  33. nwsx

    nwsx

    Joined:
    Apr 12, 2013
    Posts:
    11
  34. nwsx

    nwsx

    Joined:
    Apr 12, 2013
    Posts:
    11
    I figured this out. Turns out DiaQSample.cs uses "dlg.dialogueText" and I had to use "dlg.ParsedDialogueText(true)" instead.
     
  35. Leslie-Young

    Leslie-Young

    Joined:
    Dec 24, 2008
    Posts:
    1,148
    Glad you got it to work. Yes, the example might not be show every feature that is available so best to have a look at what functions are available to you.