note: This paper was originally published in the 1999 Game
Developer's Conference proceedings.
started the X-Wing vs. TIE Fighter project, our goal was to create
the first multi-player space combat simulator to be playable over the
Internet. There were several major problems that we had to be overcome
to accomplish this goal, not the least of which was the Internet itself.
I will review the problems we faced, the approach we took, and the results
we achieved. I hope the lessons I learned will prove to be valuable to
those who read this paper.
We Knew About
vs. TIE Fighter is the third game in the Star Wars space combat
simulator series. The Internet was definitely not one of the things that
we were thinking about when we created the engine for the original X-Wing
game. This was the first problem we faced. Adding Internet capability
to an existing engine is significantly more difficult when the engine
was not designed with the Internet in mind.
problem was the complexity of the game design. We had always felt that
one of the strongest features of our engine was its ability to simulate
fairly complex missions. We were proud to have fairly large numbers of
craft in each mission, which had reasonably complex behaviors. Our goal
in creating X-Wing vs. TIE Fighter was to create a multi-payer
game that had this same level of complexity. We wanted to give gamers
a multi-player experience that was more complex than "deathmatch."
This requirement dramatically increases the amount of data that the players
need to have in order to play the game.
our list of problems was that we would not have a dedicated server available;
we would have to use a peer-to-peer network model. The expense of providing
servers with sufficient processing power and bandwidth for our expected
audience size was considered unreasonably high. And because of the nature
of the license we were working with, allowing gamers to set up their own
servers was not a viable alternative. A peer-to-peer system avoids the
problem, but it poses a significantly more challenging engineering problem,
because each player must communicate with several other players, instead
of with a single server. Because the Internet does not have a viable multi-casting
capability, sending the same message to three destinations requires three
times as much bandwidth as sending it to a single destination.
problem, of course, was the Internet itself. When we started the project
we assumed that we would need to handle latency that varied from 200ms
to a full second. We also knew that we would be limited to the bandwidth
available from a 28K modem. These two constraints were our primary focus
when we designed our network model, but they would turn out to be among
the easiest problems to solve.