Jump to content

  • Log In with Google      Sign In   
  • Create Account

Banner advertising on our site currently available from just $5!


1. Learn about the promo. 2. Sign up for GDNet+. 3. Set up your advert!


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

#21 irbrian   Members   -  Reputation: 130

Like
Likes
Like

Posted 22 March 2004 - 11:59 AM

Yes, this idea was mentioned by other contributors earlier, and it is a fine one. Such an entity would probably have an important place in a system like this.

The key thing to remember, though, is that my original post was intentionally hypothetical. The point is that the potential for events that are out-of-the-ordinary is always there, but the specific events are unlikely to occur. That''s because most of the time, NPCs live their lives in a relatively normal, believable fashion, and provide basic functions like Merchant, Tavernkeeper, or what-have-you. Thus, "quests" or interesting situations are never *expected* -- they are bonuses that happen when NPCs find a way to get themselves into trouble. This shouldn''t detract from the game, though -- in fact, it should add value. A world where every village has thirty "quests" available at all times doesn''t feel very natural and disturbs the immersion factor.

I said that NPCs "find a way to get themselves into trouble." This is an important concept. NPCs try to live their lives normally, but are a commonly troublesome lot... they are quick to judge, quick to fall to their vices, and especially quick to pay someone else to do their dirtywork. Thus it is more likely that an interesting situation may occur, even though its not likely to occur all the time.

Sponsor:

#22 Telamon   Members   -  Reputation: 157

Like
Likes
Like

Posted 23 March 2004 - 06:26 PM

I've seen some very good presentations by Will Wright and Chris Crawford on the topic of dynamic story generation - if you ever have the opprotunity to see either one talk, I would definately go for it (especially Will Wright - I have a lot of great professors at Stanford, but he's by far the best lecturer I've ever listened to).

I think that your basic approach might be over-complicating what is needed to create an interesting dynamic experience for the player (which is the goal). Will has been experimenting with dynamically generated stories at a somewhat higher level (fewer details) that you have proposed. The basic idea is to break up a narrative into it's most basic elements.

Possible "atoms" of narrative

"a man steals from his villiage"
"finds a magic greatsword"
"meets a girl"
"hides in the woods"
"gathers followers"
"gains fame and fortune"
"meets disaster"
"is betrayed"

The essential idea is that each atom has "connectors" on it that describe what other atoms can come before and after it.

So a possible legal chain of events could be:

"a man steals from his villiage" "meets a girl" "is betrayed" "meets disaster"

or

"a man steals from his villiage" "finds a magic greatsword" "gathers followers" "gains fame and fortune"

One can imagine a more complex system wherein somethings are more likely to follow after certain events than others. All the semantics for dealing with a particular event in the game world are stored in the particular atom. So something like "gathers followers" naturally takes two arguments - who gathers the followers, and what kind of followers they are. The atom itself defines what it is to "follow" someone. The neat thing about this approach is that these atoms can be chained together in lots of different ways - in fact the number of combinations that you can make grows expontentially with the number of atoms you create. This is the winning point of Will's design - it allows developers to offer very rich storylines with only a logrithmic amount of effort.

Chris Crawford I actually consider to be something of a pompous hack, but he is working on something called the Erasmatron which, as I understand it, is an attempt to do exactly what you had originally proposed. He has a website with some information, you might Google for it.

----------------------------------------
Let be be finale of seem, seems to me.
----------------------------------------

Coding:
http://www.stanford.edu/~jjshed/coding

Miscellany:
http://www.stanford.edu/~jjshed

[edited by - Telamon on March 24, 2004 1:34:44 AM]

#23 irbrian   Members   -  Reputation: 130

Like
Likes
Like

Posted 24 March 2004 - 02:47 AM

quote:
Original post by Telamon
I''ve seen some very good presentations by Will Wright and Chris Crawford on the topic of dynamic story generation - if you ever have the opprotunity to see either one talk, I would definately go for it (especially Will Wright - I have a lot of great professors at Stanford, but he''s by far the best lecturer I''ve ever listened to).

I think that your basic approach might be over-complicating what is needed to create an interesting dynamic experience for the player (which is the goal). Will has been experimenting with dynamically generated stories at a somewhat higher level (fewer details) that you have proposed. The basic idea is to break up a narrative into it''s most basic elements.

Possible "atoms" of narrative

