[MUD-Dev] New topic: AI and NPCs

Adam Wiggins nightfall at user2.inficad.com
Sat Aug 30 14:45:07 CEST 1997


[Jon L:]
> On 27 Aug 97 at 11:22, Nathan Yospe wrote:
> > to match some currently existant PC population, a heartbeat behind. This
> > gives NPCs a frightening intelligence. (I'm assuming that, by the time this
> > project is finished, I will have figured out how to handle enough
> > simultanious users to make this work. Its already distributed, so possibly
> > links could be garnered from remote servers as well.)
> 
> This is fascinating.  Are you saying that a creature/NPC will lock on 
> to a currently existing combat in another part of the mud world and 
> attempt to perform similar actions in it's current combat turn?
> This does sound like it could be "frightening".  With enough player
> base, you could lock on to specific types (NPC mages implementing
> other PC mages).

Hmmm, while I like the idea, I have a hard time envisioning it actually
working.  Are you syaing, Nathan, that a random PC (in combat) is chosen,
and the NPC mirrors their actions directly?  This seems like it would
result in creatures fleeing when they are doing just fine, or a barbarian
with a 30 lb club trying to fence.  I assume there's more to it than this?

> I've been thinking of another possibility.  A given intelligent NPC
> could produce a virtual session log of combats against it.  This log
> could be immediately parsed into some sort of "computerese" shorthand
> an is used to modify a weighted table of that NPCs "archetype" or
> prototype.  The success or failure of given tactics could be applied
> to the weighted table.   The table might also figure in the perceived
> PC "archetypes" attacking it.  e.g. "Hmm, mage in party"  "Choose 
> entry 434 -  Take mage out with missile"  etc.

I know this is a strange thing to mention, but fighting games over the
last six years or so (starting around the time of Street Fighter II) have
been using this to stunning effect.  When the games first enter the arcades,
everyone is still learning the games, and the computer is just doing whatever
default actions the programmers happened to have tossed in.  As the players
get better and learn tricks and techniques, the computer begins to duplicate
them.  It's truly scary - after a while the difficulty level has to be
manually turned down because the computer is so damn good.  It basically
does the ideal move in every possible situation, always timed perfectly - the
only possible way to challange it is to be completely unpredictable, which
is fairly difficult given the limited number of movements and attacks you
can actually make with a given character.
Another nice effect of this system is that the game mirrors it's players
playing style.  Ie, when I used to play Samurai Showdown II at the campus
game room, certain characters were absolutely devestating, while others were
weaker because few people played them.  I'd go play one in the city, though,
and completely different characters would be the tough ones, while the ones
I was used to kicking ass would be pushovers.
Possibly the spookiest thing is seeing the computer start using a
technique that you pioneered, especially since it can freqeuntly do it
with better timing and accuracy than you can...

> I think I'm getting into neural net areas, no?  This area is new to
> me although I do have some samples around dealing with handwriting 
> recognition.  Nathan, Do you know of some good web/ftp addies that
> might lead me to some introductory applications?

Like neural nets, yes...I'm not sure of the mechanisms used by the learning
systems in those fighting games, but I would imagine it's fairly customized
to the game, as opposed to a more general net of weights and nodes.
Possibly a very simple list of cause-effects that resolve themselves into
chains, ie:

When player does move X at range Y and I am in position Z, do:

12%: nothing
35%: jump backwards
8%: defend
24%: uppercut

The percentages on the left are weighted by what players do in that same
situation.  You could also store a second percentage which indicates
the success rate of that action.  Thus if the machine was set for a high
difficulty, it would be more likely to choose a high success-rate maneuver
than a low one, and vice versa.  The 'chains' of moves occur when a
certain move (which can be triggered in more than one place, of course)
has a high percentage chance of going to another move immediately.  Thus
you may have left jab having a 75% chance of leading to right jab, which
has a 75% chance of leading to an uppercut.

One problem when applying this to a mud is that these fighting games are
dealing with a *very* finite set of states.  The human controlled Genjuro
is identical to the computer-controlled Genjuro, and Genjuro only has
probably around a couple hundred distinct moves he can do.
The only way to parallel this on a mud, that I can see, is to have a sort
of 'are they like me?' evaluation for mobs.  Thus the baker won't run out
and learn fencing when he sees Cyrano do a few moves in his shop, but he
will try to learn his competitor's recipes if they are doing better than
he.  Or could this lead to mobs changing professions?

> ' a loaf of bread please
The baker says, 'Sorry, all I have left is what's on the shelves.  As soon as
  I sell this place I'm off to go become a monk.'




More information about the mud-dev-archive mailing list