Search Unity

Quest System Pro - Create quests, achievements and dialogues!

Discussion in 'Assets and Asset Store' started by jorisshh, May 3, 2016.

  1. Tinjaw

    Tinjaw

    Joined:
    Jan 9, 2014
    Posts:
    518
    I own L/H and will be buying Quest Pro. I would love to see them integrated.
     
    jorisshh likes this.
  2. jorisshh

    jorisshh

    Joined:
    Oct 6, 2009
    Posts:
    1,522
    I just got a voucher for Love/Hate so all set to start fiddling with it :)
     
    Teila and Tinjaw like this.
  3. recon0303

    recon0303

    Joined:
    Apr 20, 2014
    Posts:
    1,634
    I do not own Inventory pro, since I have my own tool, made long time ago, and I mainly program UI stuff, but this tool that your making here, looks really neat. May have to pick this up. Glad it works with Salsa.. Great API for that tool!
     
    jorisshh likes this.
  4. jorisshh

    jorisshh

    Joined:
    Oct 6, 2009
    Posts:
    1,522
    Very happy with the SALSA result, the integration was a breeze as well :)

    I was just writing the documentation, if you have your own inventory solution, this might be of interest to you :D - http://devdog.io/unity-assets/quest-system-pro/documentation/quests/custom-reward-giver

    Interfaces, generics and polymorphic types are serialized inside Quest System Pro, so you have a very, very small dependency on the system. Great for when you have your own inventory solution.
     
    recon0303 likes this.
  5. recon0303

    recon0303

    Joined:
    Apr 20, 2014
    Posts:
    1,634

    Yup thanks .!
     
  6. recon0303

    recon0303

    Joined:
    Apr 20, 2014
    Posts:
    1,634
    2D tool kit and NGUI would be nice for this tool as well... Those I been using for years.... I still think they are way better than Unity's tools... and been around a long time... So many people do own them...
     
  7. jorisshh

    jorisshh

    Joined:
    Oct 6, 2009
    Posts:
    1,522
    Quest System Pro should be accepted any moment now (hopefully on Monday :))

    Decided to add in 2D support today. Starting to look pretty need. I'll add in some of those old school speech bubbles
     
    Tinjaw, superwendel and magique like this.
  8. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,686
    Monday's a holiday in the US, so ... we'll see. Not sure who does the asset store approval work.
     
    jorisshh likes this.
  9. jorisshh

    jorisshh

    Joined:
    Oct 6, 2009
    Posts:
    1,522
    The new chat boxes look pretty sleek if I say so myself :p
    The cool part, all the code I had to write to change the complete dialogue design & layout was the positioning of the chat boxes (5 lines) :)
     
    Last edited: May 29, 2016
    magique and superwendel like this.
  10. wood333

    wood333

    Joined:
    May 9, 2015
    Posts:
    851
    Have you seen the way Elder Scrolls Online handles some of their quest dialogues? Sometimes the NPCs discuss something important to the quest or lore, and in order to progress in the quest you are required to stick around until the conversation ends ("observe the conversation"). There are no special cameras or character image windows or printed dialogue, nothing! You just watch and listen as if you are standing beside real people. It's simple, yet remarkably immersive. How about a quest event that requires the player to observe the conversation.

    Recipe for Success:

    Quest System Pro
    Inventory Pro
    Inventory Pro Sci-Fi Design
    @Invector TPCT - controller and combat
    @icetec I.C.E. creature control - ai
    Love/Hate - factions/relationships
    Salsa (already integrated)
     
    jorisshh likes this.
  11. jorisshh

    jorisshh

    Joined:
    Oct 6, 2009
    Posts:
    1,522
    I've been working some more on the sci-fi UI design. I think it looks a lot better already, I'll show something soon :D

    I already have a voucher for Love / Hate, plus I think it's quite an interesting addition myself, so I'll likely be adding support for this in a future update.

    Invector probably doesn't need much integration with the quest system, but integrating it with Inventory Pro would of course add a lot of benefit :)

    I think I.C.E. Would be fairly standalone as well. If it's kill / hunt quests you want to do you can use the built-in QuestProgressOnDestroy which can set progress to your quest when an object (creature) is destroyed.
     
  12. jorisshh

    jorisshh

    Joined:
    Oct 6, 2009
    Posts:
    1,522
    Posted some new screenshots of the updated sci-fi UI design. Not bad, right :)?
    http://forum.unity3d.com/threads/30...on-the-asset-store.372315/page-2#post-2655452
     
    wood333 likes this.
  13. wood333

    wood333

    Joined:
    May 9, 2015
    Posts:
    851
    Assets that can drop rewards/items should link into Inventory Pro for the heavy lifting, which would be both Invector TPCT and I.C.E. An Invector player character should have an inventory and equipment system, which should only be Inventory Pro. I.C.E. has a deep ai for NPCs and can make an encounter orchestrated by Quest System Pro that much more interesting. Quest System Pro looks to be shaping up as a fresh, visual and efficient approach to Questing and related game activities. Great stuff all around. I already own Sci-Fi GUI, and while my current project is not science fiction, I plan to adapt it for our purposes. :D
     
    jorisshh likes this.
  14. jorisshh

    jorisshh

    Joined:
    Oct 6, 2009
    Posts:
    1,522
    Easy Save 2 integration done :) - Ready for version 0.2 (beta)
    The integration comes with multi-save support (multiple save games), as well as easy integration with future networking support.

    Unity sure is taking their time to accept the first version of quest system pro though :(
     
    Tinjaw likes this.
  15. jorisshh

    jorisshh

    Joined:
    Oct 6, 2009
    Posts:
    1,522
    Tinjaw likes this.
  16. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,030
    Great news. I never got around to trying the beta, but am still very interested. I actually need this right about now so I'll probably grab it today and start using it.
     
    jorisshh likes this.
  17. jorisshh

    jorisshh

    Joined:
    Oct 6, 2009
    Posts:
    1,522
    let me know if you have any questions or feedback :) - Things are, as always, open for improvement
     
    Tiny-Tree and magique like this.
  18. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,030
    I just got this and am installing it now. My goal today is to get this fully working with Inventory Pro and Opsive's Third Person Controller. So, I'll let you know if I have any issues or feedback throughout the day. One question I have is what is the Apache License for?
     
  19. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,030
    I installed Inventory Pro first and everything compiled and seemed fine, but after I installed Quest System Pro I get the following error from a bunch of different files:

    Assets/InventorySystem/Scripts/Managers/Editor/InventoryEditors/Crafting/CraftingBlueprintEditor.cs(11,44): error CS0246: The type or namespace name `InventorySystemEditorCrudBase`1' could not be found. Are you missing a using directive or an assembly reference?
     
  20. wood333

    wood333

    Joined:
    May 9, 2015
    Posts:
    851
    In the process of purchasing QSP and the asset store prompted me to accept a license. This has happened to me before with respect to another unity store asset, when the asset store system found license references in code and generated the accept window. When I told the other author, he had the requirement removed.

    Did you intend that we be required to accept the license? Apache license, I believe it was.
     
  21. Tinjaw

    Tinjaw

    Joined:
    Jan 9, 2014
    Posts:
    518
    Congratulations @jorisshh on your release. I purchased it right away. Downloading it now.
     
    jorisshh likes this.
  22. bjolin

    bjolin

    Joined:
    May 15, 2015
    Posts:
    3
    Had the same problem, the way I got around it was to copy the files from an otherwise blank project. First imported InvPro into the blank project, copied the InventorySystem folder to my real project. Deleted InvPro from the "blank" project then made same procedure for QSP. After that it all works. I run 5.3.5f1 on a Mac.
     
    jorisshh, hopeful and Arganth like this.
  23. Arganth

    Arganth

    Joined:
    Jul 31, 2015
    Posts:
    277
    worked for me too
     
    hopeful and magique like this.
  24. jorisshh

    jorisshh

    Joined:
    Oct 6, 2009
    Posts:
    1,522
    I'm using FullSerializer for JSON generation. It's actually a MIT license, which allows pretty much anything.

    I know of another asset that is using it, but they don't have a popup window that requires a license agreement. I'll contact Unity's asset store team about this.
     
  25. jorisshh

    jorisshh

    Joined:
    Oct 6, 2009
    Posts:
    1,522
    Thanks for the update - I'll look into it, to make sure it works without workarounds in the next version.

    I'm actually creating a Devdog.General library which all current & future projects can use. So no code duplication, better performance, and overall cleaner code :) - This should also prevent issues like this, as 'for some reason' the quest system overwrites the inventory pro's editor windows (which don't even seem to be in the package)
     
    hopeful and Tinjaw like this.
  26. Tinjaw

    Tinjaw

    Joined:
    Jan 9, 2014
    Posts:
    518
    What I have seen since about around circa kinda 5.2.x of Unity the package installer changed. Something where if I have file.xyz already installed in folder Alpha and you have a similar file.xyz in a folder Alpha, *even though they are each in separate folders*, Unity will try to act smart and overwrite the file in the first location instead of installing it in the second location. This happens quite often with Standard Assets that asset developers include in there own asset. But I suspect something similar is happening with your two assets. I will test this today and post screenies.
     
  27. Tinjaw

    Tinjaw

    Joined:
    Jan 9, 2014
    Posts:
    518
    Here is what installing the Quest system over Inventory Pro looks like. Note the similarity in sub folder paths.

     
    jorisshh likes this.
  28. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,686
    As I was falling asleep last night, it occurred to me that it might be handy if the QSP had a simple XP and leveling system added in. Kind of like how the health meter was added to the inventory system. It wouldn't be a required system, but it would be a functional option in the demos.

    This way we could see that xp gets added for quest completions, and even see a level-up occur if the demo system is elaborate enough to accept a max number of levels and xp curve.
     
    jorisshh likes this.
  29. jorisshh

    jorisshh

    Joined:
    Oct 6, 2009
    Posts:
    1,522
    All this can be handled through the reward givers. Instead of a fixed system that relies on Inventory Pro or stats there's reward givers.

    You can create your own reward givers by implementing the IRewardGiver interface ( http://devdog.io/unity-assets/quest-system-pro/documentation/quests/custom-reward-giver ). The reward givers can do.. well.. anything really :) - I've added 2 reward givers in the inventory pro integration, an item reward giver and a stat reward giver, but you can of course add your own reward givers to give any type of reward.

    Adding levels to the player stats might be a nice addition though; It would make it even more flexible :) - I was thinking of adding UI prefabs to the player stats as well to allow custom UI elements when showing stats (such as a slider / visual indicator, icons, etc).
     
  30. wood333

    wood333

    Joined:
    May 9, 2015
    Posts:
    851
    Hmmm... Since you are tracking player stats, could you total all the stats of the items worn by the character in the Inv Pro paper doll window?

    In terms of quest rewards, items that can be worn or wielded that have stat boosts will be enticing quest incentives. Imagine, earning a coat with an armor boost via QSP. Drag it onto the Inv Pro paper doll chest slot using Inv Pro, then bam, Inv Pro automatically recomputes the total stats of character and paper doll equipped items, with those totals artfully displayed in shiny new UI prefabs.:rolleyes:
     
  31. Silvermurk

    Silvermurk

    Joined:
    Apr 29, 2016
    Posts:
    164
    At the moment i import it it starts saying that it can`t find CrudeBase namespace ) Wich is sad)
    As for integrations i`d say most controller types would be appritiated : TPC, UFPS, ORK )
     
  32. jorisshh

    jorisshh

    Joined:
    Oct 6, 2009
    Posts:
    1,522
    Yep that'd be nice :) - I'll look into this
     
    wood333 likes this.
  33. jorisshh

    jorisshh

    Joined:
    Oct 6, 2009
    Posts:
    1,522
    Hey all, what are you first impressions of Quest System Pro?
    I'd love to get some feedback on it, area's of improvement, workflow, etc :)
     
  34. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,030
    I haven't tested it yet. I had the installation issue conflict with Inventory Pro and never got around to resolving it with the workaround. I have so many aspects to my project that I find it hard to find time to fiddle with installs that don't work. So, I'm waiting for an update that fixes the install issues.
     
  35. wood333

    wood333

    Joined:
    May 9, 2015
    Posts:
    851
    The license is still a purchase requirement, and it is APACHE 2.0 license
    QSP Apache License.JPG

    I will certainly purchase QSP once this is removed.

    FYI, I own about 230 assets off the unity store, and this is only the second time a license has popped up during the purchase process. (The author of the other asset removed the license requirement.)

    If you wonder why I am a stickler about this, I am an attorney, and IMO it is better to get this resolved up front, rather than be surprised later down the road. :)
     
    hopeful likes this.
  36. jorisshh

    jorisshh

    Joined:
    Oct 6, 2009
    Posts:
    1,522
    Already got it fixed for the next version :) - In fact, I'll create a hotfix update that resolves the license, I'm sure this is a showstopper for a lot of people (Great thing is Unity doesn't notify you about this until it's live in the store :p)
     
    wood333 likes this.
  37. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,030
    Is the installation conflict with Inventory Pro fixed as well?
     
  38. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,686
    @jorisshh - The current version doesn't build for me until I address two scripts that use UnityEditor. I resolved that, but it would be a good fix for the next version.

    (As usual, I'm distracted and working in a completely different area, so I haven't really integrated QSP yet.)
     
    Last edited: Jun 22, 2016
  39. jorisshh

    jorisshh

    Joined:
    Oct 6, 2009
    Posts:
    1,522
    Yes the issue is fixed; I've created a general library that is shared between all Devdog assets; This avoids conflicts on duplciate files, as well as save resources (plus, I've generalized the windows and triggers, so the integration of Rewired now works on all my assets).
     
  40. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,030
    I tried again to use this in a project where I didn't need Inventory Pro integration, but now I see there are issues with two scripts. You are referencing UnityEditor in both TimerUtility.cs and ReflectionUtility.cs which are not contained in an Editor folder. This causes compilation to fail for stand alone projects.
     
  41. jorisshh

    jorisshh

    Joined:
    Oct 6, 2009
    Posts:
    1,522
    Yep, already fixed for the next release; As a hotfix you can remove the "using UnityEditor" from the 2 scripts, they're not used.
     
  42. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,030
    Thanks. I'll be trying this soon and will let you know how it works out. I have the perfect little project for quest usage.
     
  43. ikemen_blueD

    ikemen_blueD

    Joined:
    Jan 19, 2013
    Posts:
    341
    Very interesting Quest system. Can the NPC generate infinite procedural random quests?
     
    jorisshh likes this.
  44. jorisshh

    jorisshh

    Joined:
    Oct 6, 2009
    Posts:
    1,522
    It's not build in, but yep sure; The quests are scriptable objects, so you can easily create them at run-time whenever you feel like it. All event hooks start in the MonoBehaviour.Start(), so as long as you set the quests before then you should be good :)- Keep in mind that you'll want to save the quests somewhere and re-load / deserialize them at every run-time, otherwise the user wouldn't be able to keep quests active.
     
    ikemen_blueD likes this.
  45. ikemen_blueD

    ikemen_blueD

    Joined:
    Jan 19, 2013
    Posts:
    341
    Sounds good to me. I will purchase Quest System Pro soon. I would be very appreciated if you take your time to make a sample scene about procedural quests, which I think it would be useful to many.
     
    hopeful likes this.
  46. wood333

    wood333

    Joined:
    May 9, 2015
    Posts:
    851
    This may be a new feature request, but I would like to quiz the player on what they learned/experienced in the quest, The last step to earn the quest reward would be to correctly answer multiple choice or true/false questions.

    This isn't a new idea. I have seen this in other RPG games I have played. This feature can be used to verify the player performed the quest, to show the player why the quest was important, and to subtly induce the player to pay greater attention to the lore and the quests.

    I could do a lot with this feature. What say you?
     
    jorisshh likes this.
  47. jorisshh

    jorisshh

    Joined:
    Oct 6, 2009
    Posts:
    1,522
    There's currently nothing stopping you from doing this :) - When the quest is not auto completed it has to be completed through some form of UI (or your own code of course).

    Right now the quest windows allows completing these quests; To this window you can just add some fields for the user to input their feedback.

    Fun little fact, the QuestStatusBlockUI can be used to show / hide certain pieces in the quest window based on the current quest's status. For example, in the image below, if the quest is status 'active' and can be completed by the player it will show the object this component is attached to (and any children). This makes it easy to add your own fields to the UI :)
     
    wood333 likes this.
  48. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,030
    Just a quick heads up. If you have Invector's 3rd person controller installed along with Quest System Pro, you get the following error when open the character creator window for Invector:

    Code (CSharp):
    1.     Unable to locate specified type "MyRewardGiver"
    2.       at Devdog.General.ThirdParty.FullSerializer.fsResult.AssertSuccessWithoutWarnings () [0x0001b] in C:\Wii U Games\SoC-DragonsBane\Assets\Devdog\General\ThirdParty\FullSerializer\Source\fsResult.cs:157
    3.       at Devdog.General.JsonSerializer.DeserializeTo (System.Object& obj, System.Type type, System.String json, System.Collections.Generic.List`1 objectReferences) [0x0001f] in C:\Wii U Games\SoC-DragonsBane\Assets\Devdog\General\Serialization\JsonSerializer.cs:94
    4.     UnityEngine.Debug:LogError(Object, Object)
    5.     Devdog.General.DevdogLogger:LogError(String, Object) (at Assets/Devdog/General/Misc/DevdogLogger.cs:77)
    6.     Devdog.General.DevdogLogger:LogError(String) (at Assets/Devdog/General/Misc/DevdogLogger.cs:70)
    7.     Devdog.General.JsonSerializer:DeserializeTo(Object&, Type, String, List`1) (at Assets/Devdog/General/Serialization/JsonSerializer.cs:98)
    8.     Devdog.General.JsonSerializer:DeserializeTo(Object, Type, String, List`1) (at Assets/Devdog/General/Serialization/JsonSerializer.cs:82)
    9.     Devdog.General.BetterSerializationModel:Load(List`1&, String&, Object) (at Assets/Devdog/General/Serialization/BetterSerializationModel.cs:35)
    10.     Devdog.General.BetterScriptableObject:Load() (at Assets/Devdog/General/Serialization/BetterScriptableObject.cs:32)
    11.     Devdog.QuestSystemPro.Quest:Load() (at Assets/Devdog/QuestSystemPro/Scripts/Quests/Quest.cs:137)
    12.     Devdog.General.BetterScriptableObject:OnAfterDeserialize() (at Assets/Devdog/General/Serialization/BetterScriptableObject.cs:42)
    13.     UnityEditor.AssetDatabase:LoadAssetAtPath(String)
    14.     vCreateCharacterEditor:LoadAllAssets(String, List`1&) (at Assets/Invector-3rdPersonController/Scripts/CharacterCreator/Script/Editor/vCreateCharacterEditor.cs:182)
    15.     vCreateCharacterEditor:LoadAllAssets(String, List`1&) (at Assets/Invector-3rdPersonController/Scripts/CharacterCreator/Script/Editor/vCreateCharacterEditor.cs:190)
    16.     vCreateCharacterEditor:LoadAllAssets(String, List`1&) (at Assets/Invector-3rdPersonController/Scripts/CharacterCreator/Script/Editor/vCreateCharacterEditor.cs:190)
    17.     vCreateCharacterEditor:LoadAllAssets(String, List`1&) (at Assets/Invector-3rdPersonController/Scripts/CharacterCreator/Script/Editor/vCreateCharacterEditor.cs:190)
    18.     vCreateCharacterEditor:LoadAllAssets(String, List`1&) (at Assets/Invector-3rdPersonController/Scripts/CharacterCreator/Script/Editor/vCreateCharacterEditor.cs:190)
    19.     vCreateCharacterEditor:OnEnable() (at Assets/Invector-3rdPersonController/Scripts/CharacterCreator/Script/Editor/vCreateCharacterEditor.cs:57)
    20.     UnityEditor.EditorWindow:GetWindow()
    21.     vCreateCharacterEditor:CreateNewCharacter() (at Assets/Invector-3rdPersonController/Scripts/CharacterCreator/Script/Editor/vCreateCharacterEditor.cs:51)
    22.    
    23.  
    So there must be some script conflict with their code somewhere. You might want to investigate.
     
    jorisshh and wood333 like this.
  49. jorisshh

    jorisshh

    Joined:
    Oct 6, 2009
    Posts:
    1,522
    Did anyone ask for multi-language support :)?


    Extra languages can be added to the LocalizationManager; It's not limited to any amount of languages, you can add as many as you'd like :). The localized elements are stored in a seperate object, which CAN be added into the final build of your game, so if you only want to ship a single localization you won't clutter your game with un-used localized data.

    Also, I figured I might as well add in localized textures, sprites, objects and audio clips :)
    I've added it to the Devdog.General library, so all other Devdog assets can use localization in the future
     
    Tinjaw and ikemen_blueD like this.
  50. jorisshh

    jorisshh

    Joined:
    Oct 6, 2009
    Posts:
    1,522
    The next version of Quest system pro is here :) and it comes with a full-fledged localization system!

    New
    • Localization - All nodes now have localized strings, and localized audio clips
    • OnEnter for dialogue nodes to allow changing the node's content before events are fired (which are used by the UI)
    • Updated to latest devdog.general library + NodeBase now receives IDialogueOwner in OnEnter and OnExecute
    • DialogueOwner consumes trigger callback event and prevents others from receiver it (anything after dialogue owner) + Added log message to avoid confusion
    • Nodes are now using the LocalizedAudioClip instead of regular AudioClip
    • Dialogue editor has a validation option that validates the dialogue and resyncs nodes if necesarry
    • All demo scenes update
    Fixes
    • Devdog.Internal to Editor only to avoid building issues
    • Node remained selected even after deslecting, this preventing nodes from being deleted
    • Fixed bug where dialogue UI didn't set owner icon properly; Renamed to speakerIcon, as it can also contain the player's (or others owner's) icons.
    • Change quest status node now uses +QuestStatusAction instead of QuestStatus (cleaner code); Status may have to be re-assigned
    • VariablesStringFormatter handles unfound variables accordingly