Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Emotional States and N-Spaces

7 views
Skip to first unread message

Roger Carbol

unread,
Apr 26, 1996, 3:00:00 AM4/26/96
to

Let us start with the simplest emotional states: binary,
one-dimensional.

And example might be a fish, with one emotional dimension, hunger,
and two emotional states: hungry and not-hungry.

This could produce the following sort of transcript:

>EXAMINE FISH
Fish looks hungry.
>FEED FISH
Fish gobbles up the food.
>EXAMINE FISH
Fish no longer looks hungry.
>FEED FISH
Fish seems uninterested.
>WAIT 1000
Time passes...
>EXAMINE FISH
Fish looks hungry.


A slightly more complex example can be created by moving away from
a binary value towards a greater degree of quantization; say,
any value from 1 to 8. This can produce something like:

>EXAMINE FISH
Fish appears to be on the brink of starvation.
>FEED FISH
Fish can barely muster the energy to eat, but eventually manages
to gobble down some food.
>FEED FISH
Fish eagerly eats some of the food you give it.
>EXAMINE FISH
Fish appears to be relatively well-fed.
>FEED FISH
Fish gorges himself on the food.
>EXAMINE FISH
Fish is so stuffed with food it can barely move.


We can get exponentially (literally) more complex by introducing
another dimension. Let's give Fish another emotion: sleepiness.
For the purposes of illustration, let us also go back to a
binary scale. This produces the following sort of emotional two-space:

Sleepy |
|
+------
Hungry


We can label areas of this vector space as follows:


Sleepy High | Drowsy Irritable
|
| Content Starved
|
Low +-------------------------------
Low Hungry High


This could be represented by the following sort
of data structure:

Sleep: 0 1
Hunger:
0 Content Drowsy
1 Starved Irritable


We can put some limitations on how Fish can move between
emotional states (ie alter the topology of the vector space.)
For example, let us say that Fish, with time, moves from
a Content state (or Starved state, for that matter)
to the Irritable state. Feeding Fish will move Fish from
Irritable to Drowsy, or from Starved to Content. Fish will
move from Drowsy to Content by taking the action of sleeping.

This produces the following sort of space:

<---------(feed)----|
Sleepy High | Drowsy /-> Irritable
| | /(time) /\
| |(sleep) / |
| | / |(time)
| \/ / (feed) |
| Content <------------ Starved
Low |
+-----------------------------------------
Low Hungry High


This graph hopefully makes it clear that some transitions are
forbidden; for example, when Fish is Irritable, it cannot
reduce it's Sleepiness without first reducing it's Hunger, which
can only be done by Feeding it (which is probably why Fish
is so Irritable in the first place.)

Please keep in mind that this is, really, a pretty simple example!
A somewhat realistic human might have as many as seven or eight
seperate dimensions, each with a quantization level of eight.
This produces 256 distinct emotional states. As many as half
might be forbidden states (for example, you might rule that
a given NPC will never be Very Hungry, Very Tired, Not at all
Angry, Very Jealous, and Very Happy.) Transitions will
probably be ameniable to simplification (for example, the
action of hitting the NPC will always lead to a Very Angry
state, regardless of initial conditions.)

Problems: Perhaps one of the biggest problems with this sort
of approach is exactly the same problem which exists in Real Life
(and this sort of emergent behaviour is promising, I believe.)
The player may not have complete access to the internal emotional
states of the NPC. It might be easy to tell if Fish is hungry by
looking at it; telling whether Widow Parks is Depressed might
be an entirely different story. The typical solution to this
is to try to reveal the character's emotional state through
conversation, but this can be tricky at best. Furthermore,
people tend to be bothered by other people 'experimenting' with
them in order to determine their emotional state.

Hopefully this has been somewhat elucidating. These sorts
of conversations are at the root of all advancement in IF,
I suspect.


Roger Carbol // uq...@freenet.Victoria.BC.CA // no, the other Roger


Rich Mulvey

unread,
Apr 27, 1996, 3:00:00 AM4/27/96
to

On Fri, 26 Apr 1996 18:21:57 GMT, Roger Carbol <uq...@freenet.Victoria.BC.CA> wrote:
>Let us start with the simplest emotional states: binary,
>one-dimensional.
[ interesting article about the emotional state of fish removed]

If you found that article interesting, you may find an article
by David Gerrold in this month's (May 1996) of Visual Developer
magazine interesting as well.

He discusses a hierarchy of emotional states in varying degrees
of intensity.

Katy

--
Katy Mulvey
mul...@vivanet.com <== Please use this address.

David Fletcher

unread,
Apr 27, 1996, 3:00:00 AM4/27/96
to

In article <1996Apr26.1...@freenet.victoria.bc.ca>,
Roger Carbol <uq...@freenet.Victoria.BC.CA> wrote:

[mostly snipped]

>Please keep in mind that this is, really, a pretty simple example!
>A somewhat realistic human might have as many as seven or eight
>seperate dimensions, each with a quantization level of eight.
>This produces 256 distinct emotional states. As many as half
>might be forbidden states (for example, you might rule that
>a given NPC will never be Very Hungry, Very Tired, Not at all
>Angry, Very Jealous, and Very Happy.) Transitions will
>probably be ameniable to simplification (for example, the
>action of hitting the NPC will always lead to a Very Angry
>state, regardless of initial conditions.)

Surely, just eight 'binary' emotions would give you 256 different states.
If each has eight levels, you could have 8^8 = 16 million of them.

Or have I misunderstood?

BTW, I'm not saying that 16 million states is really a problem. I don't
think it is.
--

David Fletcher

0 new messages