Creating believable groups and crowds is both and art and a science, bridging the gap of character animation, pathfinding and behaviour. Listen to tips & tricks to help you bring you up-to-speed with recent games and its technology.
Mikko Mononen, Ken Perlin, Jean-Charles Perrier (Lead Programmer at Quantic Dreams, developer on Heavy Rain and Indigo Prophecy), Bertrand Faure (Programmer at Quantic Dreams).
The Artistic Statement that is Heavy Rain gets a look in with the crowd scene, which is fairly interesting, and some bits and pieces on crowd control worth thinking about like the intent of the crowd and the dynamics of it.
Question: Does it make sense to model people as points in space with velocity?
Ken: Yes. (+Some more explanation I missed).
Question: Jean-Charles, what did it take to do the crowd scenes early in Heavy Rain?
Jean-Charles: Expensive attempt at everyone pathfinding to start. Uses locomotion with the animation pushing it and adapting that.
Question: Where did you spend the time developing Bertrand?
Bertrand: Tried flocking, Craig-Renyolds, but didn’t work well with thousands of people in the mall, but moved onto fluid simulations. Optimisation was the biggest part with the limitation of on-screen things – too much work to get a big crowd. Teleport characters around if off-screen from one side to another to make a big crowd.
Question: Do you think the problem of solving smaller groups of animation is much different to large groups?
Mikko: It is about perception you start looking at the group dynamics, but at the individual you look at them alone. It’s how the brain works.
Ken: With a small amount of people you have the intent of using those together for some reason or some social dynamic, so creates a large difference and have interest and investment in each person.
Jean-Charles: Started with the crowds with having actual tasks but that didn’t matter so only did that for a few characters. Did not work on getting individuals in the crowd to do anything meaningful.
Bertrand: Especially if they can teleport!
Question: How did you get the implementation of the flow in Heavy Rain?
Bertrand: SIGGRAPH 2008 AMD paper originally for tiny creatures, and meant to run on a GPU, so ported to SPU and was a similar approach.
Question: If you have a good animation system, can you hide some of the problems with the steering and other implementation issues?
Ken: Ultimate test is it looking like a real person. Phrased if the animation can solve two groups going past each other in a gap then it can still look problematic if they get too close.
Mikko: One of the constraints on steering behaviour is limited by how much the movement is allowed with the characters.
Question: Bertrand; what would you improve on the systems in Heavy Rain?
Bertrand: The crowd is very specific and driven by game design where the player must be in a full crowd. Everything was tuned to make the scene work, so was very specific. Maybe an improvement would be to have more modular code and used elsewhere.
Question: Is there any potential for any generic middleware for crowd AI?
Mikko: I might be biased trying to provide it myself. Probably widely different to do crowd AI then single AI. There is definitely something which can be implemented in middleware.
Question: On reactive planning, what kind of extent is planning needed in this case?
Ken: Example is putting left foot down and then being told by a steering system to suddenly turn left doesn’t work, so there is a need even as human to plan half a foot ahead, otherwise it looks unnatural.
Mikko: Do you think it is possible to include this step ahead planning?
Ken: Yes, because humans do it.
Question: Have you done any research into how humans perceive crowds?
Bertrand: In Heavy Rain we used many subtle techniques to enhance the crowds. Each agent in the map has some direction to head to like North – and so on with others.
Alex: There are lots of videos in SIGGRAPH papers.
Mikko: Things like moving together since they’re all moving in the same direction are assumed to be in a group and other things.
Question: In terms of the breadth of games what are the different AI things?
Jean-Charles: In Heavy Rain everything is artistically made so it really depends on what you want to do, and if you want it more realistic you want to minimise errors, and do motion planning and blending and so forth. Doesn’t matter as much in a more action orientated game.
Ken: Really good question because a crowd is a dynamic character. So thinking of linear media like film you might direct it differently if you’re going to find your lover, or if you’re avoiding your killer. Asking these questions first is a good idea before looking at the technical details.
Question: Different crowds have different cultures how does that change the crowd dynamics?
Jean-Charles: Not much work on that; just some things like hitting the crowd gets a reaction but nothing much else needed for this crowd.
Question: What do you think is left Mikko?
Mikko: Looking at animation and the constraints in the future to see if path planning and all the other bits still work fine with it.
Question: What about potential fill with roads?
Bertrand: Didn’t use potential fill for sidewalks and roads. It might work for cities but very hard to constrain, especially with actors and so forth. Very hard to get uniform movement. We use classic hierarchical pathfinder for those situations.
Question: What about using for certain situations recording movies/raw data paths of people to use in crowds?
Jean-Charles: It would mean a lot of data which cannot be used.
Bertrand: Motion capturing is crowd is nearly impossible because of occlusion of the camera.
Question: What do you think about using such a specialised system for your game?
Jean-Charles: Several phases of trying things out. Pathfinding solution wasn’t lost – used it elsewhere. It was interesting to do, and it was a real need for game design though.