"a man steals from his villiage"
"finds a magic greatsword"
"meets a girl"
"hides in the woods"
"gathers followers"
"gains fame and fortune"
"meets disaster"
"is betrayed"

The essential idea is that each atom has "connectors" on it that describe what other atoms can come before and after it.

So a possible legal chain of events could be:

"a man steals from his villiage" "meets a girl" "is betrayed" "meets disaster"

or

"a man steals from his villiage" "finds a magic greatsword" "gathers followers" "gains fame and fortune"

One can imagine a more complex system wherein somethings are more likely to follow after certain events than others. All the semantics for dealing with a particular event in the game world are stored in the particular atom. So something like "gathers followers" naturally takes two arguments - who gathers the followers, and what kind of followers they are. The atom itself defines what it is to "follow" someone. The neat thing about this approach is that these atoms can be chained together in lots of different ways - in fact the number of combinations that you can make grows expontentially with the number of atoms you create. This is the winning point of Will''s design - it allows developers to offer very rich storylines with only a logrithmic amount of effort.

Chris Crawford I actually consider to be something of a pompous hack, but he is working on something called the Erasmatron which, as I understand it, is an attempt to do exactly what you had originally proposed. He has a website with some information, you might Google for it.


Some good points... Will Wright is a genius, of that I''ve been convinced for a long time. I think that the idea of breaking up narrative into segments is a quality one, and has a good deal of potential even in the near term.

But I''m more interested in the concept of a world and NPCs that exist entirely on their own, but with motivations and beliefs that lead them to act in interesting ways, thus allowing players to interact with them in a believable and interesting way.

After reading the recent "Chris Crawford on Game Design," I''m convinced you''re onto something with your suggestion that Mr. Crawford is a bit of a "pompous hack." Don''t get me wrong, I think he''s intelligent and educated and has done some great work. But his theories are hit and miss in my opinion, and less commonly based on fact and logic than they are on his own seemingly random opinions.

I hadn''t heard about this "Erasmatron" though. I''ll definitely look into it.

Thanks for the post.

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

Brian Lacy
ForeverDream Studios

Comments? Questions? Curious?


"I create. Therefore I am."

#24 Nice Coder   Members   -  Reputation: 366

Like
Likes
Like

Posted 25 March 2004 - 07:42 PM

I have an idea...

You have a simple ANN, in which according to positive/negitive reinforcement (from user, form time, aftereffects good/bad), changes its weights (bot does something wrong gets negitive reinforceement, harder to get the bot to do that again)

You feed the ANN with information within its field of view (not being able to see through walls, but able to hear around a corner). The ANN can also see the state of any bot within its field of view.

The ANN sends data back to itself (memory or ''state'')

According to how the ANN has been trained, (its "personality") it would react differently in different situations.

Senario:
Policebot sees Thiefbot running away with item
Policebot runs towards Thiefbot
Thiefbot runs away
Policebot2 ''hears'' Policebot1''s running
Policebot2 investigates (FSM?)
Policebot2 ''sees'' Policebot1''s state
Policebot2 Chases Thiefbot
ect.

The ANN''s should also add a bit of randomization (if it is positively reinforced it is kept, not otherwise). Just to keep things interesting. (and also to help learning).

The PC is just a NPC without its AI (human control, and extra sensing).

Is this a good idea?

#25 Timkin   Members   -  Reputation: 864

Like
Likes
Like

Posted 26 March 2004 - 02:53 PM

quote:
Original post by Nice Coder
I have an idea...

Is this a good idea?


To be honest... no. At least not for a world populated with hundreds or even thousands of NPC characters. Certainly not with current hardware technology... and probably not for another ten years (at least)!

Putting aside the issue of computational requirements, how on Earth do you plan to train hundreds or even thousands of 'bots' with reinforcement learning in this way? Any automated methods would take, at my guesstimate, cpu-years to get even basic behaviour for so many interacting characters.

Furthermore, a black-box solution like an ANN-controller doesn't permit the analysis of inference that one might desire in such a system (be it analysis by the player, other NPCs or even story designers). To the outside viewer, a bot controlled by an ANN can be difficult to predict when the context has many input variables. If you cannot predict its behaviour, how do you expect to be able to understand its reasoning?

Getting onto that point (of input variables), how do you plan on labelling the world with sufficient clarity to provide interesting, human-like behaviours, while at the same time keep your network input to a few dozen or a few hundred variables (for computational tractability)?

