Network Game Development

Networking has been a hot topic in graphics API circles at Microsoft for a long time. Since the days of DirectX and the DirectPlay libraries, there have been numerous iterations that have met with varying levels of success. However, DirectPlay was created before TCP/IP became the standard that it is today, so it was eventually deprecated. Instead of DirectPlay, DirectX developers were told that the Windows sockets libraries were ultimately going to be the tool of choice for developing games with network play functionality.

XNA 1.0 followed suit with no support for networking API outside of System.net and no support for network play on the Xbox 360. The result? A new and complete networking API was the XNA 1.0 developers' most requested feature. Because of that, beginning with XNA Game Studio 2.0, Microsoft allowed developers to use the Live for Windows APIs on Windows and the Xbox 360.

According to a presentation by Shawn Hargreaves (engineer on the XNA Community Game Platform team at Microsoft) at the Game Developers Conference in 2008, the design goals for the XNA team included:

  • Enable networked multiplayer games.

  • Make the API easy to use.

  • Make the API handle lower-level networking details for the user.

  • Support both Xbox LIVE and Games for Windows LIVE.

  • Allow development with a single Xbox 360 and PC.

  • Don't require dedicated servers.

The best thing about the XNA networking API is how simple it is to use. If you've ever dealt with networking code in other languages ...

Get Learning XNA 3.0 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.