A General Question In Relation To Quests For Your Game

Started by
7 comments, last by Iceblitz 11 years, 4 months ago
Hey there,

First off the bat I'd like to inform you that I'm a noob, I've been coding for less than 5 months so please don't bash me if this is an obvious question to be asking.

Anyways, I've been using the unity engine to practice coding, as I'm not bad at making models. I've been messing around and wanted to make some kind of quests in my little game. What I would like to make are basic pick up quests or kill quests, with a reward system.

For example, In my game i have health, enemy, attacks. So I'd like to maybe have an npc to give a quest like so:

Go kill 10 wolfs, rewards a rusty sword. And when you've killed 10 wolfs you get the reward. Or collect 10 apples, when you have them you get the reward.

I assume you'd need to make a storage database of some sorts to have this done, I've been trying to research this myself but I can't find anything remotely helpful. I'm hoping someone very kind with a heap of experience can point me in the right directions and hopefully give me some links to tutorials or something of that nature.

Anyways, thanks for taking time out to ready my query,

Nick
Advertisement
I'll toss out some ideas on how I might approach the problem and hope that helps.

  • I would probably create quests as a hidden inventory object that is effectively a container of prerequisites, requirements, rewards, etc. This would provide an easy solution for saving your quest state, as they would effectively be saved using the same mechanisms you save your inventory state already.
  • I would consider treating quests as an inventory item of sorts, that you can simply equip an NPC with in order to make them a quest giver. Talking to NPCs would check all the quests in their inventory to see if your character currently meets the 'prerequisites' in order to be offered the quest(good enough faction, high enough level, etc).
  • In accepting a quest, I would transfer the quest object to the players inventory and remove it from the NPCs.
  • From the players inventory it can be referenced again to access whatever requirements it has to complete, maybe even what the reward is too.
  • Maybe quest items in the players inventory receive notifications when the player kills enemies, picks up items, etc, so that if the enemy killed, item picked up, person talked to, etc is a requirement of the quest, it can increment its internal counter to 'check off' an element of the requirements.
  • When completing a quest I would probably maintain it in the inventory as a shell object as the indicator of quest completeness, and it would also be available for other elements of the game to query and provide quests that are 'smart' to quests you've already done, or dialog choices to reflect the previous deeds of the character, etc.
BALLZ TO IT... my mozila crash after like 30 min of writing a post and gathering info... am gonna rush it now :(

For example, In my game i have health, enemy, attacks. So I'd like to maybe have an npc to give a quest like so:
Go kill 10 wolfs, rewards a rusty sword. And when you've killed 10 wolfs you get the reward. Or collect 10 apples, when you have them you get the reward.

Well nick, you should slow down a bit if your trying to make a "my little game.". You need here battle system, NPC events, inventory, harvesting...
For battle system(try simple, 1attacks, 2attacks, repeat until victory or lose)
NPC events : Quests(try just making basic collision, if you come close to "Quest unit" add quest), Rewards(Again, come close to npc and get reward instantly no UI)
Inventory (inventory system or somehow to manage the "rusty sword" you want to give(should go slow and try maybe add 5+ to attack points instead of items at first)
Harvesting(I refer to the apple collection, Again simple and easy, you walk near apple and you collected it, no fancy stuff for now)

Its good to have ambitions, and if your struggling try to just mash this code together so it performs what you envisioned.

give me some links to tutorials or something of that nature.
[/quote]
I bean true so many tutorials, but i never done unity. Hope someone will assist you better.
Good luck!


I would probably create quests as a hidden inventory object that is effectively a container of prerequisites, requirements, rewards, etc. This would provide an easy solution for saving your quest state, as they would effectively be saved using the same mechanisms you save your inventory state already.

Depends on what he makes for an inventory system, and implementing quests intro items... its easier just making a quest system with minimal UI.
Its doable but consider it a bad practice.
It's not bad practice at all. It's a common practice in modern games. It's not the only way to do it, but I would suggest it that way because it doesn't require a completely new system to the existing inventory system, which such a game will require anyways. If you have some concrete reason to call it bad practice please share, but this would not be considered a bad solution in any of the industry jobs I've worked, and it's pretty ideal for the simplistic needs of a hobby developer.
It is common practice, although when I've done it I just duplicated the inventory system handler instead and created a different menu for interacting with the second system. That was a very lightweight system, though, so ymmv.
void hurrrrrrrr() {__asm sub [ebp+4],5;}

There are ten kinds of people in this world: those who understand binary and those who don't.

It's not bad practice at all. It's a common practice in modern games. It's not the only way to do it, but I would suggest it that way because it doesn't require a completely new system to the existing inventory system, which such a game will require anyways. If you have some concrete reason to call it bad practice please share, but this would not be considered a bad solution in any of the industry jobs I've worked, and it's pretty ideal for the simplistic needs of a hobby developer.

Maybe with unity its good to implement quests intro items. At the end it all depends how you structure the game, and how the inventory is designed.
If you both agree that its common practice in modern games so be it.
Never thought of doing quests as inventory items. Interesting. It also makes it difficult to duplicate quests as there is only one of them in the world.
Won't that make you start littering item management code with conditionals? I assume it depends on how complicated your item system is and how well this maps to tracking quests.

DrEvil/Khatharr any write-ups on this method you could point us to? Thanks! :)

I'll toss out some ideas on how I might approach the problem and hope that helps.

  • I would probably create quests as a hidden inventory object that is effectively a container of prerequisites, requirements, rewards, etc. This would provide an easy solution for saving your quest state, as they would effectively be saved using the same mechanisms you save your inventory state already.
  • I would consider treating quests as an inventory item of sorts, that you can simply equip an NPC with in order to make them a quest giver. Talking to NPCs would check all the quests in their inventory to see if your character currently meets the 'prerequisites' in order to be offered the quest(good enough faction, high enough level, etc).
  • In accepting a quest, I would transfer the quest object to the players inventory and remove it from the NPCs.
  • From the players inventory it can be referenced again to access whatever requirements it has to complete, maybe even what the reward is too.
  • Maybe quest items in the players inventory receive notifications when the player kills enemies, picks up items, etc, so that if the enemy killed, item picked up, person talked to, etc is a requirement of the quest, it can increment its internal counter to 'check off' an element of the requirements.
  • When completing a quest I would probably maintain it in the inventory as a shell object as the indicator of quest completeness, and it would also be available for other elements of the game to query and provide quests that are 'smart' to quests you've already done, or dialog choices to reflect the previous deeds of the character, etc.



hmm I've never thought of doing it like that. I do have an inventory currently in game, so correct me if im wrong. I'd make a on gui with quest text ect and maybe have something like a counter on my inventory or items picked up (like apples as per the example) and when apples = 10 quest complete or something. Also how would that apply to kill quests and rewards?

Because i was thinking if it's a large game, with allot of quests, would that slow the game down?


On a side note, I've been using 3d buzz for their mmorpg dev class, they created a database, I assume you can create a quest system by making custom set, get, lines of code?

On an additional note aswell, I've been thinking about your post throughout today and I figured out a method of making the quest thing. Correct me if im wrong. This is the theory:
Set-up a quest active thing by the npc. When you press accept quest, the quest which was deactivated in your inventory is active.
This tracks your quest. When you've completed it, this will activate on the npc something which allows you to get the reward and finish.
When you accept your reward, it disabled the npc's quest that you just did and the stuff on your inventory.

This topic is closed to new replies.

Advertisement