So, to reiterate...no, the use of an ANN to control individual characters in a dynamic world simulation is NOT a good idea, at least not in my opinion.

Timkin

[edited by - Timkin on March 26, 2004 9:55:41 PM]

#26 Telamon   Members   -  Reputation: 157

Like
Likes
Like

Posted 27 March 2004 - 09:45 AM

Yeah, basically the time to train a set of n parameters using GAs or reinforcement learning is O(k^n). As you can see, this problem is NP-hard. Now I''ve heard that there are ways to at least speed up training by a constant factor for certain problems, but you''re not going to get around this barrier easily, methinks.

Will Wright has a similar idea that might be feasible, however (the man is a fount of innovation). His observation relates to the Sims, but could be generalized to other games easily. A lot of people use the Sims to tell stories (supposedly there are websites that you can even upload them to). Wright''s observation is that the stories tend to fall into general archtypes (like Horror, or Romance, or Adventure, ect...) and that certain archtypes often share common plot/story elements. His idea was that a next-generation Sims game could try to guess what kind of story the player is trying to tell by the story elements that the player is invoking. Then, using a massive online database on an Electronic Arts server, the computer could try to guess what kind of story the player is trying to tell, vis a vis the story archtypes, and introduce new elements that would help the player tell that story in an interesting way (the choice would be randomish, but appropriate). Then we close the loop. The player''s choices in telling a story archetype in his own game would then be uploaded to the server as a kind of reinforcement-learning step.

The bottom line is that you could have several thousand networked players doing the reinforcement learning for you as they played the game. This would have the added advantage of keeping gameplay fresh for the entire player community, because as people got tired of the same old stories, the online database would likewise migrate away from the old choices.

There are still a lot of engineering problems to be solved here - for example: where do these storyarchetypes come from? Are they defined by developers, or players? Or are they defined on-the-fly when there is a sequence of story choices that don''t match well to any existing archetype?

Still, I think it''s an idea that has promise.

----------------------------------------
Let be be finale of seem, seems to me.
----------------------------------------

Coding:
http://www.stanford.edu/~jjshed/coding

Miscellany:
http://www.stanford.edu/~jjshed

#27 Timkin   Members   -  Reputation: 864

Like
Likes
Like

Posted 27 March 2004 - 02:27 PM

Okay, we''re getting a bit off topic here really, which was to discuss the practicalities and how-to of irbrian''s concept for an RPG.

Perhaps we could bring things back on track please?

Thanks,

Timkin

#28 irbrian   Members   -  Reputation: 130

Like
Likes
Like

Posted 28 March 2004 - 03:34 PM

I don't think Telamon's comments are too far off topic, although the main idea is about developing persistent worlds that adapt even in the absence of the player, so that the world and its virtual inhabitants evolve over time and constantly present a new and different scenario to the player, yet always within the same context, if that makes sense.

[edited by - irbrian on March 28, 2004 10:34:46 PM]

#29 Timkin   Members   -  Reputation: 864

Like
Likes
Like

Posted 28 March 2004 - 04:40 PM

quote:
Original post by irbrian
I don''t think Telamon''s comments are too far off topic...


Neither do I. That''s why I said "a bit off topic".

quote:
Original post by irbrian
so that the world and its virtual inhabitants evolve over time and constantly present a new and different scenario to the player, yet always within the same context, if that makes sense.



When you say ''evolve over time'', do you mean simply that their state changes with a temporal dependence (due to the temporal ordering of interactions with their environment), or do you mean that the agents learn a changing state transition function over a period of time (which would reflect in the agent performing different responses - or inferring different beliefs - to the same stimuli, at significantly different times)?

The point of this question is that belief revision - as we discussed earlier - is generally different to learning, which people often mean when they''re talking about ''evolving'' agents.

Timkin

#30 Telamon   Members   -  Reputation: 157

Like
Likes
Like

Posted 28 March 2004 - 06:16 PM

Actually, I don''t think my remarks were off topic at all. On one hand, I pointed out why the previous suggestion to use GAs would likely not be feasible, and on the other, the rest of my comments address a similar idea that might be feasible and certainly relates to building "Adaptive Game Worlds" - which I thought was our focus here.

That being said, I think this is a very interesting discussion and I''d like to thank everyone else who weighed in for their thoughts. It would be really cool to see some demos of this kind of thing, even in microcosm - since if anything, I think we''ve established that building a complete adaptive virtual world is a daunting task.

