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] 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,670




    Quest Machine is a complete quest/mission system for hand-written and procedurally-generated quests.

    -- Asset Store review​

    Design Goals
    Quest Machine has been designed with these goals in mind:
    • AAA quality
    • Easy to use
    • Powerful enough to accommodate any type of quest / mission / objectives
    • Easy to integrate into projects and customize

    Quest Editor
    Use the node-based editor to write any type of quest. You’re not locked into a limited set of archetypes.


    Procedural Quest Generator
    NPCs can generate new quests to meet their goals in reaction to the current state of the game world. Your players will always have something interesting to do.


    Powerful, Flexible UI System
    Fully customizable and optional dialogue, quest journal, tracking HUD, alerts, and overhead indicator UIs. Gracefully handles switching between mouse, keyboard, joystick, and touch input.


    Runtime Control
    Includes a spawning system, inspector-driven events, save & load system, and support for localization and different dialects for NPCs. Text can be imported and exported to CSV format (e.g., Excel or Google Sheets) for translators.


    Broad Platform Support
    Works great in 2D, 3D, VR, and AR. Supports multiplayer games. Tested on Windows, Mac, WebGL, Android, iOS, and consoles.

    -- Asset Store review​

    Lots of Third Party Integrations
    Quest Machine includes integrations with lots of popular third party assets, including Adventure Creator, Emerald AI, Behavior Designer, TopDown Engine, and uMMORPG among others.

    -- Asset Store review​
     
    Last edited: Jul 26, 2022
    LoDx, guavaman, theANMATOR2b and 3 others like this.
  2. EternalAmbiguity

    EternalAmbiguity

    Joined:
    Dec 27, 2014
    Posts:
    3,144
    I read up to the end of the Quick Start chapter, but I didn't see if this was covered.

    What happens if the coins are removed from the inventory after adding them? Does the counter reflect that? Additionally, what if the player acquires 3 coins and then at least one is removed? Does the counter remain updated in time?
     
  3. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,670
    The counter in the demo scene doesn't bother to track coin removals. But it's trivial to add.

    Quest Machine comes with a message system. It's text-based to make it easy to import and export quests to external formats such as JSON, articy:draft, etc. In the Quick Start scene, when the player breaks a crate it sends the message "Get"+"Coin"+1. In the quest, you create a counter named coins that listens for the message "Get"+"Coin" and increments the counter value. You could also tell it to listen for the message "Drop"+"Coin"+n and decrement the counter accordingly.

    Alternatively, you can configure a counter to synchronize its value with an external source. In this case, the counter listens for the message "Data Source Value Changed"+"name"+n. If the original value is in one of your scripts, you can send this message to notify listeners whenever you change it.

    Alternatively alternatively ;), you don't have to use the message system and counters at all if you don't want to. In the Quick Start, the quest node "Find 3 Coins" has a condition "Counter coins >= 3". You could write your own condition instead, for example a condition that queries your inventory system. The Templates folder contains a starter script for custom conditions. Once written, they work in the editor just like the built-in condition types.
     
    EternalAmbiguity likes this.
  4. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,676
    Love the Trello board idea, BTW. It will probably be useful in the early stages on this. :)
     
  5. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,670
    I blatantly stole the idea from @LaneFox. His Trello board for Deftly was a great way to keep users updated on development.
     
    LaneFox likes this.
  6. BackwoodsGaming

    BackwoodsGaming

    Joined:
    Jan 2, 2014
    Posts:
    2,229
    I've started seeing more and more folks using Trello to track their asset development. Great call!
     
  7. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,670
    Thanks! I use more in-depth tools to manage the project internally, but Trello works really well to present a bird's eye view.
     
    BackwoodsGaming likes this.
  8. Tiny-Tree

    Tiny-Tree

    Joined:
    Dec 26, 2012
    Posts:
    1,314
    i used dialogue system in most of my game so this is insta buy:eek:
     
    treshold, theANMATOR2b and TonyLi like this.
  9. witcher101

    witcher101

    Joined:
    Sep 9, 2015
    Posts:
    516
    will it support invector 3rd person shooter
     
  10. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,670
    What kind of support would be helpful to you? Quest Machine is designed so you can integrate it in many cases without requiring a special integration package. But if a special integration package would be helpful, I can add it to the list.
     
  11. longroadhwy

    longroadhwy

    Joined:
    May 4, 2014
    Posts:
    1,551
    Looking forward to its release.
     
  12. guavaman

    guavaman

    Joined:
    Nov 20, 2009
    Posts:
    5,609
    Looks like a great new asset! Good luck on the launch! And I like your web demo -- very elaborate example for a nuts-and-bolts type of system like this.
     
    TonyLi likes this.
  13. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,670
    Thanks!
     
  14. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,670
    Pixel Crushers at Unite Austin

    We'll be at Unite Austin next week. If you're there, please stop by our booth to say hi and enter for a chance to win a copy of the Dialogue System, Love/Hate, or Quest Machine!
     
  15. TheMessyCoder

    TheMessyCoder

    Joined:
    Feb 13, 2017
    Posts:
    522
    How did I possibly miss this thread? Congrats man!!!
     
  16. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,670
    Thanks! With luck it will be available on the Asset Store just in time for Unite.
     
    hopeful likes this.
  17. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,676
  18. BackwoodsGaming

    BackwoodsGaming

    Joined:
    Jan 2, 2014
    Posts:
    2,229
    Thanks for posting on all the old QM threads @hopeful! For some reason notification for this thread having replies didn't come through in email since @TheMessyCoder's post. Maybe I forgot to click through or something. lol Been watching for it to go live so I could make sure it got added to my wishlist... heheh

    Wishing you tons of success on another awesome asset. @TonyLi!
     
  19. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,670
    If you're at Unite, please stop by the Pixel Crushers kiosk to play a demo and ask any questions you have about Quest Machine or any other Pixel Crushers assets!
     
    TheMessyCoder likes this.
  20. TheMessyCoder

    TheMessyCoder

    Joined:
    Feb 13, 2017
    Posts:
    522
    Can you stream it on Twitch :)
     
  21. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,670
    I'll do one better after Unite and record demo and tutorial videos! :)
     
    Teila, tchris and BackwoodsGaming like this.
  22. TheMessyCoder

    TheMessyCoder

    Joined:
    Feb 13, 2017
    Posts:
    522
    ah nice one mate. Looking forward to it!
     
    TonyLi likes this.
  23. EternalAmbiguity

    EternalAmbiguity

    Joined:
    Dec 27, 2014
    Posts:
    3,144
    Whenever you get integration with the Dialogue System it would be great to have a example in the manual of how to use the two together.
     
  24. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,670
    Will do! In the integration, Quest Machine will handle all of the quest stuff (instead of the Dialogue System's quest subsystem), and I'll make sure to include detailed example scenes and a video tutorial.
     
    EternalAmbiguity likes this.
  25. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,676
    Will there be complete replacement? As I recall, I was intending to use DS in conjunction with Inventory System for one type of quest (where replayable quests are gained and held in inventory), and QM in conjunction with L/H for another (NPC world background quests, which can involve players).
     
  26. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,670
    My goal is to make sure that everything that you can do quest-wise in the Dialogue System you'll also be able to do in Quest Machine, including integrating with the major plugins like Inventory System Pro, Third Person Controller, etc. (And of course you'll be able to do much more in Quest Machine, too.) I'll include a migration tool to help switch things over.
     
    hopeful and EternalAmbiguity like this.
  27. BackwoodsGaming

    BackwoodsGaming

    Joined:
    Jan 2, 2014
    Posts:
    2,229
    Oh cool.. I was thinking same as @hopeful in that I would still use DS for some of the more in depth quests but use Quest Machine more for the collection/kill type quests for faction building. Never thought about being able to do all in QM!
     
  28. fancyferret

    fancyferret

    Joined:
    Feb 4, 2017
    Posts:
    31
    I love everything Pixel Crushers creates and just saw this had been released! Will this have ORK integration? I'm already using Dialogue System and Love/Hate in my ORK project and would love to tie this in as well to add more variety to the quests.
     
    TonyLi likes this.
  29. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,670
    Thanks @fancyferret! Yes, ORK integration is absolutely on the roadmap. The current plan is to release integrations in this order:
    • PlayMaker
    • Rewired (this will be a really quick one to do)
    • Love/Hate
    • Dialogue System
    • Emerald AI 2.0
    • ORK Framework
    • ICE Creature Control
    ORK may pop in front of Emerald AI depending on BHS's release schedule for Emerald AI 2.0. There seems to be some question on the forums as to the future of ICE; assuming it's still kicking in the next couple months, users can expect an integration package for it. I'm also looking into other integrations, such as uMMORPG and GeNa.
     
    Teila, guavaman and fancyferret like this.
  30. EternalAmbiguity

    EternalAmbiguity

    Joined:
    Dec 27, 2014
    Posts:
    3,144
    Your mention of Emerald makes me wonder: will it include support for UniStorm? UniStorm has a date system that would be valuable for quests.
     
  31. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,670
    I can add UniStorm to the roadmap. What kind of integration are you thinking of? Conditional quests that are only available at certain times of the day/month/year/etc.? Any other use cases?
     
    EternalAmbiguity likes this.
  32. EternalAmbiguity

    EternalAmbiguity

    Joined:
    Dec 27, 2014
    Posts:
    3,144
    I only figured if you're doing one might as well do the other, but yeah, something like that. Or timed quests--start it, and it runs until a certain time.

    Or have quests only available under certain (other types of) conditions, such as weather conditions--an NPC might ask the player to do something for them if it were raining or storming, or if it's very cold--but not in nice weather.

    And since we're discussing it, I could see a use for this in the Dialogue System (if it doesn't already have integration--I haven't checked). Player asks an NPC, "What do you think of the weather?" NPC replies, "I love rain," or "I'm afraid of thunderstorms!" or "Falling snow looks so beautiful, don't you think?"
     
    TonyLi likes this.
  33. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,670
    Good thinking!

    Quest Machine can already do timed quests, but I'll also an option to time quests based on UniStorm's time.

    Already done. (Although I see some text got cut off in the manual; I'll fix that in the next release.)
     
    EternalAmbiguity likes this.
  34. EternalAmbiguity

    EternalAmbiguity

    Joined:
    Dec 27, 2014
    Posts:
    3,144
    Neat, thanks.
     
  35. witcher101

    witcher101

    Joined:
    Sep 9, 2015
    Posts:
    516
    Tried Trail version coudnt understand anything. Manual looks too complex.
    Are you gona make video tutorials??
     
  36. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,670
    They're coming out this week. :)
     
    hopeful likes this.
  37. witcher101

    witcher101

    Joined:
    Sep 9, 2015
    Posts:
    516
    Does this have a HUD indicator on were to go. if your game is fully 3d.
    Also can you make quest like this
    Go to certain place.
    Once you reach that place. Spawn some enemies
    Kill enemies
    Quest if finished if you killed them all.
     
  38. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,670
    Integration with Arrow WayPointer is on the roadmap. No sense reinventing the wheel if a good solution is already available.

    Yes, absolutely.

    Add a Spawner, and configure it to spawn enemies. Spawners are covered on page 39 of the manual. The enemies should be configured to send a message to Quest Machine when killed, such as "Kill:Enemy". One way is to add a Quest Control (p.42) and Disappear Event (p.41) to the enemy. In the OnDisappeared() event, call QuestControl.SendToMessageSystem "Kill:Enemy". Your quest should listen for this event. To see an example, examine the Demo's Pesky Rabbits quest or watch the tutorial video below.

    Then disable the spawner. We'll enable it when the player reaches the entrance of the place. At the entrance, add a trigger collider and a Trigger Event component (p.40). In the component's OnTriggerEnter() event, enable the spawner. There's an example of using Trigger Event on page 42.

    This is the quick start tutorial video. It explains how to set up a quest. Tutorials for setting up the scene and adding control components such as Disappear Event and Trigger Event are coming next week.

     
    LoDx and EternalAmbiguity like this.
  39. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,670
    Just posting a quick update. PlayMaker and Rewired integration are done, and Love/Hate integration is done except for an example scene. I'll submit the version 1.0.1 update with those integration packages this week. I may jump ahead and do Emerald AI and Arrow WayPointer integration before finishing up the Dialogue System integration. I've received a lot of requests for Emerald AI, and its beta test is going on right now so it's an opportunity to request changes that can make the integration better. And Arrow WayPointer should be a quick and easy one to throw in.

    I'll also be working on three additional tutorial videos this week: how to set up the scene for Quest Machine (a short one; basically just dropping in a couple prefabs), how to use the message system, and how to set up components that control quests at runtime (spawners, etc.).
     
    TeagansDad, guavaman, hopeful and 2 others like this.
  40. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,670
    Quest Machine 1.0.1

    Version 1.0.1 has been submitted to the Asset Store! Two days later than my target, but it gave me a chance to add DMMap Minimap System support. The update should be available in a few business days.

    Version 1.0.1 Release Notes:
    • Changed: Quest Giver optional UI content is now handled differently in inspector.
    • Added: QuestListContainer events, QuestListEvents component.
    • Fixed: Setup issues in Quick Start scene.
    • Fixed: When quests become offerable & active, giver updates indicator UIs properly now.
    • Fixed: Indicator UI prefab - swapped ? and !.
    • Fixed: Using joystick, close button didn't autofocus in dialogue with no quests.
    • Added: DMMap support.
    • Added: Love/Hate support.
    • Added: PlayMaker support.
    • Added: Rewired support.
    I'll be working on updated video tutorials and integration with the Dialogue System and Emerald AI next.
     
  41. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,676
    Yayyyyyyy! :)
     
    TonyLi likes this.
  42. fancyferret

    fancyferret

    Joined:
    Feb 4, 2017
    Posts:
    31
    I was actually holding off on implementing my whole quest system in my game until ORK integration is done. But I'm so ready to use this I may go ahead and get it and just worry about the integration later. I've got plenty of idea about combining this in my game with Love/Hate and Dialogue System!
     
    TonyLi likes this.
  43. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,670
    Quest Machine 1.0.1 Available on Asset Store

    Version 1.0.1 is now available on the Asset Store!

    Next up are more tutorial videos: how to prepare the scene & how to leverage the message system.

    And integrations for the Dialogue System, Emerald AI, ORK Framework, and More Mountains' Inventory Engine. (Integrations for other inventory systems will follow.)
     
    BackwoodsGaming and fancyferret like this.
  44. Tiny-Tree

    Tiny-Tree

    Joined:
    Dec 26, 2012
    Posts:
    1,314
    hey Tony i got questions, i have read the docs and see there is multiplayer support but i guess thats for a setup with dedicated server. what about a setup where we just have most of quest data on client but fetch from www or let say remote settings some quests as json, can we reload them back into the quest machine ? is there some way to create dummy quest and export them as string to save them on a backend? does the database generated just support being wrapped in asset bundle out of the box ?

    also how far this can replace Dialogue system and the awesome lua system to control player progression and complex dialogues?
     
  45. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,670
    Hi @Damien-Delmarle! Yes to all.

    Regarding multiplayer, many assets are designed under the assumption that there's only one player, which can make them difficult to adapt to multiplayer. Quest Machine doesn't make that assumption. A game using Quest Machine can have any number of "questers", including human player(s). So your game can use a dedicated server, but it works just as well in local co-op games where all the players are running on one computer.

    Regarding remote/external data, quests are ScriptableObjects. To get them from external sources, you can load them from asset bundles or copy them into and out of strings (e.g., for storage in a database) using provided methods.

    In Quest Machine, a quest is composed of three types of sub-assets:
    • Conditions -- e.g., Is the quester high enough level? Does the quester have 3 wolf pelts?
    • Actions -- e.g., Activate a spawner
    • UI Content -- Shown in dialogue windows, quest journal, etc.
    You can add your own custom sub-asset types, and the quest editor will automatically recognize them. For example, you can create a new Condition that checks an authoritative server to verify that the player can accept a quest.

    Quest Machine's dialogue is intentionally simpler. It works more like World of Warcraft, in which the primary inputs are "Accept" or "Decline" a quest. It's possible to add more UI Content buttons to a quest to make it work like a branching conversation tree, but Dialogue System is a better fit for complex dialogue.

    However, Quest Machine's strength is the efficient and customizable way that it handles the gameplay part of quest progression, which requires no scripting (not even Lua) unless you want to create your own sub-asset types. (Another strength is its procedural generation capability, but that's a different topic.)

    I'm working on Quest Machine + Dialogue System integration so you'll be able to have the best of both worlds. I'll make it available as soon as I can.

    As with the Dialogue System and Love/Hate, you can download the free evaluation version of Quest Machine on the Pixel Crushers website if you want to play with it to see what the differences are.
     
    Tiny-Tree likes this.
  46. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,670
    BackwoodsGaming and tchris like this.
  47. fancyferret

    fancyferret

    Joined:
    Feb 4, 2017
    Posts:
    31
    Just added to my cart! Can't wait to start using this now with love/Hate and Dialogue System. This is the final missing piece of my game really and the procedural quests will make a big difference.
     
  48. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,670
    Thanks! If you have any questions about using Quest Machine, just let me know. The learning curve isn't nearly as steep as the Dialogue System, but setting up procedural stuff is always a little complicated -- although a lot of that is just having fun getting creative and balancing values to get procedurally generated results that you like.

    I'm working on Dialogue System integration, which I hope to release in the next couple of weeks.
     
    fancyferret likes this.
  49. Tiny-Tree

    Tiny-Tree

    Joined:
    Dec 26, 2012
    Posts:
    1,314
    happy it was that cheap when it got my interest :eek:
    its probably the best asset on sale right now in its category!
     
    TonyLi likes this.
  50. Cartoon-Mania

    Cartoon-Mania

    Joined:
    Mar 23, 2015
    Posts:
    320
    I bought a Quest Machine today. It's a sale!!!. I already have a dialog system and Love and Hate. Do you have any plans to integrate these three assets? Can I expect a nice example of these three assets combined?