Research on how to get AI characters to be socially smart, aiming at working in EVE Online.
Claudio Pedica (Researcher at Reykjavik University, collaborating with CCP).
I’ve got the nagging feeling this might be easier to implement in a simpler way, but it is nice to get more reactive NPC’s however we can – territory areas as described below seem okay at marking the social areas.
Concentrating on “Socially smart characters”. Examples of bad social interaction might be The Witcher pub NPC’s, Assassins Creed and STALKER NPC’s not noticing the player. They looked disconnected from the situation and unaware of the context – no reaction whatsoever.
Especially looking at MMO so the collaboration with CCP.
CCP doesn’t like conventional “Kill ’em all” game design – killing everything.
CCP doesn’t like childish-looking social settings. Mature looking – NPC’s shouldn’t be just standing in the middle of the room.
CCP doesn’t like socially limited characters – so basic skill at interacting.
A Bar Example
(Picture). Dancers, drinking, sitting, watching or talking. Is isn’t all about navigation, there are things the character needs to take into account.
Social rules exist, like standing in a line watching a sports match gives distance between couples and groups. Waiting in a line everyone faces the same direction and stands closer together. Walking around also means we don’t walk through groups and so forth. Social interactions claim space and work into the territory.
Going into the theory you can understand the reasons why something happens. Space in front of people means things can take place – like a conversation between several people. F-formation System is used to defend the space from intruders by moving to make, basically, a circle.
Territory is then taken in circles for certain interactions – the middle being the conversation space, outside of this is the conversee’s space, outside that is passers by, and so forth.
Reference Scheflen, 1976, about how to name and categorise the territories. You can nest territories too.
AI Social Engine?
How about having an AI social engine? Have been attempting it for a few years, with sandbox conditions. Have some reaction generation paradigm;
- Perception to understand surroundings – vision since hearing isn’t implemented yet. Also has proximity measures.
- Reaction to motivate movement. Take the information available at this point in time and compute motivations. Two motivations are moving linearly (forward) and another to turn.
- Motion to do the action – also moving head and eyes
Flocking – Reynolds 1999 – applied to each agent in flock is emergent. For the actual rules create a similar emergent formation. One is personal distance – stepping back if people are too close to you. Equality to the centre of a conversation. One is keeping common attention – direction.
To get the parts to work together, the active tasks influence the behaviour in parallel.
Demo shows that after joining a conversation means the formation is kept even if small movements are done. Social territory can be shown, and so conversations avoided when someone tries to set a point on the other side of a group.
The Bad Sides
Group dynamics ned to be improved. Raw steering behaviours are not the best, and might need replacing.
It all works in an empty environment for now. Furniture shaping the territory in certain ways would be a good idea.
Behaviour tuning is time consuming. It’s complicated. You must be able to tune it however.
The Good Side
Everything you may have liked from the demo – if you did like it.
Evaluation proved that the method can increase believability, the results going to be published in September and is promising.
The action flows quite smoothly.
The Point and The Future
It’s to look at the Human Territory in games, not to work instantly as an add on with any game.
Need to look in the future at integration with CCP EVE Online technology, and need to investigate further human territoriality and simulate more, with more behaviours and group dynamics. Also need to do some high level action selection using behaviour trees.