The best action-packed video games are fast, timely, and seamless. But should the process of game development have as much gore as your favorite game?
Unlike most software, gaming relies on intensive graphics, multiple scenarios, and complex animation video and voice processing, as well as a need for cross-platform compatibility on an increasing variety of devices.
With tight deadlines — games must be promoted by summer and released before peak holiday season – game development is cyclical and complex.
Speed is strategic to business. For example, in 2014, Capcom, the Japanese makers of the Street Fighter franchise, noted in their earnings Q&A that they wanted to reduce development time 1.5 years for key franchises. According to Capcom’s CEO, this serves the company’s strategic interests in a tough competitive environment, allowing it to release sequels more frequently and come out with more game franchises.
Development methodologies have changed substantially over the past decade, with the decline of manual processes and the migration to development automation and integrated workflows. The old development methods may have been appropriate in the days when we bought games in shrink-wrapped boxes from CompUSA and Circuit City and studios released games once every few years. Those days are long gone.
Newer methodologies, such as continuous integration, continuous delivery and automated testing, were designed to tackle the increasing development complexities and speed up the development process to achieve faster time to market and improved alignment with customer demand changes.
It’s a hard-knock life
Game developers have to target multiple platforms – iOS and Android on various output devices for smartphones and tablets, game consoles, and PCs – leading to more complicated and lengthy builds.
Additionally, asset builds are very computing heavy, demanding time intensive labor to complete the process. Before implementing a distributed build solution, one major game company spent hours rendering their Maya asset files – severely slowing down its development cycle. Another challenge in game development lifecycle is multiple CPU-intensive processes, such as video and image processing, platform conversion, physical engine, lighting, shading, and other processes that extends the build – test cycle, leading to a slower delivery of a market-ready product.
While game engines can help game development, a typical game engine contains more than a million lines of code, all of which can be compiled in various configurations for numerous supported platforms. Programmers’ time lost to lengthy compile times adds up quickly, as does developer time lost to broken code. The challenge is to improve iteration time.
Management practices such as Scrum, sprints, lean production, and version control tools such as Git or TFS, help handle shared codebases and projects, which streamline development. Development practices such as automated testing, continuous integration and refactoring help accelerate development and maintain complex codebases.
Yet, even with all these methodologies and ideologies, their Agile isn’t fast enough. In game development, “The Need for Speed” is not just the name of a popular racing franchise. Running thousands of efficient automated tests, continuous integration, and graphics-intensive rendering are still too slow, even if done at peak efficiency.
What else can do game developers do?
One solution that many game developers have used with success over the last few years is distributed build automation. For example, before implementing a build acceleration and distributed computing solution, Turn 10 Studios, a division of Microsoft Studios, was developing the Award winning Forza racing game. The game had builds that took 60 minutes and Autodesk 3ds Max rendering took as long as 6 hours for a complete development cycle. After implementing the build acceleration solution, build time was reduced to 8 minutes and Autodesk 3ds Max rendering was condensed to 20 minutes – significantly accelerating each development cycle and reducing Turn 10’s time to market. Using the power of idle
CPUs on their network sped up the build, without changing the development workflow.
Of course, there are no magic bullets to accelerate development processes. Rather, the golden rule is not to think in buzzwords but rather to identify and use the toolbox that works best for your company. In reality, many development organizations use a “hybrid model” that encompasses a mix of methodologies. Many game developers have incorporated modern development practices such as automated testing and continuous integration, yet still find that without additional supportive solutions (such as distributed builds and build automation), these practices aren’t fully adopted, and they don’t see the expected benefits.
The need for speed will always remain a challenge when it comes to game development, but by using the best available tools and processes, developers can take the gore out of the process, while increasing the gore on the screen, giving us something to look forward to this holiday season.
Eyal Maor is CEO of IncrediBuild, a leading provider of software acceleration technology.