Jump to content

  • Log In with Google      Sign In   
  • Create Account


Adaptive Virtual Game Worlds: Where to Begin?


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
90 replies to this topic

#1 irbrian   Members   -  Reputation: 130

Like
Likes
Like

Posted 17 March 2004 - 07:20 PM

I have several questions for the experts in this forum, which I''ll get to in a minute. First some background... For years I''ve been fascinated with the idea of developing a game involving a persistent virtual world whose makeup and events evolve through the actions of NPCs. Individual and Group relationships, motivations, and beliefs, all facilitate the process. Utlimately the player is placed within the virtual world, the state of which is dynamically defined (at least in part) by the behavior of the NPCs. A story develops -- it is not "generated" but simply occurs based on the behavior of all the agents working together. I''d like to summarize a scenario I wrote that kind of explains what I mean. It''s based in a virtual world with a traditional fantasy setting, and focuses on a small geographical area containing one village and a system of nearby caves. Consider that the world contains a male, human NPC (let''s call him John). John is one of roughly fifty NPCs that live active, believable lives in the village. Some are farmers, others are merchants, authority figures, etc. John, however, is none of these things. The pre-generation of John''s character defined him as greedy, lazy, opportunistic, sneaky, and cowardly, yet charismatic. With these tendencies, John has a habit of sneaking into other villagers'' houses to relieve them of their more precious belongings -- whatever John believes will be most valuable. Suspicion mounts among the other NPCs that John is the culprit. As the belief that John is guilty is shared among them, a group belief evolves that John must be confronted and, if he''s guilty, punished. John, fearing what may be done to him, packs up his relocated goods and moves off in the middle of the night to one of the nearby caves. It turns out that John has amassed a small but loyal group of pretty tough friends among the NPC villagers. These friends join him at the cave and vow to protect him. Enter the player. The NPC villagers are quite miffed about the whole event and would like to get even, but John has disappeared. The common belief is that John is hiding in the caves (i.e., since there''s no where else to go), but those who have sought him there have not returned, and rumors abound that John has hired superhuman thugs or even evil outerworldly beings to protect him. They want their stuff back, and they are especially interested in getting even, so they''re willing to offer a hefty reward to anyone who will confront John and return with their belongings. The player of course has a quest laid before him, with a decent challenge and reward. But the quest was 100% dynamic -- its existence is owed entirely to the behaviors of an NPC with a certain random grouping of characteristics and a specific set of environmental factors. So that''s the scenario.. it''s extreme and complex, and hardly perfect, but it illustrates the general concept. There are several things I''d like to know from all you experts. First, I''d like to be able to be able to use the proper terminologies to define the idea. Second, I''d like to understand what aspects of AI are most applicable -- does fuzzy logic come into play? Where, when, and why? Is the concept of neural networks applicable here? At what level -- the individual level? The group level? Third, has any research been done in this specific[/ia] area? Where can I go to find people who are interested in exploring similar ideas? Has anything remotely like this (even on a far simpler level) been attempted? As a final note, I want to make sure everyone understands that I''m not naive about this -- I realize it''s pretty far out there in terms of what is possible, let alone feasible, with today''s AI technologies. Even if it were practical for the right team, I expect it would take years to develop. I just need to start establishing some solid basic understanding of the concepts of AI as they relate to my particular application of interest. All input is appreciated. Thanks. **************************************** Brian Lacy ForeverDream Studios Comments? Questions? Curious? brian@foreverdreamstudios.com "I create. Therefore I am."

Sponsor:

#2 mikeschuld   Members   -  Reputation: 146

Like
Likes
Like

Posted 17 March 2004 - 07:30 PM

