Game Development going Agile

image Game review site Giant Bomb has a great article about Mass Effect 2’s development process.  The article is written by one of the review staff, who doesn’t have development experience, but went to a GDC talk on Bioware’s development process to see if he could glean any information on one of the most anticipated titles in development.  I can’t blame him, I played Mass Effect at least 3 times from start to finish and unlocked every XBox 360 achievement in the game.  Still, as great as the game was, it still had some performance issues.

For the first game, teams went off from the design meetings and implemented their parts separately (level design, art, story, game control, etc), then integrated the pieces into the whole.  That was the plan at least:

That didn't always happen. If the level was actually playable at the end of this process--and sometimes it wasn't--it often ran into problems like a significant drop in performance (and the company wasn't proud of the frame rate drops in the original game). The team tried to address these issues where they popped up, but since doing so required reworking "entire swaths of content," time and resource constraints meant the designers often had to live with the deficiencies.

In extreme cases, large pieces of content were removed completely. Caleston, a story-related "outland" planet with refineries and industrial cartels that was intended to be a part of the game's core story arc, was deleted from the game outright. We will never get that planet back, people. Shed a tear.

Sound familiar?  In the world of business application development this same problem exists.  Teams struggle with integration issues and spend large amounts of time rewriting existing code instead of adding new features.  In the worst cases, planned features are cut to meet budgets and deadlines. (To get a since of what it much have been like to cut Caleston consider the planet was mentioned in a TV ad prior to game release.)

In Mass Effect 2, BioWare is using a linear, phased approach to level design that builds the levels step by step, starting with only the most important parts. This method has a couple of primary requirements: from the very outset, always keep your levels playable, and always keep them at target performance. The designers should only do the minimum of necessary work to answer the important questions about each level, most of which amount to "Can you still see how this will be fun when it's finished?"

It sounds like Bioware has welcomed the Church of Agile.  They have shortened iterations, and made sure each iteration results in a running (though not complete) application.  They established a definition of quality (the game must run at 30 frames per second), and measure the quality each iteration instead of a final round of performance tuning.  Finally, at the end of each iteration they have a point for feedback to enter into the development process, keeping themselves on target.

Game development differs from business application development in many ways.    Performance truly is king and a game dev may write code considered bad form to a business dev.  Games have a fixed life cycle; once released there is no new development.  This is the opposite of the business apps that are constantly updated and once updates to the application stop it probably means people have stopped using the app.  While business apps only need to target a handful of (mostly similar) platforms, games target a wide range of highly specialized platforms.

Differences aside however, it is comforting to see that the same Agile methodology, culture, and process can work for both.

Posted By Mike On Saturday, March 28, 2009
Filed under agile developer | No Comments

Submit this story to DotNetKicks   

Leave a comment



Your name:
 

Your email (not shown):
 
Will display your Gravatar image.

Your website (optional):



About Me

Michael C. Neel, born 1976 in Houston, TX and now live in Knoxvile, TN. Software developer, currently .Net focused. Board member and President of ETNUG, and organizes CodeStock, East Tennessee's annual developers conference. .Net speaker, a Microsoft ASP.NET MVP and ASPInsider. Founder of FuncWorks, LLC and Feel The Func podcast.

Proud father of two amazing girls, Rachel and Hannah.

 Subscribe to ViNull.com |  Comments

Follow me on Twitter | Contact Me

Related Posts

Critical Thinking and Dissent is a Requirement

So the fires continue to burn, as Joel Spolsky’s internet access hasn’t been disconnected.  For someone who is supposed to be an idiot and irrelevant, ... Read more

Being a Duct Tape Programmer

Things I’ve said in a session before: “Friends don’t let friends ORM” “ORM is a pattern, not a framework” “I like typed datasets, and I cannot lie” It’s ... Read more

XNA 3D Primer Published – Get a free copy!

In June of 2006 I officially became a professional author when ASP.NET Pro published my article “Google Can You Hear Me?”.  (So eager was I to be ... Read more

You should be using Balsamiq Mockups

I’ve heard many people rave about Balsamiq Mockups, an Adobe AIR app that helps design user interfaces, but until today I had never looked into using it ... Read more

TeamCity.CodeBetter.com, A continuous integration server farm for open source projects

CodeBetter – in collaboration with JetBrains, IdeaVine, and Devlicio.us – is proud to announce the launch of TeamCity.CodeBetter.com – a continuous integration ... Read more

FeelTheFunc Podcast

CodeStock
Are you going?

ASPInsiders Member

ETNUG Member