• 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.

irbrian

Adaptive Virtual Game Worlds: Where to Begin?

90 posts in this topic

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
0

Share this post


Link to post
Share on other sites
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
0

Share this post


Link to post
Share on other sites
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]
0

Share this post


Link to post
Share on other sites
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
0

Share this post


Link to post
Share on other sites
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
0

Share this post


Link to post
Share on other sites
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






0

Share this post


Link to post
Share on other sites
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]
0

Share this post


Link to post
Share on other sites
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."
0

Share this post


Link to post
Share on other sites
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]
0

Share this post


Link to post
Share on other sites
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]
0

Share this post


Link to post
Share on other sites
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
0

Share this post


Link to post
Share on other sites
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.
0

Share this post


Link to post
Share on other sites
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.
0

Share this post


Link to post
Share on other sites
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.
0

Share this post


Link to post
Share on other sites
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]
0

Share this post


Link to post
Share on other sites
timkins "Recallability" should be raised each time you actually think of it activly (amount raised should be affected by the different SignificanceToXXXXXX variables), up to a certain point of couse. This is to keep certain memories from dissapering, like "i''m married to ", because he talks to his wife everyday. "Recallability" should alse lower slowly by each passing day, making them harder to remember.

With the robbery timkin mentioned, talk would die down after a while, he would think of it less often and after a while forgett it completely.

Another thing about memories, association. If timkins merchant think about his store, he might also remember that it was robbed a while ago, so each memory object should have a list of associated memories, whose "Recallability" is raised by a smaller amount each time the memory if thought of. Each association link might also have a weight of some sort, which says how close they are related.
0

Share this post


Link to post
Share on other sites
This is an interesting problem. I’ve never given much thought to this type of scenario, but mostly respected how companies like Mythic and Blizzard tackle the bare bones of generally-acceptable AI today.

The first problem I would think about in such a dynamic universe is speed. There’s no doubt that every NPC has to be active at all times, even when no active players are about. If your entire world consists of thousands of NPCs, you will need a powerhouse computer to meet the demands. This then comes down to managing NPCs with the fewest post-processing requirements.

The second problem is addressing how dynamic you’re willing to go. It’s equally possible to convince John not to steal and earn a decent job. This is getting a bit to complex. However, if John becomes unreasonable, and even responds aggressively to other players that wish to ally with him (not assault him); then again you have a basic fate system any current game employs.

The best way to approach this is to ask yourself how dynamic you want to take this. If you want to limit it and effectively have control over your own game, then it would be best to adopt an event based system that is configured with many alternatives and can be continually updated by real persons to provide newer quests. If you want it to be purely dynamic and have no control over your own game, then an evolution algorithm would have to be used per NPC. NPC characters would have a sense of individuality and make decisions on it’s own without any human intervention, but governed by a set of rules designated by people (to prevent purely chaotic outcomes). As far as I know, no algorithm exists today can do that, otherwise we’d have computers that can talk to us and have their own free will =P

[edited by - ghost007 on March 31, 2004 9:02:05 AM]
0

Share this post


Link to post
Share on other sites
I suggest this entire thread be moved to the new Yahoo! Group, where many of the dangling issues are being addressed.
0

Share this post


Link to post
Share on other sites
I''m thoroughly enjoying participating in, and especially passively reading, this discussion. It''s something I''m very interested in. But I actually just realized again that my initial questions were never conclusively answered.

What we need to decide on, I think, is the general technologies that will come into play. Are NNs applicable? What other types of AI technologies are going to be involved with this kind of system?

I think I''d like to start developing a relatively simple AI Agent that would be capable of doing a few of the things we''ve been talking about. Nothing fancy (relatively speaking!)... just a basic simulation to start working out how an Agent could form beliefs, store memories, etc. Of course I have no idea what technologies to study, nor, for that matter, where to begin at all!

Anyone know of a really good book for this sort of thing? Particularly, I''d like a book that assumes the user will be developing in C++ and is a mathematical moron. :D
0

Share this post


Link to post
Share on other sites
quote:
Original post by irbrian
What we need to decide on, I think, is the general technologies that will come into play. Are NNs applicable? What other types of AI technologies are going to be involved with this kind of system?


Before we do that i think we need to specify how the ai should work, roughly, then we can choose an AI-technology to follow that.