Well first of all I am no expert. I am an 18 year old high school senior with a crappy part time job and what are considered by my math and computer teachers to be "over developed programming and logic skills"; however, I hope you will still listen. To answer one of the questions in your post I have been considering an idea like this for quite some time. Obviously a game like this would be an MMORPG, but my implementation of it was not exactly all NPC based. I have plans on allowing NPC''s to have the same jobs and ranks in society as PC''s do (due to having the NPC and PC classes being nearly identical except the fact that a random event or two has to be added to the NPC''s and they more closely follow time rules like day and night.) I have begun working on an engine for this game, but being new to game and directx programming has made it a slow process. Currently I have a flashy particle engine, basic mesh and object loading and rendering, and a very simple terrain rendering model. If you need someone to brainstorm with about ideas for your NPC''s I would love to chat with you. Sorry bout the lengthy post

#3 Luctus   Members   -  Reputation: 580

Like
Likes
Like

Posted 17 March 2004 - 09:58 PM

I''ve got very little practical knowledge of AI, so take what I say with a grain of salt. Hope I can suppy some help at least, I''ll try answer what I can.

First of all, I think that what you want is very hard to accomplish. If it is even possible, I imagine it would be at a very basic level.

Is the concept of neural networks applicable here? At what level -- the individual level? The group level?
I don''t think neural networks are useful here, I''ve read some about them and played a bit with implementing them. You can get pretty impressive results, but; A) They don''t scale well. and B) Neural networks strength lie in pattern recognition, and I don''t see much pattern here.

Third, has any research been done in this specific area?
I would be surprised if not

Has anything remotely like this (even on a far simpler level) been attempted?
Can''t think of anything, but I doubt you''re the first on to think of the idea.


-Luctus

Statisticly seen, most things happens to other people.
[Mail]


#4 Timkin   Members   -  Reputation: 864

Like
Likes
Like

Posted 17 March 2004 - 10:46 PM

First, don''t think about the tools needed yet... just think about the problem. Defining the problem specifically is at least 50% of the work! Solutions to these problems will dictate the algorithms used (somewhat) in your game.

Let''s look a little closer at what you have described and I''ll try and highlight a few instances where AI will play a part and those instances where some other form of programming or design will be needed...

quote:
All subsequent quotes are of irbrian
Consider that the world contains a male, human NPC (let''s call him John). John is one of roughly fifty NPCs that live active, believable lives in the village. Some are farmers, others are merchants, authority figures, etc.



How will you determine what mix of roles a village will have? How will it depend on the size of the village? Will the presence of one archtype corelate with the presence or absence of other archtypes? (Design issues)


quote:
John, however, is none of these things. The pre-generation of John''s character defined him as greedy, lazy, opportunistic, sneaky, and cowardly, yet charismatic.



How will these attributes affect the decisions made by John (AI issue)? How will the decisions of others, with respect to John, be affected by John''s attributes (design/AI issue)?

quote:
With these tendencies, John has a habit of sneaking into other villagers'' houses to relieve them of their more precious belongings -- whatever John believes will be most valuable.



How does John select a house? How does John avoid detection? How does John know if the house is safe/empty? How does John evaluate the value of items? (AI issues)

quote:
Suspicion mounts among the other NPCs that John is the culprit.



How? How did the other NPCs acquire information that lead them to this belief? How did they make the inference that John was the culprit? (AI issue)

quote:
As the belief that John is guilty is shared among them



What is the mechanism for discourse and information sharing among NPCs? (design/AI issues)

quote:
a group belief evolves that John must be confronted



Does each person hold this belief, or does each person belief everyone else believes this? (design/AI issue)

quote:
if he''s guilty, punished.



How is guilt inferred? (AI issue)

quote:
John, fearing what may be done to him



How will fear be implemented as an emotion that affects action? What other motivations will be open to NPCs? What other emotions will they have that might perturb these motivations? (design/AI issue)

quote:
packs up his relocated goods and moves off in the middle of the night to one of the nearby caves.



How does John choose a cave? Why does he choose a cave over say buying a tent and pitching it in the open fields? (AI issue)

quote:
It turns out that John has amassed a small but loyal group of pretty tough friends among the NPC villagers. These friends join him at the cave and vow to protect him.



How did John amass friends? What motivates them to follow John and protect him? What effect will this have on the friends and family of these friends who are left behind in town? (design/AI issue)

