I've been thinking more about social simulation recently - that's what causes any significant stretch of silence on this blog.
I have always said that you can't really do a realistic social simulation in a game world, because there's no subtleties. It's too clear and simple. Recently I realized, however, that even if you could, you wouldn't want to.
Realistic social relationships and interactions are painfully boring 99.999% of the time. Like life. You show the interesting bits - or you make the character live an extraordinarily chaotic life - but you never sit there and show the boring parts. Unless, you know, you need to set the mood. Not as entertainment.
The problem is that cheating is difficult. You can create a list of story elements or an algorithm for interesting behavior, but in the end you're looking at something that is strictly limited to what you, the developer, put into it. You aren't looking at a cornucopia of content, you're looking at a tool that helps you put in a different kind of content.
The question isn't "how do we simulate social behavior". I don't think it ever really has been. The question is how we generate social content.
My favorite method is to use player-generated or player-directed content.
Let's imagine we're making a Star Trek game. Oldschool Kirk stuff. Half the actual fun stuff in those episodes were social interactions: Star Trek was typically very human-centric, which was probably one of the reasons it was so successful.
So, we want to allow the players to generate content at some level. We basically have two choices: we can let them create the plot, or we can let them guide the characters.
The first option means that a player will have some method of specifying plot elements. "Introduce a girl... Kirk's old girlfriend..." "a new spatial anomaly... that makes everyone itch..."
The second option means that a player has to make the characters act in ways which fit their social roles. "Kirk rants to central command... about imminent war..." "Spock diagnoses a counteragent... to the itching..."
Either way you do it, it's not incredibly difficult to let the other half be simulated. It reduces the problem dramatically, because now the player is the one creating the continuity, so we don't have to worry about it. It's even possible to switch back and forth, so long as we never let the computer handle both simultaneously: the player must always be around, gluing the past to the present.
But you are left with an almost insurmountable difficulty: talking.
To me, talking is the difficulty. It's almost impossible to generate dialog on the fly, even when you get a player to be incredibly specific about the context. For example, Kirk is ranting to Spock about the danger his former girlfriend is in. We know exactly what we need to convey... but what does Kirk actually say? And two episodes from now, when he has to rant about the danger that his old high school buddy is in, will he repeat himself?
There's a few solutions that I can see.
The first is to write adaptive dialog. A lot of it.
If you're willing to blunt your fingers writing thousands of lines of tab A-slot B dialog, this is a good way to go. The AI doesn't have to be very good, because it's embodied in the dialog chains. You don't need a wide variety of evocative locations, because the dialog is your primary feedback mechanism...
The second is to create a meta-language. Something that is simpler and cleaner than English, but still allows for communication.
While some players won't like this, other players will take to it like taking candy from a baby. However, you will need to give your characters fairly advanced AI, so they can talk about and understand abstract concepts like love, self-doubt, what the future may hold... even good AI won't be able to do enough thinking for all of this, so it's generally best if the player controls the characters. This lets the player come up with the complex abstract concepts, and the characters just have to nod and smile.
The third is to go mute. People talking is rendered as gibberish. Let the player try to figure out what is going on from the context.
The downside to this is that the characters will be rendered pretty generic, so you need to make the context very strong and versatile. Body language becomes important, as does the number and variety of backdrops. Basically, this is a prop-driven system. It works well when the player has control over the plot (and can therefore introduce new props).
Anyways, I'm just thinking about all this. I've come up with some game designs - I'll make something in Rails, I think - but I'm having a hard time coming up with something tenable.
I want to make my next game have a very heavy human element. I don't want to make another spreadsheet game or shooter or pointless puzzler.
What do you think?