Introduction to Microsoft Game Development Kit networking
This topic provides an introduction to the network stack in the Microsoft Game Development Kit (GDK). The networking stack and available APIs for Microsoft Game Development Kit (GDK) titles are similar to Win32 network APIs. This simplifies porting from existing Win32 titles and allows more unified network implementations.
Available APIs
The following table summarizes the API space for the Microsoft Game Development Kit (GDK). For more information about each API for the Microsoft Game Development Kit (GDK), see its associated links.
Feature | Microsoft Game Development Kit (GDK) |
---|---|
All-in-one solution (network game data and in-game chat) |
PlayFab Party |
Secure client/server network game data transport | MsQuic |
REST | XSAPI |
HTTP** | xCurl (recommended) or WinHTTP |
WebSocket** | libHttpClient (recommended) or WinHTTP |
Sockets | Winsock |
Socket security | OpenSSL Datagram Transport Layer Security (DTLS) or Bcrypt DTLS (Secure Game Communication) (NDA topic)Authorization required |
Network connectivity | XNetworkingGetConnectivityHint |
Port behavior | Identical to Win32 Windows PC |
In-game chat | PlayFab Party or Game Chat 2 |
**: To learn how to select which API to use, see Web requests.
New and important concepts
There are two new concepts that apply to almost every single one of the Microsoft Game Development Kit (GDK) networking APIs.
Network initialization
All networking APIs only function properly once the network is initialized. Your title should be waiting for network initialization before calling into any networking API or middleware that relies upon a networking API. For more information on network initialization, see Network initialization and connectivity.
Suspend and resume
Almost all network handles and objects created from networking APIs need to be cleaned up during your title's suspend notification. Each API overview describes how to do this for that particular area; both your title and any middleware consuming these APIs should follow this guidance. For more information on suspend and resume generally, see the Xbox Game Life Cycle (NDA topic)Authorization required overview.
Suspend and resume handling documentation:
- PlayFab Party
- MsQuic
- XCurl
- WinHTTP
- WinSock
- Preferred Local UDP Multiplayer Port
- Network Initialization
- Game Chat 2
Xbox One Software Development Kit migration
For details about titles that are migrating from the previous Xbox One Software Development Kit documentation, see Xbox One Software Development Kit migration overview (NDA topic)Authorization required. This topic includes guidance for titles that enable communication between the Xbox One Software Development Kit and the GDK title versions.
See also
Network initialization and connectivity
Web requests: HTTP and WebSocket
PlayFab Party Online Subsystem for Unreal
Getting Started with Xbox Live APIs