Sit down and think about a few of these issues and give them some more detailed thought. Take one of them - for instance emotions - and think about every aspect of emotion in this world. Who has them, what affects them, how do they affect agents, how might they be modelled? This will give you a better sense of the size of the problem and how you might go about breaking it into parts and tackling them.

Cheers,

Timkin

#5 Predictor   Members   -  Reputation: 198

Like
Likes
Like

Posted 17 March 2004 - 10:54 PM

quote:
Original post by irbrian
For years I''ve been fascinated with the idea of developing a game involving a persistent virtual world whose makeup and events evolve through the actions of NPCs. Individual and Group relationships, motivations, and beliefs, all facilitate the process. Utlimately the player is placed within the virtual world, the state of which is dynamically defined (at least in part) by the behavior of the NPCs. A story develops -- it is not "generated" but simply occurs based on the behavior of all the agents working together.


Yes, this is a fascinating idea that takes the simulation idea to its logical conclusion. What I wonder, though, is how much fun it would really be. It''s really your last sentence that I''m stuck on, "A story develops...".

Think about "The Hobbit". The story doesn''t open on an arbitrary day in the Shire- the author deliberately chose the day that Gandalf came to Bilbo''s door. If one were to drop in on the Shire on a day chosen at random, I think things would have been a lot less interesting: "Bilbo woke and had breakfast. After checking his supply of seed cakes, he had a second breakfast. Then he napped. Then he read his favorite book for the hundredth time." ...and so on.

Likewise, movies are interesting precisely because they are set up. An average day happening in real time would be pretty boring, even aboard the starship Enterprise.

-Predictor
http://will.dwinnell.com




#6 Kylotan   Moderators   -  Reputation: 3333

Like
Likes
Like

Posted 18 March 2004 - 08:28 AM

Predictor; I once thought that it would be interesting to have a 2-tier approach to the problem you speak of. Basically it revolves around the fact that it might be easier to recognise the potential for a good story than to deliberately create a good one. So the first tier generates situations and events, much like the one in the first post. And the second tier sifts through these events to find the interesting ones, fit to become a story. It might even be possible to use some sort of search algorithm such as GAs to power this 2nd tier. Just an idea.

[ MSVC Fixes | STL Docs | SDL | Game AI | Sockets | C++ Faq Lite | Boost
Asking Questions | Organising code files | My stuff | Tiny XML | STLPort]


#7 irbrian   Members   -  Reputation: 130

Like
Likes
Like

Posted 18 March 2004 - 11:42 AM

quote:
Original post by mikeschuld
Obviously a game like this would be an MMORPG
Not necessarily, but yes, that''s the most likely use of this kind of scenario. The idea is to create a world, and a society, that behaves in a believable manner.
quote:
My implementation of it was not exactly all NPC based. I have plans on allowing NPC''s to have the same jobs and ranks in society as PC''s do...
Again, the idea is that the world is populated by agents that act in a beliable manner. This applies in particular to NPCs, but the technology would have vast potential in all aspects of a virtual world if done properly.
quote:
I have begun working on an engine for this game, but being new to game and directx programming has made it a slow process. Currently I have a flashy particle engine, basic mesh and object loading and rendering, and a very simple terrain rendering model. If you need someone to brainstorm with about ideas for your NPC''s I would love to chat with you.
The graphics engine sounds great. I''m not too interested in graphics at this stage though -- I figure that graphics are a pretty standard science these days, whereas AI and adaptive world technologies are primitive and mostly theoretical. I''m interested in developing games, but the stuff I''m talking about is more theory. And I''m always interested in discussing these ideas with anyone else who''s interested.
quote:
Sorry bout the lengthy post
This is the most humorous element of your post, considering the novelette that opened this thread.

[More coming momentarily...]

#8 irbrian   Members   -  Reputation: 130

Like
Likes
Like

Posted 18 March 2004 - 11:46 AM

