• Announcements

    • khawk

      Download the Game Design and Indie Game Marketing Freebook   07/19/17

      GameDev.net and CRC Press have teamed up to bring a free ebook of content curated from top titles published by CRC Press. The freebook, Practices of Game Design & Indie Game Marketing, includes chapters from The Art of Game Design: A Book of Lenses, A Practical Guide to Indie Game Marketing, and An Architectural Approach to Level Design. The GameDev.net FreeBook is relevant to game designers, developers, and those interested in learning more about the challenges in game development. We know game development can be a tough discipline and business, so we picked several chapters from CRC Press titles that we thought would be of interest to you, the GameDev.net audience, in your journey to design, develop, and market your next game. The free ebook is available through CRC Press by clicking here. The Curated Books The Art of Game Design: A Book of Lenses, Second Edition, by Jesse Schell Presents 100+ sets of questions, or different lenses, for viewing a game’s design, encompassing diverse fields such as psychology, architecture, music, film, software engineering, theme park design, mathematics, anthropology, and more. Written by one of the world's top game designers, this book describes the deepest and most fundamental principles of game design, demonstrating how tactics used in board, card, and athletic games also work in video games. It provides practical instruction on creating world-class games that will be played again and again. View it here. A Practical Guide to Indie Game Marketing, by Joel Dreskin Marketing is an essential but too frequently overlooked or minimized component of the release plan for indie games. A Practical Guide to Indie Game Marketing provides you with the tools needed to build visibility and sell your indie games. With special focus on those developers with small budgets and limited staff and resources, this book is packed with tangible recommendations and techniques that you can put to use immediately. As a seasoned professional of the indie game arena, author Joel Dreskin gives you insight into practical, real-world experiences of marketing numerous successful games and also provides stories of the failures. View it here. An Architectural Approach to Level Design This is one of the first books to integrate architectural and spatial design theory with the field of level design. The book presents architectural techniques and theories for level designers to use in their own work. It connects architecture and level design in different ways that address the practical elements of how designers construct space and the experiential elements of how and why humans interact with this space. Throughout the text, readers learn skills for spatial layout, evoking emotion through gamespaces, and creating better levels through architectural theory. View it here. Learn more and download the ebook by clicking here. Did you know? GameDev.net and CRC Press also recently teamed up to bring GDNet+ Members up to a 20% discount on all CRC Press books. Learn more about this and other benefits here.

Archived

This topic is now archived and is closed to further replies.

ahw

Quests analysis

28 posts in this topic

OK, more food for thoughts. I realise that trying to describe plot in a formal way might not be the easiest way to tackle the problem, so here is another way. How would you describe the mechanisms used so far to create quests, missions, etc. What kind of structure is used, and how could we improve on it. E.g. In darklands (quite old game), a quest is given by a someone S at a location L1. You have to go to location L2 to get object O and bring it back to L1. That''s it ... You can add different layers on top of this to make it look like different quests, but essentially, there is not much difference. One thing I''d like to see is, when S tell me that other parties might be enroute to capture O, there would actually be another party en route to get the item, and this other party might actually get there before me, grab the object, and bring it to another person, in which case my own party would have to modify plans accordingly. In the same vein, it would be very interesting to be able to bring the object O to the higest bidder, rather than the person who asked me in the first place, etc. But how would we define the initial mission, then, and the whole system around it, to accomodate such variations on the initial scenario... youpla :-P
0

Share this post


Link to post
Share on other sites
quote:
Original post by ahw
E.g. In darklands (quite old game), a quest is given by a someone S at a location L1. You have to go to location L2 to get object O and bring it back to L1. That''s it ... You can add different layers on top of this to make it look like different quests, but essentially, there is not much difference.



Yes, that''s what I was worried about when we were speaking of creating new quests w/ components.

quote:

