This is CCP Lin, and I am a Server Architect on DUST 514. In this devblog, I would like to cover at a high level some of the online technical aspects of DUST 514, including the challenges we have met, and the approaches we take to handle them.
As a Server Architect on the project, I am responsible for integrating the DUST FPS multiplayer battles into the EVE universe, as well as optimizing the DUST battle servers to perform even better. Unlike normal FPS multiplayer games, DUST 514 has heavy MMO elements. And unlike normal MMO FPS games, DUST has heavy interaction with one of the most successful MMO space games – EVE Online! This imposes challenges on what technologies we should use in order to have this level of interaction with EVE, while keeping FPS gameplay as smooth as possible.
While continuing to rely on the Unreal 3 engine for the FPS multiplayer gameplay for DUST, the interaction with the rest of the EVE universe should naturally take advantage of utilizing some existing EVE online technologies. Think about a simplified flow of how a DUST battle might begin:
An EVE corporation issues a battle contract to seize a territory on a given planet that is currently owned by another corporation; a group of DUST mercenaries comes to accept the contract as the attacker for the bounty the contract offers; another group of DUST mercenaries comes to accept the contract as the defender, so they also get a reward if the territory is protected. When the number of each team has reached a pre-determined minimum, the EVE server logic would instruct an appropriate DUST battle cluster to spawn a battle in it. This provides the battle server with all the necessary information regarding the prospective battle upon launching, and the DUST mercenary clients will then be forwarded to join the battle accordingly. After the battle is finished with everyone getting (or losing) their share of the benefits, the battle server process will then be terminated by the EVE universe.
So the EVE universe needs to manage the lifetime of DUST battle servers as well as communicating with them when needed, while we also need to make sure that the latency sensitive FPS multiplayer gameplay goes fairly for the participating DUST players. I won’t go into a deep technical discussion about how we solve the challenges involved here, as we are still exploring all the possibilities to find out the best balance point to map physical DUST battles nicely into the EVE universe!
Unlike traditional FPS multiplayer servers, we will host DUST battle servers around the globe. Since the centralized server hardware resources are pretty limited in number, we have to find ways to utilize existing server resources as much as possible. Instead of having a dedicated server machine to host one battle, we aim to have a dedicated multi-core server machine to host as many DUST battle servers as possible!
We have done a bunch of significant performance optimizations to the FPS engine we are using both on the server side and the client side, so each DUST battle server is now happily hosting a satisfying number of concurrent DUST players. Again, I will not go too much detail on how we achieved that, but rest assured that the DUST battles will be very scalable.
As always, we are continuously making improvements to every aspect of DUST 514, to make DUST an enjoyable experience for all of our future players!