quote:
Original post by Luctus
First of all, I think that what you want is very hard to accomplish. If it is even possible, I imagine it would be at a very basic level.
Absolutely. Which is why I assert that I'm mostly interested in theory for now... implementation is hardly 'just around the corner.'
quote:
I don't think neural networks are useful here, I've read some about them and played a bit with implementing them. You can get pretty impressive results, but; A) They don't scale well. and B) Neural networks strength lie in pattern recognition, and I don't see much pattern here.
I think pattern recognition would be very important on an individual level, especially when you consider the questions posed by Timkin. But on a larger scale, what you're saying makes sense. Thanks for your input here.
quote:
I doubt you're the first on to think of the idea.
I'm sure you're right about that, but I'd be especially interested to know of any funded academic or commercial projects are focusing on this kind of technology.

[edited by - irbrian on March 18, 2004 6:51:57 PM]

#9 irbrian   Members   -  Reputation: 130

Like
Likes
Like

Posted 18 March 2004 - 11:51 AM

quote:
Original post by Timkin
First, don''t think about the tools needed yet... just think about the problem. Defining the problem specifically is at least 50% of the work! Solutions to these problems will dictate the algorithms used (somewhat) in your game.
Good advice.
quote:
How will you determine what mix of roles a village will have?
How will it depend on the size of the village?
Will the presence of one archtype corelate with the presence or absence of other archtypes? (Design issues)
How will these attributes affect the decisions made by John (AI issue)?
How will the decisions of others, with respect to John, be affected by John''s attributes (design/AI issue)?
How does John select a house? How does John avoid detection?
How does John know if the house is safe/empty?
How does John evaluate the value of items? (AI issues)
How did the other NPCs acquire information that lead them to this belief?
How did they make the inference that John was the culprit? (AI issue)
What is the mechanism for discourse and information sharing among NPCs? (design/AI issues)
Does each person hold this belief, or does each person belief everyone else believes this? (design/AI issue)
How is guilt inferred? (AI issue)
How will fear be implemented as an emotion that affects action?
What other motivations will be open to NPCs?
What other emotions will they have that might perturb these motivations? (design/AI issue)
How does John choose a cave?
Why does he choose a cave over say buying a tent and pitching it in the open fields? (AI issue)
How did John amass friends?
What motivates them to follow John and protect him?
What effect will this have on the friends and family of these friends who are left behind in town? (design/AI issue)

Sit down and think about a few of these issues and give them some more detailed thought. Take one of them - for instance emotions - and think about every aspect of emotion in this world. Who has them, what affects them, how do they affect agents, how might they be modelled? This will give you a better sense of the size of the problem and how you might go about breaking it into parts and tackling them.
These are all excellent, thought-provoking questions, and frankly exactly the kind of thing I''m interested in. I''ve put a great deal of thought into most if not all of these issues, but it helps to have them stated bluntly like that; I''m better able to pinpoint specific issues and flesh out possible solutions. So if you''ve got any more, feel free to unleash ''em.

#10 irbrian   Members   -  Reputation: 130

Like
Likes
Like

Posted 18 March 2004 - 12:01 PM

quote:
Original post by Predictor Yes, this is a fascinating idea that takes the simulation idea to its logical conclusion. What I wonder, though, is how much fun it would really be. It''s really your last sentence that I''m stuck on, "A story develops...".
I understand what you''re saying. But what you''ve got to remember is that this is an interactive, persistent world we''re talking about. The player isn''t inserted at one particular point, the story doesn''t "begin" or "end" -- things just happen. The world is alive, doing its own thing, and that''s the whole point. In a MMOG, thirty players may walk through the village and discover that the scene is quite like what you described in your Hobbit scenario. They''d stop to buy weapons, food, or whatever, and move on to greater adventure -- dungeons that need conquering, wars that need fighting, guilds that need whipping into shape, whatever. The thirty-first player might walk into the very scenario I''ve described. But the scenario could be reversed -- the player could be the root cause of it all, and John (rather, a different John who''s much more noble and courageous) could be the hero! Otherwise life in the Shire goes on much as it always has, and no one''s the worse for it. There is always adventure to be had elsewhere.

