[MUD-Dev] A flamewar startingpoint.)

Adam Wiggins nightfall at user2.inficad.com
Sun Dec 14 16:01:37 CET 1997


[Stephen Zepp:]
> Adam Wiggins wrote:
> [snip stuff about ai--good points, but I think that it could be worked out..happen to be workin on my generic ai
> decision tree now, using sort of an alpha-beta system, with a stack of "moves" ( things to do in this tree entrance ),
> and giving a set of qualifiers and values to each node based on current ( entered tree with ) goals, and priorities ). 
> Basically, the idea is like chess ai:  come up with a pre-pruned manuever list ( I'm not gonna lie down to sleep in
> combat, nor buy something ), and a list of goals ( my balance is low, and fatigue low, but my opponent is currently very

Oh, well we have this of course - this occurs at a lower level than what
I think of as "intelligence".  It's instinct.  People tend to forget about
eating their penut-butter-and-banana-sandwhich when they see an ogre
swinging a big axe at them.  Even if you made a concerted effort, it's
pretty difficult not to throw up your arms or jump out of the way just
on instinct.  All of this is handled by our task system which I believe
I've detailed before.  Sleeping and buying are PRIORITY_MENIAL, whereas
combat is PRIORITY_LIFE_OR_DEATH.

> low in balance , so goals would be : gain_balance:3 gain_fatigue:3, killer_blow:5 ).  The tree would just use callback
> "powercheck" functions on each of the manuevers in the goal list which determine a single "power" based on my abilities,
> known counter-actions, and probabilities of success of a particular action ), then return the manuever with the best
> sorted "power level" based on the goals sent, and their priorities.  This is the alpha phase, maximizing your goals. 

Nods, we also have this for PCs.  Basically you have a 'combat sense' skill
which helps you predict what your opponent is actually doing (identifying
feints, predicting locations which blows will strike on your body) as well
as what your priorities are.  These values can be modified at any time by
player-set defaults, one-time commands typed in combat, or external things
such as drugs in the character's system or the berserker rage.

> Next, you recalculate what your opponent would/could do, and try to figure out their best current goals, then minimize
> _their_ power levels ( the beta phase of the process ).  You can set the manuever depth ( checks against future rounds,
> going deeper in the alpha-beta cycle ), but since it's very difficult to prune future goal/manuever sets, the efficiency
> goes down quickly.  I don't have much coded yet, just workin out data structures, and algorithm simplifications atm. 
> Anyone use anything similar?

Hmmmm...yeah, this could definitely work at a higher level than I have
been giving it credit for.  Currently mid-level 'AI' (which I consider
instinct) is used by default on any creature, player or not.  This will
keep any creature from behaving like a quivering hunk of meat unless they
are extremely stupid or unskilled.  High-level AI was more what I was
thinking of, which we currently use softcode scripts for.  Ie, things like
"I need to defeat this guy because he's in my way back to the keep where I
can get healed, but he's probably too tough for me in my weakened state
so I had best go around through that gully, I'll just sneak and hope he
doesn't notice me..."




More information about the mud-dev-archive mailing list