The closest thing I''ve ever seen to the kind of game world irbrian has suggested is Black & White - though the only thing that really made it adaptive was that the creature learned. There was no dynamic social interaction/plot development aspect to it. Unless you consider fighting social interaction, I suppose... :-)

----------------------------------------
Let be be finale of seem, seems to me.
----------------------------------------

Coding:
http://www.stanford.edu/~jjshed/coding

Miscellany:
http://www.stanford.edu/~jjshed

#31 ddn3   Members   -  Reputation: 1440

Like
Likes
Like

Posted 28 March 2004 - 08:23 PM

I''ve been thinking about something similar to this for awhile. I think there are 2 main issues with the concept. First is the expectation of the user when presented with such an open ended world and ofcourse the building of the simulation.

The users when presented with such a deep simulation would need enormous number of cues and senses to appreciate it. Building the world alone would not be enough to fullfill your dream. An equally revoltionary interface to the world would be needed. One where the player can view through time, space and thought with ease, though not nessecarly be omnipitent. Interacting within the world through an avatar would present some consistency problems, with our god like nature to percive thought and time. In the game the Sims people build stories around their sims actions, even though their actions are governed by nothing more complex than a weighted search fucntion to maximize their happyness. The magic lies in giving the player just enough information about their sims and the sims having a sufficently large state space as so they appear to be capable of performing said stories.

I think this will be the case with your project. Most likely the simulation will be beyond human comprehension. We would be peeking into a world of enormous compelxity and make up what we can''t see to explain their behaviors. They will have to walk a fine line between famailirty and novelty to hold our attention.

To build the similuation, I think you will have to face some fundemetnal philosopical questions which needs to be answered for your universe, of determinism, self, and existence. Don''t think you won''t have to deal with these issues. When making a simulator of a world so close to ours, they almost inevitably arrise.

Take determinism, is your universe ultimately deteministic? That is given the same set of conditions and inital state, will the world state repeat itself on multiple runs? You might say yes, since it''s on a computer and computers are deterministic within a given tolerance. However, your simluation interacts with people, who forms a condiuit to another world whose deterministic state is far from certain. You could say if the simluation couldn''t interact with a person, it would be deterministic. Then again you''ll have to consider that in theory a perfect computing machine would be deterministic, however our computers are not perfect. Within tolernaces of hardware and programming, most programs are determeinistic. I suspect the complexity of the simulation will exceed those tolerances, if your not aware of them. You could design a deterministic simluation, it would be difficult, however it can be done. Or you could choose the rotute of explict non-determinism, which in itself posses intresting problems and potential. The choice is yours and that choice will shape every system of your simulation. Perhaps you''ll gain some new insight into the nature of determinism.

The other isses also will grealty affect your simulation, the nature of agents and the explicit vs implicit states of the world.

Technolgy wise, I see your simluation as being possible. I''ll have to do some reesarch on which would be most applicable.

Until then Good Luck on your project!

-ddn








#32 Timkin   Members   -  Reputation: 864

Like
Likes
Like

Posted 29 March 2004 - 03:47 AM

quote:
Original post by Telamon
Actually, I don't think my remarks were off topic at all.



Telamon, my comments about heading off topic were not directed at you specifically, but rather at the previous few posters that had started to take the original discussion and turn it yet again into another neural network discussion. I didn't (and still don't) believe heading in that direction would have been productive in this thread (and would rather, as has been seen in the past, be rather destructive), hence my gentle nudge.

It was certainly NOT a suggestion for people to stop giving input to this thread and of course, your thoughts and opinions are as welcome as anyone elses.

Cheers,

Timkin


[edited by - Timkin on March 29, 2004 10:48:54 AM]

#33 irbrian   Members   -  Reputation: 130

Like
Likes
Like

Posted 29 March 2004 - 01:01 PM

quote:
Original post by ddn3 I''ve been thinking about something similar to this for awhile. I think there are 2 main issues with the concept. First is the expectation of the user when presented with such an open ended world and ofcourse the building of the simulation.

The users when presented with such a deep simulation would need enormous number of cues and senses to appreciate it. Building the world alone would not be enough to fullfill your dream. An equally revoltionary interface to the world would be needed. One where the player can view through time, space and thought with ease, though not nessecarly be omnipitent. Interacting within the world through an avatar would present some consistency problems, with our god like nature to percive thought and time.
Ultimately I feel these points come down to issues of game design. Yes, to fully appreciate the complexity of what''s happening in a game utilizing a fully-realized implementation of this technology, the player would need the ability to see direct evidence of the inner workings of the system. On the other hand, I see a certain beauty in allowing the user to experience only the active manifestations of the technology. But I''m not really concerned with game design in this thread, more so with the theories and implementation of the technology itself.

