[MUD-Dev] A flamewar startingpoint.)

Stephen Zepp zoran at enid.com
Sat Dec 13 19:52:57 CET 1997


This is a multi-part message in MIME format.
--------------F222CE6E4D3D3E3F0D17AB1D
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

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
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. 
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?

> > > > I also don't like moving to a
> > > > clocked system as it fairly well forces me to move the entire game to a
> > > > clocked system, which I'm resistant to.  I'm still much won over with
> > > > letting everything execute as quickly as it can.
> >
> > I'm moving towards a "queued event" system, sort of like "I'm starting
> > to swing my sword, I'm swinging my sword, he's moving his mace to block,
> > he's committed to block, OKAY..now, feint under his block, and slice his
> > guts open!  That's probably an overdone description, but with "segments"
> > like D&D used to have, tho wasn't much used in most version of rp-style
> > ( the miniatures version of D&D used them :) ), you have this idea of
> > "some actions are just quicker than others"...thrusting a dagger is a
> > lot faster than an overhead blow from a heavy two handed mace..
> 
> Cool.  This is exactly what we do, and I love it.  An attack has
> the following states: prepare, swing, impact, recovery.  This makes
> doing a riposte as simple as doing a 'prepare' state without any of
> the others.

I have a balance, fatigue, and health, along with known manuevers. Certain manuevers require higher starting balance
and/or fatigue, but are more deadly to the opponent ( if successful, and their counter-manuever wouldn't abort yours ).
Primary goal is to wear down your opponent while maintaining your levels, until you can get in a "killer blow", takin
them out.  Anyone that has played the Picture Book combat game Lost Worlds ( Nova Games, also did some flying stuff
called Red Baron ) might see several parallels..the system design is a combo of my irl hand to hand experience and their
manuever based system.  

Oh, umm, the "segment" stuff comes in in that you pick a manuever, and your opponent does also.  The code checks various
info stats ( weapon, skill level, char attributes ), and the programs of the manuevers ( manuevers are broken down into
Offensive and Defensive classes, speeds, and strengths, plus abort levels ( a thrust will "abort" an overhand swing by
hitting your throat if it's quick enough, but a parry won't abort anything..just block it. ), coming up with a net
result.  The "segment" stuff speed wise is really settled in the off/def speed algorithm, in addition to the feeling of
workin your opponent down from round to round.

Zoran
--------------F222CE6E4D3D3E3F0D17AB1D
Content-Type: text/x-vcard; charset=us-ascii; name="vcard.vcf"
Content-Transfer-Encoding: 7bit
Content-Description: Card for Stephen Zepp
Content-Disposition: attachment; filename="vcard.vcf"

begin:          vcard
fn:             Stephen Zepp
n:              Zepp;Stephen
org:            Lords of the Shadow ( telnet://soe.nuc.net:8888 )
email;internet: zoran at enid.com
x-mozilla-cpt:  ;0
x-mozilla-html: TRUE
version:        2.1
end:            vcard


--------------F222CE6E4D3D3E3F0D17AB1D--




More information about the mud-dev-archive mailing list