Building Brawl-Handling Interacting Characters in EA Sport's MMA
The EA Tiburon Studio, based in Orlando, is no stranger to player vs. player interaction. As the studio behind the Madden juggernaut, the Fight Night series and several more sports-related titles, they essentially wrote the book on interactions between game characters. Their latest release has pushed the authenticity of character interactions and deformations closer to real life than ever before.
Mixed Martial Arts (MMA) is a brutal, bloody sport that requires close contact between fighters with muscles and sinew only hidden by an occasional tattoo. Capturing the full effects of the body's deformation to a hit or a kick is essential to the realism of the sport and the studio has revealed some interesting facts about their knowledge in creating such realism.
Figure 1: EA Sports MMA, the most realistic fighting game ever
[subheading]The Development Dream Team[/subheading]
The EA Tiburon team responsible for the MMA title was refreshingly open about their processes and techniques and the interview questions shed some light on this tricky endeavor. The responsible party includes Rob Hyder, the Lead Producer; Simon Sherr, Animation Director; Volga Aksoy, Graphics Engineer; Rob Williams, Gameplay Engineer; and Jerry Phaneuf, Art Director.
Game development for the MMA title started back in 2007 with a team of five or six putting together basic game functionality, designs and an animation prototype. From here the team grew steadily and the entire project was completed in just over two and half years.
The key to completing this game in a relatively short timeframe was that the team had access to a lot of technology that was created for the other EA Tiburon released games. This allowed them to focus on making a great game without having to build everything from scratch. The team harvested animation, rendering, sound, AI, speech, load/save and online pieces, which put them ahead of schedule.
A good example of this was the animation system. Rob Hyder mentioned, "Our animation system allows animators and designers to create base gameplay without the need of an engineer. Adding new punches, adding ground positions, changing timing windows, changing damage or reaction severity; all of this can be done independent of any coding. This gives us much faster iteration times, and it allows our engineers to focus on other more difficult problems like physics/animation interaction or putting in online features like Live Broadcast."
[subheading]Capturing the Fighter's Nuance[/subheading]
Each MMA fighter has a unique look and style and capturing these is paramount to the game experience. The polygon budget for a single fighter (including shorts and gloves) was roughly 40,000 triangles with the head having 8500 and the body around 11,000.
The various texture channels also added to the realism of the fighters. Each fighter had 1024x1024 textures for the albedo (diffuse), regular normal, flexed normal, specular mask (with specular cosine power as a separate channel), sweat breakup normal, damage and blood zones, reflection cube map and ambient occlusion texture channels. They also included several runtime-generated textures like SSAO (Screen Space Ambient Occlusion), SSS (Sub-Surface Scattering) and shadow maps, which contributed to the final look of the fighter.
A good example of how textures were used to create realism was in creating the sweat trails. These sweat trails (Figure 2) were created using a specular mask that is ramped up over the duration of the fight. It is combined with a sweat normal texture that starts to blend in over the regular normal map when sampling the reflection cube map. There were also sweat particles that spawn from predetermined points to fall to the ground.
Figure 2: The "sweat trails" develop over the course of the fight.
Tattoos (Figure 3) and scars are another common defining element of many fighters. Volga describes how these were baked into the diffuse texture, "When a fighter is being loaded into memory, the necessary tattoo images are also pulled into memory as well and baked into the albedo (diffuse) texture of the fighter using a 'UV translation' mesh, so that the tattoo image can be warped properly to match the UV layout of the required zone on the fighter body or face. Once the tattoo is baked into the texture and DXT compressed at runtime, the pre-loaded tattoo image is unloaded from memory as it won't be used anymore."
Figure 3: Tattoos are baked into the diffuse channel and then unloaded from memory.
Clothes, unlike tattoos, are standalone meshes with their own textures and shaders. They are skinned to the same joints as the fighter they are fit to. As part of the Create-A-Fighter feature, any logos that are added to a fighter's shorts are baked into the texture at load time. This prevents having to load the logo textures while rendering. To make sure that the body does show through the clothes, a z-bias was added to the shader that renders the clothes.
The hair was modeled using a "hair cap" to define the base color and scalp volume; "hair cards," which contained the alpha to coverage polygons, were used to create the semi-transparent hair. The team was fortunate that there weren't any really long hair models, so physics wasn't an issue.
To capture the fighter's motions, each fighter was recorded performing a base set of motions along with any fighter-specific strikes using a portable XSens MVN motion capture suit. These recording sessions took place at the studio in Vancouver and also at Orlando's Florida Interactive Entertainment Academy (FIEA) facility.
The motion capture data was used as a starting point. The data was loaded into MotionBuilder and heavily keyframed to match the gameplay requirements and visuals. All fighters share the same source animations, but the procedural animation system lets the team tune the visuals in real-time giving each fighter a unique look and feel.
During the motion capture sessions and as the game development progressed, the team had the chance to interact with the various MMA fighters. Rob Hyder describes this, "One of the best parts of this project was the time we got to spend with the fighters. These are great folks, very humble, very real, and often times funny, insightful, and wise. There were some worries about whether these guys were going to be cool to work with. My team actually used this concern that I had about one of the fighters, Jason'Mayhem' Miller, to play a prank on me. Jokes aside though, Mayhem is a really cool guy and our team loves working with him and the rest of the fighters in our game."
[subheading]Setting the Ambiance[/subheading]
The fight audience was pulled from the Fight Night crowd and retrofitted for this game. It consists of 10 basic animations that are offset and spaced apart. Simon says, "The key is avoiding large repetitive motions that would pull the eye away from the fighters and/or animations."
The venue lighting is supplied using light maps that are stored as 8-bit RGBE textures and all specular surfaces had environment maps applied with normal maps to break up the highlights.
Lighting the fighters was accomplished using a relatively dim directional light coupled with the surrounding ambient light that is emulated through the environment maps. For subtle lighting across the fighter's face, Volga said, "we also used a novel SSAO (Screen Space Ambient Occlusion) technique as well as SSS (Sub-Surface Scattering in UV space) that is specifically tuned to work for all of the different skin tones we have in the game. As for specular highlights, we used the Kelemen-Szirmay-Kalos model for the directional light as well as using reflection cube maps to capture the subtle breakup of the reflections over the skin during the sweat buildup."
Figure 4: Several lighting techniques were used to light the venue and the fighters.
To animate the ring ropes, collision discs are placed along the length of the ropes whose extents are compared to the skinned limits of the fighter mesh and the results are fed to the ring ropes vertex shader.
The sound effects were created by an Academy award-winning sound designer. Rob Hyder describes how some of the Foley sounds were obtained, "I believe that one of the most successful was a large beef roast that he purchased and then proceeded to punch and hit with various implements until he got the sounds he wanted."
[subheading]Landing a Punch--Creating Fighter Interactions[/subheading]
Regardless of how realistic the fighters look, it is the interaction between the fighters that has a greater impact on the realism of the fight. The team made heavy use of motion blends for procedural animation tuning to create the fighter interactions. Simon describes this system, "We have a system that allows us to layer, override, and subtract or add animation to any part of the body at any time (similar to Photoshop layers). We also have several tools for controlling the visuals of blending animations and make heavy use of those tools on MMA."
Contact between the fighters was created using a non-uniform player scaling system, a relative IK system and a series of what the team called "touch tags." These touch tags used the HumanIK feature included in MotionBuilder to adjust the animation in and out of a specified target.
The HumanIK feature in MotionBuilder was also used to define foot positions and prevented the foot from slipping as the body moved. It was also used to retarget animations to various skeletons and to maintain contact with opponents. Finally, the feature was used to track the fighter's head, which the team referred to as "head tracking with attitude."
Figure 5: Autodesk's HumanIK feature was used to maintain contact between fighters.
The MMA team tried to avoid the use of any physics-based system when animating the interactions between the fighters. Simon mentioned, "we felt that it was important to maintain that visual ideal of "intention" in our actors on screen, so we use Fight Night physics to clean up interpenetrations, but we use other procedural animations systems, which are very often "informed" and driven but not posed by physics simulation. The idea was to give the artists control over the characters' posing while allowing physical simulation to often drive the animation decision tree."
To create the effect of an impact on a fighter's face during the slow-motion replays, a cloth simulation was used. This worked by having the artists paint a mask over the face vertices that indicates which vertices to include in the cloth simulation. During the simulation, the direction and force of the punch was fed into the simulation as an extra force.
Particle systems were used to trigger blood spray, sweat cloud spray, spit spray, dripping blood from gaping wounds, and ambient sweat dripping. The blood, sweat and spit used a high perparticle cohesion value to create a "stringy" effect as they travel through the air.
The MMA team spent a lot of time researching skin rendering. This is apparent in the damage model that was developed for MMA including how cuts break and develop further by bleeding and running. The face also becomes deformed to accommodate swelling.
Another trick that added to the realism of the fight was to allow the blood to transfer to the opponent's body and to the canvas. To get blood on the mat, the team simply renders a special pass of the particle system into a texture that is only sampled at runtime. After a few seconds, the blood particle starts to fade out, but its position is rendered onto the mat's blood texture where it persists throughout the match.
Concerning the game's AI system, Rob Williams describes the team's four AI goals, "First, don't be a sap. The computer does not take any action taken by the opponent as a cue to do a negatively predictable behavior. Second, be yourself. A certain level of predictable behavior must be built-in, at least enough so a fighter performs in a way that agrees with their real-life counterparts. One fighter may prefer or be more skilled at stand-up striking, while another may prefer or be more skilled in the ground game. Third, mix it up. Within the constraints of behaving as the real-life fighter, unpredictability can be done by collecting the preferred actions of the fighter and choosing one at random, with actions more greatly preferred by the particular fighter given greater likelihood of being selected. Finally, live and learn. In all situations the computer observes which fight tactics yield positive results for the computer, and which behaviors yield negative results, just as a human fighter does in a real match."
EA Sports new MMA game has been called "the most-realistic fighting game ever." With advanced tools and skilled artists, the results are dramatic. The effort put forth by this team has added realism not only to the character's look, but also to how they interact with other fighters and with the environment. Certainly the team has pushed the envelope. For MMA fans and gamers that enjoy realistic fighting games, this is definitely one to check out.