Advertisement

Dynamic (random) mission generator

Started by June 27, 2005 12:06 PM
39 comments, last by robert4818 19 years, 6 months ago
One of the holy grails of MMO’s are random quest (mission) generators that do not seem repetitive. Part of the problem with this, is that there really are only a few types of quests. Its just the dressing that changes. Quest types Go someplace and then: Interact with someone/something Find something/someone and return Kill/destroy something/someone Protect something/someone Deliver something/someone Survive Video games have a few variations, such as go kill x creatures, but there really is not many more generic quest types. And if you come up with one I bet it would most likely fall into one of the above quests. So how do you take these 5 generic quests and make them into an interesting system that generates random quests? I’ll talk about this in a few steps. Step 1, Mix up the types. This creates a series of quests that have two or more objectives from the above list. Go from one main goal, to two, or even three main goals. Example: Protect someone, while you Kill something, so that they can interact with someone/something afterwards. Step 1a. Create some quests that are multi-tiered. Don’t make every quest go here and do these 1-3 things. Make some quests be Go here do 1, then go here do 2, and finally go here and do 3. At any time you may use steps 2 and 3. This will give you many types of quests. Step 2, Toss in the random surprise. Basically have a random chance that the mission will change while in the middle of the mission. Don’t do this too randomly basically a 5-10% chance (once every 10-20 missions.) Basically take the given mission and then switch it to one of the other sets of conditions. Example, You are going to kill someone/something in a dungeon, and then someone hits self destruct, you now have to survive the situation. Step 3, Link Quests together. This is accomplished by tossing in a tag on certain missions to generate a “bad guy” in the background. This guys name is randomly generated, but is tagged and then logged into the player’s logs (account.) The next time this player should end up with another “bad guy” quest, the game instead tosses in this guy’s name, and then logs the tally of the number of quests completed against this bad guy. After a predetermined (either programmed or randomly generated when the badguy is first tagged) number of missions where this guy is tagged, the player will be offered a mission that includes as one of its objectives (kill someone) where the someone is the generated bad guy. Give this quest a higher than normal (say 10-20%) chance of having the random twist. If the twist does occur, do not kill the bad guy but the quest count against him is reset, and then starts over. This will give the player the appearance of an arch villain. Step 4. Random, instanced, dungeons. In my opinion this is a must. And it must be worked well. The system that is used in COH isn’t bad, nor is the one from Anarchy online. I think they could be better, but for now I’ll stick with this. Step 5. Sometimes ignore step 4. This makes it feel as though the mission system is part of the game world, and not just a random add on. Step 6. This is the hardest part, but probably one of the most important. Get some good writers, and have them creates some decent story pieces that can be randomly tossed together to form a basic story. They don’t need to be nobel prizes in literature, but they do need to be more than the same 5-6 stories with a name change. Step 6a. Take the story and place it in the mission. Do not just give the mission in an over-view at the very beginning. Put NPC’s in that help push the story along. If you put these six steps together I think you will have a large system with a huge amount of quests. What do you all think? I do understand that the above would be a great undertaking. But one thing I’ve noticed is with games that have random mission generators is that the missions can become one of the biggest parts of the games. Any system will eventually be repetitive, but one put together like this will take a lot longer to show its cracks than ones that are currently in games. I personally think that games that decide to undertake a system that does this need to put in the work to actually make the system shine.
Ideas presented here are free. They are presented for the community to use how they see fit. All I ask is just a thanks if they should be used.
That's a nice set of rules for generating random quests. It doesn't have anything too technical, it wouldn't take millenia to code, which is really good - it can be done :)

The only problem is, assuming you have a set of quest types, each one with different "dressing" stories, and you tie a string of 2 or 3 together, wouldn't it be a bit weird? It's possible that they don't relate in any way. I was here to rescue the lumberjack's daughter from some orcs, and suddenly I'm asked to recover a priceless jewel from an evil wizard. How do these 2 stories relate to each other?
Advertisement
Quote:
Original post by Jotaf
That's a nice set of rules for generating random quests. It doesn't have anything too technical, it wouldn't take millenia to code, which is really good - it can be done :)

