From platform adventure games and single player role-playing games to large-scale MMORPGs, most games these days feature quests, missions, and achievements implemented by us developers to keep players engaged and ensure the progression of the storyline.
For Unity game developers, however, handling quests requirements and rewards and connecting them with NPC-to-player conversation trees has so far been a long and frustratingly cumbersome process.
That’s why we started working on a solution to this problem a few months ago. And today, we’re finally ready to launch “Quest System Pro”.
The Asset is available right now on the Unity Asset Store at a 30% launch discount, so be sure to go check it out once you’re done reading this blog post.
Want to be sure not to miss out on future promotions, discounts, giveaways and more? Signup to our free newsletter. Don’t worry, we typically send less than 1 e-mail per month.
With that said, let’s dive into a few of the things you can do with Quest System Pro for Unity, and what we have planned for the future.
Just as with Inventory Pro and our other Assets, we plan to develop and evolve Quest System Pro based on feedback from fellow developers like you, so be sure to let us know either via our forum or through an e-mail if there’s anything you’d like to see added to the Asset.
Quest System Pro is a super flexible quest, achievement, and dialogue system that allows you to create ANY type of quest and define each individual quest's set of tasks through an editor as shown below:
Once you’ve got the quests, achievements, and missions setup, you can move on to the dialogue conversation tree system, which allows you to control NPC-to-Player conversations based on certain conditions and requirements, such as only allowing the player to start a dialgoeu with a NPC if the player already has an active quest.
As of version 1.0, Quest System Pro has the following quest-types baked in:
Well, we DID say we made Quest System Pro super flexible, didn’t we? :)
Therefore, we allow complete modification of the UI and new nodes can even be added to create your own unique behaviors in case you’re looking for something different.
In addition, we’ve made the Quest System Pro API super easy to use, and all interfaces, generics and polymorphic types are serialized, allowing you to setup restrictions based on your own game, such as only allowing the player to start a quest after a certain level.
For example, to set a quest’s progress through the API, simply call
- // Tasks
- // And voila, you've set the progress and all UI will automatically update.
- myQuest.SetTaskProgress("KillTask", 1f);
- var task = myQuest.GetTask("KillTask");
- float progressNormalized = task.progressNormalized;
- task.OnProgressChanged += (float before, Task self)
- // Called when progress is changed
- // Quests
- bool canComplete = myQuest.CanComplete();
- myQuest.OnTaskProgressChanged += (float taskProgressBefore, Task task, Quest quest)
- // Called when one of the tasks' progress changed.
Oh, and we also already made sure that Quest System Pro integrates well with PlayMaker, ReWired input, and Inventory Pro right from the start.
As always, we will continue working on develop Quest System Pro based on your feedback, so be sure to let us know what your thoughts are after having tried the asset.
For an updated internal TODO list, check out our Work in Progress thread on the Unity website.
Prior to Devdog, I ran an online games industry news media for and about Nordic game developers for nearly two years.
During that time, I often reached out to new game developers directly, apart from interviewing the ones who sent a press release directly to me.
A few weeks ago, we bought a Unity Asset that really let us down.
In developing our own assets, we spend a lot of time on the Asset Store, researching the market and getting inspired.
Item Collections in Inventory Pro are powerful collections that can contain items, stack, unstack, merge items and much, much more.
As we'll soon see, however, these features aren't only useful when creating a traditional RPG inventory system, but can be used in many aspects of your game.
We're a developer and publisher of best-in-class tools and asset for the Unity game engine. We develop and sell but also publish products like Odin for talented developers and artists around the world.