Personality modelling
Oliver Jowett
oliver at jowett.manawatu.planet.co.nz
Sun Apr 12 12:27:38 CEST 1998
[Jon A. Lambert:]
> This other problem seems to be the bigger one. Somehow methinks this
> may tie in with the rgma thread "Goal-based AIs". One could probably
> implement a "universal" reponse network based on the instinct of
> living creatures, and perhaps override and extend it with species
> exceptions.
>
> So for instance (co-opting parts of Richard's Fido example)
>
> FIDO
> event response weight
> ----- -------- ------
> kick play -5%
> looks at you funny 6-10%
> nothing 11-20%
> yelp and run away 21-80%
> attack 81+%
>
> The responses are kept in relative order from most
> positive to most hostile.
[situation modifiers, self-modifying tables]
This looks something like the personality modelling techniques described
by Chris Crawford I read a while back:
http://www.erasmatazz.com/Library/JCGD_Volume_7/Personality_Modelling.html
The main page is http://www.erasmatazz.com/Library.html - a lot of
interesting game design discussion in general there. Many of the
Erasmatron essays cover personality AI issues too.
Basically this situation might look something like:
Fido has a Trust associated with you that has some initial value,
presumably derived from Fido's (one-dimensional) Innocence attribute. If
you kick Fido, how he responds depends on his current Trust for you.
Kicking him also reduces that Trust.
A charm-type effect would artificially boost Fido's Trust in the caster
for however long that effect lasts for. Possibly the spell simply lasts
until the extra trust has worn off through other actions (kicking Fido
etc) - and assume that charm spells can't be stacked if you don't want
fanatically loyal fidos running around.
This can also resolve situations such as: Fido trusts his master Bubba.
You charm Fido then attack Bubba. What does Fido do? It would depend on
the current relative trust levels - if your charm is strong enough, Fido
will ignore the attack or possibly even help out.
The fun begins with modifying relationships due to actions. If Fido trusts
Bubba at 85% and me at 90%, and I attack Bubba - what happens to Fido's
trust of us both? Perhaps both trust levels should drop:
Trust[Attacker] = Trust[Attacker] - aggressionfactor - Trust[Victim] * scaleA
Trust[Victim] = Trust[Victim] - Trust[Attacker] * scaleB
where:
aggressionfactor is some penalty (Fido doesn't trust people who attack
others)
scaleA is how much attacking someone Fido trusts affects Fido's trust in
you (Fido doesn't trust people who attack his friends, and trusts
those who attack his enemies)
scaleB is how much being attacked by someone Fido trusts affects Fido's
trust in you (if Fido's friend attacks someone, they must be bad!)
(I'm assuming Trust can go negative here)
So charming Fido then attacking Bubba might well make Fido become more
loyal to you than Bubba if Bubba hasn't been nice to Fido recently.
-O
More information about the mud-dev-archive
mailing list