One thing I''d like to see is, when S tell me that other parties might be enroute to capture O, there would actually be another party en route to get the item, and this other party might actually get there before me, grab the object, and bring it to another person, in which case my own party would have to modify plans accordingly. In the same vein, it would be very interesting to be able to bring the object O to the higest bidder, rather than the person who asked me in the first place, etc.
But how would we define the initial mission, then, and the whole system around it, to accomodate such variations on the initial scenario...

youpla :-P



I was thinking about this also. I are you thinking of combining these more interesting missions w/ the other concept of creating random quests/stories through the use of components, or is this a seperate idea?





"NPC's are people too!" --dwarfsoft

"`Nazrix is cool.' --Nazrix" --Darkmage
0

Share this post


Link to post
Share on other sites
well, the road I am taking is that if we create plot that are "encoded" in a sufficiently detailed way, the random plot generation will be less needed as the players themselves would modify the plot "style" through their actions...
And the random plot generation will be more complex, but much more interesting as well, because of the ability to be modified.
Take the example of a "find the Holy Grail" quest. One guy, the Grail Keeper, *knows* the location L of the Grail, and his goal is to prevent anyone undeserving, to reach the location. People who deserve the Grail will reach the location L but have to pass a test, whatever that is.
If we have a good enough AI, we would have situations like : the Grail Keeper spread rumors that the Grail is somewhere, eventually killing people who try to reach the fake location, even going to place an actual magic object there as bait. Or you would have a network of spies that would spread rumors and feed them baclk to the Grail Keeper.
What I''d like to see is something like : when the plot says that another party is en route for the location L, there is an actual party en route, and if you are good enough, you can follow their traces by questioning villagers about a group of adventurers looking for some artifact. Or you could be the one chased. Rather than having a simple ''if you are late, th other party took the relic. else if you are there first, you get the relic, and there is a random probability that the other party attacks you on your way back''.

Mmmm, not easy at all
0

Share this post


Link to post
Share on other sites
Yeah, I would really love to see that sort of thing happen too. Some sort of scripting language would be good obviously. Something along the lines of telling the NPCs that are en route to go to Location L. As far as giving the plots many branches, the only thing I can envision is a lot of IF statements...and flags...but that seems so forced