Also, there are plenty of ways to "stir things up" as a designer. A truly dastardly incarnation of our NPC friend John could be conjured up by the designer, and thrown into the mix for this very purpose. A horde of Undead could be manually unleashed at the same time as the dynamic scenario -- just to make things more interesting. Whatever. The point is that the game and its agents respond semi-humanistically to the events and environment surrounding them. Whenever such a technology matures -- be it 10 years, 20 years, or 80 years, it should make for some truly fascinating scenarios... maybe even some the game designer would never have imagined.

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

Brian Lacy
ForeverDream Studios

Comments? Questions? Curious?
brian@foreverdreamstudios.com

"I create. Therefore I am."

#11 irbrian   Members   -  Reputation: 130

Like
Likes
Like

Posted 18 March 2004 - 12:05 PM

quote:
Original post by Kylotan
Predictor; I once thought that it would be interesting to have a 2-tier approach to the problem you speak of. Basically it revolves around the fact that it might be easier to recognise the potential for a good story than to deliberately create a good one. So the first tier generates situations and events, much like the one in the first post. And the second tier sifts through these events to find the interesting ones, fit to become a story. It might even be possible to use some sort of search algorithm such as GAs to power this 2nd tier. Just an idea.
Precisely.. this is more or less what I was saying. In my previous post, the 2nd Tier you mention is simply the will of the designer. Automated methods would be an interesting, if even more complex, alternative. Perhaps the automated "story-finder" agent tracks semi-ordinary patterns in NPC and Group behaviors, and alerts the system when those patterns change sharply.


All in all, some great responses. If you guys are interested I can of course post more information in response to Timkin''s questions; otherwise, I''d still be interested in hearing other opinions.


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

Brian Lacy
ForeverDream Studios

Comments? Questions? Curious?
brian@foreverdreamstudios.com

"I create. Therefore I am."

#12 Neoshaman   Members   -  Reputation: 170

Like
Likes
Like

Posted 18 March 2004 - 04:22 PM

hope this would help but try go here

http://www.gamedev.net/community/forums/topic.asp?topic_id=213880

>>>>>>>>>>>>>>>
be good
be evil
but do it WELL
>>>>>>>>>>>>>>>

#13 mikeschuld   Members   -  Reputation: 146

Like
Likes
Like

Posted 18 March 2004 - 04:38 PM

I have a little idea that may be of some help to you. Granted this is more o an implementation idea I am a go at it now kind of guy so I guess you will just have to write it down and use it later if you like it For the information sharing of NPC''s, however you have your info stored (ex. opinion of people in the game between 1-100 or whatever scale) you could have the NPC''s share the information with each other if they are in the near vicinity of each other (gossip pretty much) and certain character traits (like vulnerability, gullability, skill with words) that the NPC''s possess will influence the ranges of those they talk to. This might be what you are looking for in an NPC info model, and if it isn''t I''ll use it myself!! Just a quick thought I figured I''d write down for ya.

#14 Timkin   Members   -  Reputation: 864

Like
Likes
Like

Posted 18 March 2004 - 06:43 PM

WRT Predictor''s comments:

Yes, 99.9% of days would be like that if the world were left to itself... indeed, one could argue that the left to its own devices, the world would converge on a static state, unless specific elements were placed in it to stir it up. It is precisely this idea that would make for a fascinating game.

The idea of dynamic plot generation has been around for a while. Given a world as described above, it would make sense to place an ''NPC-God'' behind the scenes to direct certain characters in the world, so as to generate an underlying story. Perhaps it''s a simple story... John becomes a thief... or something more intriguing... the king has been murdered... ''whodunnit''? Agents within the world can be given directorial commands via the ''word of god'', or by small changes to their personal goals and desires.

Given such mechanisms it should not be too hard to create a world in which many interesting things are happening on a daily basis with these events being tailored to pique the interest of the particular player(s).

Cheers,

Timkin

#15 Luctus   Members   -  Reputation: 580

Like
Likes
Like

Posted 19 March 2004 - 02:20 AM

< rant warning >

I'm going to propose a theoretical implementation of this problem.

