- Azure PlayFab Party Pour la communication de client à client, il est recommandé aux titres d’utiliser les API PlayFab Party. Elles offrent des fonctionnalités similaires à Secure Sockets dans le XBOX One Software Development Kit. Ces API fournissent également une communication sécurisée, la traversée de la traduction d’adresses réseau (NAT) au moyen de relais de communication, ainsi que des fonctionnalités de conversation vocale et textuelle.
- Datagram Transport Layer Security (DTLS)
Les titres peuvent également choisir de chiffrer les charges utiles de leurs paquets à l’aide de DTLS. Les titres peuvent l’implémenter au moyen des API
OpenSSLouBcrypt, ou utiliser un middleware qui encapsule une telle implémentation. Toutes les communications, quel que soit leur contenu, doivent être chiffrées et authentifiées par l’intermédiaire des services du titre. Pour plus d’informations sur les exigences de cette solution, consultez Communication de jeu sécurisée pour les titres Microsoft Game Development Kit.
Communication entre les versions Microsoft Game Development Kit (GDK) et XBOX One Software Development Kit d’un titre
Il est recommandé aux titres d’utiliser le GDK pour tout le matériel de console XBOX. Cela permet d’utiliser une implémentation réseau unifiée. Dans certains scénarios, un titre peut néanmoins souhaiter prendre en charge la communication réseau entre une version XBOX One Software Development Kit et la version GDK du titre. Dans ce scénario, les titres XBOX One Software Development Kit ne peuvent pas utiliser les API Secure Sockets, car elles ne sont pas compatibles au niveau réseau avec les API Azure PlayFab Party du GDK. Il en va de même pour les API XIM, qui ont été construites sur la fonctionnalité Secure Socket. Les titres qui utilisaient Secure Sockets ou XIM dans la version XBOX One Software Development Kit du titre doivent mettre à jour la pile réseau du titre vers Azure PlayFab Party ou vers une communication DTLS. Nous recommandons Azure PlayFab Party comme solution pour toutes les communications de client à client. Azure PlayFab Party simplifie également les fonctionnalités de conversation vocale et textuelle. Les titres qui utilisent des serveurs dédiés ou des serveurs relais avec la version XBOX One Software Development Kit du titre peuvent procéder de la même manière pour permettre la communication réseau avec la version GDK du titre. Tous les protocoles de communication doivent toujours être authentifiés, sécurisés et conformes aux bonnes pratiques de sécurité.Initialisation du réseau
Dans le Microsoft Game Development Kit (GDK), votre titre est démarré le plus tôt possible pendant le processus de démarrage du Game OS. Vous pouvez commencer à charger des ressources depuis le disque dur et à initialiser la pile graphique. Cela signifie que votre code s’exécute avant même que les services réseau aient démarré, ce qui entraîne une période pendant laquelle il n’est pas sûr d’utiliser les API réseau Win32. Nous appelons cette période la période d’initialisation du réseau, après laquelle le réseau est considéré comme initialisé. L’initialisation du réseau prend généralement quelques secondes, ce qui peut être très perceptible dans votre code. Dans les titres ERA XBOX One, l’initialisation du réseau bloquait implicitement et arbitrairement des API réseau par ailleurs sûres en temps réel, telles queWSAStartup ou bind. Dans le Microsoft Game Development Kit (GDK), l’initialisation du réseau est désormais un concept explicite avec lequel vous devez interagir pour utiliser les API réseau ou de sécurité Win32.
Les titres Microsoft Game Development Kit (GDK) doivent attendre que le booléen XNetworkingConnectivityHint::networkInitialized soit défini sur true avant d’appeler une API réseau de Winsock, WinHTTP, IP Helper, BCrypt, WinCrypt, Schannel ou toute autre API réseau Win32. L’appel de l’une de ces API avant l’initialisation du réseau entraîne un comportement indéterminé pouvant aller jusqu’à des plantages aléatoires du processus.
En outre, ce même concept s’applique à tous les cycles de suspension/reprise. Lors de la suspension, les titres Microsoft Game Development Kit (GDK) doivent fermer tous les handles réseau et de sécurité. Les titres Microsoft Game Development Kit (GDK) doivent ensuite traiter le gestionnaire de reprise de la même manière que le lancement initial du titre du point de vue réseau, et attendre à nouveau que le réseau soit initialisé.
Pour plus d’informations, notamment des exemples de code montrant comment attendre l’initialisation du réseau, consultez Initialisation et connectivité réseau.
Comportement des ports
Dans les titres ERA XBOX One, vous prédéfinissiez chaque flux de socket utilisé par votre titre dans le manifeste réseau. Dans le Microsoft Game Development Kit (GDK), le manifeste a été supprimé. Les ports des consoles XBOX One se comportent désormais de la même manière que sur un PC Windows : vous appelezbind sur le port de votre choix, et ce port autorise tout le trafic sortant et le trafic entrant sollicité, en Transmission Control Protocol (TCP) comme en User Datagram Protocol (UDP). Le trafic entrant UDP et TCP non sollicité est bloqué. Cela signifie que les topologies réseau pair à pair TCP ne sont plus autorisées. Les titres Microsoft Game Development Kit (GDK) doivent utiliser UDP pour leurs flux de jeu.
Les titres Microsoft Game Development Kit (GDK) disposent désormais également d’un accès direct au port multijoueur UDP local préféré. Ce port représente le meilleur port vers vos pairs et serveurs que la plateforme peut offrir, car il s’appuie sur la résolution des problèmes et la configuration de l’utilisateur. Nous vous recommandons vivement d’adapter votre trafic multijoueur et vocal pour utiliser ce port afin d’améliorer vos taux de réussite de connectivité globaux.
Pour plus d’informations sur le comportement des ports, consultez Comportement des ports de la console XBOX et Port multijoueur UDP préféré.
