After trying, an failing, to come up with a comprehensive temperament index, I realized at the end of Breaking down the Personalities of Star Trek that any solution should actually provide shims to account for natural inclination, life experience and external demands.
The first principle of the system is that boring people are balanced. Namely, for whatever reason, be it an act is in their nature or they have learned to act a certain way despite their nature, we can call on a stock set of societal expectations as a default set of behaviors. Only people who are imbalanced in any way vary from that.
Encoded into that must be WHICH societal expectations that person is conforming to. A person growing up a commoner in Feudal Japan would have a different set of behaviors than a noble of the same era, or even a commoner of Modern Japan. In many societies, women have a different set of behaviors than men, an even different expected behaviors depending on whether they are married or not married.
My theory is that normal people fit in. Where people express a distinct personality are in abnormal cases. And yes, to a certain degree, we all are a little abnormal at the start, and it basically goes downhill as we age.
Every character in this system will be subjected to major live events. Like in superhero comics, life events can randomly change a person's personality. Events don't have to be disasters. They can be random flashes of enlightenment. They can be a stern talking to be a respected elder. They can be the result of reading a book, or watching a play. Some events add strength in an area. Others add scar tissue. Some cause a breakdown.
Every behavior will be expressed as a probability. When confronted with a situation, a set of plausible behaviors will be presented to the character, a dice will roll, and the dice will be loaded with the probabilities of each selection. If you remember the original terminator:
Something like that.
The advantage to such a system is that I don't have to have all of my metrics thought out ahead of time. I can also throw in random factors from the connections between characters, the type of scene, global conditions, the phase of the moon, where she is in her cycle, has he had is coffee yet, anything.
Is the system a bit non-deterministic? Yes. But so aren't people?
I'm realizing this is dovetailing nicely with an earlier effort I was talking about in Simulating Human Interactions and Implementing Expert Systems in Clay.
This, of course, means that instead of a simple set of alchemical ingredients people in this game are going to be a complex set of adaptations and mal-adaptations to life experience. And my code is going to be pretty damn inscrutable. But I at least have a system. It's going to be one holy hell of a messy system. But it will work.
Take for instance a conversation. I can now break it down to a flow chart, with one interaction chaining into the next interaction.
Each connection from one block to another carries a probability. Our simulated person will know which block they are on, and the expert system will present them with all of the connections, and our simulated person will "click" on one of the options. How they come to that decision is highly personal, situational, and depends on who they are interacting with.
Each side of the conversation is keeping track of things, and if one party comes out with a completely off-the-wall selection, they can even express outrage or confusion!
For my part, those boxes and links can be records in a database. And they don't have to be all that coherent. I could also take a series of these interactions and turn them into text. (Say the player is overhearing a conversation between two other actors.) For interactions off-screen, I can just record they happened, and the effect. With details only filled in if the story requires it.
Each of those boxes is where I would effect the emotional state of the characters, and meter how the agents feel about the other agents.
The player's character would act as an agent who constantly asks the player "What do I do?". Perhaps we could also have a "Fast Forward" button, ala the movie Click. Pressing this button would utilize the choices the player has made up until now to produce a probability matrix, and make choices in the style of the player until a designated event happens or the system comes across a decision where there is not enough data to make a choice.