I've talked a lot about social AI in the past, but it's been at least a year, so here's another post about it. Please note that by "social AI", I really mean "the appearance of social AI". I don't have any intention to solve any fundamental AI challenges.
One issue with social AI is that it requires really dense, nuanced information to react realistically. On the order of hundreds or thousands of times more nuanced than today's video games. Perhaps the Kinect will provide enough human feedback, barely, but in more general situations you're going to have to synthesize a lot of the density out of the game world without many cues from human input.
As an example, if your friend touches you, the exact meaning varies hugely depending on the location and type of touch. Arm, shoulder, head, back, waist, chest, hand, etc, etc. Each location gives a different impression. Is it a tap, a pat, a reassuring grip, a restraining grip, a rap, a friendly punch, a warning punch, a caress, a guiding push?
To say that there are N ways to get touched, or even N thousand ways, is a mistake. The fact is that there are an infinite number of ways to get touched. You can't list them all, and even if you could, you don't want to try to interpret them based on a big list. Instead, you want input that is sufficiently dense so as to allow the program to figure out the nature of the touch based on context.
By the way, this density is also important to humans. Humans who are stuck in simple and restricted environments tend to have simpler and less nuanced responses. They often go a little bit batty, like an edge case in a simulation. For example, being stuck in an arctic base for six months. This is fairly well documented, to the point where there are specific recommendations for how to keep your people from going nuts when you station them somewhere with so little stimulation.
Well, aside from that, there's also a ton of interpretive complexity. What is a friendly tap in one country might be an aggressive warning in another, or even a flirty move. Even within one country, different people will react differently. Even the same person will react differently depending on the moods of the people involved and the surrounding context.
The normal method of trying to make a social AI for a game is to give you a variety of interactions, and the AI responds to those interactions in a fairly straightforward way. At its peak, this consists of basically building up a tremendous expert system which takes the mood and the situation and the type of tap and then spits out a response.
This is not a good way to do it for the same reason that carefully scripting every branch of a plot is not a good way to do it. A) it creates distinct 'paths' or 'branches', rather than giving real freedom. B) it gets radically more complex with every choice or branch you add.
So, to quickly state where we are:
You need to do social interactions with a culturally and contextually aware algorithm, rather than using a state machine or expert system, if you want really adaptable social interactions.
You need extremely varied and nuanced inputs to feed that algorithm, or you'll end up basically creating a state machine. AKA "The Arctic Base Issue".
Very few or perhaps none of the human input devices available to you can actually transmit that much nuance.
That's really only a tenth of the story. It's the foundation on which you start to talk about social AI, or the appearance of social AI. But it's plenty long as is, I think.