Advertisement

Random Missions/Quests, making them interesting

Started by March 20, 2003 01:39 PM
18 comments, last by CpMan 21 years, 10 months ago
One way you could make a quest system diverse and world-changing is to make an "economy of quests." The RTS AI idea is really taken within this one, but it's expanded on in some different directions.

Basically, the major characters of the game(and/or major institutions/empires/etc. depending on the detail you want) all have wants, but instead of going to the store to satisfy these wants, they ask for help. There would then be a market of adventuring types like the player - those with more wealth can further their goals better. When the player is in a highly competitive market, then he'll have to be quite good to find any worthwhile quests, wheras if he is a monopoly - the "stranger in town" - he can take great rewards for a poor job.

In detail, the characters and institutions would have a series of goals, each greater than the last, ending either in the character's retirement with whatever else sie might want, or the "perfect institution" if there is such a thing. The goals would be broken down into tasks that could be accomplished through acquiring resources, which is either handled by the character hirself, or through enlisting help. The skills of the character would determine what KIND of help is wanted.

An example character from this model would have a set of goals and skills like this:

-Aquire $50,000,000
-Gain material possessions: Beautiful women, fast cars, enormous tropical mansions.
-Skills: Intimidation, forgery, bribery, intellect.

This would, of course, make the character some kind of criminal mastermind or drug lord. This can be reached by valuing the methods that the character will use(unscrupulous) and then the desires(material, as opposed to something like power or even a good cause). Therefore, quests like drug runs and direct attacks on rivals will be how the character furthers hir goals. As the character achieves goals or fails them, sie also generates a small history that helps determine hir next moves - revenge on a rival, or the theft/recovery of a prized possession. It'd have to be a short one, though, or else the game would have no memory left for everything else of course

New characters could be drawn up just by generating some statistics and goals, making for a world, in theory, that could be randomly generated and yet also unique, a hard task to pull off in most cases.

A practical design of this would probably prototype with a single type of character, and slowly expand to include more. The main hurdle involved would be that of evaluating the situation: you'd have to do a lot of work and assess all of their assets compared with those of any rivals and the "world situation" factor to reach a conclusion on what should be done next. And it would become even more of a headache the more the world is allowed to change over time.

However, a game that could pull of all of this would stand by itself wonderfully if the player-side gameplay mechanics are also done well. It wouldn't need any underlying story or mission set. Just let the player in and have him start causing trouble, raising empires and whatnot.

[edited by - RTF on March 26, 2003 1:51:03 AM]
IMO a major problem in *most* games is that the quests/missions are essentially the same. Even when you're talking about pre-made missions, the bottom line is to kill everything in sight. Sometimes there is a variation on that, get an item or kill something without alerting huge forces (because killing everything in sight is impossible).

How do you avoid simple missions like that? I think the answer to that is a complex world. Once the world becomes complex enough, interesting missions will pop up by themselves. For instance, when all you have in a game is military units, you'll end up having "kill 'em all" missions whether you want to or not. If you add things like supply lines and civilians that need to be protected, a lot of other interesting stuff pops up. The best way (IMO) is to use a bottom-up approach. Build very complex entities (humans, plants, animals, etc) with complex needs/desires/AI. Then your world will be very complex without much effort: there's no need to design supply lines, they'll be popping up anyway if humans need to eat. When the AI gets complex enough, you won't have to write specific code that will come up with random missions: they'll pop up by themselves.

[edited by - CoffeeMug on March 26, 2003 2:15:11 AM]
Advertisement
quote: Original post by CoffeeMug
How do you avoid simple missions like that? I think the answer to that is a complex world. Once the world becomes complex enough, interesting missions will pop up by themselves. For instance, when all you have in a game is military units, you'll end up having "kill 'em all" missions whether you want to or not. If you add things like supply lines and civilians that need to be protected, a lot of other interesting stuff pops up. The best way (IMO) is to use a bottom-up approach. Build very complex entities (humans, plants, animals, etc) with complex needs/desires/AI. Then your world will be very complex without much effort: there's no need to design supply lines, they'll be popping up anyway if humans need to eat. When the AI gets complex enough, you won't have to write specific code that will come up with random missions: they'll pop up by themselves.


Wrong way to do it. Use simple entities, but with potential to interact in complex ways - simple entities give you enough control that debugging is possible, but the system can still produce emergent phenomena.

[edit]
for example, Life or Langton's Ant are classic examples of simple cellular automata which exhibit behaviour that was unpredictable before they were simulated.