quote:
...To build the similuation, I think you will have to face some fundemetnal philosopical questions which needs to be answered for your universe, of determinism, self, and existence. Don''t think you won''t have to deal with these issues. When making a simulator of a world so close to ours, they almost inevitably arrise.

Take determinism, is your universe ultimately deteministic? That is given the same set of conditions and inital state, will the world state repeat itself on multiple runs? You might say yes, since it''s on a computer and computers are deterministic within a given tolerance. However, your simluation interacts with people, who forms a condiuit to another world whose deterministic state is far from certain. You could say if the simluation couldn''t interact with a person, it would be deterministic. Then again you''ll have to consider that in theory a perfect computing machine would be deterministic, however our computers are not perfect. Within tolernaces of hardware and programming, most programs are determeinistic. I suspect the complexity of the simulation will exceed those tolerances, if your not aware of them. You could design a deterministic simluation, it would be difficult, however it can be done. Or you could choose the rotute of explict non-determinism, which in itself posses intresting problems and potential. The choice is yours and that choice will shape every system of your simulation. Perhaps you''ll gain some new insight into the nature of determinism.

The other isses also will grealty affect your simulation, the nature of agents and the explicit vs implicit states of the world.

Technolgy wise, I see your simluation as being possible. I''ll have to do some resarch on which would be most applicable.
It''s certainly not the kind of project that I''m spending my evenings on. Again, I''m more interested in expanding my awareness and understanding of the general concepts that will take the development community as a whole down the right road.

As for myself personally, I''m still terribly unclear on ideas as basic as neural networks, let alone actually developing any kind of true AI system. The most advanced thing I''ve ever done is developing a pretty kick-butt Battleship AI. :D

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

Brian Lacy
ForeverDream Studios

Comments? Questions? Curious?


"I create. Therefore I am."

#34 RolandofGilead   Members   -  Reputation: 100

Like
Likes
Like

Posted 29 March 2004 - 05:01 PM

Are you the first? Depends on when I thought of it
This does come up a bunch, in various forms, though I like the way irbrian has described it the best. I don't know if anyone has anything similar, but I figured, this is so complex, one person might not do it alone so I started a Yahoo! Group

http://groups.yahoo.com/group/lagw/

I figured we're a long ways from needing something like sourceforge(as I don't have an account there nor any code) and there's no telling where development may take us.

OT
I think there are two backbone systems needed here, one is obviously the language and communication component, the other is the psychology and sociology component. Yes that's right, in every thread that pops up, there always seems to be a part missing in the grand scheme, and I believe that to be the sociological factor. We have plenty of experience making AIs that fight wars but none that decide to go to war.

Look at the example, group action is sociological. Also, how did the concept of property ever enter this village in the first place?

edit: a iconographic system would work, but I think we might as well strive for NLP.

[edited by - RolandofGilead on March 29, 2004 12:02:43 AM]

#35 dathui   Members   -  Reputation: 122

Like
Likes
Like

Posted 29 March 2004 - 08:35 PM

Some thoughts about opinions and forgetting:

Every npc should have a list of limited size with a number of objects it has opinions about, each object should have a couple of things:

The object itself, could be another npc, a player or whatever.
Time it was last seen, or thought of, or some such thing
Niceness, how much does the npc like this object? is it just a piece of paper or a 200kg goldstone it would kill for. Is it just a person the npc doesnt like or its lover?

Opinions about people might have another set:
greedy, anger, niceness and so on, how this npc percieves the other npc or player. these would be affected by actions and gossip and conclusions. npcs should only gossip with those it has a high enough Niceness value about.

When the list is full it would remove a though at the bottom at the list using the inverse of roulett-selection so it doesnt always take the least thought of object but its the biggest chans it will happen.

[edited by - dathui on March 30, 2004 3:36:22 AM]

#36 BlueNexus   Members   -  Reputation: 122

Like
Likes
Like

Posted 30 March 2004 - 02:47 AM

Here''s a concept that builds off of dathui''s.