The only problem is, assuming you have a set of quest types, each one with different "dressing" stories, and you tie a string of 2 or 3 together, wouldn't it be a bit weird? It's possible that they don't relate in any way. I was here to rescue the lumberjack's daughter from some orcs, and suddenly I'm asked to recover a priceless jewel from an evil wizard. How do these 2 stories relate to each other?


Put it in terms of Grand Theft Auto > rescue mob bosses' daughter from gangsters, steal precious jewel from Jakuza. Doesn't matter if they are linked.
The linked ones are given a common bad guy...not all quests will be related. The key here is that you are given certain bad guys from tiem to time that you'll see again.

In City of Hero's terms... you'll get some missions that have the same arch villian (say Dr. Vahlziak) who is "over-seeing" the mission. I.E. He's mentioned in the brief, or the fluff of the mission. Then after a pre-determined set of missions you'll get the option to try to take him out.

That's how they link. Now whatever his plans may be, who knows...one day it may be a museum robbery, the next its trying to blow up the damn.

Thanks for the feedback though.

I guess I did forget Step 7.

Step 7. Continue to update the mission types. Don't just keep it go kill person X. Vary the Mob, Vary the person's abilities, vary different conditions. Such as kill no-body but the target, kill everyone, etc. Do not just put together a mission system and then say whew we are done.
Ideas presented here are free. They are presented for the community to use how they see fit. All I ask is just a thanks if they should be used.
The only thing i see with most random quest generation systems is consistency. If some villain just blew up a museum yesterday, there can't be a quest today to prevent the same villain from stealing something from the museum that blew up yesterday. Thus, there are inherent environmental dependencies that arise, unless you take those into consideration and order some of the random quests. Or completely rule out those that may have environmental impact.

With dependencies, it also opens up the possibility that failing one quest will kill an entire branch of possible quests. Like quests related to saving some kid who likes to get into alot of trouble will have to become inaccessible when you accidentally fails it once and the kid dies or something.

As long as inherent dependencies and constraints are satisfied or avoided, a random quest generator in a fairly large world will spice things up alot. However, though its random, its still pretty limited to all the possible combinations, though that in itself may be quite various. In the end, you can only save so many damsels in distress before things repeat.
I would love to see something like this tightly paired with environmental dependencies, such that the quest alters based on factors of the environment. Let's say that you have a castle siege quest. The castle might have several elements associated with it, such as a nasty greek fire catapult, a partially breached south wall, and underground tunnels. Each of these elements can be part of the quest spawn, but can be alterable or destructable.

If you're on the side of the castle, the quests may be "get the fuel for our greek fire catapult;" or "block all entrances into the castle" or "protect the south wall." OTOH, it could be just the reverse for the other side.
--------------------Just waiting for the mothership...
Advertisement
This is a pretty good breakdown of an RPG quest generator. I love these kind of things too. Here's a couple of suggestions from me:

Step 3, Link Quests together: Another way you can link quests together is by spawning new quests to solve other quests. As an example beloved of the old-school adventure game genre which uses only fetch quests, NPC1 wants you to find the mystic fabled Sword of the Ancients. NPC2 has the sword, but will only give it to you if you find the Seven Sacred Stones. NPC3 has one of the Sacred Stones, but will only trade it for a thousand gold pieces, and so on.

But as you've rightly pointed out, step 6 is the hardest part, as the main problem with quest generators is they all end up feeling very mechanical and 'samey' after a while. The only way I can think that you can get around this is by having a lot of variables in your quests that all affect the "flavour" of how it feels. Somehow you have to make fetching the Sword of the Ancients seem like a totally different thing than fetching a pint of milk from the corner store.
One way to attempt to get around the idea of linked quests having no connection is to plot out the quests when the first quest is generated. That is when the player does what ever the player needs to do in order to generate a random series of quests, determine how many are to be linked. Generate the overall villains and place them within the quest link.

Example:

