By using this site, you agree to our Privacy Policy and our Terms of Use. Close

Forums - Microsoft - How Game Developers Customize Xbox LIVE

Here is some great insight into how devs can use their own servers for basically whatever they want behind an XBox Live gateway.

 

 

How Game Developers Customize Xbox LIVE

 

Posted July 28, 2010 by Raphael Mun (SDE) – Tennis
and John McPherson (SDET) - Curse of Doom

One great feature of Xbox LIVE is that it provides a way for users to connect online with others and play video games together. Xbox LIVE offers many consistent experiences across games, including leaderboards, achievements, and presence (“Tennis is browsing Netflix”). But what about games that want to interact with LIVE in unique ways? How do all those Halo® 3 stats, pictures, and videos, for example, make their way onto Bungie.net? How do car designs and auctions work in Forza Motorsport® 3 and sending/receiving gifts in Viva Piñata®? These scenarios are made possible for game developers via the Xbox LIVE Server Platform (XLSP).

Xbox LIVE Server Platform (XLSP)
Xbox LIVE servers support a limited set of game-specific data such as online leaderboard rankings. With the large number and wide variety of games on Xbox, however, it is simply too difficult and expensive to store and maintain all the different types of data generated from online matches that games care about. It makes more sense to allow game developers to define the type of game data they want to receive and manage in the way they want. This allows the game developer to create a custom online gaming experience, and to even hook up their website to the game data!

 

 

 

 

Some other features brought to you by XLSP are:

  • Developer hosted game servers
  • Persistent, sharable user-generated content
  • Feedback during betas to create a better shipping game

Extending Xbox LIVE

How does it work?
Developers that want to use XLSP must first set up and host servers independently, or have their publishers (or even a third party) provide the servers. These XLSP servers¾ just as your Xbox console¾ are authenticated by Xbox LIVE. This way, when you are playing the game, you don't have to worry about someone else pretending to be the game server, but more about that later.

Through the game's XLSP service, the game can send custom data to be stored in the developer's database servers, and processed and posted on a website; or data can be retrieved for use in the game. Practically anything that a developer can dream of can be done through the XLSP service.

A picture is worth a thousand words
Games with custom XLSP features may connect to three different locations:

  • Xbox LIVE
  • The game's XLSP service
  • Other Xbox console

In this way, a game might use Xbox LIVE to find a match, to play that match with players on other consoles, and then to upload custom stats to the XLSP service.

The Xbox LIVE side of things
A primary concern is maintaining security while at the same time providing a channel for game developers to access user and session information. Fortunately, Xbox LIVE handles the heavy lifting of authentication. Having users and consoles authenticated on Xbox LIVE gives developers the peace of mind that the data being received is valid. Instead of investing heavily in security and log-in mechanisms, developers can focus on building great game experiences. And to protect our users, all XLSP services also are authenticated.

AwesomeGame: The Awesoming
Let's look at a more concrete example of how a game developer might use XLSP to do something quite spectacular. The must-have game of this holiday season, AwesomeGame, is going to have some, well, awesome features provided by XLSP.

TeamAwesome (who is developing AwesomeGame) wants to be able to:

  • Have users create and upload custom racetracks
  • Show these racetracks on their website
  • Allow users on the website to put tracks in a queue to download the next time they play on the console

The first thing TeamAwesome needs to do is to get these features accepted. If these features were things that could already be done with Xbox LIVE alone, there would be no need for TeamAwesome to host its own servers and to rewrite this functionality. After getting approval, the team can set up their XLSP service. Once it's up and running, they can contact it from the game.

Before TeamAwesome can actually do anything with XLSP, they need to create their own game-specific servers that sit behind the XLSP gateway. This can be something as simple as an HTTP server (such as IIS) running web services, or as complicated as a real-time game server for those fast paced first-person shooter games. For what their game needs, they will just use a few web services.

Some services are accessible by the console:

  • UploadTrack
  • GetDownloadQueue
  • DownloadTrack

Some are used by the website:

  • EnumerateTracks
  • DownloadTrack
  • AddTrackToQueue

These web services will be backed by a database in TeamAwesome's servers that is used to hold the track data and the download queues.

When creating the web services, TeamAwesome will be able to get information about users logged in to AwesomeGame. This allows them to properly credit users for creating cool tracks, and to ensure that each user gets the right download queue.

Game Experience May Change During Online Play

AwesomeGame Example
Let's look at an example of AwesomeGame from the user's point-of-view. Tennisrecently purchased AwesomeGame and has tired of racing through all of the game's racetracks. So he created his own custom racetrack in the game and pressed "Upload!" in AwesomeGame's menu. After this, AwesomeGame takes the racetrack data from the Xbox, compresses it, and sends it via the UploadTrack web service to the XLSP Gateway, along with some additional information such as Track Name, Author, Date & Time of Creation, and so on. The data file then is stored in a storage server (one of the server machines with lots of hard-drive space) behind the XLSP Gateway and the location of the file is written to the database.

Now Curse of Doom, who is also an avid AwesomeGame player, is browsing the AwesomeGame website and is challenged by his co-worker to try and beat his fastest lap time on the new track. He searches for tracks created by Tennis, at which point the website talks to Xbox LIVE to get a unique User ID that corresponds to "Tennis." The website then gets a list of all tracks in the database with that ID in the Author field by calling EnumerateTracks. Curse of Doomfinds the right track and tells the website to "Download to Xbox," which then calls AddTrackToQueue. The next time Curse of Doomturns on his Xbox and plays AwesomeGame, the game checks for any waiting downloads by calling GetDownloadQueue. The custom track is downloaded through the XLSP Gateway from the storage server when the game calls the DownloadTrack web service.

In Conclusion, Customizable Yet Secure
The only types of servers that should be allowed through an XLSP Gateway are Xbox LIVE Gateway servers for authentication to Xbox LIVE and the game’s own website. This provides a secure way for game developers to create custom, unique online experiences for players. It opens all kinds of opportunities to do more with video games and to make games online better, from maintaining game statistics and user-generated content to even spectator modes like Gotham TV in PGR3. Games are able to extend Xbox LIVE and to provide more for their users!



Around the Network

This engineering blog is pretty interesting. Hope they keep it up.