Thursday, December 06, 2007

Simulating AI in Online Virtual Worlds: Preliminary Notes - Master Objects

Dynamic AI and spawn systems are something that has always intrigued me. UO tried it back when they were in beta testing, but the calculations required brought the servers to their knees and the concept was abandoned.

And no, increasing the spawn rate based on number of players in the vicinity does not count as dynamic in my book.

I've tried on numerous occasions to collate my notes into some sort of actual design-type document, but organization of it has always eluded me. So I decided to instead break things down into smaller components and try and put together some rough outlines.

For this first attempt we have Master Spawn Objects.

Master Spawn Objects are invisible objects that control a group of mobs. These not only tell the server when and where to spawn mobs, but they also help define a sort of group consciousness for the mobs in their group, giving the mobs reason and purpose beyond the basic concept of providing punching bags and loot pinatas for the players. This object is not designed to dictate every movement of the mobs within its area of control, but rather to provide a guiding force and also to maintain historical data that will be used to create a dynamic and flexible spawning system.

Master Objects

  • Provide an over-arching framework with which to control a group of mobs.

  • Serve as a way for mobs within this group to 'talk' to each other

  • Can spawn new mobs

  • Can add additional AI routines to individual mobs within its group

  • Can move the entire group (either as an attack on another settlement or as a means of self-preservation by moving away from areas where they're being 'farmed')

  • Keeps historical data on events that have happened with its group

  • Can alter its behavior based on the historical data

  • Can create and destroy temporary structures that are associated with its group

  • Can keep track of group-owned objects and storage, using that information to alter group actions and desires as well as providing appropriate spawns

There's a starting point off the top of my head. I hope in the future to clean it up and provide further details on what each part means. And, of course, this is only one part in a multi-faceted Dynamic Spawning AI system!

I would love to hear any comments or suggestions!


Brandon said...

Interesting idea, it reminds me, vaguely of the book "Prey" by Michael Crichton. Not sure if you've read that or not or if it is at all what you had in mind but that's the general feeling I got from what you were talking about.

Tholal said...

No, I havent read that book. I just read the summary of it on Wikipedia and it sounds interesting. I know that there has been some scientific experimentation in creating hive mentality with lots of small robots, and looking at my idea, that is sort of where its going.

Obviously, I like the idea of individual mobs having input and effect on how their group works, but since that sort of technology is still in its infancy, you would need a master intelligence to give some direction to the whole.