Or in Magic: The Gathering, the design team deliberately work to keep the individual cards and mechanics (relatively) simple, and even try to restrict their interactions, but even so some 'broken' cards slip through from time to time, as well as a large supply of really rather poor cards in recent times (since the big scare of Urza block there's been a tendency to try and make unfamiliar cards weaker rather than stronger).

Basically, there are two ways to get complex behaviour in a system - you can have it "by hand" by making individually complex entities, or you can have it "emergent" by making large numbers of entities that can interact freely. Using both is asking for trouble since you won't be able to put even general limitations on what could go wrong and where...
[/edit]

[edited by - rmsgrey on March 26, 2003 9:23:37 AM]
I think that rmsgrey has the right idea. But how does the player hook himself into the complex interaction? The player''s behavior is unpredictable and therefore very difficult to take into account when dealing with other simple entities.


Gamedev for learning.
libGDN for putting it all together.
An opensource, cross platform, cross API game development library.
VSEDebug Visual Studio.NET Add-In. Enhances debugging in ways never thought possible.
That''s exactly what I was referring to: emergent behavior. In order to do that, each entity will have to be fairly complex. But that trick is to work on the entity, and leave the interaction for emergence. If you start doing interactions manually, that''s when you''ll run into limitations.
I''m the friend the CpMan was referring to.

The base idea is basically to put the RTS engine as a sort of global AI.

If you''ve ever seen two Warcraft computer players attack each other, for example, you can tell that at any given time they each have a set goal, such as "attack this base".

The idea is to create an invisible AI in the background. Allied cities are treated as bases/resource centers, and you combine this with unit counts and such to simulate a war, for example.

If a player joins the faction, the AI recognizes this and begins to treat the player as a "Hero" unit within his army. As such, the AI can assign goals to the player, based on what it needs done.

It can get as complex as necessary: a merchant player could be recognized as such based on their class/skills and the AI could assign him tasks where he is useful (think about it, you rarely see peon rushes in Warcraft =): such as "bring 800 units of wood to this location so I can build a barracks".

The other bonus is that you''ve got a built in dynamic economy with such a system, simply because there are limited resources that the AI actively desires AND uses.

The goal behind this isn''t to diversify the missions themselves, though I do believe that it would increase the diversity of ''random'' missions, but rather to provide a concrete gameplay reward to the player. It creates a dynamic world that allows players to truly affect how things are going.

Moo.
Moo.
Advertisement
Here is what I propose as a solution to this problem:

Quests are not generated randomly, but instead by characters that are randomly assigned a limited (but extensive) set of motivations. Each motivation requires a certain set of resources to be drawn upon, but each individual character draws upon those resources to varying degrees. The character’s AI determines how it acts upon its motivations.

These motivations must form around, and act upon, a very detailed, intriguing world with lots of nooks and crannies and hidden places to explore.

An example: In the beginning a non-player character lives in a small village within 5 miles of a small complex of caves. This character is endowed with a motivation to gain wealth and respect at all costs. The game also decides in some way that the character has a neutral stance with regard to morality. Therefore the character’s AI dictates, based on these factors, that he obtain wealth at the expense of those in his village, and obtain respect by instilling fear in those around him. He is intelligent though, and does these things discreetly. He becomes a bit of an unnamed terror around the town. Other characters in the village, though, are motivated to uproot this terror, to give it a name and put it behind bars. Eventually, the AI characters begin searching for evidence by searching from house to house, and he fears being discovered, so he takes his wealth and flees to the complex of caves with the comrades he’s frightened or smooth-talked into joining him. The villagers eventually give up when they can’t find any evidence, though they aren’t sure what to think about the missing man. Some blame him and some fear for him. A player character comes waltzing into town, and hears the rumors generated by each AI character’s conclusions about the event. The player character’s mission, if he/she chooses to accept it, is to find the missing man, and if possible, solve the mystery. In return, the characters will naturally gain respect and compassion for the player character. And whether the player realizes it or not, if they are successful they are likely to come across the substantial sum of money and goods that the perpetrator originally stole from the villagers.

What we have here is a dynamic (though not necessarily random) quest, complete with mystery, challenge, and reward; and in reality, it’s been generated by only 3 or 4 different types of character motivations, each making semi-intelligent decisions based on a) their prior motivations and simple personalities, b) other characters’ actions upon them, and c) some relatively basic AI conclusions.

Of course, while I’ve been using the term “simple” there really isn’t anything simple in the development of such a dynamic system. There are a HUGE number of technical challenges involved here. But they are all achievable – if not today, perhaps in a few years.

This is the kind of quest generation I hope to see (or create) someday – where NPCs, monsters, and even animals use a sophisticated, individualized AI motivation-and-conclusion system to generate quests and events in a remarkably natural manner.

****************************************

Brian Lacy
ForeverDream Studios

Comments? Questions? Curious?
brian@foreverdreamstudios.com

"I create. Therefore I am."
---------------------------Brian Lacy"I create. Therefore I am."
quote: Original post by irbrian
This is the kind of quest generation I hope to see (or create) someday – where NPCs, monsters, and even animals use a sophisticated, individualized AI motivation-and-conclusion system to generate quests and events in a remarkably natural manner.


I''d really love to see some discussion on this, not to toot my own horn but I really think this is a great idea.. despite the amount of effort it would take to implement.
---------------------------Brian Lacy"I create. Therefore I am."
quote: Original post by irbrian
Original post by irbrian
This is the kind of quest generation I hope to see (or create) someday – where NPCs, monsters, and even animals use a sophisticated, individualized AI motivation-and-conclusion system to generate quests and events in a remarkably natural manner.


I couldn''t imagine designing the next generation of games without the entertainment possibilities these types of tools can create. It''s really where the business is going, imo.


quote:
I''d really love to see some discussion on this, not to toot my own horn but I really think this is a great idea.. despite the amount of effort it would take to implement.


It will take a great deal of effort, but then, innovation does. Imagine though the impact and memorability it will have. It will be on the order of robbie the robot or tobor, or the three laws of robotics. Everybody remembers a memorable character, but people will regularly relive a memorable interaction. I''d say you hit the jackpot, but the truth is it''s a goldmine, and you will have to do considerable digging.

Addy

Always without desire we must be found, If its deep mystery we would sound; But if desire always within us be, Its outer fringe is all that we shall see. - The Tao

Perhaps I will try to do something like this in the game that my friend and I are going to attempt.


Gamedev for learning.
libGDN for putting it all together.
An opensource, cross platform, cross API game development library.
VSEDebug Visual Studio.NET Add-In. Enhances debugging in ways never thought possible.

This topic is closed to new replies.

Advertisement