As far as asking others about those NPCs (whether they've seen the NPCs that are en route) there could be the literal way of doing it. If the NPCs are w/in a certain distance of the NPCs you're looking for, then there would be some sort of flag that says they've seen them.

There could be a way that's perhaps cheating but effective. Every NPC could have a list of the NPCs that he/she knows. It could be assumed that they're friends and know what the other is up to. So, if you ask that NPC they'd know where their friends are, but they wouldn't have to tell you either. You may have to threaten them, bribe them, etc.




"NPC's are people too!" --dwarfsoft

"`Nazrix is cool.' --Nazrix" --Darkmage


Edited by - Nazrix on September 10, 2000 3:12:31 PM
0

Share this post


Link to post
Share on other sites
Well, that does sound like a very good idea. I''m sure it has been brought up before though, in some manner.

Maybe it could be pulled off by stealing ideas from the MMORPG type of game. Have your program run as two different "entities" (threads). One of these threads would act as a client, but only for your party/group/character et cetera. The other would act as the server, and do the work for any plot mechanisms that you set up...

I''ll have to try to work out a way to do that, it sounds very promising, though kind of either CPU intensive or restrictive...

I doubt I''ll succeed, but I''d like to hear about anyone who pulls off a plot line like that without destroying the player''s machine, or their mind...
0

Share this post


Link to post
Share on other sites
Let's say that an NPC is starting at Location L1 and will kidnap someone at Location L2 and is going back to Location L1 again.

So the NPC is initialized at location L1 and is instructed to go L2 (or just goes to L2 from wherever he is at the time).
That should be pretty simple. It's just a move command.

Then, there could be something like

if npc's location is L2 then move the NPC to L1 again via the "move" command after kidnapping the other NPC.

Also, there could be a general "follow" command issued to the NPC being kidnapped to tell the NPC to follow the kidnapper. This would simulate being kidnapped. If the kidnapper gets to L1, he and the kidnapped NPC stay there or hide or whatever.

That would be the basic simulation. So, hypothetically, if the player were to hear from one of the kidnapper's friends about his plans, the player could catch the NPC before he does this or when the NPC is going back to Location L1. If the NPC makes it back to L1, then the player can rescue the NPC there. There shouldn't really be much programming involved there 'cause the NPCs would have their instructions. The player can act as though it's all happening 'cause it is.

Also, there could be variations on the situation so the situation is not so linear. Like, the kidnapped NPC may successful escape (based on some sort of random number) at some point, and then the player may find the NPC Kidnapper only to find that the kidnapped NPC has run off somewhere. To do that you just have to tell the Kidnapped NPC to go to another location.

Then the player & the Kidnapper are looking for the NPC that was kidnapped...unless the player kills the kidnapper or something...

but the point is that it seems that you could modify this fairly easily probably using some kind of scripting language.

The player could also choose to help the kidnapper, or convince the kidnapper that's what the player's doing and then kill him on the way or something. I'm thinking you'd have to use some sort of flags to indicate what options the player is choosing.


"NPC's are people too!" --dwarfsoft

"`Nazrix is cool.' --Nazrix" --Darkmage


Edited by - Nazrix on September 11, 2000 4:10:11 PM
0

Share this post


Link to post
Share on other sites
These are all still just technical aspects - NOT the hard part.

The hard part is WHY is that NPC going to kidnap someone?
"Because we say so" doesn''t really work in a quest generator type thing.
"Because we randomly decided" could work, but it wouldn''t provide much depth.

So you need a list of goals for the agents ( the NPCs ). At its simplest, those could be food and shelter. Food and shelter as goals already make for REALLY realistic animals, if you look at some agent technology.
Then you could add some higher goals for humans - things like money and prestige. And some means to get those goals - like kidnapping someone for ransom might make you a lot of money!

Then, generating a goal for an NPC, and letting the NPC AI choose a means for achieving that goal, may provide you with plenty of good situations for a player to get involved. However, there will not be a grand story to the whole thing, but rather a living world...


People might not remember what you said, or what you did, but they will always remember how you made them feel.
~ (V)^|) |<é!t|-| ~
0

Share this post


Link to post
Share on other sites
I agree MadKeithV. We talked a lot about those sorts of priorities with NPCs.

The hardest part is the AI that allows the NPC to know that kidnapping could bring him money through ransom.

The NPC would also need to know that he could get money from working an honest job. Also, he'd need to know that kidnapping could get him in a lot of trouble if he's caught.

The NPC would have to know so many abstract concepts about the world, and if we were to carefully program the NPC to know each of these abstract concepts, then it wouldn't be all that dynamic anymore.

I guess that part of this goes back to Paul's thread about Artificial Intuition.

Edited by - Nazrix on September 12, 2000 4:51:40 AM
0

Share this post


Link to post
Share on other sites
What I was thinking was to build a database of some of those concepts - like kidnapping, farming, etc..., and hand "knowledge" of these things to NPCs selectively. So you ( perhaps randomly )decide on a goal for the NPC, and then ( perhaps randomly )decide which kind of concept the NPC will try to use to achieve that goal.
You could do this with statistics, so that for instance, if the NPC needs to obtain food, he is more likely to take up farming, than he is to kidnap a princess, ask for a ransom, and buy food with the money he gets from that....
That way, most people (NPCs) will be doing "normal" things, but some will be doing more interesting stuff.


People might not remember what you said, or what you did, but they will always remember how you made them feel.
~ (V)^|) |<é!t|-| ~
0

Share this post


Link to post
Share on other sites
It''s 2:00AM here in California, and I can''t sleep... (yup, that''s a warning )

