Search Unity

Quest It?! - Quest/Dialog/Inventory Editor - Released!

Discussion in 'Made With Unity' started by CaptainKiyaku, Aug 5, 2010.

  1. CaptainKiyaku

    CaptainKiyaku

    Joined:
    Feb 8, 2009
    Posts:
    324


    "Quest It?!" Released!

    [ ABOUT ]

    With "Quest It?!" you can easily create quests, dialogs and item in the style of common MMORPGs like WoW and co without the need of programming.

    So you basically get three editors in one!

    It works with Unity v2 and supports Mac, PC, Webplayer and iPhone!

    [ CURRENT FEATURES ]
    • Dialog Editor to create dialogs including conversation forks and quests
    • Item Editor to create new items and change their name, icon, model, stack size and description (more will follow in later updates)
    • Quest Editor to create Quests with Conditions (Kill and Collect), pre-quests with conditions, rewards and quest lines
    • You can easily toggle between MySQL and XML to store your Inventory, Quest and Item Database
    • Simple Inventory that includes picking up items, re-stacking and dropping items to the ground
    • Quest List to show your current progress on specific quests
    • Callbacks for certain events like accepting a quest, completing a quest, killing a monster or picking up an item

    [ UPCOMING FEATURES ]
    • Conditions for dialogs
    [ LICENSE ]

    The price for a license is $39,99 USD and you can use it as often as you want.
    Additional updates and addons will be free once you purchased a license.


    [ DOWNLOAD ]

    Download includes:
    • Detailed documentation
    • MySQL Database Layout to integrate to your server
    • PHP Example files to read informations from your DB
    • "Quest It?" package to easily add the Editor to your project
    • Example project to see how it works
    You can also download the manual and demo:
    Manual
    Demo Windows
    Demo Mac
    Demo Web


    BUY NOW!


    [ SCREENSHOTS ]










    Greetings,
    Sven
     
    Last edited: Oct 5, 2011
  2. BlackMantis

    BlackMantis

    Joined:
    Feb 7, 2010
    Posts:
    1,475
    Sweet, I think many of the community will want this :D
     
  3. mikesgames

    mikesgames

    Joined:
    Apr 16, 2010
    Posts:
    1,071
    wow, this a really cool extension for the Unity editor.

    I want a copy when it comes out
    * topic subscribed to*
     
  4. RoyS

    RoyS

    Joined:
    Jan 12, 2009
    Posts:
    664
    I am also interested.
     
  5. afalk

    afalk

    Joined:
    Jun 21, 2010
    Posts:
    164
    Looks extremely promising -- lookgin forward to seeing a finessed and finished version (subscribed to topic) :D
     
  6. CaptainKiyaku

    CaptainKiyaku

    Joined:
    Feb 8, 2009
    Posts:
    324
    Thanks guys!

    The release should be soon, i only have to fix a few bugs and write the documentation.
     
  7. CaptainKiyaku

    CaptainKiyaku

    Joined:
    Feb 8, 2009
    Posts:
    324
    "Quest It?!" is out now!

    Enter "ILOVEUNITY" to get 20% off for the next 48 hours!

    (Link is at the first post)
     
  8. tobiass

    tobiass

    Joined:
    Apr 7, 2009
    Posts:
    3,066
    Looks good.

    Do you plan to support conditions in your dialog trees? Like options that are only shown when you have some item or skill? Or only once?

    With php and mysql it looks like it works "only" online. Is that true? Or is it possible to switch to sqlite and create quests without a server?
     
  9. Deleted User

    Deleted User

    Guest

    great extension!

    is possible to do single player games with this? (not online)
     
  10. CaptainKiyaku

    CaptainKiyaku

    Joined:
    Feb 8, 2009
    Posts:
    324
    Yes i am actually planning to add conditions for dialogs.

    You can also use a local database using XAMPP or something simliar and create your database, just change the "serveraddress" to your localhost and it works as well.


    Yes you can use XML to store your informations so no need for a server to store.
     
  11. YourMother999

    YourMother999

    Joined:
    Jul 11, 2010
    Posts:
    115
    Buying right now. looks great!
     
  12. CaptainKiyaku

    CaptainKiyaku

    Joined:
    Feb 8, 2009
    Posts:
    324
    Thanks!

    I added the menu and a demo for both Mac and PC to the Download section so you can try it out first.
     
  13. Gamerdad81

    Gamerdad81

    Joined:
    Jul 25, 2010
    Posts:
    23
    Few questions, after ive made my new quest and edited quest dialog, what scripts do i attach to the npc im getting the quest from?
     
  14. CaptainKiyaku

    CaptainKiyaku

    Joined:
    Feb 8, 2009
    Posts:
    324
    Oh good point i forgot this on my manual, i will update it as soon as possible.

    You give your NPC the "showDialog" script and type in the dialog name (without the .xml). That's all you need to do.
     
  15. Gamerdad81

    Gamerdad81

    Joined:
    Jul 25, 2010
    Posts:
    23
    Thanks for the swift response, amazing work by the way, im pretty new to scripting n such, so a pretty detailed explanation on what scripts get attached to the main player and which ones get attached to the npc's would be great, also i figured out how to get the inventory working i think, i just attached the IM script to an empty in the scene and i can push the "I" key and get the inventory to pop up, however i made an object (to pick up) and attached a rigidbody and collider to it, and i can get the mouseover to turn it green but i cant pick it up im getting "object reference not set to an instance of an object" when i click on the item. any ideas ? :)
     
  16. CaptainKiyaku

    CaptainKiyaku

    Joined:
    Feb 8, 2009
    Posts:
    324
    Thanks for the nice words and i'm glad it helps :D

    You actually don't have to assign the IM to an empty Gameobject. You can find a Prefab called "_SETUP" in the "Questit/Prefabs" folder. Drag this into your scene and it will already contain the IM gameobject (just collapse the item to see it has some child objects attached to it).

    Multiple IM can cause problems so i recommend just to use the "_SETUP" prefab.

    Let me know if you have any other questions :)
     
  17. Gamerdad81

    Gamerdad81

    Joined:
    Jul 25, 2010
    Posts:
    23
    Ok , attaching the showDialog script on my npc worked great i get a box that pops up with his name but im not seeing any dialog at all, is there anything else i need to attach to him?
     
  18. Gamerdad81

    Gamerdad81

    Joined:
    Jul 25, 2010
    Posts:
    23
    and thanks for the tip i removed the IM from the empty and still working fine
     
  19. Gamerdad81

    Gamerdad81

    Joined:
    Jul 25, 2010
    Posts:
    23
    I know i'm asking alot of questions, im just excited about getting this working right :) what scripts do i attach to objects that i want to pick up? and do i add rigidbodies and colliders to them?
     
  20. CaptainKiyaku

    CaptainKiyaku

    Joined:
    Feb 8, 2009
    Posts:
    324
    You can ask as many questions as you want, i want you to enjoy that extension to the fullest :)

    Your NPC is working when the box opens up. If you can't see any dialog, make sure you:
    1) typed in the correct dialog name (without the .xml and it should be case sensitive, so if your dialog file is called "myDialog.xml", type in "myDialog")
    2) The script is saved in the correct folder, it must be "Assets/QuestIt/Dialog/" but this folder is the default one when saving your dialogs.

    Let me know if this helps :)

    If you want to create a new item object, just create your item, assign a collider (this is important to be able to click on it) and the script called "item".
    The rigidbody is not necessary, it just makes it looks nicer when falling to the ground.

    NOTE: When you drop an item to the ground, it adds the collider, script and rigidbody by default.
     
  21. Gamerdad81

    Gamerdad81

    Joined:
    Jul 25, 2010
    Posts:
    23
    K think im just gonna remove questit from the project and retry it with all the advice you have given, i may have messed something up in the process while i was playing around with things :) off to bed, if i have anymore questions ill send them tomarrow thanks again!
     
  22. CaptainKiyaku

    CaptainKiyaku

    Joined:
    Feb 8, 2009
    Posts:
    324
    I've updated the documentation. I forgot about how to setup the dialogs ingame and how to create new items.

    Hope this helps :)
     
  23. Deleted User

    Deleted User

    Guest

    i´m going to buy it on my next project :D
     
  24. Gamerdad81

    Gamerdad81

    Joined:
    Jul 25, 2010
    Posts:
    23
    Thanks! reimported questit into the project and followed your updated doc's, and everything works great, only thing is when i start the game the question mark over the npc's head is way up above him, how would i lower that to be closer to the top of his head?
     
  25. Deleted User

    Deleted User

    Guest

    do this work on iphone? (unity3)
     
  26. CaptainKiyaku

    CaptainKiyaku

    Joined:
    Feb 8, 2009
    Posts:
    324
    @Gamerdad81, right now it uses the NPC's collision box to detect the icon size.
    To change the size, open the script "showDialog" and edit line 24:
    Code (csharp):
    1. planePtr.position = transform.position + new Vector3(0, collider.bounds.max.y * 1.2f, 0);
    you could just replace the "collider.bounds.max.y * 1.2f" with something like "0.7f" depending on how high you want it to be.

    In the next update you can change the value in the editor.


    @Raul, from my first message:
    So currently it doesn't support the iPhone but i am working on a version and it shouldn't take too long :)

    The update will be free for everyone who purchased the package already. So you could use the 20% off coupon now and get the update later.

    The coupon ends at sunday morning at 00:01am.
     
  27. Gamerdad81

    Gamerdad81

    Joined:
    Jul 25, 2010
    Posts:
    23
    Still Cant get the Item Pickups to work, I am following the directions in the manual, I drop my model add a collider, add a rigid, i made sure the name was right in the item editor, have the prefab put in the resources folder but everytime i get a syntax error:

    NullReferenceException: Object reference not set to an instance of an object
    IM.addItemToInventory (.cItem i) (at Assets\QuestIt\Scripts\Inventory\IM.cs:508)
    GM+<>c__CompilerGenerated1.MoveNext () (at Assets\QuestIt\Scripts\GM.cs:107)

    any ideas?

    this happens when i click on the item, i can see the color changing to green when i mouse over but when i click it i get that error.
     
  28. Gamerdad81

    Gamerdad81

    Joined:
    Jul 25, 2010
    Posts:
    23
    Also Im getting this:

    Assets/QuestIt/Scripts/Inventory/IM.cs(67,17): warning CS0219: The variable `id' is assigned but its value is never used

    All of the time. :)
     
  29. CaptainKiyaku

    CaptainKiyaku

    Joined:
    Feb 8, 2009
    Posts:
    324
    About the error, i guess you just placed the item in the scene?
    That's not working. It must be spawned ingame to work (so it gets the correct ID).

    However i added a prefab to the Example project, located in "Prefabs" and it's called "itemSpawner". You can use that prefab to spawn an item using it's name :)

    I think i should clarify that in the documentation more.

    You can just ignore the warning about the "id". It's just an leftover from a previous version. Will remove it in future updates :)
     
  30. Gamerdad81

    Gamerdad81

    Joined:
    Jul 25, 2010
    Posts:
    23
    Ok, so do i attach a script to the itemSpawner prefab? also in the name field of the prefab do i add the name of the item that is stored in my project? for example if i had an object in my project file called "StoneAxe" do i just put that name in the name field of the itemSpawner then just drop it in the scene? or do i put the name of a prefab in the name field and if so does it have to be in my resources folder?. - Also lol, when i import Questit into my unity project the resource folder doesn't come with, i have to manually drag it into the project, does it go inside the questit folder i assume?
     
  31. Argien

    Argien

    Joined:
    Aug 1, 2010
    Posts:
    18
    Hi,

    Nice work, Kiyaku. I just made a few tests and it looks real good :)

    You have to put the itemSpawner prefab in the scene ,where you want your item to be. The "Item name" field of the script must correspond to the "Name" field in the item editor.
    Kiyaku will correct me if there's a better way ;)
     
  32. CaptainKiyaku

    CaptainKiyaku

    Joined:
    Feb 8, 2009
    Posts:
    324
    Thanks Argien, and you are totally right about the item spawner object, that's how it works :)

    The "Resources" folder is a folder from Unity, you can use it to load files during the game using "Resources.Load". I'm not sure if the folder must be outside of everything or if you can put it into the QuestIt folder too, but just leave it outside, it is not really related to quest it, it just helps to load the files when you play the game :)
    Make sure the name is correct of the folder so Unity will recognize it.

    http://unity3d.com/support/documentation/ScriptReference/Resources.html

    Hope that helps :)
     
  33. Gamerdad81

    Gamerdad81

    Joined:
    Jul 25, 2010
    Posts:
    23
    Thanks much guys, my problem was that i was putting the prefab name in the "Name" field instead of the actual name i called the item in the item editor. Everything works great now, thanks again :)
     
  34. CaptainKiyaku

    CaptainKiyaku

    Joined:
    Feb 8, 2009
    Posts:
    324
    You are welcome, glad it is working for you now. Have fun with it :D
     
  35. Argien

    Argien

    Joined:
    Aug 1, 2010
    Posts:
    18
    I also have a question:

    Right now, I can pick up an item when clicking on it, no matter how far it is from my character.
    I made my (3rd person) character move closer first when I click on something, but then I don't know which functions to use to pick up items. Could you tell me where I should look?

    Thanks ;)
     
  36. CaptainKiyaku

    CaptainKiyaku

    Joined:
    Feb 8, 2009
    Posts:
    324
    Yes check out the GM.cs file to see how pickup works right now:

    Code (csharp):
    1. IEnumerator scanForItems()
    2.     {
    3.         Ray mouseRay;
    4.         RaycastHit hit;
    5.        
    6.         while(true)
    7.         {
    8.             if (Input.GetMouseButtonDown(0))
    9.             {
    10.                 mouseRay = Camera.main.ScreenPointToRay(Input.mousePosition);
    11.  
    12.                 if (Physics.Raycast(mouseRay, out hit, 100, ~(1 << 8)))
    13.                 {
    14.                     if (hit.transform.GetComponent<item>())
    15.                     {
    16.                         if (IM.Ins.addItemToInventory(hit.transform.GetComponent<item>().itemPtr))
    17.                             Destroy(hit.transform.gameObject);
    18.                         else
    19.                             hit.transform.GetComponent<item>().drop();
    20.                     }
    21.                     else
    22.                     {
    23.                         itemToPickUp = null;
    24.                     }
    25.                 }
    26.             }
    27.            
    28.             yield return null;
    29.         }
    30.     }
    31.  
    So i just scan for the item when the user presses the mouse button and if i hit it, i add it using "IM.Ins.addItemToInventory(itemPtr);".

    It returns true when it worked (like you have enough inventory space) and false if something didn't work.
     
  37. Argien

    Argien

    Joined:
    Aug 1, 2010
    Posts:
    18
    Thanks, I got it to work.

    Nice extension btw, I was happy to see my first quest.
    I'd also have a few suggestions, but I'll keep using it a bit longer first to see if they make sense :)
     
  38. Gamerdad81

    Gamerdad81

    Joined:
    Jul 25, 2010
    Posts:
    23
    Another question here :), concerning quest chains, scenario: i have 1 npc that i want to do a quest chain on, so i made a quest called "@0 Helping Barry", and saved the dialog as "HelpingBarry" attached the showDialog script to him and for name put in "HelpingBarry" this works fine, i go get my 3 potions, turn it in, get my rewards. Now shouldnt the next quest in the chain trigger? the quest is called "@1 Helping Barry" and i named the dialog for that one "HelpingBarry2", I attached a 2nd showDialog to the npc and for that name i put in "HelpingBarry2". so when im done turning in my 3 potions at the first quest and i get my rewards, he has an exclamation over his head again (which is good) but when i talk to him he just shoots the dialog back from the first quest again. My quest setup is: For the first helping barry quest it has no pre quests (obviously because its the first one). my next helping barry quest (the @1 quest) has my @0 quest as the prereq and its set to done. i also put 3 health pots as the requirements for the quest just to test the chain system out. "turn in at same NPC?" is checked on both. So basically i turn in the first quest fine and get my rewards, works perfect, and he gets another exclamation pop up over his head, but when i click him again he starts the same dialog over from the first quest (but doesnt offer the quest, because i already finished it).

    Any ideas why he isnt going to the next quest in the chain?
     
  39. CaptainKiyaku

    CaptainKiyaku

    Joined:
    Feb 8, 2009
    Posts:
    324
    @Argien:
    Thank you :)
    And yes if you have any requests for future updates, feel free to write me about it (here, pm or my email from the documentation).

    Have fun with it!


    @Gamerdad:
    You have to assign the following quest to the same dialog. Every NPC can only have one Dialog right now.

    So if you add your "@0 Helping Barry" and "@1 Helping Barry" to your NPCs dialog (you can click "Add Quest" twice), you will get your "@1 Helping Barry" quest if you finished your first one (as long as you set the first one as pre-quest for the second one).

    Let me know if that helped :)
     
  40. Gamerdad81

    Gamerdad81

    Joined:
    Jul 25, 2010
    Posts:
    23
    Yep, worked well thanks again. Can't wait till you can get quest rewards even if "Turn in at same npc" isnt checked :)
     
  41. shotgunk1w1

    shotgunk1w1

    Joined:
    Feb 16, 2010
    Posts:
    13
    Ill be a customer once you get the webplayer version - I think this will save me a bunch of time in our little online world. :)
     
  42. CaptainKiyaku

    CaptainKiyaku

    Joined:
    Feb 8, 2009
    Posts:
    324
    Quest It?! v1.1 released!

    The new update includes web player support.
    Previous buyers should receive a download link in the next hour.

    Thank you!
     
  43. shotgunk1w1

    shotgunk1w1

    Joined:
    Feb 16, 2010
    Posts:
    13
    I noticed a seemingly too-long load time on the webplayer demo, is that just because you have large art assets? How big are all the scripts for (just) the quest system?
     
  44. CaptainKiyaku

    CaptainKiyaku

    Joined:
    Feb 8, 2009
    Posts:
    324
    The webdemo is 4MB and yes most of it is art, and my server isn't the fastest sometimes :)

    The questit.unitypackage is just ~780kb including all scripts, prefabs and textures.
     
  45. Gamerdad81

    Gamerdad81

    Joined:
    Jul 25, 2010
    Posts:
    23
    Hey again, i was curious if it would be easy enough to swap out the inventory system you supplied with questit with a different one, without messing anything up. namely http://forum.unity3d.com/viewtopic.php?t=51407. which is the RPG inventory from the showcase section. Would i just replace these scripts with the current ones your using in questit? or would it be a little more involved. Thanks ahead of time.
     
  46. xToxicInferno

    xToxicInferno

    Joined:
    Jan 31, 2010
    Posts:
    47
    First off, amazing work from what i can see in the web demo. Now i just want to throw this out there: In the package are you able to click on things through the GUI? I was wondering this as it would not be to great if someone had the game set-up to a point and click MMO, and while they are talking, they keep moving around. Aside from that great job, though i will not be purchasing it as i do unity as a hobby for now.

    Also, not that it is a big deal, but Steve says "I am the town Masonry", it just sounds off, so i think you MAY of meant "town mason" though i may be wrong.
     
  47. CaptainKiyaku

    CaptainKiyaku

    Joined:
    Feb 8, 2009
    Posts:
    324
    You would have to comment out or delete the Inventory in my scripts (its located in the GM.cs file) and then add the Inventory system from that other person and modify his script so it can use my item class to display the icons. Then it should work.


    Thanks :)
    Yes right now you are able to click through the GUI's. It's easy to prevent clicking through the gui, i might add this in the upcoming update cause it was bugging me now and then as well.

    Thanks for the "mason" tip, i guess i will change it :)
     
  48. huxley

    huxley

    Joined:
    Apr 27, 2009
    Posts:
    334
    Hi Kiyaku,

    I've enountered some difficultly getting the dialog to appear when creating the game is a web browser. Everything is working correctly in Unity, and the inventory screen appears in the web browser.

    I have setup the web directory as the documentation specifies, with a Questit folder in the same directory as the .unity3d file, which includes a DB, Dialog, and PHP folder with the saveIncentory.php file set to 755.

    Here is the code I am using for the NPC hit detection:
    Code (csharp):
    1. private var hit : RaycastHit;
    2.  
    3. function Update ()
    4. {
    5.     if (Input.GetMouseButtonDown(0))
    6.     {
    7.             ray = Camera.main.ScreenPointToRay(Input.mousePosition);
    8.  
    9.         if (Physics.Raycast(ray, hit, 100, ~(1 << 8)))
    10.         {
    11.             if (hit.transform.GetComponent("sexDialog"))
    12.             {
    13.                 hit.transform.GetComponent("sexDialog").StartDialog();
    14.             }
    15.         }
    16.     }
    17. }
    Maybe I am missing something else? Are there any debuging verbose I can use in the web player to track down where the issue lies?
     
  49. huxley

    huxley

    Joined:
    Apr 27, 2009
    Posts:
    334
  50. CaptainKiyaku

    CaptainKiyaku

    Joined:
    Feb 8, 2009
    Posts:
    324
    Hi,
    your code looks fine to me.

    To answer your first question, you can check the Debug messages from a webplayer too, check out this link to see where you can find the messages:

    http://unity3d.com/support/documentation/Manual/Web Player Debugging.html

    It seems like your webbuild can't locate or read the dialog and DB files. Make sure you set the right permission for the folders and that the webuser has access to them.
    Also make sure the "QuestIt" folder is spelled right (i think it's case sensitive so make sure the "i" is uppercase).

    Let me know if it helped.

    Greetings,
    Sven