Archived

This topic is now archived and is closed to further replies.

Neoshaman

emotion engine issue > please help

Recommended Posts

hello i''m working on a engine which simulate emotion reaction of npc and i have some issue in the design choice well, it not the first time i have worked on this kind but there was very specific and low end situation in game... now, i''m working on a social game where the player interact emotionnaly and socially whith npc whith a near normal life (but there is still some fantastic setting since it''s a fiction, and the fantastic''s setting just help to underlign some aspect of the current life), so the design has to be a kind broad and general, think the system like a simulation of a common person. the design is broke in step, and in each step (each step is conclude by a game release) there is an evolution of the engine to simple reactive system to a self aware and autonomous agents, then don''t go too far in the design if you try to help me the first step is an appraisal emotion system of events and actions by the npc the emotion appraisal is much more like a FMS (finite state machine) this is a list of what''s not include in this design step: no self awareness (or a very little) no need and desire (not exactly, they are suggested in the reaction script) no decision choice (they are in the script for the moment) no appraisal of relation with other npc (they are static for the moment) what''s is include is prefence (like and dislike in diferent intensity) standard (praiseworthiness of action by other agent (player in this case)) current mood of the npc (his emotional state) simple apraisal of the player (friendliness/animosity > which is the mood toward the player, and intemency > which is the degree of how much the npc know the player and respond emotionlly to him) in pratice the system create first a description of the actual scene (property) which is neutral and send it to each npc then each npc appraise the scene according to their preference list(kind of object, ambiant, character in the scene and relation he has with them)and the current state of the mood, which output an emotion with an intensity, the emotion is input in the mood which change it''s state, player action are appraise by the standard list, the state of his relation with the npc (friendliness/animosity and intimency), and the mood of the npc which output an action appraisal (blame or praise with an intensity), this output affect both the friendliness/animosity state and the mood state the player can only affect the npc by action (he has no stat) the talk command is take like an action by the npc (then have meaning and affect him) but actually you don''t talk, it''s more like a request toward the npc which respond according to his internal state and relation towards you (give the player more information on the character state since all variable is hidden the player can only appraise npc by their action and expression) the issue is on designing table of emotion output and mood, and relation between them (how does each mood state affect appraisal emotion and how much each emotion affect the mood) can u help me?? it''s not exactly a game it''s more like an experiment which will be use as a tool for later game, then don''t think about fun, but about possibilities >>>>>>>>>>>>>>> be good be evil but do it WELL >>>>>>>>>>>>>>>

Share this post


Link to post
Share on other sites
well i design the engine more like a role of improvisation for a virtual actor

i have avoid the needs and desire on purpose (it will be include later), it''s about appraisal with already stored preference and standard

i have already made a lot of resheach of emotion and mood and anything related but it''s more like a design issue that i come into
(i have already known maslow ladder)

that''s why i have call for help

well i have made a long post because i have put details assuming that people will read it, but it''s seems that i''m wrong (-_-)
maybe my english really sucks (i''m french native speaker, then i apologize)

well actually i have built a table of emotion but i don''t know how to manage them
the output of preference is > please/displease (more like comfort/discomfort)
ouput for standard is > praise/blame (respect/anger)
relation with player is >hate to love
the intemency come to > stranger to familiar
mood can be set at>calm, sadness-despress, joy,anger-rage, nervosity-anxiety

but i don''t know if this is efficient our langage don''t help that much
in my table many mood can be perform the same time and emotion is not that clear, it''s important to name them and indentify because reaction depend of them

problem came where a emotion affect mood and how mood switch itself

well maybe it''s not the right place to ask this because gamedesigner are still focusing on blowing up things than life emotion interaction
get the step! think whith me!!
i don''t want an expert view but that someone try to figure how we can acheive this

i have try to avoid mechanically design of emotion that we see designer commonly do and it really piss me
it''s more a emotion reactive engine than a cold simulation
get it??



>>>>>>>>>>>>>>>
be good
be evil
but do it WELL
>>>>>>>>>>>>>>>

Share this post


Link to post
Share on other sites
Be patient. Your post is long and not altogether clear. Expect 24 hours before you get a reply, not five.

That said, I''ll try a response.


I think I see what you''re trying to build, but I don''t understand where your problem is. You have an NPC that has a set of moods:

calm
happy
angry
sad
nervous

These are all independent states. An NPC might start calm, then some input or event makes them sad. If the NPC gets more of the same input (to make them more sad) they won''t change to angry or any other state. They just stay sad.

It sounds like you have a good idea for determining the initial state of the NPC. Some function based on ambience, nearby objects, etc.

You have defined what the input to the system is: the player actions.

The only other thing to do is figure out the details of the state machine. There are several ways to do this.

One method is to build a table that has Current Mood across the top, and Player Action across the side. Then for each combination of player action and currrent mood, fill in what the final mood is.

But you''ve started somthing more complicated already. You plan on a detailed evaluation of the player actions weighted by the relationship between the player and the NPC. Which means math. The problem with this is that the final output (mood) is not a continuous function. So you need some other variables to handle the math. An in-between step.

My suggestion is to have a single variable for each state. One for how angry the character is, one for how happy, etc. The character''s mood is then the largest of these variables. If the NPC has an angry value that is higher than the happy value, then the character is angry.

Then each player action can contribute to more than one state. Example: A player fires the NPC from their job; the NPC gets mad +1 and sad +3.

Reduce the totals over time so that the numbers don''t just go up and up. You''ll have to figure out the actual formulas on your own, because they depend on the details and your own tastes. Expect to do a lot of testing to get things just right.

I''m sure there are a lot of more complicated models that you could use, but this should work for the first step. Also read through the AI board and any books or websites you can find on state machines.

Hope this helps,
JSwing

Share this post


Link to post
Share on other sites
well, thx it's help a little, its much better to see how people understand your thougt in order to find where u fail

sorry if i was a kind excited by the project

the whole model is much more complicated, but i choose to not coming with something which is too much and broke it in step

the problem is that i have wanted to make that some emotion reinforce ou inhibit a mood and then make it switch to another mood acoording to input

i think i will mix this with the emotion variable separation with decay (but mood don't decay easily like this from time because of a persistance of some feelings, it's a matter i have to fix)

i have try to made already some table for the FSM
but it turn me mad because the language we use for emotion isn't accurate and many words cover many reality
you can esteem someone you hate(respect) and misesteem someone you love (pity?)
then praise and blame shouldn't lead to like and dislike??
what's make someone like or hate you, more and more??
i'm not sure if emotion and mood state i have choose is the good choice, it seems to me that the model lake something

mood is problematic too because we act according to a general mood and have specific mood towards other's which are dependant but not the same (i forgot to put a mood variable in the relation set, since you can be angry towards someone you like)

actually the personnality is suggesting in designing each preference and standard of a character

well math is not a problem, its just another way to express thing, if you failed to express it with word , math won't help that much, that's why i don't use mention of it

i didn't use a more complicated model because i want to focus on emotion appraisal of a context and agents, and it's for building a sory generator at a high end and at low end it will affect the way the narratives evolve in a story by making variant of the same story ( action take to counter the fate (story) and affecting the flow of the story by taking action in the universe which leads to possibly generated ending)

>>>>>>>>>>>>>>>
be good
be evil
but do it WELL
>>>>>>>>>>>>>>>

[edited by - Neoshaman on September 1, 2003 10:37:22 PM]

Share this post


Link to post
Share on other sites
quote:
You have defined what the input to the system is: the player actions.



well actually this is a matter, action are appraise by the preference, preference find the attribute of action''s preference and then the preference ouput emotion

it''s more interaction between emotion and mood which bother me

emotion affect mood, mood affect emotion, but there is no clearly mood end emotion primitives and how they interact, i wanted if someone have any idea

an idea i''ve come in now, is that preference is related to need and personnality, which lead to different kind of emotion according to which kind of need and personnality

i''ve found something about big five theory of personnality and will try to mix it up with maslow ladder of needs (physiologic, security, social, psychologique, ego)

wait and see...

Share this post


Link to post
Share on other sites
well it''s seems that i was too nervous (anxiety ) about the problem that''s leads me to depression (sad) because i cannot see the evidence now i''m calm , i won''t get angry because i find why i''m so silly, i finnaly found the solution i''m happy



quote:

JSwing say:
Be patient.


well the problem was i was focus on npc relation appraisal vs emotion and mood, well i have a table, it work(i think)

the plyar must be appraised also by preference and by standard and the outcome of preference give value to action make by the player

for ex there many things which make the npc happy BUT when it''s a action by the plyer it increase the stat of the player, that''s all.... i was very silly....

>>>>>>>>>>>>>>>
be good
be evil
but do it WELL
>>>>>>>>>>>>>>>

Share this post


Link to post
Share on other sites