Articles

Inside Stranglehold's Breakable Object System

We hear technical tales from the frontlines of Midway's destruction-centric shooter at GDC.

One of John Woo Presents Stranglehold's biggest selling points was the destructibility of environments. The technology, Massive-D, was an undertaking best described in the program's name. During a GDC lecture titled "Massive-D: Stranglehold's Breakable Object System," Lead Programmer Steven Ellmore detailed the process of creating this system. The session was quite heavily geared toward programmers with a working knowledge of physics software, but there was enough information on-hand to give anyone an appreciation for the effort put into the game.

To use an example of Massive-D at work, think of a vase on a table that you'd see in-game. The vase is comprised of several pieces of vase fragment. Those fragments are composed of even smaller sub-fragments. It's all held together by a technique that the team dubbed "Woo Glue," in honor of film director John Woo. When a shootout occurs in the game, the Woo Glue comes undone, and the game's physics engine lets the fragments fall. If more damage occurs, they'll break into smaller pieces. That goes for small environmental objects, or something as big as a car. It all sounds rather fascinating and somewhat simple now, but Ellmore went into an abundance of detail regarding the numerous iterations and re-dos that came to shape Massive-D's damage effects. It was a significantly time-consuming affair, he said.

The team's early attempts to differentiate fragments in broken objects in Maya were quite time-consuming, according to Ellmore. Ultimately, they had to create a bookkeeping system to keep up with all of the separate pieces, then set up programming rules for how objects should react when they break. Eventually they began to set up events in which the AI could interact with broken objects. It required some fine-tuning, though; Ellmore pointed out that once enemy AI knew that they were being shot at, thanks to flying debris from columns, or from objects breaking, it would run for cover and not come out to fight.

Ellmore then talked about the problems with breakable physics. Too many effects would negatively affect the framerate, and the team had to divide objects into four categories dependent on both collision and motion. Making these objects work was very time-consuming but ultimately they figured out how to create breaks that would tear an object in half. They figured out non-linear damage models, so that there was more than one way to destroy something. It had its limits, though. You couldn't break the leg off a table and force it to collapse. You couldn't shoot the leg off a statue to topple it. That started the discussion on Woo Glue.

Initially, once the team figured out how to construct damage models that could tear apart, but not send the Havok software into a frenzy, they had to decide how to piece together fragments. The system they had didn't work well, the pieces of an object didn't hold together well, and one iteration was clunky. The concept of a virtual glue suddenly dawned on them. The first prototype of Woo Glue was a car. Since the damage mechanics of a vehicle consist of putting breakable objects on a skeletal structure, the idea would theoretically work. The problem was that it "couldn't be more destroyed" once players shot the objects off the structure.