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

[RELEASED] Dialogue System for Unity - easy conversations, quests, and more!

Discussion in 'Assets and Asset Store' started by TonyLi, Oct 12, 2013.

  1. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,670
    The Dialogue System v1.4.6 has been released! It should be on the Asset Store in a few days, and you can download it immediately from the Pixel Crushers customer download site. (If you need access, please PM me your Asset Store invoice number.)


    Version 1.4.6

    Core
    • Fixed: Issue with IL2CPP builds for 64-bit iOS.
    • Unity UI: Fixed timing issue with Unity UI barks that use show and hide animations.
    Third Party Support
    • Action-RPG Starter Kit:
      • Added CharacterMotorC to the list of components that are disabled during conversations.
    • Adventure Creator:
      • Updated for Adventure Creator v1.42.
      • Added: ACSpeech() sequencer command to use Adventure Creator's speech features.
      • Added: Bridge option to automatically sync current language selection with Adventure Creator.
      • Improved: Can now use a popup menu to choose conversations in Conversation and Bark actions.
      • Improved: Easier setup for saving and loading.
    • Realistic FPS Prefab:
      • Hunger, Health, & Thirst GUIs now update when syncing values from Lua (e.g., after conversations, switching levels, loading games).
    • RPG Kit:
      • Updated example conversation with example of giving and removing an item (health potion).
      • Added AI for Mecanim actions to sync to & from Lua.
      • RPG Kit Bridge now syncs items as well as equipment.
    • S-Inventory:
      • Fixed: Removed an inadvertent reference to Realistic FPS Prefab from a base S-Inventory support script.
      • (S-Inventory + RFPS) SInventoryConsumables (e.g., medkits) now don’t increase above the maximum hit point ceiling.
      • (S-Inventory + RFPS) SInventoryConsumables (medkits, food, drink) from item groups (chests) now work.
      • (S-Inventory + RFPS) Ammo from item groups now count in RFPS.
    • TextMesh Pro:
      • Added native dialogue UI so you no longer need to build off of a Unity UI.

    Next on the roadmap:
    • An option to import articy:draft flow fragments as conversations.
    • Methods to jump to a specific dialogue entry.
     
  2. sheffieldlad

    sheffieldlad

    Joined:
    Oct 9, 2013
    Posts:
    154
    n
    none of the audio clips I've tried work. the audio plays, the subtitles show and nothing else happens.

    I'm about to create an empty project with just the dialogue system and see if I can get things working.
    I'll let you know how I get on.
     
  3. sheffieldlad

    sheffieldlad

    Joined:
    Oct 9, 2013
    Posts:
    154
    Ok. I tried an empty project.

    Code (CSharp):
    1. AudioWait(Kate/Kate1, listener)->Message(AudioDone); Camera(Medium Left); required Camera(Medium Left, listener)@Message(AudioDone)
    doesn't move the conversation on, I tried with several different audio clips, not just kate1.

    Code (CSharp):
    1. AudioWait(Kate/Kate1, listener)
    Doesn't move the conversation on either.
    Is there any setting I could have missed?

    EDIT: it might be helpful for you if I retrace my steps how I set this up...

    I started an empty scene, imported dialogue system
    Created a plane and 2 capsules to act as conversants.
    I created a dialogue manager and a dictionary.
    In the dictionary I added an actor and made some chat nodes.
    in the manager I went to display settings and added the wheel dialogue ui.
    I left all the other settings alone.
    I then added a conversation trigger and set it to run my conversation at start.
    Dragged my capsules into the Actor and conversant slots and hit play.
     
    Last edited: Feb 21, 2015
  4. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,670
    Terribly sorry, this was a bona fide bug. It's fixed in version 1.4.6.1, which is available on the Pixel Crushers customer download site and should be on the Asset Store in a few days. Please email tony (at) pixelcrushers.com so I can send you access information for the Pixel Crushers download site.
     
  5. sheffieldlad

    sheffieldlad

    Joined:
    Oct 9, 2013
    Posts:
    154
    No need for an apology Tony, these things happen. Just hope you found it without too much trouble :)
    Many thanks for your quick support.
    I'll send you an email now.

    thanks again.
     
  6. sheffieldlad

    sheffieldlad

    Joined:
    Oct 9, 2013
    Posts:
    154
    I have another problem now.

    I downloaded 1.4.6.1 and the audio works great (thanks for that :) )
    I'm following the youtube video about adding quests:



    and around the 2 minute mark after you add the Quest log window, the video tells you to drag the quest log window into the quest log window slot on the feature demop script.

    No matter which quest log window I attach as a child of the menu I can't drag it into the slot on the feature demo script.
    If I click the circle next to the quest log field no quest logs are available to be added in either my scene or the assets.

    Anyone know what I'm doing wrong?
     
  7. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,670
    Hi @sheffieldlad - Short answer: Assign the prefab that contains the text "Unity GUI Quest Log Window", not the older prefab that just has "Quest Log Window". For example, assign "JRPG Unity GUI Quest Log Window", not "JRPG Unity Quest Log Window".

    Long answer: Some history makes it confusing. Quest log windows were originally provided as an example, implemented only in Unity GUI (the class type UnityQuestLogWindow). However, since quests are so closely tied to dialogue in most games, there was a lot of demand for a generic quest log window that works with any GUI system. This is the abstract class QuestLogWindow, with subclasses such as UnityGUIQuestLogWindow. The field type in the feature demo script is QuestLogWindow (the abstract type). You can assign any subclass, such as UnityGUIQuestLogWindow, by dragging it onto the field. But the circle next to the field won't pick up any prefabs because it only looks for the abstract type, QuestLogWindow.

    Some early devs were already using the now-obsolete UnityQuestLogWindow, so it was left in the package. I believe all their games have shipped by now, so I'll remove it from the next release to prevent confusion. I just annotated the video, too.
     
    sheffieldlad likes this.
  8. sheffieldlad

    sheffieldlad

    Joined:
    Oct 9, 2013
    Posts:
    154
    That's done it. many thanks :)
     
  9. Uselesss

    Uselesss

    Joined:
    Feb 21, 2015
    Posts:
    3
    The amount of options and power here is truly impressive and now it's got me curious. Is it possible to save the exact conversation and dialogue entry the player was on when they saved and then on a load go to that exact dialogue entry and resume from there?
    I'm asking because if I were to try and make a game that spent most of it's time in dialogues (like a choose your own adventure or text based game) it would be really convenient to be able to save and load the player's exact position inside a conversation so they wouldn't have to lose any progress or save and load at specific times..
     
  10. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,670
    Hi @Uselesss - Soon! :) In the next release, you'll be able to resume a conversation from a specific dialogue entry.
     
  11. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,670
    Version 1.4.6.1 is now available on the Asset Store!

    The upcoming version 1.4.7 will provide a method to resume a conversation from a specific dialogue entry. It also has improvements to the articy:draft converter.
     
  12. hike1

    hike1

    Joined:
    Sep 6, 2009
    Posts:
    401
  13. Earthsnake

    Earthsnake

    Joined:
    Feb 25, 2014
    Posts:
    30
    Hey Tony, first of all, incredible asset, it's very neat.

    I have few questions regarding the quest system, can we make prerequisite quest for certain quest?

    For example, there are 4 switches that needed to be turned off (prerequisite quest) before the player can embark to certain locations (e.g to turn off force-field that protects certain areas) and gather new quest related on the new unlocked area.

    And for quest system itself, how far we can modify it? I've seen there are:
    1. kill quest
    2. travel/reach to certain areas (using collider)
    3. talk to NPCs

    can we make other custom quests, like above example for instance, turning on/off switches, or maybe something like obtain specific quest items and deliver it to certain NPCs.

    Thank you very much.
     
  14. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,670
    Hi @Earthsnake - Yes, you can do all of that. The quest system uses a simple scripting language (Lua), so it's very free-form. This means you can do anything you want. It doesn't use templates for specific quest types such as "kill quest" or "travel quest". Instead, you get to specify exactly how each quest works.

    Every trigger has a Condition section that specifies the trigger's prerequisites. You can also specify a condition for each and every dialogue entry in a conversation.

    Say you've created a door that leads to a new scene. The door has a trigger that loads the new scene and activates a quest to explore the fountain in the center of the new scene. BUT, the player can't use the door until all 4 switches have been turned off.

    You can set the Condition on the trigger to enforce this requirement. The actual implementation depends on how you keep track of the switches. Say you define a variable "NumSwitchesOff" in your dialogue database. Every time the player turns off a switch, a trigger on the switch can increment this variable. Your door's Condition can require that "NumSwitchesOff" == 4. The Condition would look like this:

    Variable["NumSwitchesOff"] == 4​

    If you don't want to type Lua code, you can use a point-and-click wizard.

    Let's say, instead, that each switch is its own quest: North Switch, South Switch, East Switch, and West Switch. As the player turns off each switch, it changes the corresponding quest state to "success". Your door's Condition can require that all four prerequisite quests (North, South, East, West) are in the "success" state.



    Similarly, you can use conditions in conversations. For example, say you've made a trainer NPC that gives several quests: Hunt a Rat, Hunt a Wolf, and Hunt a Dragon.

    In the NPC's conversation, the first dialogue entry can check if the "Hunt a Rat" quest is complete. If not, offer the quest. But if it's complete, offer the "Hunt a Wolf" quest instead, or the "Hunt a Dragon" quest if the player has completed the wolf quest. The first dialogue entry might look like this:

    Condition: Quest["Hunt_a_Rat"].State == "unassigned"
    Dialogue Text: "You're a beginner. I want you to hunt a rat."
    Script: Quest["Hunt_a_Rat"].State = "active"​

    Once again, if you don't want to type the Lua code, you can use the point-and-click wizard.

    If you have any follow-up questions about quests, just let me know!
     
  15. Kevin_Scott

    Kevin_Scott

    Joined:
    Jan 6, 2015
    Posts:
    4
    Hi,
    I'm attempting to integrate this with the RPG Kit and I get an error when integrating your AI for Mecanim support in Third Party Support:
    Assets/Dialogue System/Third Party Support/AI for Mecanim/Scripts/Actions/Bark/Bark.cs(29,18): error CS0246: The type or namespace name `RequiredField' could not be found. Are you missing a using directive or an assembly reference?

    I was following your integration tutorial:
    http://www.pixelcrushers.com/dialogue_system/manual/html/rpg_kit.html

    I'm not finding any other threads where people are seeing this but, it's happening to me :(
    I've tried this on Unity 4.6 and 4.3 and it happens the same in both.

    Note: this is the latest version of Dialogue System on the Asset Store and RPG Kit v2.1.1

    Thanks for any help!

    Kevin
     
  16. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,670
    Hi @Kevin_Scott - Zerano changed the API for AI for Mecanim / RPG Kit in v2.1.3. The Dialogue System's support package was updated accordingly, and requires RPG Kit v2.1.3 or higher.

    Can you update to the latest RPG Kit (v2.1.6)? I've found that the best way to stay up-to-date with RPG Kit is through the Subversion repository. You can contact him for access.

    (RPG Kit now requires Unity 4.5.5 or higher.)
     
  17. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,670
    The Dialogue System v1.4.7 has been released! You can download it right now on the Pixel Crushers customer download site. (PM me your invoice number if you need access.) It should be available on the Asset Store in a few days.

    You can now start a conversation from any dialogue entry.

    "Folders" for conversation grouping is an old feature but one that some users aren't aware of. If you want to organize your conversations in groups, you can use forward slashes in titles, such as "Level 1/Commander", "Level 1/Radio Barks", and "Companions/Romantic/Nadia/In Barracks". The slashes will act as submenus in the dialogue editor and conversation trigger pop-up menus.


    Version 1.4.7

    Core
    • Improved: Added optional initial dialogue entry ID parameter to DialogueManager.StartConversation().
    • Improved: Added optional layer parameter to AnimatorPlay() and AnimatorPlayWait() sequencer commands.
    • Improved: Added LevelManager.LoadLevel() method; the LoadLevel() sequencer command uses it if available.
    • Changed: Removed obsolete UnityQuestLogWindow class (use UnityGUIQuestLogWindow instead)
    • Fixed: (Unity GUI) Fixed a positioning bug with nested panels when Clip Children is unticked.
    Third Party Support
    • Action-RPG Starter Kit: Added syncing of equipment and skills. Added DSTeleporter.
    • articy:draft: Added option to convert flow fragments to conversation groups. (This is now the default.)
    • Cinema Director: Added ability to load from asset bundles. Added Bark, Lua, & Start/Stop Conversation events.
    • Realistic FPS Prefab: Added DialogueSystemOnPickUpItem.
    • RPG Kit: Updated to count all inventory items.
     
  18. hike1

    hike1

    Joined:
    Sep 6, 2009
    Posts:
    401
    a.quote
    Added syncing of equipment and skills
    unquote
    What does that mean?


    b. I have an alchemy table NPC and reagents items, need a few tips

    Alchemy Table
    Press E

    Table-you see an alchemy table
    Player -I have reagents, I want to make a potion

    Table-what kind of potion?

    Player -health

    Table- condition?- if hasitem=9 (st_johns_wort) && hasitem=10 (thistle)
    script additem 8 (lesser health potion)

    like to have a list I could choose from, and have it say 'you don't have the right ingredients'
    Could you please give me some tips?


    c.
    I put a plane on top of a dungeon so
    you can't see in from above, my question is I want the 'mesh renderer or mesh filter disabled
    when player goes in the door, and re-render when he leaves, is there a dialog system thing that would do this? Like 'set component enabled on entering? I'll also have
    lots of conversations in the dungeon if that's relevant.
     
  19. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,670
    Hi @hike1 - In previous versions of the Action-RPG Starter Kit support package, you couldn't access ARPG's equipment and skill information in Lua variables, such as Actor["Player"].WeaEquip to get the item ID of the currently-equipped weapon. However, you could still use Lua functions such as GetItemCount(ID).

    Okay, let's say in your database you've defined these items:
    • [ID 8] Lesser health potion
    • [ID 9] St Johns Wort
    • [ID 10] Thistle
    Then your conversation can look something like this:
    • [0] START
      • [1] Table: "Crafting menu:
        Lesser Health Potion (requires St Johns Wort & Thistle)
        Lesser Mana Potion (requires Eye of Newt & Cinnamon)
        Greater Health Potion (requires Mandrake & Ginger)
        What do you want to craft?
        "
      • [2] PC: "Lesser Heal Potion"
        • [6] Table: "You don't have the ingredients."
          Conditions: GetItemCount(9) < 1 or GetItemCount(10) < 1
          (back to [1])
        • [7] Table: "Created Lesser Health Potion!"
          Conditions: GetItemCount(9) >= 1 and GetItemCount(10) >= 1
          Script: AddItem(8, 1); RemoveItem(9, 1); RemoveItem(10, 1)
          Sequence: Audio(CraftingSound); Delay({{end}})
          (back to [1])
      • [3] PC: "Lesser Mana Potion"
        • ... (similar to above)
      • [4] PC: Greater Health Potion"
        • ... (similar to above)
      • [5] PC: "Done" [END]

    Here's one way:
    1. Add a cube just inside the door.
    2. Disable or remove the renderer component, and tick IsTrigger on the BoxCollider.
    3. Add a Sequence Trigger.
      • Set the Trigger to OnTriggerEnter.
      • Set the Sequence to SetEnabled(MeshRenderer, false, Roof)
        where Roof is the name of the GameObject with the mesh renderer.
    4. Repeat steps 1-3 for a cube just outside the door, but change the sequence to:
      SetEnabled(MeshRenderer, true, Roof)
    When the player enters the trigger just inside the doorway, it will disable the renderer. When the player steps outside, it will re-enable the renderer.
     
  20. sheffieldlad

    sheffieldlad

    Joined:
    Oct 9, 2013
    Posts:
    154
    HI @TonyLi,

    I have this called from a dialogue entry in a conversation.

    Variable["Pisto01l"] = 1

    Is it expected behaviour for this to end the conversation?
    Is there any way I can prevent this from happening?
    Should I just give my player all the weapons he gets from conversations right at the very end?

    The player receives the weapon ok but the conversation ends straight away when there is more dialogue available.

    Many thanks.
     
  21. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,670
    Hi @sheffieldlad - That shouldn't end the conversation. In fact, if this is the UFPS integration, the value of Variable["Pistol01l"] isn't even checked until the end of the conversation. Are there any errors in the console? Could it be that the Conditions on the follow-up dialogue entries are false? If you open the Dialogue Editor at runtime and examine the conversation, you can see the current entry and which follow-up entries are true or false.

    If nothing jumps out at you, please post a screenshot of the conversation tree or send an example project to tony (at) pixelcrushers.com.
     
  22. sheffieldlad

    sheffieldlad

    Joined:
    Oct 9, 2013
    Posts:
    154
    hi @TonyLi

    thanks for the quick response.

    None of the dialogue entries have any conditions set.
    conversation flows to this node and ends without the dialogue for this node being played out.
    when it ends my player has the pistol as intended.
    I'm not in front of a computer today and won't be for another 8 hours.
    as soon as I get chance I will post a screenshot of the tree and this node and if I get time a video of the conversation .

    many thanks.
     
  23. sheffieldlad

    sheffieldlad

    Joined:
    Oct 9, 2013
    Posts:
    154
    thinking about it, I think I've spotted my mistake.

    I have Variable["Pistol01"] = 1
    it should probably be
    Variable["Pistol01"] ==1

    I will try this when I get back.
    not too sure why the above gives a pistol though....

    btw, no messages in console.
    this is ufps integration btw.
     
  24. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,670
    Hi @sheffieldlad - The Conditions field should use double-equals:
    • Conditions: Variable["Pistol01"] == 1
    This tests for equality -- i.e., "Is the value of Pistol01 equal to 1?" Better yet, in case the player can have more than one pistol in the future:
    • Conditions: Variable["Pistol01"] > 0

    The Script field, on the other hand, should use single-equals:
    • Script: Variable["Pistol01"] = 1
    This assigns a value -- i.e., "Set the value of Pistol01 to 1."

    If you use the point-and-click Lua wizard, it will automatically use the correct operator (= or ==). You'll need to define "Pistol01" in the Variables section first in order for the Lua wizard to show it an as option.


    If the conversation still ends prematurely, please export the dialogue database as a unitypackage file and send it to tony (at) pixelcrushers.com.
     
  25. sheffieldlad

    sheffieldlad

    Joined:
    Oct 9, 2013
    Posts:
    154

    I emailed you my conversation then I fixed it....
    It turns out for some reason my converstaion was stopping on the node before the weapon gets handed over.
    There were no conditions set but ar runtime the link was showing up red then the conversation was ending.
    I recreated the problem node and all nodes underneath it and now it works fine.

    Anyways, it works now and you have a copy of the database. Maybe you can spot what I did wrong?

    Thanks
     
  26. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,670
    The node's Conditions field was two blank lines. The current rule (as of v1.4.7) is that a condition is true if the Conditions field is empty or evaluates to true in Lua. Since the Conditions field wasn't empty (technically it had blank lines) and didn't evaluate to true in Lua, the node was rejected. The next release will trim white space before checking whether the field is empty.
     
    sheffieldlad likes this.
  27. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,670
    Dialogue System support for Galawana Studio's Day Night Controller

    A customer had a need to check and control the time managed by Galawana Studios' Day Night Controller. The package below (which is also on the Pixel Crushers customer download site) lets you get and set the time of day in Lua and cutscene sequences:

    DialogueSystem_DayNightControllerSupport.unitypackage
     
  28. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,670
    Dialogue System v1.4.7 patch 2015-03-03

    A patch is available on the Pixel Crushers customer download site. If you need access, please PM me your Asset Store invoice number. These additions will also be in the next release (v1.4.8).
    • Optional Unity 5 DLL package built using Unity 5 release version (5.0.0f4).
    • Conditions containing only whitespace are now treated like empty conditions.
    • articy:draft: When converting custom feature properties into fields, any existing fields (such as “Sequence”) are used instead of duplicating them.
     
    Last edited: Mar 4, 2015
  29. Uto

    Uto

    Joined:
    Nov 10, 2014
    Posts:
    17
    Hi.

    I am using my own custom UI skin for dialogue and I am quite happy with it, except the alert window. How can I change the appearance of the alert window ONLY? Now it uses the same window panel as dialog main window and I don't know how to use change it for alert window. I would like to either use other panel, or no panel at all, meaning that alerts would only appear as fading text messages. Is it possible?
     
  30. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,670
    Hi @Uto - Here are two options:

    1. Remove the Alert Panel and leave the UnityDialogueUI's Alert Panel property unassigned. Only Alert Line is absolutely required. Alert Panel is optional.

    2. If Alert Panel is a GUIWindow, change it to a GUILabel or GUIImage instead. GUIWindow uses the GUI skin's 'window' style. With GUILabel and GUIImage, on the other hand, you can assign any background texture you want.

    If you get stuck, please feel free to email an example project to tony (at) pixelcrushers.com. I'll be happy to take a look.
     
  31. Uto

    Uto

    Joined:
    Nov 10, 2014
    Posts:
    17
    Wow, that was fast reply! And the solution was obvious, just as I thought. Thanks!
     
  32. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,670
    Happy to help!
     
  33. hike1

    hike1

    Joined:
    Sep 6, 2009
    Posts:
    401
  34. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,670
    BackwoodsGaming likes this.
  35. Demonith88

    Demonith88

    Joined:
    Jun 30, 2014
    Posts:
    216
    Is there a way to make multiplayer chat box
     
  36. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,670
    Hi @Demonith88 - The Dialogue System is designed for branching conversation tree-style conversations, not free typing chat boxes. In other words, use it for BioWare-style and Telltale-style games, not for Facebook chat. It's been used for single-player and multiplayer games. For multiplayer games, in one case the conversation only runs for one player, like a quest conversation in World of Warcraft. In another case, all players see the conversation but only the initiator can respond. In another case, the ability to respond switched between players depending which player was specified in the dialogue database. This is mostly a user interface issue. The Dialogue System decouples the UI from the rest of the system, so you can really do whatever you want. (For example, another developer made a non-visual UI with text-to-speech for visually impaired users.)

    From the FAQ:

    Does the Dialogue System support multiplayer games?
    Yes, several multiplayer solutions are supported for player-NPC conversations. (For player-player interaction, use a chat client instead.). Which solutions you use depend on the design of your game. You can use different dialogue databases for different players, or dynamically assign roles in a shared dialogue database at runtime, or conditionally run different dialogue trees (or different branches of the same tree) based on a variety of conditions including quest states, game objects and tags, and even complex Lua expressions. Although this may sound complicated at first because the Dialogue System supports many different methods, each one is actually very simple to use. And you're always welcome to contact us for support if any questions come up.
     
  37. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,670
    The Pixel Crushers customer download site has an updated support package for S-Inventory support. It adds persistent data components for vendors and item groups so they'll remember their contents in saved games and level changes. You can also download it here:
    [EDIT: Added persistent data component for item pickups, too.]

    SInventory_Support_2015-03-12.unitypackage
     
    Last edited: Mar 13, 2015
  38. ocimpean

    ocimpean

    Joined:
    Aug 10, 2013
    Posts:
    128
    Hi TonyLi
    Thank you for your answer.
    What I like to know:
    Is there everything integrated to get started for non programmers, like RenPy kind of project or I need to make my own interface, buttons, implement a load/save system?
    Is there a demo of the CYOA example?
    I am using LDC and Fungus for Visual Novels projects. Looking at your solution as it seems it can handle large amount of text&quests for a CYOA.
     
  39. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,670
    Hi @ocimpean - Yes, you can do everything to create a CYOA without any programming, and the Dialogue System can handle a lot of text and quests. One team's game, for example, has over 500,000 words of dialogue. (That's 10-15 good-sized novels.)

    The current CYOA example is only provided as a source project package at the moment. I'm expanding it into a bigger CYOA framework with load/save and step-by-step instructions. I'll put a playable version on the demos page as soon as it's ready.
     
  40. MonkeyZero

    MonkeyZero

    Joined:
    Feb 20, 2013
    Posts:
    37
    You know, this would be really awesome to have more import sources. For instance yEd from yWorks as it is a free tool and most of us are already spending a cake load on Plug-ins and such. Why spend more if you don't have it. Other then that great work...
     
    Last edited: Mar 7, 2015
  41. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,670
    Thanks! I'll keep yEd in mind. The Dialogue System already imports a lot of formats, including Chat Mapper XML, articy:draft, Neverwinter Nights, and CSV spreadsheets. If you can get your yEd data into any of these formats, you can import them into the Dialogue System right now. It also comes with a template script to make it easy to add your own importer. If you end up using the template to write a yEd importer and don't mind sharing it with other Unity folks, I'd be happy to include it in the package.

    The Dialogue System comes with its own full-featured editor, too, so you can simply write your dialogue in Unity if you like, in visual node format or BioWare-style outline format. Most developers end up doing this, since it's convenient and the workflow is easy.
     
  42. ocimpean

    ocimpean

    Joined:
    Aug 10, 2013
    Posts:
    128
    Please msg. me as soon as you have it, I am interested.
     
  43. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,670
    I have a question for people who are interested in the CYOA framework, which will be a free add-on for the Dialogue System. Do you prefer a single saved game with "Continue" and "Restart" buttons in the title menu or multiple saved game slots with a "Load Game" menu? The Dialogue System can do either; it's just a design decision as to what you'd prefer out of the box.
     
  44. ocimpean

    ocimpean

    Joined:
    Aug 10, 2013
    Posts:
    128


    The general tendency I have seen for CYOA, seems to be one autosave with continue or restart. The idea is so the player does not have the option if the result of his choice turn to be bad, to (cheat) try another answer and being forced to live with the result of his actions, hopefully will be tempted to play multiple times trough the game to see different outcome for his choices along the game. For Visual Novel I prefer multiple saves, though.
     
  45. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,670
    Thanks! That's my take on it, too. I'll try to post the playable demo tomorrow! :)
     
  46. ocimpean

    ocimpean

    Joined:
    Aug 10, 2013
    Posts:
    128
    Wonderful, looking forward to it!
     
  47. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,670
    @ocimpean - You can play the demo here: http://www.pixelcrushers.com/cyoa-framework-demo/

    It's less a "demo" and more a blank skeleton that you can hang your own text and artwork (textures, models, music, audio, lipsync, etc.) on.

    You can download the framework here. (It requires the Dialogue System of course.)
     
  48. ocimpean

    ocimpean

    Joined:
    Aug 10, 2013
    Posts:
    128
    Hey TonyLi
    I wanted to try the demo and followed the link. Unfortunately I am getting just a black screen when I press play. On 2 computers.
     
  49. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,670
    tl;dr: Try http://pixelcrushers.com/dialogue_system/demos/cyoa/cyoa.html

    Sorry about the trouble. The screen should look like this before pressing play:


    And then like this after it loads:

    I built it with Unity 4.6.2f1 if that sheds any light on the issue.

    I tested the build on an OS X 10.9.5 box and a Windows 7 64-bit box.

    Please try the following:
    • Try this link: http://pixelcrushers.com/dialogue_system/demos/cyoa/cyoa.html
      I use an old Wordpress plugin to put webplayer builds in a Wordpress frame, and maybe your browser isn't happy with it. The link above bypasses the Wordpress plugin. On one of my Windows 7 boxes, the plugin link works fine in Chrome but in Internet Explorer I also get a black screen. (It's IE, go figure.) The direct link works in IE.
    • Try a different browser (e.g., Firefox or Chrome).
    • Clear your cache.
    • Allow third party cookies from pixelcrushers.com. Not sure this will help, but I saw it recommended on forums.
    If none of that works, would you mind emailing your webplayer log file to tony (at) pixelcrushers.com? The log file's location is documented here for the different OSes.
     
    ocimpean likes this.
  50. ocimpean

    ocimpean

    Joined:
    Aug 10, 2013
    Posts:
    128
    Hey TonyLi

    I manage to open it following the last link. I appreciate the effort you made to upload it, so I went and bought Dialogue System and I sent you the confirmation number.