How about this: Every NPC has an ultimate goal that he/she pursues. Other NPCs (and maybe the player) are vital to fulfilling the goal. The gist is that the AI thinks of characters and objects and such as pieces that complete a puzzle. I''m thinking of this sort of like a key and lock situation, and here''s how it might work...

Let''s start out small. You''ve got Villain V who wants to be ruler of a kingdom. But King K is in the way. How to get rid of K? Well, we''ve got to think of a bunch of different ways (poison, direct attack, ambush, etc.) and attach resource costs to them. This also means, as MadKeith was pointing out, that we need resources that NPCs can choose to spend (time, money, status, their good name, their very lives... etc.)

Now, with this initial setup you probably won''t get a very interesting story. V attempts to somehow kill K, and you can be in the middle of it.

I think this get''s interesting when you concoct some sort of relationship web and let the AI find different paths through it. For instance, maybe you design an adulterous wife W, a traitorous guard G, and a loyal but conflicted paladin P. Now V is "pathfinding" through the web of connections to get to K. Given the cost of actions, maybe it''s better for V to seduce W, or to bribe G, or to mislead P (these all being actions that we weighted beforehand).

Things get really interesting (aphabet soup ) when you run this for each character. Now characters are trying to get to their goals by using other characters. I can see not only locations of characters changing, but their value in terms of usefulness and goals could change as well.

I know this is simplistic, but might it be a start in creating what we''re after?

--------------------
Just waiting for the mothership...
0

Share this post


Link to post
Share on other sites
Interesting idea...
So, each goal for each NPC could alter according to the situations. Just looking at the money situation:

We could keep track of how much money each NPC has, and how much food,water, etc he has. Then according to what kind of information the NPC has, he will perform different tasks to attain the money to buy food.

With using stats, like you said, we could determine basically what the NPC is likely to do. If farming is his main source of income, that''s what he''ll do. If he''s more of a criminal he may choose to do something more illegal. At least we''d have more control there.

Very nice start
0

Share this post


Link to post
Share on other sites
I think those are good ideas, and definately worth looking at for the generation of interesting circumstances...
The only problem I still have is "why does the villain want to be king". This is one of the main questions always asked of Pen and Paper roleplayers - what is your motivation? "I want to be rich" is no motivation, but "I want to be rich enough to buy me that castle I always wanted." is.
"I want to be king because I want to be able to tell everyone what to do" is a good motivation too.

But should we hardcode these into the "plot blocks" or should the motivations be randomly decided, and then the action decided from that?
[ For instance, you create the "powerhungry villain", and the AI decides that the long-term goal of this villain is now to become King of the Realm. ]

People might not remember what you said, or what you did, but they will always remember how you made them feel.
~ (V)^|) |<é!t|-| ~
0

Share this post


Link to post
Share on other sites
I would rather have the goals created in response of others NPC Actions, for example the King have prefered to give some power to X rather than to V so V starts to plot to overthrow the king... This way the motivation are logical and dynamical.

"Between the time when the oceans drank Atlantis and the rise of the sons of Arius there was an age undreamed of..."
0

Share this post


Link to post
Share on other sites
MadKeith : hey I was describing omething about databases as well on another thread here ... maybe you wanna check it out ?

As well, I love this idea of network, that''s very good ! But I don''t agree with the Villain Izonogoud trying to become Khalif in place of the Khalif (sorry, french comic reference)... it''s a bit artificial, unless you actually put in the memory (or whatever keep track of the NPC memory) of the NPC why and how he came to become like that. I would rather make an NPC be a farmer and be powerhungry, and let him evolve by first becoming mayor, then sheriff, then count, and take over the king after some conspiration ?

Well, anyway, I think if we can decompose all this into basic elements, everything would kind of happen naturally ... now the question is to allow this to happen

God, I am gonna have to think a bit more on paper
0

Share this post


