[Denis Papp, CTO of TimeGate Studios, describes the process the team went through to enable a user-hosted PC server solution for Section 8 -- its Unreal Engine 3-powered shooter -- on Xbox 360 and PlayStation 3.]
When TimeGate first released Section 8 in 2009, players were introduced to a game that took a number of unique approaches to the FPS genre, both in game features and technical implementation. One of the most notable of these features was the inclusion of a dedicated server which allowed players to set up and host servers from their PC for the Xbox 360 and the PlayStation 3.
What follows is a retrospective from the studio on the development of these servers from conception to post-launch.
The idea for a dedicated server for consoles came up early in development, as we were focusing on simultaneous development of the PC and Xbox 360 SKUs. The vision for Section 8 was a large-scale game featuring 32 or more players. While this was not a significant hurdle for the PC, it posed a problem for the Xbox 360.
Traditionally, shooters on the PC support both "listen servers" (where one of the clients is also the host) with up to 16 players, and "dedicated servers" supporting upwards of 32 players. Given that most dedicated servers are run by users, the cost to support a large player base is minimal.
However, the majority of shooters on the console support only listen servers. Supporting a dedicated server to allow larger scale games requires hosting your own bank of servers in an approved XLSP environment (Xbox Live Server Platform), which can be very expensive in terms of hardware cost and management overhead.
Internally, we were not content with the idea of spending time creating large maps for the 32+ player game that would only be available to the PC audience, or only providing the Xbox 360 audience with a limited version of the original vision. We needed a solution where players could run their own dedicated servers to which Xbox 360 consoles could connect to over the internet.
This seemed like it should be possible, considering Section 8 for the PC was using Games for Windows Live, which leverages the same backbone as Xbox Live, and that a small number of previous titles (such as Shadowrun) featured cross-play support between the two platforms.
The first challenge we had to overcome was obtaining Microsoft's blessing to pursue the endeavor. We contacted Microsoft to see if they could offer any suggestions to get the end result that we wanted. Coincidentally, they were in the middle of authoring a whitepaper entitled "Dedicated Servers and Live" summarizing how to accomplish this using Games For Windows Live.
Essentially, we use the same XLAST for both the Xbox 360 and the TimeGate Dedicated Server (TGServer) builds, and the server presents itself as just another peer to the Live Matchmaking system through the standard API call to create a session.
The two binaries even use the same ID; the only difference between the XLASTs is a simple version number, and our build process automatically makes this correction. Microsoft configures their backend so the two titles can see each other. Note that this ID is not the same as the PC version of the game (which also uses GFWL), so we do not support cross-play, which would be significantly more challenging to support.