Released just over a year ago, Sony's God of War was one of the most critically acclaimed games in the Playstation 2's library. On the heels of the recently announced PS2 sequel, lead programmer on both projects, Tim Moss, gave a talk on the last day of the conference to a packed audience on finding the balance between the needs of programmers and those of the designers that led to a game that was both technically and artistically solid.
|God of War|
Tim Moss viewed the struggle between programmers and designers as a struggle "between the left and right brain. The left being based on logic and intelligence and the right being the passionate, creative side." Before delving into how he and lead designer David Jaffe found their compromise between the two extremes, Tim gave some history on Sony Computer Entertainment America's Santa Monica studio. Founded in 1999, the internal company mantra was "fun games that sell." Their first release, Kinetica failed on the first count according to Tim. "It kind of sucked, but had good tech." adding that "We needed to make a big game that justified all the money that Sony put into us."
Around that time David Jaffe had finished Twisted Metal Black and was eager to create a new franchise as a first-party developer for Sony. Targeting what Jaffe called "the casual hardcore", Santa Monica studios looked at hit PS2 games such as Ico and Devil May Cry as their primary influence. Jaffe saw Greek mythology and Mediterranean culture as an underused influence and style in the gaming industry and wanted to focus on that.
Designer Jaffe's goals consisted of a cinematic camera system, an epic story line, no leading screens and "Lots and lots of special cases.'I don't want any two doors to open the same way'", Tim recounted, "which is pretty much the opposite of what programmers want, which is no special cases!". Also important was the game be "big" and constantly moving forward with little to no backtracking. Tim then discussed how as a designer Jaffe could be guilty of what he called "feature creep", where every time a design feature seemed to be finalized, Jaffe would want to throw in something new or change an existing feature to something completely new. "That was one the hardest things to deal with".
On the programming side, their goals were to avoid special cases, have the game play at a constant 60 frames a second (something Jaffe didn't care about according to Tim), build a game/engine methodology that would avoid wasting time and reduce bugs and finally to prevent the programming team from turning into a bottleneck. The overall number one goal of the team was to "spend the last month of development on the beach while the design team finished the game. Every choice we made as a team was to make sure we could get to the beach." The best way to accomplish this, as Tim saw it, was to all design tools needed to be data driven.
The God of War team consisted of roughly 45 people. For the coding team, around 7 coders, Tim made sure they were all of able experience and that there would be a specific coder in charge of specific systems to facilitate easier communication between teams. For the art team, around 20 strong, technically-inclined artists helped to avoid over-engineering, something which according to Tim plagued Kinetica. The most important decision for the project was total asset creation in Maya. "Art, collision, camera, entity system, everything was based in Maya."
Every member of the team had Maya installed on their system along with the current build of the game so that anyone could create new assets on their own system with no programmer intervention needed. To facilitate this even further, an in-game tweaking system was included so that changes could be made during play, saved to disk then included into the WAD file on the next build. Alienbrain was used as a file structure system though the programmers didn't use it for code.
In terms of dealing with Jaffe's "feature creep" Tim implemented the "Three times rule. If David asked for it three times he probably really wants it. Then we'd evaluate any serious design request". Following that stage came the "bang for your buck" stage, implementing features with the largest game impact first. And the final and most important question to ask was "is this really a good idea?” In keeping with lessons learned from Kinetica, the urge to over-engineer had to be avoided at all times.
In order to accommodate David Jaffe's desire for special cases, Tim Gross decided to implement a system that would put the burden of work on the designers and animators. "Really all it is, is a system for synchronizing two sets of animation", by giving the artists and designers these tools, all they had to do was tweak speed and placement of characters and what would normally be a set of special case animations are all handled by the same code. So for instance, turning a crank and kicking over a giant statue are handled the exact same way.
Similarly for the ever changing front-end HUD design, all the programming team needed to do was create a specialized Flash player program and hand it over to the designers. "By giving the tools to the designers we could worry about performance and quality issues." He also noted that since the source code for Flash was right on the company's website "no EULA was violated."
When looking back and asking if any of these systems worked, Tim Moss was pleased. The game executable was only 1.5 MB, an incredibly small size for a PS2 game. During crunch time in the final two weeks 500 bugs were logged, only 25 were programmer bugs. And while the programming team didn't make it to the beach, there was no feeling of being overwhelmed as is usually the case in game development.
Tim Gross closed with saying that by creating tools that allowed systems such as memory tracking, load levels, visibility, camera, and so on, to be handled by the design team. His ultimate conclusion being "The art and design team can do more work then we generally give them credit for. They can handle it." and noted that the system was so successful that it is currently being used on God of War 2 and will continue to be used on any game they design for the Playstation 3.