As graduate students one of our requirements is to complete three seminar courses throughout our MS/Ph.D. degree in order to expose ourselves to hot topics in academia and industry. These seminars consist of speakers given various talks on all fields of computer science such as vision, artificial intelligence, temporal databases, search engines, computer architecture, UEFI, software engineering, and security to name a few. Usually we have some speakers from academia but time to time we also have some from Symantec, Google, Sandia National Labs, and others. Today, we were blessed by having a speaker from none other than Blizzard.
The topic was on The Evils of Simulation: Diablo 3 Cloth and the abstract of the presentation was the following:
Cloth simulation has helped to breathe life into Diablo 3. Flags, kilts, dresses, and banners respond to movement, wind, and explosions. Erin Catto will cover the basics of cloth physics, dig into some of the thorny problems that arise when implementing cloth simulation in a game environment and discuss how cloth is integrated into the Diablo 3 tools and engine.
Digging more into his bio, I found out that the speaker is actually someone very known in the industry as well as in the open source community:
Erin got his start in the game industry at Crystal Dynamics where he wrote the physics engine for Tomb Raider: Legend. He is currently at Blizzard Entertainment working on the Domino physics engine used by Diablo 3 and other projects. He is the author of the Box2D open source physics engine, used to create Crayon Physics, Limbo, Angry Birds and other iPhone games. Erin holds a Ph.D. in theoretical and applied mechanics from Cornell University. – UCLA Seminar
He started the talk by showing us a video clip of the barbarian performing his stomp attack which showed his kilt flapping around after the attack. And how was this done? Ideally, since the game is required to run on low end machines the cloth simulation had to work on very basic principles to use a small amount of resources when run real time in game. This was done with the use of a Particle System since trying to simulate a cloth that is composed of thousands of thin strings would be a challenge by itself. A particle system is composed of basic particles such as a point in space and a velocity. By using Newton’s laws of physics along with some intricate math formulas, its possible to simulate fireworks, fur, grass, explosions and in this case the movement of cloth.
Erin spent most of his time talking about the challenges in creating such a system such as:
- How do we attach the particles, vertices joined by edges, onto a 3D mesh?
- How do we simulate stretching and contraction?
- How do we incorporate gravity and velocity into the movement of these particles that simulated the cloth?
Given his experience with the Box2D physics engine I can only imagine that creating the cloth simulation was something he enjoyed doing as he probably used previous knowledge to incorporate into Diablo 3. He even mentioned how he cringed whenever he saw other video games that had low quality cloth physics or simulation. Once you get to that level of detail and can complain about it because you can, props to you my friend.
And guess what was one of the questions asked by the audience? “When is Diablo 3 coming out?”
“We hope to release it sometime this year”