When a period of time is scheduled for polish at the end of a game project, what exactly is being worked on during that period? Again, our developers had many answers, but all agreed that the final "polish phase" is about stability, performance and smoothing out rough edges.
"I don't have to go into the merits of stability," says Gardner. "We have some very sophisticated tools for checking and predicting stability, better than any other project in BioWare history. I think Dragon Age is our most stable game so far. But it's harder to get a game stable when you're still making changes. At some point you have to restrict your major performance changes, your memory changes or whatever it is, and start just locking things down and fixing stability issues."
In BioWare's case, the technical director is responsible for making that decision to lock down development and begin optimization.
"We might make it as a leads group. We have a core leads group, the executive producer, project director, the lead designer, the art director, the lead QA, the online producer," says Gardner. "The core leads group consults on that decision, but essentially it's my responsibility to say that the memory's good enough, and we don't need to work on it anymore.
"And it's not me going into the code and doing that. I've got engineers that work in different areas of the code and one guy who specializes in memory. He'll being doing memory tests and say 'memory's fine,' and that will go to QA so they verify it."
Performance and compatibility are two big issues to resolve in the final months, says Frank Kowalkowski, Lead Programmer on Obsidian's Alpha Protocol.
"This is generally the point where we are optimizing code and assets to meet the memory constraints of a console or the performance standards required to be compatible with the minimum system requirements on a PC. There are also the technical checklists required by Sony and Microsoft which are thankfully much less stringent in this generation of consoles.
"This is where you'll often find some of your hardest decision making," says Kowalkowski. "In getting Neverwinter Nights 2 out the door, we had to make the decision to remove support for our 3.0 shader pipeline and support for HDR. Both those decisions were the right ones and helped both programming and art work with a single, common hardware target to get the game done.
Neverwinter Nights 2
"Lastly, programmers spend a lot of time as fixers for the design and art team. This is where we have a creature that isn't rendering properly, quests that have scripts being used in unusual ways, or any number of other scenarios that aren't apparent until you try to finalize a game.
"We've even fixed bugs that designers had exploited for gameplay purposes: the torch lights in the distance during the siege of Crossroad Keep in NWN2 started a bug with rendering particles beyond the fog plane -- when we fixed it we had to then provide support for them to recreate the bug as a feature."
Robomodo's Patrick Dwyer offered up several examples of the issues resolved during this last period of development. "The final technical issues are usually revolve around 'random' interactions, online issues, memory leaks, and memory management," he says. "Physics and other systems applied to the game can create some really interesting situations between the character and the world. Any change to a physics system is extremely dangerous, as the side effects can be well hidden, so figuring out solutions is always tough.
"Online is always difficult just because it is the last thing that is testable due to the fact that the majority of the game must be complete before testing the game online. Memory leaks are just things that creep up once all other systems in the game are stable. Crashes no longer occur due to missing assets and other factors, so now 'deeper' crashes can surface.
"Memory management revolves around handling how the player can save the game and delete it. Making sure that everything works correctly and that the game is notifying the player of all required instructions almost always requires the final game to be in place."
"At the very end of the project, shipping a game comes down to managing risk," Epic's Fergusson says. "You're triaging issues all the time to determine which ones are significant enough that you are willing to introduce the chance for instability by fixing it. After all, any bug fix, no matter how small, often introduces new bugs which then require new fixes, and so on. So, if you have been managing your risk properly, the final technical issues tend to be ones that have the potential to have the greatest impact on the player."