I agree with the limited "memory" list, but I would change the Niceness to a more generic field: Relation. A tremendouly more accurate and realistic view of memory is ''How important is the memory to me?''. That solves the memory problem for more than just thievery. It also puts a bias on memory retention and the spreading of information. An NPC is more willing to remember facts that directly relate to themselves. They are also want to remember things that happened to close relatives/friends, but not as much as their own experiences. Now for the memories that they learned that are 3rd/4th/5th person, they may forget about them realtivly quickly.

I know that implimentation isn''t a key part of this discussion, but a neat approach poped into my head that helps solve the other problem of all NPCs knowing everything using the "memory" list and an easy way to process the Relation data. Use the Relation field the same way routers use the TTL flag in internet packets(but starting much lower of course). An event that happens to an NPC gets put into his memory list with a Relation of 5. Now this NPC tells his wife. His wife records the memory then knocks one off the Relation(4). This happens down the line until the Relation field would hit zero. At this point, the NPC who has the zero relation is thought not to care enough to spread this info again. When an NPC has a full memory, the reduce the Realtion field by 1 for all memories, and drop any at/below zero.

Granted there are issues with this system, but I''m at work and that''s as deep as I got in thinking about it in 30 seconds. Maybe it''s worthy of other people expanding or improving on it.

-B

#37 irbrian   Members   -  Reputation: 130

Like
Likes
Like

Posted 30 March 2004 - 03:50 AM

quote:
Original post by RolandofGilead
Are you the first? Depends on when I thought of it
This does come up a bunch, in various forms, though I like the way irbrian has described it the best. I don''t know if anyone has anything similar, but I figured, this is so complex, one person might not do it alone so I started a Yahoo! Group

http://groups.yahoo.com/group/lagw/

I figured we''re a long ways from needing something like sourceforge(as I don''t have an account there nor any code) and there''s no telling where development may take us.
I signed up.
quote:
I think there are two backbone systems needed here, one is obviously the language and communication component, the other is the psychology and sociology component.
I''d rather not worry much about the communication components yet, and simply assume that there is an effective way to communicate with NPCs. Most likely NLP would be the solution, though iconographics could work too, but that''s a topic for another thread and really isn''t as critical as how NPCs work on the inside and generally interact with others.
quote:
Yes that''s right, in every thread that pops up, there always seems to be a part missing in the grand scheme, and I believe that to be the sociological factor. We have plenty of experience making AIs that fight wars but none that decide to go to war. Look at the example, group action is sociological. Also, how did the concept of property ever enter this village in the first place?
That''s precisely what I mean. Although with regard to NPCs having a concept of property, I think there should be some beliefs that are built in -- core community beliefs, let''s call them. NPCs also would have core personal beliefs, but I''ll get to that in a moment.

#38 irbrian   Members   -  Reputation: 130

Like
Likes
Like

Posted 30 March 2004 - 04:04 AM

quote:
Original post by dathui
Some thoughts about opinions and forgetting:

Every npc should have a list of limited size with a number of objects it has opinions about, each object should have a couple of things:

The object itself, could be another npc, a player or whatever.
Time it was last seen, or thought of, or some such thing
Niceness, how much does the npc like this object? is it just a piece of paper or a 200kg goldstone it would kill for. Is it just a person the npc doesnt like or its lover?

Opinions about people might have another set:
greedy, anger, niceness and so on, how this npc percieves the other npc or player. these would be affected by actions and gossip and conclusions. npcs should only gossip with those it has a high enough Niceness value about.

When the list is full it would remove a though at the bottom at the list using the inverse of roulett-selection so it doesnt always take the least thought of object but its the biggest chans it will happen.
On the topic of memory, I was thinking.. some sort of database system containing thousands, even millions of NPC memories, and each NPC would have pointers to each of the memories it has, could help here. The trick is developing some sort of algorithm to determine whether the memory is already in the database. Maybe it could be community-centric -- NPCs are part of communities that share beliefs. Thus if two NPCs are in the same community (village, guild, whatever) and have the same memory (regardless of how they developed it) they point to the same memory in the database. If one leaves the community and goes to a new community, any memories only that NPC holds are moved to the new community''s memory database, and only if that memory doesn''t already exist in the new community.

This is just one possible method of course, and probably not too efficient. But I don''t feel that memories should be limited -- they should be a bit spotty, in the sense of occasionally forgetting things. If an NPC forgets a memory, he does not loose it permanently, but instead temporarily is denied access to it. Maybe the technology could go so far as to provide access cues -- if another memory is accessed or a keyword is input, it triggers access to the forgotten memory.

