Drastically improved Maya runtimes allowed focus on product development
Electronic Arts Inc. (EA) is a world leader in interactive entertainment software. A developer, marketer, publisher, and distributor, EA creates games for a variety of video game systems, personal computers, wireless devices and the Internet. Popular with millions of customers worldwide, EA’s bestselling games include 27 titles with fiscal 2010 sales of over one million copies, and five titles with fiscal 2010 sales above four million copies, including FIFA 10, Madden NFL 10, Need for Speed SHIFT, The SIMS 3 and Battlefield: Bad Company 2.
Autodesk Maya 3D animation software, a key element of EA’s game development toolkit, is used to process most of EA’s game assets, including animations, models and textures used to support game play. By integrating Maya with Incredibuild, EA was able to dramatically enhance Maya’s performance. This case study explores how EA used the Maya-Incredibuild integration to significantly accelerate the development of the SIMS 3 game.
For the development of the new SIMS 3 game, EA used Maya to convert asset files into their game-ready formats. SIMS 3 has tens of thousands of asset files, and required building an enormous amount of data files. Rendering all these asset files took several hours each.
EA’s build system is set up as follows:
- Python script launches runs of mayabatch.exe. Each run of mayabatch outputs a single independent asset file (either animation or geometry).
- All mayabatch runs take place on a single machine and all output files are saved to a single folder on the machine.
- The Python script then processes all these files and stores them in a single data pack accessed by the game.Typically, the runs of all mayabatch calls on a single 16 CPU machine took about 4 hours. EA was looking for ways to improve performance and reduce runtime.
By reducing the time of the Maya runs, EA could significantly expedite the entire application development cycle.
EA has been using Incredibuild to speed up their internal build processes. EA desired a similar way to accelerate Maya processes, and found an ideal solution in Incredibuild’s software acceleration technology platform. As opposed to running Maya on a single machine, Incredibuild distributed Maya’s subtasks (“mayabatch.exe”) to unused resources on the network, making use of idle CPU cycles on those machines. Incredibuild agents were installed on 7 machines (user workstations – no dedicated servers were required) for a total of about 108 CPUs. Each machine was utilized without impacting local user performance. The output files from these remote runs were copied by Incredibuild back to the host machine. Finally, a Python script processed all output files to create a single data pack.
Running processes on remote machines in parallel allowed Maya to dramatically reduce its overall runtime from 4 hours to only 40 minutes, resulting in 6x faster processing results.
Even greater performance enhancements were observed in tests conducted in Incredibuild labs, where each run without Incredibuild’s technology took 26 minutes, while runs with Incredibuild (using 32 CPUs) reduced runtime to only 52 seconds- more than 25x faster processing.
By integrating Incredibuild with Maya, EA was able to improve the application development lifecycle in a number of ways:
- Dramatically reduced build times: Maximized productivity and enabled EA to meet deadlines.
- Use of existing infrastructure: No need to set up a new distribution environment saved time, resources, and headaches.
- Ease of integration: Required minimal effort and preparation. It took EA 4 hours to enable Incredibuild with Maya.
- Enhanced optimization: Insights from pre-installed build analysis/reporting tools highlighted areas for further improvement.
- Focus on product development: EA used time saved to add enhanced features to the SIMS 3 game.
- Cost savings: Incredibuild used existing computer infrastructure, and required zero additional purchases of servers or dedicated software.
The Bottom Line
Maya Runtimes40 mins4 hours