Modeling relationships

Posted by Michael on May 6th, 2006, in Development

I’m quite happy with the direction that we’re heading in. To try and create a dramatic spectacle that only makes sense in the viewer’s head. The characters are hollow shells. We’re only programming systems that take care of the appearance without caring about what meaning comes out of this.

Characters don’t know anything about an object or other character until they encounter it. Then the other offers them instructions on how to use it. Which actions they pick from that list depends on consistency: they will first pick an action that fits in the same category as an action they did before. Unless their attention span has reached its low point, when they are allowed to switch categories. The attention span can be influenced by external, objective curcumstances. E.g. a shock might cause the character to switch behaviour. So the mood of a scene is objective. The only thing we still need is a way to allow the character to respond to an objective mood in a subjective way.

Next up is the modeling of relationships. Rather than giving each character its own properties and preferences, we want to design what happens between them. Or better: what appears to happen. So again an objective given. Relationships grow and shrink. So when the character switches behaviour, the new behaviour cannot be random but should be consistent with what happened before. E.g. in normal circumstances, fearful behaviour should not follow romantic behaviour. So behaviours concerning relationships should follow each other in a logical (objective!) succession. We can probably simplify this by defining a relationship with a simple value: 0 is no relationship, 1 is deeply in love. How this behaviour is expressed depends on the instructions that a character carries around. A child, e.g., does not carry any instructions about having sexual intercourse with it, making this impossible even if another character is supposedly “deeply in love” with it.

But what about the other way around? We usually wouldn’t want the child to have sexual intercourse with its mother. The easy solution would be to limit a child’s capability to love. A child can only love up to 0.6 e.g. But this feels unsatisfactory because this is adding an individual property and also because there might be other exceptions like this that may not be as easy to solve. How do we allow for different kinds of love? (romantic love, parent-child love, best friends love, respect/admiration love; note that some of these are not symmetrical)

Perhaps it is as simple as having categories of characters and only allow characters to enter a romantic relationship with characters in the same category. These categories are not hard-coded but defined by the author as they depend on the story that you are trying to tell.

One of our Golden Rules is to always design for the situation that will occur most frequently and not waste too much time on exceptions. So we’ll see.

This brings up an important issue. Reciprocity. Most of the time, relationships between characters will be objective. Character A feels the same for character B as character B feels for character A. But exceptions could be interesting dramatically (only if they are exceptions, though). So there should always be a certain randomness that allows for a character to decrease the relationship even though, normally, it should increase.

When characters are away from each other, their relationship might automatically decrease. Perhaps time spent in proximity of each other is sufficient to increase the relationship.

When the relationship is reciprocal, it can be considered objective and as such expressed in a value that belongs to the world, and not to an individual character. To make the narrative more interesting, a character should be able to unilaterally decide to increase or decrease the relationship. Or at least seem to (!). And then the other character should respond to that by either agreeing or disagreeing with the course taken. Is there a way to define this on the objective level as well?

Comment by Michael

Posted on May 6, 2006 at 11:40 pm

Maybe each relationship can be expressed by 2 numbers. One for each direction. The relationship between A and B is expressed by (a,b), where a represents the amount of love A feels for B, and b the amount B for A. The difference between these two numbers could also inspire the behaviour of the characters. If a is very low, e.g. and b is very high, B might display desperate behaviour or extreme sadness while A might act in an exaggeratedly indifferent way. The closer a and b are together, the more comfortable A & B will be around each other.

All relationships in the game could be stored in a single table with a column and a row for each character. The rows represent the subject and the colums the object of love. Each cell contains one value between 0 and 1.

Pingback by Drama Princess » Blog Archive » Activities, not characters

Posted on June 15, 2006 at 8:29 am

[…] While Richard Evans’ work will probably always allow his characters to have more individuality than we need them to have for our purposes, the idea expressed above, connects very nicely to our ideas of Usage instructions, AI from the outside and Modeling relationships. We have developed a preference for designing the things between the characters rather than what happens inside of them. The viewer can only perceive the outside anyway, the things that are expressed. Social activities are a prime example of how individual autonomous agents can be directed as a group. They don’t need individual minds to make decisions. Mr. Evans would not go this far because he wants his simulations to really work. While we only care about the illusion that takes place in the player’s mind. […]

Leave a comment

You must be logged in to post a comment.