Saturday, April 28, 2007

Integrating Characters into Games

Many people want more realistic characters in their games. They want characters to react realistically (or at least entertainingly). The problem is that it's always really shallow. For example, in Oblivion you can get anyone in the game to like or hate you. In Fable you can marry almost anyone. In The Movies, every person on the lot has a complex personality. But... it is completely unsatisfying. Doesn't add anything to the game.

So, how can you integrate these complex, adaptive characters into the game in a way which is fun?

Here are three things I've found:

1) Characters linked into the game world. The character needs to have an effect on the game world which varies based on your relationship with them - and it needs to be significant enough to notice. The basic idea is: a statistical difference is not good enough. Instead your relationship with them should enable new capabilities (capabilities which are relatively unique).

Examples of bad ways of linking characters to the game world: If you're friends, they gain two points of strength. If they fall in love, you can sleep at their house. If you rescue their puppy, they'll give you 10% off their store's goods.

Examples of good ways of linking characters to the game world: if you're friends, they can learn black magic. If they fall in love with you, you can heal yourself once a day no matter where you are. If you rescue their puppy, they'll sell you guns. If they hate you, they'll hunt you no matter where you go.

2) Limit the number of characters. A serious problem with many attempts is that every character can be affected, and there's hundreds of characters. Think about it as simple supply and demand: don't oversupply. You can restrict the number of characters you can meaningfully interact with in many different ways, some of which are amazingly subtle.

Examples of how not to do this: Fable, Oblivion.

Examples of how to do this: The Sims, KOTOR.

3) Think long term. Socializing isn't like fighting a monster: someone you made friends with at the beginning of the game shouldn't become "obsolete" - there should be interesting relationship developments even in the late game. This can be done many ways, and my preferred method is to make relationships very "fuzzy" rather than binary. The idea of having "levels" of relationship is inherently limited.

Examples of how not to do this: KOTOR, Fable.

Examples of how to do this: Hm...


Patrick said...

"If no one has any questions, please turn to page 2..."

Seriously though, a very nice way of summating your thoughts, and I agree with all of them. I think what you're trying to do is come up with a cohesive framework for drama games, an alternative to the Miyamoto framework.

Craig Perko said...

Well, I'm struggling to FIND a framework...

It doesn't have to be an alternative to the standard frameworks. It could just be a very select subset.

GregT said...

My current thinking on characters is going in the direction of two rules.

(1) eye contact and expression. The effect of this in Half-Life 2 is absolutely the most memorable thing about the game; and
(2) it's not about how characters change the player's framework, it's about how the players change the characters, and about how the game NOTICES. It's the same trick as making memorable NPCs in a tabletop RPG - let the players fill in some of the details. It's buy-in/ownership, and it works wonders.

Craig Perko said...

The eye contact and facial expression rule is more of an aesthetic one, rather than an algorithmic one. It's important, but since none of my testing involves animation, it's not one I can use. :P

Your second rule feels... incomplete. My big problem is that buy-in, while powerful (my algorithm uses it too), only pays off when the character interacts with (the world, the player, other characters) in a way which is both meaningful and largely caused by the player. Just watching them walk a slightly different path or have a slightly different facial expression isn't going to make anyone think, "I did that."

That's my linked-in rule: not only do you have to be able to change characters, but they have to be able to DO different things because of it. Express themselves in different ways.

The other thing I'm very concerned about is "the state machine" - most characters which can be affected by the player socially have three specific states they can be in. I think that's way too limited in the long run. And I don't think the answer lies in more states: I think that the way the player is allowed to change the character socially has to be stateless and "fuzzy", so a character can keep being socially interesting.