First of all, for this system to believable, there needs to be a way of communication between NPC’s as well as between OC's and NPC’s. I was thinking of a iconographic system (this topic was discussed in the game design forum a while back), it'll allow for truly dynamic generation of "sentences" without being constrained by natural language processors (which is a science in itself) and it lends itself particularly well to the implementation I'm about to describe.

Each agent in the world is set up with a number of stats, the one I can think of the top of my head can be; greed, compassion, aggression, etc... Those stats determine how they will interact with other NPC's, certain stats mach each other in different way. For example, if NPC A has a high stat compassion, and NPC B has a low stat greed, then their attitude towards each other will improve. Now, based on those stats, two things will happen. As a first they'll determine what they'll say to the player and to each other. The iconographic system makes this (in theory) very easy, it'll just be combine the name of the NPC in question, an icon representing their attitude towards that NPC and possible an icon representing the reason for why they've got that attitude. Then, when NPC's conversate with each other, their attitudes will "rub off" on each other. Secondly, the other thing the stats will determine is the actions of the NPC's. For example, NPC A is beginning to have a very bad attitude towards NPC B will probably begin to avoid that NPC (NPC B doesn't necessarily need to be hostile towards NPC A), if things continue to degrade (based of conversations with other NPC's, how much NPC A and B interact, and a number of other factors) and NPC A have a very high aggression rating, maybe the result will be that NPC A kills B. This in turn changes all other NPC's attitude towards NPC A and so on and so forth.

Let's look at a possible scenario:

A village is populated by a number of NPC's, we'll take a closer look at one named "John" . John has a high greed stat, low compassion and medium aggression. Because of those stats, John is incompatible with most of the other NPC's in the village, however they match pretty good with the people he's seeing when he's out in the woods chopping down trees (of course, NPC's need to have a work, but that's outside the scope of this post). Which means that the village people will begin avoiding John, and when communication with each other, their aversion towards John will only grow (you know gossip ). John on the other hand will begin being more with his friends in the woods. One day, a village NPC (let's call him A) notices that one of his sheep are missing. From his knowledge base, he knows that he dislikes John and he knows that John's stats would allow for him to steal. Another NPC (NPC B) noticed John eating sheep for dinner, when those two NPC's meet, A would say "Don't like" "John" "missing" "sheep" and B would say "Don't like" "John" "John's got" "sheep". This iconographic conversation would cause the two NPC's attitude towards John to drop like a stone. A's got a so low attitude towards John that he decides to get rid of John and walks up to the woods where John usually is and attacks him. John having his friends with him, easily kills A and continues to lead their life in the woods (John got so bad attitude towards the village and so good attitude to his wood friends that he isn't even going back to the village anymore). NPC B, hasn't quite that bat attitude towards John, so he isn't going with A, but instead begins spread the word (or icons in this case) in the village "John" "don't like" "stolen" "sheep" "A" "dead", which in turn will cause the attitude of the villagers towards John to maybe drop so low that they form a party to go and take justice on John and his friends.

This explanation obviously has a large number of holes in it, for example; how actions like theft and death would be represented. Not to mention how on earth one would realize how the logic for the "sentence" ("Don't like" "John" "missing" "sheep") and ("Don't like" "John" "John's got" "sheep") would trigger the drop in attitude towards John. And the work of setting up appropriate stats and how stats correlate can only be a pain.

< /rant warning >

Comments?

-Luctus

Statisticly seen, most things happens to other people.
[Mail]


[edited by - Luctus on March 19, 2004 9:22:46 AM]

#16 irbrian   Members   -  Reputation: 130

Like
Likes
Like

Posted 19 March 2004 - 08:35 AM

Belief, deductive reasoning, and loyalty are all key in the scenario I proposed. Here''s an abstract breakdown of how beliefs might be shared.

The NPC who discovers the crime reaches conclusions in roughly this manner:

NPC: ROBERT
1) Observation: I''ve been robbed!
2) Deduction: A crime has been committed, so someone is resonsible
3) Deduction: The crime happened between time X and time Y
4) Observation: The only people I know were in the vicinity during this time are (other villagers)
5) Deduction: The culprit must be one of the villagers
6) Belief: I believe John to be capable of such a crime
7) Observation: John''s whereabouts during X to Y are unknown
8) Deduction: John is a the most likely suspect
9) Belief: John probably committed the crime
10) Action: I will share my belief with others

