Personality modelling

Oliver Jowett oliver at
Sun Apr 12 12:27:38 New Zealand Standard Time 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)
>   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:

The main page is - 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

  aggressionfactor is some penalty (Fido doesn't trust people who attack
  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.


More information about the MUD-Dev mailing list