Early last year, Vivendi Universal's burgeoning Vivendi Games division acquired Darkwatch developer High Moon Studios. The developer began its life as the development arm of Japanese pachinko behemoth Sammy before its merger with Sega, transitioned to an independent studio and finally found its home with Vivendi.
Earlier this year, Gamasutra toured the studio, gaining insight into the tools, techniques, strategy and inspirations that fuel the company, as the studio works on titles including The Bourne Conspiracy, due mid-next year.
First, we spoke with Clinton Keith, who currently heads High Moon's technical department, overseeing research and development of next-generation game engines. A seasoned veteran of both the video game and graphics technology industries, Keith's career has taken him from programming avionics for advanced fighter jets to working for such studios as Angel Studios, now renamed Rockstar San Diego, where he worked as both the director of product development and lead programmer.
What third-party tools do you use?
Clinton Keith: We're pretty
much an Unreal 3 house, so we use all the tools associated with that:
Maya, Max, and a number of plug-ins like Face Effects, AI Implant, SpeedTree,
and tons of smaller things like MotionBuilder. We have about a dozen
people on what we call a stability and tools team. Their focus is on
making the engine, keeping it stable, and building tools on top of Unreal
3 that make the job of the content creators easier.
Did you have a proprietary engine previously?
CK: Yes. It was called Score, which stood for the Sammy Core Engine. Rather than just a complete engine, it was more of a framework with this behavioral layer on top that controlled how objects in the world operated. It was all data driven through tools. You could change the behavior of the game very quickly, much as you can do with Unreal 3. Underneath that, we just bought parts off the shelf.
That's what kind of drew me here -- we kept spending a lot of money on physics engines at Angel Studios [now Rockstar San Diego.] It's kind of hard to break away from that once you spend millions of dollars, but then you look at the cost of something like Havok off the shelf, and it's less than what you spend on one engineer a year, and they've got 35 people working on it. I really wanted to take the company in that direction, but there was a lot of inertia against that. I saw Sammy [Studios, High Moon's previous incarnation] as an opportunity to say, "Let's see if we can give more control to the content creators. Let's take that money [spent] on the programmers doing physics and instead put that into tools."
How important is it to be up on the latest versions of tools?
CK: This is the problem --
one of the things that I like to have for tools is the source code,
so that we can modify it for our own particular needs. This is one of
the biggest lessons we learned in going to Unreal 3. I like Unreal 3
-- it's gone through a lot of changes, and it's now stabilized -- but
any kind of tool or engine that you buy off the shelf has some assumptions
built in, in terms of the workflow. Unreal 3's power is in its tools,
but those tools are built based on the philosophy of how their level
designers and artists build levels. If you go into that with a different
approach... you'll have a learning curve to overcome.
Now that we're getting close to the final year of our game, we're not upgrading. The problem with upgrading is that it keeps you back on the vendors' path. For the first year and a half of using Unreal 3, we couldn't deviate, because there were so many changes going on it would be disastrous for us. Now it's all about diverging and doing things that we need, to put icing on the cake.
There's some problems with that. In my last year at Angel Studios, we were working on an entirely data driven approach -- giving content creators entire control over behavior, and making tools to allow that to happen quicker. Two of us came over to Sammy to continue that. The problem is that you can never create a perfect system that can anticipate all contingencies. The path it can take from an obvious piece of data to the game not behaving correctly is really long. When we finished Darkwatch, we had something like 13,000 bugs, most of which were caused by bad data matching, and all the stuff that built up because of this ideal we had of giving total freedom.
Do you wind up having to
clean up a lot of code? Giving designers control over that level of
specification tends to wind up with a lot of spaghetti.
CK: It's true. Technical designers
often haven't learned some of the techniques that programmers have learned
in writing self-testing code, and we get bit by doing it in C++. They
don't pay as much attention to the underlying performance issues, because
you still have to use some of the tools. We try to encourage technical
designers to work shoulder-to-shoulder with the programmers, rather
than coming to the programmer with a bunch of code that they've written.
They'll prototype something out, or invite the programmer over to talk
about the problem, and maybe on a day-to-day basis, we get something
in the game that works that the programmer can verify.