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.
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.
_____________________________________________________