February 20, 2006

Crowd Densities revisited

In the comments thread on Greg's welcome post back last September, we had a bit of a chat about achieving real-world crowd densities on next-gen platforms. If you haven't yet seen Capcom's Dead Rising, it's worth checking out the new official trailer released last Friday - I count possibly 100+ NPCs on screen in dense urban environments, with no apparent interpenetrations and quite a bit of animation going on.

Of course, the genius of Dead Rising is that the NPCs in question are supposed to appear like idiotic zombies :) I imagine they have pretty simple flocking mechanics, with direction goals to converge on enemies, circulate round the shopping mall, and so on. Has anyone played the demo? I'd be keen to know a few things:

1. Do the zombies seem to be doing graph-search nav as well as steering behaviours?
2. Do they interact with their environment much? (e.g. operating doors, picking up objects)
3. Do they take part in scripted set-pieces?
4. Do some exhibit much more complex behaviour than others? (e.g. shopkeeper mentioned in IGN preview)
5. Do they exhibit a wide variety of animations? In one crowd?

Posted by GardenerOfEden at February 20, 2006 06:38 AM
Comments

Hi! I can't answer any of Adam's questions about Dead Rising, but I did want to chime in belatedly about next gen crowd densities, as I kept intending to do since Greg earlier post. It is hard to do apples to apples comparisons of crowd simulations, as Adam suggests there is such a range of complexity for the crowd members. How smart are the agents? How detailed are their geometrical representations? What kind of animation is used?

Over the last year I have been looking into high performance crowd/flock simulation on the PS3's Cell architecture. (I work at SCE's US R&D group.) Since I wanted to push on the crowd size parameter, I use a very simple visual model for the individuals in my simulated crowds. Their brain are just some steering behaviors. Keeping that in mind: I am able to run a "boid" simulation of a school with 7000 fish animated at 60fps. My preliminary 2d crowd model runs 10,000 individuals at 60fps. In both cases the behavioral update rate is 1/8 of the frame rate. The fish "bodies" are about 30 polys with some displacement animation in a vertex program.

The general idea is to update the simulation in parallel (on 6 SPEs) using the same spatial hashing used to accelerate proximity queries. For those who want the gory details, I will be talking about this "PSCrowd" system at GDC: http://www.cmpevents.com/GD06/a.asp?option=C&V=11&SessID=2769

Our plan is to show these demos and one with more interesting graphics as part of Phil Harrison's Keynote: http://www.gdconf.com/conference/keynotes.htm#phil

Posted by: Craig Reynolds at March 2, 2006 11:54 AM