[MUD-Dev] [MLP] NPC Complexity

Kwon Ekstrom justice at softhome.net
Tue Apr 23 09:29:27 CEST 2002


From: "Sean Kelly" <sean at ffwd.cx>
> From: "Kwon Ekstrom" <justice at softhome.net>

>> Anyway, each creature in the game would maintain a list of
>> personal AI's, this is for the most part empty.  When events get
>> passed to the Creature, it passes them to the AI object first.
>> If the Creature doesn't have any personal AI's, it passes it up
>> to the next layer, the Racial AI.

> So do individuals learn?  I had been thinking about knowledge
> graphs, where what every NPC knew was represented by (probably)
> trees of concepts.  Then when NPCs talked, subtrees could be
> transferred between them, depending on the topic and length of
> conversation, with more details transferred as the conversation
> progressed.  Kind of like social genetic programs.

It would be possible for NPC's to learn, the interface for the AI is
simple, merely an event trap.  How the AI handles these events is
entirely up to it.

You could add an NPC layer to the AI (which now that I think about
it, wouldn't be a bad idea anyway), which races propagate events to
when they're done handling them.  Then write an AI to allow NPC's to
transfer data between themselves.  Then you can add an AI to the
standard NPC init code allowing them to learn.

The problem is each NPC would require it's own base of information,
that would eat up alot more memory, you could possibly setup an
index layer between the actual NPC and it's Race, where each "like"
mob would share an AI, that'd cut your memory usage down
considerably.

I'm using the "higher" level AI's for 2 things, they're a central
distribution point, and it's a pooled AI, so all the creatures of
that grouping have access to it.

I still haven't generated a full layer mapping, although I expect
it'd look something like:

  individual
  group
  kingdom
  index
  race
  npc

Where group and kingdom layers can be nonexistant.  It's a simple
concept that scales well to complex solutions.  I haven't solidified
the interface for it either, but since it's an event driven mud, the
interface doesn't need to know how to do anything but handle events.

Although the AI is by nature reactive, it'd be possible to simulate
active behavior by capturing time events.  Where each "tick" and
"pulse" the mud sends out an event for the listeners to pick up.

-- Kwon J. Ekstrom

_______________________________________________
MUD-Dev mailing list
MUD-Dev at kanga.nu
https://www.kanga.nu/lists/listinfo/mud-dev



More information about the mud-dev-archive mailing list