On the issue of "niceness" etc: As I said above, each NPC would have Core Personal Beliefs. They would vary among NPCs. An NPC can never violate his core personal beliefs (although in extreme circumstances it may be possible to change them). For instance, one NPC believes it is never okay to attack another character unless he is attacked first. Thus he will never attack another character unless physically provoked.

Initial CPBs are randomly selected from a list of CPBs when the NPC is created.

#39 irbrian   Members   -  Reputation: 130

Like
Likes
Like

Posted 30 March 2004 - 04:06 AM

quote:
Original post by BlueNexus
Here''s a concept that builds off of dathui''s...
...
...Maybe it''s worthy of other people expanding or improving on it.


Good ideas. I''d comment in more detail but I''m out of time. I''ll let someone more knowledgeable handle it.

#40 Timkin   Members   -  Reputation: 864

Like
Likes
Like

Posted 30 March 2004 - 02:45 PM

quote:
Original post by irbrian
On the topic of memory, I was thinking.. some sort of database system containing thousands, even millions of NPC memories, and each NPC would have pointers to each of the memories it has, could help here.


I believe I made such a suggestion in one of the threads I pointed you to earlier. However, there is a basic flaw with this idea. No two NPCs, who share a memory of an event, will share the same memory. This is the whole point of perspective . If you and I both witness a murder, it is almost a certainty that when asked to recount what we saw, we will provide different stories. In part, because we noticed different things about the scene and additionally, because our language skills are typically different (and so we relate stories differently). This is why criminal investigation is so difficult and taking lots of witness statements is essential (and even getting witnesses to repeat their statements at a later date).

On the issue of memory retention, the key point to consider is significance of the information to the perceiver. If you tell me your father died, I would be saddened and might remember it for a while. If you told me my father died, I'm fairly certain I'd remember that for a lot longer! If you gave me your phone number and asked me to call you, I might be able to remember it the number. If you were female, 5'9", blonde, fit and good looking and did the same thing, I'd have more reason to remember the phone number and the fact that you wanted me to call. Get the idea?

I think that in an NPC memory model, one way to determine significance is to determine how the information relates to the needs and desires of the NPC, as well as the emotional impact of the information. In humans, information that stimulates a significant emotional response is typically stored a lot more easily and retained for longer.

In addition to significance of information (which pertains to whether we store it or not) we should also consider recall ability. Should an NPC be able to recall any fact it knows at any time, if it needs to. It would be better if our NPCs could recall events based on their significance and their recall ability, which might be a function of the time since the information was obtained, the significance of the information and a 'random' factor that meant that some days you might recall the memory and others you just cant seem to remember. In this way, our NPCs might occassionally dredge up old memories that are important within the game.

So, here's a suggestion for NPC memory. Store information in the memory data object that is useful in determining how the memory is dealt with by different NPCs. Here are some suggested attributes for a memory data object:

SignificanceToEmotionalResponse:
If the memory elicits an emotional response in the perceiver, increase the significance for that receiver by this amount.

SignificanceToCommunity:
For each NPC that determines the significance of the memory is greater than some threshold, increment a counter that indicates how many people the memory is significant for.

Recallability:
A base factor of how easy is it to recall this memory.

Then, for each NPC that is given the information in the memory, determe whether the information is significant to them. Perhaps all information spends some time in short term, finite length memory and only significant information is stored in long term memory.

Interactions between NPCs may be based on the significance of information, with priority given to significant information that is in short term memory. Obviously, conversations can then be conducted about information that is significant to each other (discussions) or significant to only the speaker (gossip). Additionally, if the information is important to many people (as indicated by the second attribute above), then it may be more likely to be discussed (as a hot-topic). During a conversation, it would be possible to reference long term memories of relevant information only if a randomly generated number is greater than the recallability threshold for that information.

So, our player walks into town and heads to a merchant. The merchant was robbed yesterday and so this is the most significant memory in his mind at the moment. It's all he wants to talk about. A month later though, it might be harder for him to recall that he has been robbed, or perhaps he can recall, but not exactly which day it was. It may be that it requires the player to ask about local crime before the merchants mind recalls that he was robbed and that in fact, it was John, he believes, that committed the crime!

Cheers,

Timkin


[edited by - Timkin on March 30, 2004 9:48:47 PM]




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