quote:
Original post by irbrian
Anyone know of a really good book for this sort of thing? Particularly, I''d like a book that assumes the user will be developing in C++ and is a mathematical moron. :D

Theres quite alot of books on the matter, look at GameDevs book-list and pick one of the 5star-books or some such
0

Share this post


Link to post
Share on other sites
quote:
Original post by dathui
Before we do that i think we need to specify how the ai should work, roughly, then we can choose an AI-technology to follow that.
True. Let me rephrase the question then. Given popular technologies and methods, what options might be applicable? And are there any we can eliminate?
quote:
Theres quite alot of books on the matter, look at GameDevs book-list and pick one of the 5star-books or some such
I'll check out the list. But while there are hundreds of books on AI out there, I'm not just interested in books on AI. I'm interested in books that might relate to this topic specifically, and ideally within the guidelines I mentioned in my last post.

[edited by - irbrian on March 31, 2004 4:21:54 PM]
0

Share this post


Link to post
Share on other sites
Dathui:

I think it would be better to alter the significance of a memory (wrt to people and wrt to the community) over time and keep recallability a function of significance and NPC state. This seems more natural to me and means that insignificant information can still be recalled easily if the context allows it.

Ghost007:

I don''t think one needs to worry about hardware when discussing such ideas. One should work out the nuts and bolts of the methodology and then work out whether it is tractable with current technology. If it isn''t then either you approximate the technique, or you develop better hardware (or wait for it to be developed).

irbrian:

I''ve already mentioned some enabling technologies earlier. Essentially though, you need to clearly define the problems to be solved before you''ll know what algorithmic methods are going to be applicable for solving them.

Cheers,

Timkin
0

Share this post


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

I think it would be better to alter the significance of a memory (wrt to people and wrt to the community) over time and keep recallability a function of significance and NPC state. This seems more natural to me and means that insignificant information can still be recalled easily if the context allows it.


I definitely agree with this. Even though a memory may seem to be gone, in the right context or with the right stimuli that memory can be as vivid as the day it happened. As you suggested, the significance of a memory should determine how well we recall it. Another thing significance does, is allow us to compare significant memories against current experiences. A good use of that is in solving problems in NLP for example.

Think about a person showing up to the hospital and seeing a friend in the waiting room and having the friend immediately say "He's doing better". How could a computer understand that sentence? Who is he? By recalling significant memories that are related to that friend, the computer could remember that their friend's father got ill, and figure out who "he" is.

quote:
Original post by Timkin

I don't think one needs to worry about hardware when discussing such ideas. One should work out the nuts and bolts of the methodology and then work out whether it is tractable with current technology. If it isn't then either you approximate the technique, or you develop better hardware (or wait for it to be developed).


That's something I brought up in the Yahoo! Group we started. One of the common trends I see (in this thread also), is people trying to solve technical problems before solving the real problem. Pretend that you have unlimited resources, solve the problem, then figure out how to make it work with what you have. Chances are by the time you actually DO figure out the problem, your resources will have changed so dramatically that you have far more to work with.

quote:
Original post by Timkin

I've already mentioned some enabling technologies earlier. Essentially though, you need to clearly define the problems to be solved before you'll know what algorithmic methods are going to be applicable for solving them.