Link to post
Share on other sites
quote:
Original post by DungeonMaster

For example the King have prefered to give some power to X rather than to V so V starts to plot to overthrow the king... This way the motivation are logical and dynamical.



unfortunately, you cannot do that, because the king needs motivation as well... somewhere you need to define or decide what the motivation for something is, and not all of those can be inferred from others.




People might not remember what you said, or what you did, but they will always remember how you made them feel.
~ (V)^|) |<é!t|-| ~
0

Share this post


Link to post
Share on other sites
quote:
Original post by MadKeithV

unfortunately, you cannot do that, because the king needs motivation as well... somewhere you need to define or decide what the motivation for something is, and not all of those can be inferred from others.


Of course, the foremost motivation of a human (or any other) being is survival. You could derive all other motivations from that basic one, but that would be way overkill. Let''s think from the king''s viewpoint instead. King''s motivation to support X instead of V could be one of the following:

- The king thinks X is more loyal, or X is a friend of his.
- He thinks V is dangerous if he get too much power
- X gives the king something in return.
- X has threatened or blackmailed the king
- V is more powerful than X already, and the king wants to keep a balance between his underlings
- etc etc

I think there should be some key characters (or character classes), like the king, whose motivations have been predefined (but they can change during the game, too). Or maybe all characters have some predefined motivations, such as survival.

-Jussi
0

Share this post


Link to post
Share on other sites
NPCs can have some character traits like "hunger for power" or "greed", from these, I think you can then make the character react to some events to derivate new goals.
Moreover, a virtual GM could find the characters corresponding to some plot templates and "inform" them of some events to make them react...
0

Share this post


Link to post
Share on other sites
I think that you should take the role of human in the equation. I don''t think I''d like a game to be totally under computer control (in the case of MMORPG), and key NPC such as a king should be granted to human player, that would be part of the admin team. Basically, admins would be guardian entities (or gods, or whatever your universe accept), that could take over the AI of any character (including a PC) to do, or say stuff ... I can imagine a player starting to speak in a loud and thundering voice on the market place, and trying to explain afterwards that it wasn''t him it was God

Mmm, too much ideas, I need to code !
0

Share this post


Link to post
Share on other sites
quote:

Let's think from the king's viewpoint instead. King's motivation to support X instead of V could be one of the following:

- The king thinks X is more loyal, or X is a friend of his.
- He thinks V is dangerous if he get too much power
- X gives the king something in return.
- X has threatened or blackmailed the king
- V is more powerful than X already, and the king wants to keep a balance between his underlings
- etc etc




I'd favor this approach because, in terms of AI, it can be systematized. For instance, you could make loyalty a stat and have the king do a search on the most loyal character (heh, which could be the player too ). With this sort of key and lock approach, the king AI might be able to look at X in the same way a player looks at heroes in an empire game (as a modifier for armies or cities or some other important post). On a basic level, the king really seeing solutions that will fill a puzzle (which we'd hardcode as his motivation, too keep the kingdom running).

It seems you'd get interesting conflict when you juxtapose a character's skills and abilities. V wants to be powerful (a measurable stat). If his loyalty (measurable) was high enough, he would have been picked and there'd be no problem-- or story, for that matter. But the stats don't mix right.

Again, for the purposes of AI, V (and everyone else) has a "pathfinding" problem thru and around measurable obstacles. Maybe V sees that X's only support is the King (so we then need a support stat); he can choose a number of ways to attack that support stat. Now if you have all characters solving toward their goals I think you'll get the kind of conflict you see in a strategy game, but the actions the characters take will be storylike.



--------------------
Just waiting for the mothership...

Edited by - Wavinator on September 12, 2000 5:34:16 PM
0

Share this post


Link to post
Share on other sites
quote:
Original post by MadKeithV
[ For instance, you create the "powerhungry villain", and the AI decides that the long-term goal of this villain is now to become King of the Realm. ]
~ (V)^|) |<é!t|-| ~