Another NPC''s beliefs are influenced indirectly through ordinary communication:
NPC: JULIET
1) Observation: Robert believes John robbed him
2) Belief: I believe John to be capable of such a crime
3) Observation: John''s whereabouts during X to Y are unknown
4) Deduction: John is a the most likely suspect
5) Belief: John probably committed the crime
6) Action: I will share my belief with others

Still another NPC may feel differently:
NPC: FRANK
1) Observation: Robert believes John robbed him
2) Belief: John (who is loyal to me) would not steal from Robert.
3) Deduction: John is innocent.
4) Observation: John is being accused of a crime he did not commit by the other villagers.
5) Belief: Other villagers will cause John harm over their beliefs.
6) Deduction: John needs protection.
7) Action: I will protect John.


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

Brian Lacy
ForeverDream Studios

Comments? Questions? Curious?
brian@foreverdreamstudios.com

"I create. Therefore I am."

#17 Anonymous Poster_Anonymous Poster_*   Guests   -  Reputation:

Likes

Posted 20 March 2004 - 02:54 AM

quote:
Original post by Luctus
I don''t think neural networks are useful here, I''ve read some about them and played a bit with implementing them. You can get pretty impressive results, but; A) They don''t scale well. and ...



In what sense are you saying that neural networks do not "scale well"? What types of neural networks? During training or recall? In terms of speed, required memory, complexity of input-output mappings?

-Predictor
http://will.dwinnell.com





#18 Timkin   Members   -  Reputation: 864

Like
Likes
Like

Posted 20 March 2004 - 02:45 PM

A couple of comments on recent posts...

First, irbrian, from your description of the deductive logic you wish to employ, I urge you to take a look at 'NAG', the Nice Argument Generator developed by Ingrid Zuckerman, Kevin Korb and colleagues. It is an automated argument generator that has been turned to solving problems (so far) in a 'whodunnit' scenario. The basis of the technology is a Bayesian Network layered over a Semantic Network, which permits causal, logical and probabilistic deductions and inferences. There are several publications you can read on it... start either with a Google search, or check out the CSSE website at Monash Uni. Through their publications you should be able to find references to other relevant work in the field.

As to the discussions about sharing information (conversing) and influencing the traits of others (socialising), one must remember something very important in information dissemination systems... that, in the absence of the input of new information (and assuming that NPCs begin with some knowledge), there is only one possible limit state for knowledge: every NPC knows everything. This is because information dissemination is a diffusive process. Given this, one can design some obvious alterations to the basic diffusion process to avoid this undesirable outcome.

The most obvious is to use information 'sinks'. That is, NPCs that 'forget' information, so that it is not passed on. The natural extension to this is to limit the amount of information that any one NPC can store. So, to utilise the Luctus' icon system, one could limit the number of other NPCs that an NPC holds icons for. Obviously though, this introduces problems when the NPC meets new people and they are already at their limit.

If you do implement information sinks, then you must also implement information 'sources', lest you lose all information from the system.

This topic has come up several times in the past few years and there was an excellent, very long thread on NPC information systems several years ago in which I first mentioned this problem. Check out this thread first:

NPC AI in RPGs

and another thread on the topic...
How to make NPCs "gossip"

I also urge you to utilise the forum search feature to see what others have written in the past. There's some hidden treasures of ideas in the archives that people often overlook!

Cheers,

Timkin



[edited by - Timkin on March 20, 2004 9:46:58 PM]

#19 irbrian   Members   -  Reputation: 130

Like
Likes
Like

Posted 20 March 2004 - 07:53 PM

