NPC AI
Brian Price
blprice at bedford.net
Mon Sep 29 02:51:23 CEST 1997
I hope I'm not repeating a previously beat to death topic here, but I
think I may have something new to contribute. I'd also like to
apologize for any toes I step on as I'm still trying to find my target
level for posts here. Some of you are at rather scary levels.
When considering the problem of providing reasonable mob behavior for
a mud I was struck by the similarity of the problem with that faced
by a subfield of robotics known as mobile robotics. As in AI for mobs,
there is a severe limit on the amount of processing power and memory
space available, yet a desire to provide rather complex behavior. One
solution employed in that field is a technique called 'Subsumption
Architecture'.
With subsumption architecture, complex behaviors are built up out of
a stack of overrideable simple behavior layers. If a tree hierachy
is assumed for mobile classes, there would be a one to many mapping
between mobile classes and simple behavior layers.
The simple layers could be implemented by a mobprog like interpreted
language, but once again I noticed a similarity with another field.
Each layer is basically a control system with a well known problem
space. (Assuming that the mud's game mechanics are simple enough to
qualify as well known.) Now this will hardly be new to some of you,
but there exists a cross between expert systems and AI that was
specifically designed for control system implementation where the
problem space is well known, namely fuzzy logic.
Quite a few years ago Motorola released the code for a number of
fuzzy logic inference systems designed to run on their 8 bit
microcontrollers. These engines can be easily modified and are very
fast in execution with a tiny memory footprint. Fuzzy logic control
statements would be precompiled, providing the control intelligence
for each simple layer.
If learning capability is desired, it may well be possible to work
out a genetic algorithm that worked on fuzzy rule sets. The
advantage as compared with neural networks would be faster execution
and lower memory requirements. Of course, such a solution would not
be as smart or capable as a neural net especially if the problem
space is less than well known, or if bad assumptions are made in the
design of the starting fuzzy rule sets.
As a side note, I have read of solutions that used a mixture of
neural nets and fuzzy logic where neural nets provided some learning
capability. Unfortunately I don't have enough expertise with AI to
evaluate the suitability of such a combination for muds. Indeed I
don't have the necessary expertise to evaluate the combination of
fuzzy logic with genetic algorithms. I'm hoping that the AI gurus in
this group can provide an expert opinion.
Brian Price.
More information about the mud-dev-archive
mailing list