Another good point (I feel like I'm brown nosin lol). It's way too early to be choosing technologies at this point, it's even too early for knocking some off the list. I also don't believe this can be done (at least currently) with a single technology, so I would suggest you keep your options open.

One more thing, if anyone else would like to discuss this further, as other's have mentioned we have started a Yahoo! Group. Nothing much happening yet, as its only a day old, but maybe we can get some conversations going there, and start to kick around some more ideas.

[edited by - Thesolitas on April 1, 2004 2:48:51 AM]
0

Share this post


Link to post
Share on other sites
Off Topic -- Yahoo has THE MOST ANNOYING user account system I have EVER dealt with (and that''s saying something). *Sigh* I''m still trying to get the signing up and verification done.

Alright, alright, I understand what you guys are saying about the technologies, and for the most part I agree. But I don''t see anything wrong with wanting to understand the technologies that make up AI and start thinking about them within the context of dynamic, persistent NPC communities.

Besides, seems to me it''s a good idea to start with small, practical, stepping stone projects... don''t try to walk before you can crawl, they say. Or to put it another way, why start off aiming for the stars when you can learn so much about space travel by shooting for Mars first? (oops -- too political? )

Anyway. I agree with Timkin about basing memory recollection on significance, but there may be some validity in the memories also having some level of time-sensitive Recallability.

I had some interesting thoughts about this today. Admittedly I was studying up on NNs at the time. I know, don''t worry about the technology -- but this is more about the way the human brain works than ANNs.

If I remember right, the human brain stores memories in clusters of neurons. The more significant the memory, the larger the cluster, and thus the memory is easy to recall because it takes up a significant area in the brain. Also, the more frequently the memory is accessed, the stronger the path to the individual neurons. As time passes though, if those neurons aren''t accessed the path to them begins to degrade and they become less accessible. They are still there, but I guess you could say the "threshold" has increased -- it takes more effort to access those memories.

Applying this to the general idea of NPC memory recollection, NPCs would always keep their memories, but the less significant the memory and the less frequently the memory is accessed, the more the memory fades. Maybe the system could institute a formula that determines how significant a memory must be to be recalled efficiently after X amount of time, weighted differently for different NPCs? i.e. Significance Threshold Over Time...

Come to think of it, it could be as simple as each memory having a significance rating that explicitly indicates the number of hours a memory can be recalled. Each NPC has a value relative to one hour to represent their ability to recall things -- a photographic memory might be 3.0 hours while a creature with no memory at all might have a 0.0 memory hour rating.

To stir things up, though, the human brain has a short term memory and long term memory. Events are stored in short term memory as they happen and then moved to long term memory after awhile. If one wanted to make things super complex, NPCs could have both, and have two memory hour values -- one for recalling short term memories, say the last 1-24 hours, and one for recalling long term memories. I dunno -- it probably doesn''t even matter that much unless you wanted to go so far as to simulate NPCs with severe memory-related disabilities, which is pretty extreme for any game.

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

Brian Lacy
ForeverDream Studios

Comments? Questions? Curious?


"I create. Therefore I am."
0

Share this post


Link to post
Share on other sites
quote:
Original post by irbrian
If I remember right, the human brain stores memories in clusters of neurons. The more significant the memory, the larger the cluster, and thus the memory is easy to recall because it takes up a significant area in the brain. Also, the more frequently the memory is accessed, the stronger the path to the individual neurons. As time passes though, if those neurons aren't accessed the path to them begins to degrade and they become less accessible. They are still there, but I guess you could say the "threshold" has increased -- it takes more effort to access those memories.



I'm curious as to the reference for this information. I work in the neurosciences and this doesn't sound like any accepted theory to me. It does, however, sound like a computer science view of neuronal networks from the 80s. Perhaps it's just because you've paraphrased it though, that it reads that way. If you have a specific reference, I'd be very interested to read it.

There are competing theories for how memories are stored, at least from the literature I've read. One is that memories are stored by little folicles on certain cells and these follicles affect the firing behaviour of the neuron under external stimulus. Another view is that memories are stored in synaptic sensitivity to inputs. The problem with this model is that it doesn't explain how one part of the brain (the same neuronal columns for example) can store multiple memories (since they don't really store multiple synaptic sensitivies). Certainly, research into the olfactory system (which has been completely understood now for many years) tells us that smell memories are encoded in a manner that generates lower dimensional, stable attractors in the signal phase space. That is, the unstimulated state of neuronal loops in the olfactory system is a chaotic attractor. When these loops receive stimulus, the dynamics collapse to a simpler, stable, periodic or quasi-periodic behaviour, signalling a change in the attractor of the system. Unfortunately this model doesn't extend to all regions of the brain. For example, in the occipital lobes of cats, it has been shown that some information is actually encoded in the varying phase synchronisation of discrete neuronal columns (spatially distinct neuronal loops). Recent work on rat hippocampi has supported this view of information encoding. How this relates to memory though is not known at this time.

On the significance issue... I think that there are really two levels of significance of information: significance to us and our perception of significance to others. Significance to us is, I think, best measured by the emotional response that the information generates. Significance to others could be measured by how many other people mention the information to us, or ask us about it, or alternatively, how other people (and how many) responded to the information (emotionally speaking). Bill telling Mary that he finds the information significant should be different to Bill telling Mary that the whole town was in an uproar when they heard the information. This might even affect the significance of the information in Mary, depending on her empathy for others and her 'community spirit'.

Cheers,

Timkin


[edited by - Timkin on April 2, 2004 6:48:30 AM]
0

Share this post


Link to post
Share on other sites