quote:
Original post by Timkin First, irbrian, from your description of the deductive logic you wish to employ, I urge you to take a look at 'NAG', the Nice Argument Generator developed by Ingrid Zuckerman, Kevin Korb and colleagues. It is an automated argument generator that has been turned to solving problems (so far) in a 'whodunnit' scenario. The basis of the technology is a Bayesian Network layered over a Semantic Network, which permits causal, logical and probabilistic deductions and inferences. There are several publications you can read on it... start either with a Google search, or check out the CSSE website at Monash Uni. Through their publications you should be able to find references to other relevant work in the field.
Thanks, I'll look into those resources.
quote:
As to the discussions about sharing information (conversing) and influencing the traits of others (socialising), one must remember something very important in information dissemination systems... that, in the absence of the input of new information (and assuming that NPCs begin with some knowledge), there is only one possible limit state for knowledge: every NPC knows everything. This is because information dissemination is a diffusive process. Given this, one can design some obvious alterations to the basic diffusion process to avoid this undesirable outcome.

The most obvious is to use information 'sinks'. That is, NPCs that 'forget' information, so that it is not passed on. The natural extension to this is to limit the amount of information that any one NPC can store. So, to utilise the Luctus' icon system, one could limit the number of other NPCs that an NPC holds icons for. Obviously though, this introduces problems when the NPC meets new people and they are already at their limit.

If you do implement information sinks, then you must also implement information 'sources', lest you lose all information from the system.
The 'sinks' you're referring to are an interesting solution. But I'm not sure that I yet understand the necessity, or rather the problem you're describing. If NPCs always shared everything they knew with other NPCs, then of course NPCs would very quickly learn everything there was for an NPC to know... but that's not very realistic behavior, is it. I feel that NPCs should only share Conclusions -- Beliefs that have been arrived upon after the series of deductive steps I outlined above. Of course they needn't share every conclusion, either. Perhaps instead of 'forgetting' their Beliefs, they 'forget' to tell the other NPC about them -- or even decide not to share the information with the other NPC. Or they decide which Conclusions are most important or of most interest, and share those. All complex issues, but I'm still talking theory here.

Basically, anytime two NPCs talk, they exchange a subset of the Conclusions they've recently made about their environment. These conclusions are treated as unverified observations -- "Bob thinks John is guilty." They must be verified through the NPC's own deductive process, employing all the NPC's own beliefs along the way. Thus different NPCs draw different conclusions.

Another aspect is communicative contact -- NPCs have limited contact just like PCs. At some point a decision must be made about whether two NPCs are exchanging ideas (conclusions).
quote:
This topic has come up several times in the past few years and there was an excellent, very long thread on NPC information systems several years ago in which I first mentioned this problem...I also urge you to utilise the forum search feature to see what others have written in the past. There's some hidden treasures of ideas in the archives that people often overlook!
More useful links, thank you. Naturally I always search for relevant discussions before posting, but face it -- this is a huge forum, and the possibility of finding the specific needle in the haystack, even with a good deal of luck in the keyword-selection process, is slim.


Edit: Another thought about sharing Conclusions. Maybe NPCs should store their conclusions in a sort of info package with the Topic, Source, and Conclusion. In the observation "Bob thinks John is guilty," 'John is guilty' is the Topic, 'Conversation with Bob' is the Source, and 'I think John is innocent' might be the Conclusion. Thus they can quickly reference the topic and consider the source. I haven't read the other posts yet so I'll do that before I say more on this issue.

[edited by - irbrian on March 21, 2004 2:57:17 AM]

#20 kwackers   Members   -  Reputation: 176

Like
Likes
Like

Posted 21 March 2004 - 01:42 AM

The main problem with the scenario you proposed in the first post is how you actually arrived at that sequence of events.

You imagined an interesting conclusion to your story (a group of rebels hiding in a cave) and then worked the story into that, arranging the characters so that they would fit into the storyline. Obviously such a complex situation is unlikely to occur if you have 50 individual entities controlling themselves. What you could do is follow the same path you used to create your original scenario... You could have 50 entities that control their own everyday lives, but actual storylines are generated by a higher level of AI which has control over all the entities. This higher level AI would attempt to develop storylines that fit into the current world (for example if there was a famine an story could revolve around that) and then manipulate the characters to carry out the plot.




Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS