By Jason
Regier
Published in Game Developer
Magazine, April
1998.

July 31, 1998
Vol. 2: Issue 30
|
1. Bringing carnage to the masses.
It's a real trick to create a simultaneous, identical-look-and-feel,
cross-platform release. It's even harder to do so within the expected time
frame with only three programmers. Our experience porting
Marathon, our popular Macintosh-only action game, to Windows
95 was a valuable learning experience, and we vowed when starting
Myth that, "This time, we're going to do it right."
Doing it "right" meant designing Myth from the ground up to
be cross-platform compatible. Ninety percent of the code in the game is platform
independent; the other ten percent is split evenly between routines that
handle PC- and Macintosh-specific functionality. It was a programmer's dream
come true -- we spent almost all our time implementing features and solving
real problems, rather than wasting it fighting the OS.
All of the data for Myth, from animated cut scenes to the percentage
of warriors who are left-handed, is stored in platform-independent files
called tags. Tags are automatically byte swapped when necessary and are accessed
via a cross-platform file manager.
One of our programmers worked in conjunction with Apple Computer Inc. to
develop a cross-platform networking library code-named Über. One of
the greatest things about Über is that it supports plug-in modules for
network protocols. Thus, although Myth currently only allows
games over TCP/IP, AppleTalk, and through TEN, it would be trivial to add
support for new protocol modules. Myth must provide a user interface
to set up the connection, but once Über establishes that connection,
game play over a LAN is the same as over the Internet.
To keep the game's appearance identical across platforms, we implemented
our own dialog and font managers. This allowed us (actually, it required
us) to use custom graphics for all interface items. We designed our font
manager so that it supported antialiased, two-byte fonts, as well as a variety
of text-parsing formats. Thus, our overseas publishers Eidos and Pacific
Software Publishing were able to localize relatively painlessly. The German
version of Myth was finished only a couple of weeks after the
English release, with Japanese and French versions close behind. The only
game experience that is different for the two platforms is the installation,
and two players on bungie.net have no idea whether their opponents are on
Macintoshes or PCs.
2. bungie.net and beta testing.
Myth was also released with integrated support for our first
online service, bungie.net. This service was designed specifically for
Myth and was developed simultaneously. Similar to online services
for other games, it allows players to connect via the Internet to game rooms,
where they can chat or play against one another. The Linux-based server that
runs bungie.net keeps track of player statistics and gives everyone a score
in our ranking system. The service's web site
(www.bungie.net) has access to this database
and sports a leader board that lists the top players.
Our networking layer is based on a client/server model. Once you advertise
a game on the network, you become a server, and other players join your game.
Network traffic during a game is limited to the commands issued by the players.
All copies of Myth in a network game run deterministically and
merely interpret the commands that they receive. This makes cheating difficult;
if you hack the game to perform something illegal, such as making all your
units invincible, you'll go out of sync with other players. When portions
of the game data are periodically checksummed and compared, a message will
indicate that you're out of sync (and out of luck). So far, the only form
of cheating we've encountered is users trying to exploit the bungie.net ranking
system.
To rigorously test our server load capacity and the bungie.net code, we released
a public beta of the network game. We were initially apprehensive because
it was our first public beta test of a product, but it was an amazing success.
When errors occur, Myth alerts the player, logs the error messages,
and usually allows the user to save a replay of the problem. Testers submitted
these detailed bug reports via e-mail and chatted about features and improvements
to levels on internal newsgroups.
Best of all, the testers used bungie.net to give instant feedback to the
developers. This interaction allowed us to gather even more useful information
about bugs, and it made the testers really feel involved in the final product.
By the end of the beta-testing cycle, we not only had a clean product, but
also had a loyal following of users who sang our praises when the NDAs were
lifted.
3. 3D graphics acceleration.
When the project started, 3D acceleration hardware was only just starting
to become popular. Nevertheless, we tried to keep hardware acceleration in
mind when designing our rendering pipeline. When the opportunity arose to
add hardware acceleration, the implementation worked beautifully. We worked
closely with people from 3Dfx and Rendition and added support for their chipsets
in about a week. It's amazing how much these accelerators add to the smoothness
of the terrain, the fluidity of camera movement, and the realism of the units
and effects. These chips rock, and great on-site developer assistance made
them easy to support.
4. Getting back to the people.
Once we had released Myth, we definitely did the right thing
by waiting for player feedback and then releasing a patch to address their
issues. Since our public beta test caught most of the bugs in the shipping
product, nearly all our post-shipping efforts were directed towards adding
user-requested features. We scoured the newsgroups, read e-mail, and talked
to customers about their complaints. From these disparate sources, we compiled
a list of improvements for our 1.1 patch.
All major user complaints were addressed in the patch. We added support for
Rendition and Voodoo Rush cards. We extended the camera's maximum zoom for
a better view of the battlefield. We made our easy difficulty levels even
easier. And we improved the unit AI. By the time the early reviews came out,
we'd already released a beta patch that addressed almost everything on the
reviewers' lists of Myth's failings.
5. Doing more with less.
It doesn't take fifty people to create a major cross-platform software title.
Period. Bungie Software has barely half that number of employees in the entire
company, and we not only develop all our games, but publish and distribute
them as well! Macintosh and PC versions of Myth, all our internal
tools, and our online service were essentially developed by only six people,
and everything shipped on time with no major glitches. There's no big quality
assurance department here at Bungie; the public did our testing for us, and
we listened to them as seriously as if they were coworkers on the project.
We didn't hire any game designers, writers, or level designers to come up
with our game concept and story line. Myth truly is the combined
vision of our team, and each of us feels that it was our game. We came to
work each day excited about the project, and we're damn proud of what we
managed to create.
|