The only thing I keep coming to is that the only real randomness would be that a different NPC would perform the actions each time you play the game. The actions would be the same each time you play the game ''cause the story pieces and actions would be hard-coded. The most randomness we may get is that a different NPC is doing action perhaps for a different reason.

I think this would be just as transparent (perhaps more so) to the players as using somewhat pre-defined divergent pathways and doing what ahw was saying about when an NPC is supposed to be doing something, he''s actually doing it and the player can intervene in what way he/she wants would IMO give the designer more control plus it would feel just as real if not more.


0

Share this post


Link to post
Share on other sites
Re: Goals and motivations

I think MadKeith is right on this one, at some point you have to start the story moving. I think this would give you more authorial control, btw, then evolving goals from the ground up. Evolving might work, but the recent stuff on learning game AI I''ve seen doesn''t fill me with a lot of hope.

Now, I think you could change motivations along the way (in fact, good strategy AI does this... is it time to build or fight?) and like DungeonMaster said this would make for logical and cohesive plot. For instance, V doesn''t go after the king anymore if the player does something to make this impossible.

But as far as motivations go, you have to start somewhere. (Although, there might be something to randomly generating a character''s history like in the old role-playing book central casting... but I still think you''d have to be sure to generate from certain tables, like a ''villain'' table, and a ''supporting character'' table. Otherwise, how can you be sure what you create will have conflict?)

--------------------
Just waiting for the mothership...
0

Share this post


Link to post
Share on other sites
quote:
Original post by Wavinator
I''d favor this approach because, in terms of AI, it can be systematized. For instance, you could make loyalty a stat and have the king do a search on the most loyal character (heh, which could be the player too ). With this sort of key and lock approach, the king AI might be able to look at X in the same way a player looks at heroes in an empire game (as a modifier for armies or cities or some other important post). On a basic level, the king really seeing solutions that will fill a puzzle (which we''d hardcode as his motivation, too keep the kingdom running).


Of course, how loyal a character seems might have nothing to do with how loyal he/she intends to be.

-Jussi
0

Share this post


Link to post
Share on other sites
Interesting read guys.
Seems like you guys want to create a never-ending game huh? Cool!

I agree with the idea of generating different *class* of NPCs. Of course this is just a start. During game different stats could change according to the level of interaction with the game world.

A question. What if the NPC does over-thrown the king. Say V sucessed. What then? Does he become the kind? Inherit previous king''s goals? He will have his own goals based on his on state and interaction with the game world. If V character is evil, he''s probably going to power trip.

What if the player over-throws the king? The game becomes a ruling game?

0

Share this post


Link to post
Share on other sites
Although *I* wouldn''t mind if the game became a ruling game, I think most players would have a problem with that. So we need to have a normal mechanism for some NPC becoming king in the event of the king''s death.

And I think it''d be interesting if V did become king. Then the player would have a whole new set of problems to deal with (hah! forget about boss monsters, pal! How about the entire Royal Guard!)

''Course, I could see this branching out in so many different ways. Perhaps the player has to pretend to support the new, evil king V? Or go into hiding and gather strength? Maybe some other disenchanted NPCs join him, and we play out a sort of Man in the Iron Mask tale? Rich with possibilites!!!

--------------------
Just waiting for the mothership...
0

Share this post


Link to post
Share on other sites
Ahh you are starting to see just how rich this could be
And why wouldn''t the player want to become king? Could be fun! Half the other kingdoms trying to assassinate you or bribe you, wars to run, taxes to collect, ministers to keep happy. You''ll have your work cut out for you

quote:

> SIR! The peasants are revolting!
> Yes, they''ve always BEEN revolting, but now they are rebelling too.



People might not remember what you said, or what you did, but they will always remember how you made them feel.
~ (V)^|) |<é!t|-| ~
0

Share this post


Link to post
Share on other sites