| |
|
|
||||
![]() |
||||||
| |
|
|||||
|
Postmortem: Raven Software's Star Trek: VoyagerElite Force What Went Right 1.
Improvements to the Quake 3 engine.
Raven had worked with id Software's engines since 1992, but this was
the first time we had to add a single-player game to an id engine. Normally,
we had the luxury of starting with a full single-player code base and
just adding things such as breakable brushes, new AI, navigation systems,
and so on. But this time we had licensed a multiplayer game and had
to put in many systems we took for granted. We needed AI and navigation
appropriate for single-player enemies (not multiplayer bots), as well
as teammate non-player characters (NPCs) and cinematics. We needed an
expanded animation system for all the different animations our cinematics
would require, we needed to create a load and save routine from scratch,
and the list went on. One of the things that made this possible was
the decision early on to separate the multiplayer and single-player
executables. At this time, Quake 3 was still about eight months
from completion, so we started on single-player and would worry about
multiplayer when we got the final code base. We were able to make drastic
changes to the single-player game and shortcut the networking, allowing
us to get away with a lot of things that would have just done very bad
things to networking. With this new freedom, we revamped even more systems.
In the end, we actually surpassed our initial ambitions as far as new
systems and features were concerned.
For example, our Icarus scripting system was planned from the beginning and ended up working out very well. The initial setup was finished relatively quickly and the remainder of the work was mostly just tying the commands to the game and AI. However, for the first seven or eight months, only a couple of programmers were doing any scripting, as they were still refining the commands and there was no GUI for it yet. It wasn't until the fall of 1999 that we made a GUI and the designers could finally start scripting. The system ended up contributing a huge amount to the detail, uniqueness, and complexity of the game, and without it Elite Force would have been a totally different game. Another
big technology decision we had to make was with Carcass, our new skeletal
model format. It was a huge undertaking to switch over to the new format,
but it really saved us in the end. At first we were using the same model
format as Quake 3, but it quickly became apparent that we were
surpassing that format's capabilities, so we looked for a solution.
id had already laid the groundwork for a skeletal model, which seemed
like it would work for us. Starting with that basis, we completed it
and developed it into the final format we called Carcass. With it, we
reduced tenfold the amount of memory a single model took up. Without
the Carcass format, we would have had to cut back many animations, and
we would have lost the complex detail in our cinematics. Another
technology that was successful was our lip-synch system, which really
added realism to the facial animations. We did some research, looking
into phoneme recognition, but finally settled on a quick volume analysis.
We planned this system to make it very easy to use. Once the mouth animation
art was made for each character, the system used the appropriate frame
without intervention. The code automatically scanned for peak volume
of sounds when loaded, and compared against that whenever a sound was
played on the voice channel. Then the animation system picked up that
value to choose the speaking frame. This setup required no extra effort
when adding sounds, and would work automatically for any foreign languages
used.
3.
The dialogue. The team was excited about the concept of playing
with a team of NPCs in an FPS. This led to the definition of the different
characters of the Hazard Team early on. However, the actual script for
the game didn't begin right away, since that had to wait for the final
game flow design to be finished. Our writer (also one of our programmers)
started in September 1999 and finished the first draft in March 2000.
While he was writing the script, we were making all the cinematics and needed some temporary voices. We had employees record the lines and then dropped them into the cinematics to give us a feel for the pacing of each scene. This allowed us to tweak the dialogue while saving us from having to bring the expensive Voyager cast back for pickup lines.
We also
had a system for automatically reading the dialogue script itself and
turning it into .PRE files that would let the game precache all the
dialogue for a level and simultaneously assign the caption text to it.
Included in this was automatic localization and dialogue adjustment
for the player's gender. All of these things together enabled our game
to have captioning, localization, gender-specific dialogue, precaching,
lip-synching, and almost no pickups. In the
end, the dialogue turned out very well and our performances were good
(Paramount even let us make final casting decisions on all the Elite
Force-specific characters). The story and dialogue added a great
deal to the game and contributed heavily to the feeling of actually
being in an episode of Star Trek. 4. Re-creating the look of the Star Trek universe. Raven has always tried to push graphics boundaries and painstakingly create beautiful settings for our game worlds. Star Trek was no exception, and challenged us not only to create a beautiful gaming environment but also to create it in a likeness that is known worldwide. It's one thing to make arbitrary-looking levels in a never-before-seen world, but when trying to re-create the look of Voyager we came across many difficulties that we hadn't expected. For starters, the Quake 3 level editor is made to create levels at a fairly big scale. When we built the bridge of Voyager, we were all astounded by the detail that we achieved, but when we put a normal-sized character on the bridge, he was incredibly tiny. The bridge was huge, yet it was built like you would build any normal Quake 3 level. We realized that we had to build the levels on a much smaller scale than what we were used to. It took seven attempts at rebuilding Voyager's bridge until we attained the proper proportions between the characters and the level. We tweaked the scale until it looked perfect and the player and other characters could move around with ease. Once the scale of the levels was set as a standard, we continued forward with the other Voyager rooms with little rework needed.
The artists
spent much time working on the textures for the environments, getting
their reference from many sources to make sure everything was exact.
Having access to Paramount's Star Trek reference library was
key in getting reference for carpets, chairs, upholstery, computer panels,
and more. We sometimes scanned in the photo references themselves for
the textures. Watching episodes of the show on tape was also instrumental
in determining what things looked like. We used a total of 1,033 textures
to create the look of Voyager's rooms and hallways. Working together,
the level designers and artists created the best-looking Star Trek
environments in any game to date. Just like
the challenges we faced building the environments, creating Voyager's
characters and crew presented the challenge of re-creating something
that already existed. We used many references from the Star Trek
reference library to help us re-create these real people. Each actor
had a series of photos of him or her as their character, which we used
to help get just the right shape of the head, and we even used the photos
themselves (with Photoshop touch-ups) as textures on the polygon heads
to achieve the likenesses. There are limitations to any technology,
and working around the limitations is where we succeeded. The heads
could only have 150 polygonal faces and the textures for the skins could
only be 5123512 pixels. The fine craftsmanship required to work with
so little and still achieve the right look for the characters is a testament
to our artists' skills. For example, designing the Hazard Suit in the
Voyager style took many attempts, but we finally got something
everyone was happy with and looked natural to Star Trek. 5. Creating smart NPCs. To create a Voyager game that resembles what you would see in a TV episode, we had to create a working spaceship filled with its busy crew, and make it believable enough so players would feel like they are in a real place. We also had to create an away-team to fight alongside the player. After all, what is Star Trek without an away-team?
We created
our NPCs using a few different things. The Icarus scripting system allowed
us to have precise control over specific actions. The NPC Stats system
allowed us to create many characters with various looks. The Squadmate
system gave us the tools to enable the teammates to work with the player,
and we used a waypoint or pathfinding system to make our NPCs navigate
through a complex environment. All of these systems together created
the artificial intelligence for our NPCs. We used scripting with the
pathfinding to make the crew of Voyager come to life, and we
could tell them exactly where to go and what to do without too many
unknowns to cause problems. They did exactly what we as designers wanted
them to do.
________________________________________________________ |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|