Space epics are in the news, what with J.J. Abrams taking over the “Star Wars” franchise and with recent happenings in the world of online gaming. On the evening of Jan. 26, in the 3D space role-playing game Eve Online, 2,800 players (and their 2,800 spaceships)—purely by happenstance—engaged in a massive stellar shoot-out.
Imagine the final space battle of the first Star Wars trilogy (in “Return of the Jedi”), increase the number of ships by a magnitude of three, put a real person interacting in real time in every vessel, and you can begin to imagine what the event looked like. Battlestar Galactica’s tense battle scenes, Star Trek’s Borg incursions into human space, even the size of the real-world U.S. Navy pales in comparison to the size of this event. And it all took place in real time online.
It’s the largest single online battle ever to take place in a real-time multiplayer game. The entire affair took place simply because a few player-run in-game corporations and their giant war fleets happened to stumble upon each other in the same sector of space.
For system designers, that’s not something you can predict days or even weeks ahead of time. It’s an occurrence for which the software must be permanently ready, even if it took 10 years for it to happen. For a software service that has to be online 24×7 and available for tens of thousands of players, all adventuring in space at the same time, the penalty for failure is remarkably high, thanks to the hundreds of other online games available.
Halldor Fannar, CTO of CCP Games, said that it’s Perforce that makes the difference for the distributed teams tasked with building, maintaining and expanding this huge online universe.
Since the Iceland-based company launched Eve Online in 2003, one of the biggest challenges faced has been keeping up with growth. “The company has grown quite a bit,” said Fannar. “The complexity has grown as well. With the multiple development sites, we’ve been playing a bit of catch-up with our growth. There are still some methods we started applying in the beginning that have really served us well. One has been having zero manual configuration. We have a sync-and-run policy.
“Any developer that gets hired onto a project is in most cases able to sit at their desk and use a sync command that pulls down the right branch of code for them. The tools don’t require the developers to pull in any extra packages manually. We achieve this by checking a lot of things into Perforce. We have middleware and libraries, and we check those into source control as well. We take time to configure them properly in Perforce. That’s proved invaluable.”
And the storing of non-code assets doesn’t end there. Fannar said that CCP uses Perforce to keep track of server environment configurations.