• Advertisement
Sign in to follow this  

Help on how to implement stories and quests on an RPG

This topic is 1418 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Advertisement

Wow. I must say, this thread alone makes me sad that I hadn't visited these forums long ago. Thank you for such helpful and concise posts Eck!

Share this post


Link to post
Share on other sites

I too have to thank you again, Eck! I'm going to study Morrowind's Construction Set to see how they handle quests.

Share this post


Link to post
Share on other sites

Once the quest is generated and accepted by the player it would go into some kind of quest log where you'd want to keep track of his progress. Every time a monster is killed, you could check the player's quests if that gave him credit for anything and increment his enemy kill counter for that quest. Once he's killed his 5 goblins, he can go back to Joe and collect his reward.

I'm not sure if this is what you meant, but a comfortable way of checking for quest progress is making the quest hook to (or "listen for") game events itself. You register its event hook\listener at the moment of its creation.

This way you separate the player logic from any quest logic.

In the quest logic, you have an "onGameEvent" method that is the actual hook. Each quest will have its own hook logic, its own way of reacting to game events.
 
// Event listener method for the "KillEnemiesQuest"

Method onGameEvent( event:TEvent )

	Select event.id

		Case EVENT_KILLNPC // Something was killed.

			// If the killed NPC is an enemy.

			If TEnemy( event.data ) Then 

				/* Register a kill, check for quest completion,
				   verify which zone the enemy was killed in etc. */

			End If

		Case EVENT_CANCELQUEST	

			// If the quest that was cancelled is this one, remove this quest etc.			

	End Select

End Method
Any NPC, by making use of the dialogue system, should be able to query the state of a certain quest by using a global identifier for the quest. The dialogue system then uses the "getter" method of the quest object to query its state (inactive, incomplete, completed, cancelled etc.).
In RPGMaker, this is considered a "Switch" if I'm not mistaken - a branching or alteration of the course of a dialogue based on the state of a flag variable. Edited by Kryzon

Share this post


Link to post
Share on other sites

 

 

Wow. I must say, this thread alone makes me sad that I hadn't visited these forums long ago. Thank you for such helpful and concise posts Eck!

 

What an awesome compliment. Thanks. biggrin.png I'm happy the posts turned out so well.

 

 

 


I too have to thank you again, Eck! I'm going to study Morrowind's Construction Set to see how they handle quests.
 
My pleasure. smile.png I may take the time to turn this into an article once things settle down for me. How is your quest system coming along?

 

 

I'm not sure if this is what you meant, but a comfortable way of checking for quest progress is making the quest hook to (or "listen for") game events itself. You register its event hook\listener at the moment of its creation.

 

 

Nope. I intentionally didn't mention an event system yet. Even though it's probably the right way of doing things, I felt it added another level of complexity to get right. Jacho Mendt was having trouble with the core design, and I didn't want to confuse him with the more advanced concept of an event system. New programmers often times shutdown when they hear the term "function pointers" screaming INSANITY! MADNESS! At it's core, a function pointer is just a variable that holds a function, but the concept is very strange to most.

 

That being said, Jacho Mendt has had a month and a half to mess around with his quest system. If you haven't done so already, wiring it up via events like Kryzon suggested would be a good next step in making your quest system more robust. I saw a post today with a few related links that might help you along if you're interested.

 

http://www.gamedev.net/topic/654147-game-event-system/

 

I'm curious how things are shaping up Jacho Mendt. How are things going?

 

- Eck

Edited by Eck

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement