Mood Management in The Sims (3, and also DF)

Mood management in games is something that we are beginning to see a bit more in games nowadays, with prominent examples being The Sims series, and Dwarf Fortress. But the management in and of itself has always been rather unconvincing. Maybe a Sim has just watched a loved one die in a freak accident as a result of their house burning down, but is still in a relatively good mood due to the fact that they have recently brushed their teeth, eaten a great meal and sat in a really nice chair. Of course in the real world, that wouldn't really make much sense, but why doesn't it make sense?

The answer is mainly to do with the capacity of our brain to hold immediate and important information, and the fact that some things are much higher priority to us than others. For example, if you were having a good party and suddenly a relative drops dead, in all likelihood the thought processes going on in your head would not be anything like "Oh no! He/She's dead... but this is a smashing party and I must say this food is very nice."
That is how most games handle it. Dwarf Fortress is especially notorious for this kind of behaviour where dwarves appear to be, at all times, constantly weighing the the good and bad to see whether they should be prancing about like idiots or killing everyone in sight and pulling all the levers.

In theory, the moodlet business in the Sims 3 should work, but the problem is mainly to do with this idea of capacity. Every event or action that provides a moodlet is a single icon that states that a Sim is feeling better or worse. So how could this be better implemented? Say, only the top 6 (the amount that fits into the default window) moodlets for a Sim are in effect, and that maybe some take up not one, but two positions denying a space for another potential icon to be in effect. The algorithm to determine what moodlets are at the top can then be based on the priority of the event/action. An example would be, say a Sim was buffed up on many minor moodlets, such as had a nice conversation and got hugged etc, before being given a slip saying they've lost their job or some such. The only real thing that should be taken in by the Sim would be the lost job, and possibly the hug, as losing a job is a pretty big thing to people.

This also pulls in the potential for different mindsets for certain personalities, where mundane things can become more important for some people than others. Taking the previous example, maybe another personality would find being spoken to and hugged to have more of an impact on them than losing a job (which may be a common thing for them already). Plus, if a negative moodlet has large priority and effect but a short duration, the other positive moodlets that are longer lasting can come back into effect to lift the Sim up after they've recovered.

A similar thing can be applied to Dwarf Fortress, say each positive and negative event will have a value for size and priority, and each dwarf only has a certain assigned mind capacity for things. This could mean that a player could keep a dwarf in bliss despite a truckload of little things happening which would normally cause the dwarf to go insane. But where's the !!FUN!! in that?

Well actually it would be pretty funny if there was just some creature that wondered around causing the dwarves to only think bad thoughts and go on a murderous rampage against other ill-tempered dwarves.

Rant OVER.