Search Unity

[SALE 50% OFF] Quest Machine: Hand-Written and Procedurally-Generated Quests

Discussion in 'Assets and Asset Store' started by TonyLi, Sep 20, 2017.

  1. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,694
    Hi @Cartoon-Mania - Thanks! Quest Machine and Love/Hate are already integrated. There's an example in Quest Machine's Love/Hate integration package. Dialogue System and Love/Hate are already integrated, too. The only one left is Quest Machine + Dialogue System, which I expect to release before the end of December.
     
    BackwoodsGaming likes this.
  2. tchris

    tchris

    Joined:
    Oct 10, 2012
    Posts:
    133
    Hi I watched your tutorial video about doing handwritten quests. Do you plan to make a tutorial about Generated Quests too? That would be really helpful. The manual is good for the overview but I feel like I could use a step by step example for generated quests.
     
  3. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,694
    I completely agree; a video tutorial will really help to clarify how to set up quest generation. It's #3 on the list of tutorials I'm recording:
    1. How to set up a scene for Quest Machine. (This is a short one; basically dropping in a couple prefabs.)
    2. How to control quests (e.g., spawners, trigger events, etc.) - another fairly short one.
    3. How to set up quest generation.
     
    BackwoodsGaming, hopeful and tchris like this.
  4. tchris

    tchris

    Joined:
    Oct 10, 2012
    Posts:
    133
    great :) I'm looking forward to it.
     
  5. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,694
    Mega Sale Ends December 8

    Just posting a quick reminder that Quest Machine is a featured asset in the Mega Sale that ends on December 8 at midnight PST. You can get it for 50% off, and view all the assets on sale here.

    [Edit: Fixed the date. Sorry for the incorrect date before, everyone!]
     
    Last edited: Dec 1, 2017
    BackwoodsGaming likes this.
  6. indie_dev85

    indie_dev85

    Joined:
    Mar 7, 2014
    Posts:
    52
    The mega sale was from Nov 27 till December 8 as mentioned in unity blog
    https://blogs.unity3d.com/2017/11/20/unity-offers-holiday-sales-guide/

    Is unity going to end sale today???o_O
     
  7. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,694
  8. BackwoodsGaming

    BackwoodsGaming

    Joined:
    Jan 2, 2014
    Posts:
    2,229
    Just an indication you have been working too hard lately? :p

    btw, Quest Machine officially made it off of my wishlist in the wee hours of the morning. Not sure when I'm going to have a chance to dig into it though. I may wait until you finish those videos. :p

    Keep up the awesome work, Tony!
     
    TonyLi likes this.
  9. indie_dev85

    indie_dev85

    Joined:
    Mar 7, 2014
    Posts:
    52
    Hi Tony,

    Quest Machine is one of the topmost plugin i am planning to purchase during this mega event.

    Before purchase i wish to ask if the following feature can be achieved with Quest Machine:-

    I watched QM YouTube videos showing npc giving out quests,can quests be given by system on some area trigger event.
    example :- when player enter a particular region game trigger a quest to player like Kill X monsters in that region.

    Thanks
     
  10. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,694
    Hi @indie_dev85 - Yes. I like to use Quest Machine's message system for things like this. Briefly, set the quest's Autostart Conditions to listen for a message such as "Entered:SomeRegion". Then add a trigger collider to the region's entrance with a Trigger Event component that sends this message. I'll put together an example this weekend and post it here.
     
  11. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,694
    @indie_dev85 - Here's an example scene:

    QuestTriggerExample_2017-12-03.unitypackage

    This quest starts when the player enters the "Forest" at the bottom of the map.

    Here's how I set it up:

    1. Created a quest ("Forest Quest") with an Autostart condition that listens for the message Enter Forest:



    2. Added the (inactive, waiting to start) quest to the player's list:



    3. Added a trigger collider to the Forest entrance:



    Added Trigger Event and Quest Control components to the trigger. When a GameObject tagged Player enters the trigger, it will use Quest Control to send a Quest Machine message "Enter Forest". This is the message that the quest is waiting for to autostart. (As described in the manual for Quest Control, use a ":" to separate the message and parameter parts.)



    In the screenshot below, you can see that the player has entered the trigger area, and the quest has become active. The quest is configured to show the kill count in the HUD, and to show an alert in the alert HUD in the lower left.

     
    indie_dev85 and BackwoodsGaming like this.
  12. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,694
    Several people have asked about using Quest Machine in 3D games. Setup is almost identical to 2D games. (The demo is 2D just to keep the asset size small.)

    For anyone who'd like to play with an example, here's a rudimentary 3D scene using Unity's Standard Assets First Person Controller. It also contains a brief description of how it was set up:

    QuestMachine_3DDialogueTriggerExample_2017-12-07.unitypackage

    A few users have asked about Easy Save support. It's already implemented and staged for inclusion in version 1.0.2. You can download the Easy Save Support package right now here:

    EasySaveSupport.unitypackage

    I also put together an example scene using Easy Save that's based on the 3D scene above. You can download it here:

    QuestMachine_EasySaveExample_2017-12-07.unitypackage

    It includes both packages above.
     
  13. RonnyDance

    RonnyDance

    Joined:
    Aug 17, 2015
    Posts:
    557
    Just bought it, specially after seeing hopeful is on board also ;)
    Gonna try the asset over christmas.
    Good job for adding 3D example scene because I think lot of people are working on 3D Games.

    I would be really interested in following integrations:
    - Enviro (Getting Time / Season to make timed quests like only on night, only in winter, specific time etc.).
    - Inventory Pro (Easy integreation to use your quest system but inventory system from Inventory Pro).
    - Invector Controller (I am also using Invector Thirdperson / Shooter Template. Before asking for integration I will see how easy it's to add your Quest System to it ;) )

    Good job!
    Ronny
     
    Last edited: Dec 8, 2017
    TonyLi likes this.
  14. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,694
    Thanks!

    Enviro and UniStorm are both on the roadmap.

    Inventory Pro is tentatively on the roadmap. More Mountains' Inventory Engine is also on the roadmap and will be done first.

    Invector Controller integration is tentatively on the roadmap.

    Quest Machine is designed to make it fairly easy to integrate other assets with just a moderate about of scripting experience. If anyone tackles any of these integrations before the official versions are released, just post here or PM me if you have any questions.
     
  15. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,694
    Mega Sale Ends Today

    Just posting a reminder that the Mega Sale ends at midnight PST. If you haven't picked up Quest Machine yet, get it today for 50% off.

    Or click the banner below to see everything that's in the Mega Sale:

     
  16. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,684
    Is it really the end of the Mega Sale? ;)
     
    TonyLi likes this.
  17. RonnyDance

    RonnyDance

    Joined:
    Aug 17, 2015
    Posts:
    557
    Is there a way to Import Quests Text written in a CSV? I want an american friend of mine write some quest text. He can do that fast in csv and I would just import them.

    How should the template look like? I didn't find anything in the documentation about that.
    Is this even possible? Because this would really let me create lot of quest in short time by dividing the work and letting write some quest by other people with lot of story / quest ideas?

    I would simply just import them to unity.

    Cheers
    Ronny
     
  18. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,694
    Hi @RonnyDance - CSV import/export is on the roadmap. JSON import/export is, too. Internally, Quest Machine already serializes to JSON format for saved games, so it's just a matter of providing an editor UI and documentation.

    Text Tables (used for localization or dialect string-replacement) can already import and export CSV.
     
  19. Cartoon-Mania

    Cartoon-Mania

    Joined:
    Mar 23, 2015
    Posts:
    320
    I want to know about integration with dialog system. When will it be completed?
     
  20. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,694
    End of December or first week of January.
     
    hopeful likes this.
  21. AGregori

    AGregori

    Joined:
    Dec 11, 2014
    Posts:
    527
    @TonyLi I'm sure you're aware, but anyway here's an error message QM 1.0.1 throws in 2017.3.0.:

    `UnityEditor.EditorApplication.playmodeStateChanged' is obsolete: `Use EditorApplication.playModeStateChanged and/or EditorApplication.pauseStateChanged'

    Otherwise, this is the best quest system available, kudos!
     
    TonyLi likes this.
  22. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,694
    Thanks, @Gregorik! That's fixed in the upcoming version 1.0.2, which I'll be submitting on Monday. Version 1.0.2 also has several other updates and improvements, including:
    • Dialogue System integration (completed 1st week of Jan, went through long testing phase)
    • Compass Navigator Pro integration
    • Ability to encrypt saved games in PlayerPrefs (if you use those features)
    • Step-by-step procedural quest generation tutorial and other improvements to the manual
    • Several smaller fixes and convenience improvements
     
    TeagansDad and AGregori like this.
  23. vessen

    vessen

    Joined:
    Sep 29, 2016
    Posts:
    5
    Nice asset! But it would be nice to add this feature http://prntscr.com/i4c05b with deep copy all properties. it will be very useful in this work.
     
  24. Tiny-Tree

    Tiny-Tree

    Joined:
    Dec 26, 2012
    Posts:
    1,315
    i know its not dialogue system but is it still possible to do like multi steps dialogue ? i tried the demo and most of example dont have dialogue.

    i think videos would be great because it have a steep learning curve right now
     
  25. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,694
    Hi @vessen! Quests are asset files. You can just duplicate them. Select the quest, and press Ctrl+D (or Command+D on Mac) to duplicate it.

    Hi @Damien-Delmarle! The demo's quests all have dialogue, but it's in a style like World of Warcraft, where the player options are usually just Accept Quest or Decline Quest. If you want to add more dialogue options, you can add Button Quest Content and configure the button to do something such as advancing a quest state. However, for real branching dialogue I recommend using the Dialogue System's integration, which is in version 1.0.2 (pending on the Asset Store).

    The demo's Deliver Carrots quest is a more complex example. To get access to this quest, you must complete the Harvest Carrots quest first. In Deliver Carrots, you must talk to the Villager first. He sends you to deliver carrots to the Pirate. When you deliver to the Pirate, she sends you back to the Villager to complete the quest.

    As soon as version 1.0.2 comes out, I plan to release accompanying video tutorials.

    Version 1.0.2 should be available on the Asset Store soon. In addition to many smaller improvements and bug fixes, it adds Dialogue System integration, and a step-by-step quest generator tutorial to the manual. (There will also be a step-by-step video tutorial for the quest generator.)

    The full change log is:
    • Updated for Unity 2017.3 support. (Cleans up a deprecation warning in the Console window.)
    • Changed: (PlayMaker) Actions that used FsmGameObject now use FsmOwnerDefault; will need to be reassigned.
    • Changed: QuestGeneratorEntity Dialogue For Rewards format changed.
    • Added: Step-by-step quest generator tutorial to manual.
    • Added: QuestMachine.GetQuestCounter method.
    • Added: QuestControl.SendToMessageSystem and Message Events format Message : Param : [Value] to pass values.
    • Added: QuestGiver.StartDialogueWithPlayer; QuestGiver.StartDialogue now also finds player by tag if no player is specified.
    • Added: QuestGiver.GiveQuestToQuester and GiveAllQuestsToQuester methods.
    • Improved: Quest generator can now choose smaller target amounts than the total number of targets known.
    • Fixed: Counter conditions now also check counter's value as soon as condition becomes active, not just when counter value changes.
    • Fixed: Counter condition to check that value is less than goal wasn't registering true.
    • Fixed: Spawner didn't stop spawning at max count.
    • Fixed: Abandoned repeatable quests weren't able to be picked up again.
    • Fixed: Tags for min & max counter values & reference window.
    • Fixed: Alert UI and HUD no longer steal Unity UI focus.
    • Fixed: UIPanel.OnVisible now gracefully handles missing EventSystem.
    • Fixed: Loading a saved game no longer re-executes quests' main actions.
    • Fixed: Journal no longer shows quests whose state is WaitingToStart.
    • Fixed: NPCs no longer offer a generated quest if the player already has a generated quest for the same action and target.
    • Fixed: Demo player is now tagged Player.
    • Improved: SaveSystem can specify frames to wait before applying saved data.
    • Improved: SaveSystem can encrypt saved games in PlayerPrefs.
    • Fixed: TextTable editor now updates dropdown in Fields section properly when renaming a language.
    • Added: Dialogue System support.
    I pulled Compass Navigator Pro integration from 1.0.2, but I'll make it available separately and then include it in 1.0.3.
     
  26. vessen

    vessen

    Joined:
    Sep 29, 2016
    Posts:
    5
    o_O. Thank you! I completely forgot about this opportunity and I got to do my bike :)
     
  27. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,694
    Quest Machine 1.0.2 Now Available

    Version 1.0.2 is now live on the Asset Store!

    There's a new scene setup video tutorial:



    And an updated quick start tutorial:



    I'll post links to the quest generator tutorial, Dialogue System integration tutorial, and others when they're live.
     
  28. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,030
    Thanks @TonyLi for linking me to this main thread. I didn't see it show up in the Google search. Great product. I look forward to testing it.
     
  29. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,694
    The Quest Machine - Dialogue System Overview video is live here:



    This video provides an overview of how they work together in hand-written quests. There will be a separate video for procedurally-generated quests with the Dialogue System that pretty much follows the procedurally-generated quest setup in the integration's demo scene.
     
  30. MaliceA4Thought

    MaliceA4Thought

    Joined:
    Feb 25, 2011
    Posts:
    406
    This looks awesome :) I have bought the package purely on the procedural quests part but am not implementing it yet as I am going to watch the thread so I can be updated when Inventory pro and Enviro support come out and then do it once :)

    M
     
    hopeful and TonyLi like this.
  31. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,694
  32. Cartoon-Mania

    Cartoon-Mania

    Joined:
    Mar 23, 2015
    Posts:
    320
    I know that it is integrated with the dialog system and articy: draft. Of course, we know that the dialog system and the quest machine are integrated. Can I use articy: draft integrated with the dialog system when creating quests?
     
  33. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,694
    Hi @Cartoon-Mania! Not yet! Quest Machine supports complex quests. (You can also design simple quests; it's up to you.) I'm still working out a good way to represent complex quests in articy:draft. You can write the quest dialogue in articy:draft, but currently you'll want to design the actual quest structure in Quest Machine's editor.
     
  34. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,030
    I'm using Invector and would also be interested in this integration. I won't need it for another month or so, but if I get to that point I will try to integrate it myself. Any ideas how difficult that might be?
     
  35. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,694
    Hi @magique! It shouldn't be difficult. It may help to start with the script from the Dialogue System's Basic Invector Integration on the Dialogue System Extras page. Quest Machine comes with several template scripts that you can copy and fill in where indicated to make custom conditions and actions. This is what I'll be using for the official integration.

    What kind of integration features do you think you'll need?
     
  36. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,030
    The only things I can think of at the moment is that I would need to be able to add quest rewards to a player's inventory after completing a quest and to be able to check if a player has a certain inventory item in order to participate in a quest (e.g. the player must have the gem of power to receive the gem of power origins quest).
     
  37. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,694
    Got it. Integration with Invector's inventory system. The Dialogue System's basic integration currently just stops the controller during conversations and frees up the cursor. I'll make sure the same kind of functionality is in Quest Machine's integration, so the controller will pause during Quest Machine dialogue, too.
     
    magique likes this.
  38. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,030
    OK, thanks.
     
  39. MaliceA4Thought

    MaliceA4Thought

    Joined:
    Feb 25, 2011
    Posts:
    406
    Tony, just thinking here prior to implementation...

    Could the quest system be used as a resource gathering tool?

    Example.. A prefab of a rock has a "quest" attatched to it.. no indicators or anything.. when you go to that rock and perform an attack (or interogate it or whatever) on it, it grants items from a random loot array. ( the array could be 1 stone, a 50% chance of a second stone and a 10% chance of 1 gem for example ) It allows this to happen 3 times and then despawns?

    By randomly instantiating rocks in the area from the prefab, each one has that "quest" attatched to it.

    Just trying to save myself some work here by merging things :)

    M
     
  40. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,694
    Hi @moria15 - Sure, you could do that. I just put together a test quest:

    with a custom "Give Random Loot" quest action that randomly gives a coin or carrot:
    Code (csharp):
    1. using PixelCrushers;
    2. using PixelCrushers.QuestMachine;
    3.  
    4. public class GiveRandomLootQuestAction : QuestAction
    5. {
    6.  
    7.     public override void Execute()
    8.     {
    9.         base.Execute();
    10.         var loot = (UnityEngine.Random.value < 0.5f) ? "Coin" : "Carrot";
    11.         MessageSystem.SendMessage(this, "Get", loot, 1);
    12.     }
    13. }
    You could avoid a custom script by configuring a counter value in the quest to have a random initial value, and then set node conditions based on the value. For example, counter < 10 gives gem, otherwise counter < 70 gives 1 stone, otherwise give 2 stones.

    But honestly either way it seems like more effort than necessary to set up a random loot dropper. Here's the quick-and-dirty example scene anyway in case you're curious about how I put it together: QM_RandomLootExample_2018-02-02.unitypackage. I set up the barrel just above and to the right of the player as the loot dropper.
     
    MaliceA4Thought likes this.
  41. MaliceA4Thought

    MaliceA4Thought

    Joined:
    Feb 25, 2011
    Posts:
    406
    Awesome:) TY Tony, thats going to save me having yet another subsystem in the game. I can then link that directly to the crafting in Inventory Pro (whan that's done) and I'm set to go :)

    Regards

    M
     
  42. MaliceA4Thought

    MaliceA4Thought

    Joined:
    Feb 25, 2011
    Posts:
    406
    Tony, quick question..

    Quest Machine INtegrates with Dialogue System and Dialogue System Integrates with Inventory pro... If I run Quest Machine but control it from Dialogue System, does that mean I kinda have a Quest Machine integrated with Inventory pro?

    M
     
  43. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,694
    Hi @moria15 - Yes, you kind of have integration this way. You can run the Dialogue System's Inventory Pro Lua functions. Typically you would use these Lua functions in your conversation's Conditions or Script fields, or in the Condition section of a trigger component such as Sequence Trigger.

    The Dialogue System's integration with Quest Machine lets you add Lua conditions and actions to your Quest Machine quests. You can use the Inventory Pro Lua functions there. In fact, you can use this trick to integrate Quest Machine with any of the Dialogue System integrations that add custom Lua functions, not just Inventory Pro.

    The official integration will be a little more elegant. You'll be able to add real Inventory Pro quest conditions and actions to your quests without going through the Dialogue System.
     
    hopeful likes this.
  44. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,694
    Quest Machine 1.0.3 Now Available!

    Version 1.0.3 is now available on the Asset Store!

    This version adds Compass Navigator Pro support. It also fixes a bug that could cause subassets (conditions, actions, and UI content) to not be removed from quest assets when an entire node was deleted. This wasn't harmful other than making your quest assets bigger than they needed to be. When you open your quest in version 1.0.3's Quest Editor window, Quest Machine will automatically remove these unused subassets.

    The development priority for the next release includes integration for Emerald AI, ORK Framework, and uMMORPG. I'll also release more video tutorials as soon as I have the chance.

    The release after that will focus on more core features such as ease-of-use enhancements to the editor.
     
  45. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,694
    Quest Machine 1.0.4 Now Available!

    Version 1.0.4 is now available on the Asset Store!

    This version adds integration with Emerald AI and ORK Framework.

    uMMORPG integration should be in the next update, along with some enhancements to the editor.
     
    fancyferret, AGregori and magique like this.
  46. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,030
    @TonyLi I see all your new integrations with Quest Machine/Emerald AI and RFPS Save System/Emerald AI, but I don't see any indication of integration between Quest Machine and RFPS Save System. Is there integration coming? Or do they just work together naturally without the need for an integration?
     
  47. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,694
    They work together naturally. In fact, they share the same core Save System scripts in the Plugins / Pixel Crushers / Common folder.
     
  48. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,030
    That's what I figured. I'm glad I was right. Thanks again. I'll be trying these all out together this weekend.
     
  49. AGregori

    AGregori

    Joined:
    Dec 11, 2014
    Posts:
    527
    The ORK integration (so soon after the initial launch of QM) is a nice surprise since I feel like that framework was a bit sidelined recently by the community due to fancier (but less effective) RPG frameworks.

    Do you perhaps also plan Adventure Creator integration? (I know that procedural quests are uncommon in adventure games, but a QM+AC integration could really spawn some innovative games.)
     
  50. fancyferret

    fancyferret

    Joined:
    Feb 4, 2017
    Posts:
    31
    So excited for the ORK integration. I've been waiting patiently for this. Thanks!

    Now I can start making my quests for my RPG.