First -
Determine that three links in this quest ‘chain.’ First is a find. Second is a destroy. Third is a survive.
[Note: perhaps in these generated quest ‘chain’s certain types will have preferences to be a the start and others at the end. It might be too confusing and disjointed to have a destroy, a rescue and then a find quest in a ‘chain’.]

Second -
Determine villains. Evil wizard (given random name) who has orc minions.

Third -
Flesh out details. The player must find the wizard’s tower, destroy the magical crystal giving the evil wizard power over the area, and survive the attack of orcs as the player flees from the castle.


One interesting idea might be to reuse surviving villains. If the player doesn’t kill the Evil Wizard (who might survive as the player never had to directly kill the player), the wizard might then be attached to the player. Given reoccurring quests where the player and the wizard ‘fight’ (in a classic superhero sense, the player foils the wizards plans but the wizard escapes) would create a history and story between the player and this randomly generated character. This, however, would require a much more complicated system, but imagine how much more immersive a game would feel if you had your own set of foes in the world. That there was an old Orc Wizard name Gorlash who you foiled his evil plans several times over the past week who you and you alone fought. It would give more of a personal feel to the world which doesn’t require custom content for each and every player.

One immediate issue is to not overpopulate the villain pool of the player (don’t have 10+ villains to a player, unless it’s a group of villains working together) and don’t have their lifecycle be too short. Eventually the player is going to want to take down this villain and I think it’d be good to let them, but don’t make it simply be 10 missions and then the player gets to fight them. Anything that becomes understandable by the player becomes routine. Throw as much variance in the system to prevent people from understanding the underlying mechanics and just grinding through the experience.

But, anyway, those are just my thoughts..
Just to get back on COH, there is something I don't understand the designers did not put in.

When you have an urban landscape, and your basic mob is a gangster, what prevents you from having DIFFERENT gangs with DIFFERENT hideouts? I mean, since the most basic mission is "follow such thief to his lair" and then " find his group" then "find the boss" then "kill the boss", what was there to prevent the gang to disappear? Make it instanced!!

Let's take an exemple. If you had to follow a trail, from head-butting one gangster after another, back to the lair, like follow the drug line up to the dealer's home, what was there to move the lair to a different location, with a different level design? I don't know, it was more than enough to code a random generator in this, it wouldn't require much, and would make the world much more believable than "watch!! there are bazillions of thugs that constantly come out of THIS precise door!! And it belongs to such a small building, too!! Let's camp!!" This way, you would have to go looking for trouble, in order to find some. And you would FEEL like acting the hero part.

Let's get to Anarchy Online.

You know these missions where you have to walk inside a building and rescue someone? Why do you always ask them if they can find an exit on their own, so that you can finish off everyone in the building? And how come the abducted can walk safely home in an environment that keeps attaking YOU? Why don't you have to go and find, say, three to seven people, and empty the building BEFORE gathering them, and THEN walking them home, or to the next closer place? I don't know how difficult it could be to implement a follower's "come/stay" switch on these rescued people, so that you could always keep an eye on them, while eliminating the next mobs, and the mobs would try to eliminate the evadees. How difficult could that be? How much trouble for the sake of believability and fun?
Yours faithfully, Nicolas FOURNIALS
Quote:
Original post by Frogplague
Second -
Determine villains. Evil wizard (given random name) who has orc minions.


What about determining some of the villain's characteristics, and then when generating the quests/levels, they would depend somewhat on these characteristics?

For example, if the evil wizard has orc minions, obviously in these missions the player would be fighting orcs; if he was a necromancer he would be fighting the undead. Traps made by a wizard would be different than those made by a fighter-type villain commanding a group of thugs.

You could have as many details as you want in the quests that depend on the villain. Maybe an abandoned castle setting would be chosen for a vampire, and if a villain's source of power was determined to be a precious gem, there would be more than one quest to try to steal it (in different ways).


So a villain would always have a group of flags/variables, randomly chosen for him, and any quest related to him would refer to these variables when making some decisions.

This topic is closed to new replies.

Advertisement