Contexte et fonctionnement interne du streaming de jeux
Fondamentalement, XBOX Game Streaming se compose de milliers d’appareils XBOX en configuration serveur (serveurs XBOX) répartis dans un réseau mondial de centres de données Azure. Dans les grandes lignes, la configuration d’une session XBOX Game Streaming fonctionne comme suit :- L’utilisateur sélectionne le jeu auquel il souhaite jouer.
- Le service XBOX Game Streaming attribue à l’utilisateur un serveur XBOX parmi un pool de serveurs disponibles.
- Le service connecte l’utilisateur au serveur, à la sauvegarde de jeu et au PLS (qui n’est pas synchronisé entre les consoles domestiques), lance le jeu et démarre la session de streaming de jeux.
- Lorsque l’utilisateur a fini de jouer, le jeu est fermé, les données de la partie enregistrée sont synchronisées, le PLS est chargé et l’utilisateur est déconnecté.
Général
Certaines caractéristiques en jeu ont un impact négatif sur l’expérience utilisateur et peuvent mettre fin à une session utilisateur sur XBOX Game Streaming. Veillez à ce que votre jeu prenne les mesures appropriées pour atténuer ces risques.- Sachez quand votre jeu est diffusé en streaming. Avant tout, il est simple de tester votre jeu dans un environnement de streaming. Consultez Configuration de votre XBOX Development Kit pour le streaming pour savoir comment configurer un XBOX Development Kit, et contactez votre représentant de compte Microsoft pour obtenir l’accès à un environnement cloud privé pour votre titre. L’optimisation la plus élémentaire consiste à vérifier si le jeu s’exécute dans un environnement de streaming au moyen d’un appel d’API Cloud Aware. Cela permet de savoir facilement quand modifier les comportements pour le streaming.
De nombreuses fonctionnalités et recommandations de ce document peuvent profiter aux joueurs et améliorer l’accessibilité, indépendamment du streaming de jeux.
- Permettez aux nouveaux utilisateurs de lancer le jeu et d’y entrer le plus rapidement possible. Les sessions de streaming sont de durées plus variées et ne permettent pas toujours de longues sessions de jeu. Vous pouvez utiliser des points de sauvegarde automatiques qui ne peuvent être repris et avancés que lorsque l’utilisateur joue en streaming.
- Veillez à ce que les utilisateurs ne soient pas déconnectés pour « inactivité » pendant de longues cinématiques. XBOX Game Streaming met fin aux sessions utilisateur lorsqu’il détecte que les utilisateurs sont inactifs. Les développeurs doivent utiliser l’API XDisplayAcquireTimeoutDeferral pour éviter que la session passe à l’état inactif et que l’utilisateur soit déconnecté.
Vidéo
- Adaptez votre affichage tête haute (HUD) et la disposition de l’interface utilisateur à la taille de l’écran. Les joueurs peuvent diffuser en streaming sur une grande variété d’appareils présentant des facteurs de forme, des distances de visionnage et des résolutions différents. Si le texte et les éléments d’interface utilisateur du jeu peuvent être lisibles sur un téléviseur grand écran, ils peuvent devenir difficiles à lire sur des appareils plus petits. L’API XGameStreamingGetStreamPhysicalDimensions peut vous aider à garantir que les éléments d’interface utilisateur redimensionnables sont suffisamment grands pour l’appareil sur lequel le jeu est diffusé. La Vue d’ensemble de la résolution personnalisée vous permet d’aller encore plus loin et d’utiliser tout l’écran de l’appareil de l’utilisateur, dont beaucoup ne correspondent pas à la résolution 16:9 traditionnelle d’un téléviseur, offrant ainsi une expérience plus immersive et naturelle. Cela améliore également la facilité d’utilisation des jeux qui utilisent l’entrée tactile native.
- Évitez le texte rouge dans la mesure du possible En raison des formats de compression vidéo et de la sensibilité de l’œil humain à la couleur rouge, cette couleur est souvent perçue comme la plus affectée. Éviter cette couleur, en particulier avec les contours nets et les traits fins du texte, réduira les artefacts de compression perçus.
- Permettez de configurer le gamma et d’autres paramètres vidéo Les joueurs peuvent diffuser en streaming sur une grande variété d’appareils présentant des facteurs de forme et des caractéristiques d’écran différents. XGameStreamingGetClients peut être utilisée pour obtenir un identificateur unique pour chaque appareil sur lequel le jeu est diffusé ; utilisez cet identificateur pour enregistrer et restaurer les paramètres vidéo par appareil afin de tenir compte des différences de luminosité entre les appareils.
- Réduisez la latence vidéo Rendre votre jeu compatible avec DirectCapture réduira considérablement la latence vidéo pour les joueurs, offrant une expérience plus réactive et plus agréable. Consultez la Vue d’ensemble de DirectCapture pour plus de détails.
Entrée
- Permettez aux utilisateurs d’interagir avec le jeu d’une manière naturelle pour leur appareil. Les joueurs peuvent diffuser en streaming sur une grande variété d’appareils présentant des facteurs de forme et des types d’entrée différents, comme la souris et le clavier, les écrans tactiles, etc. Dans la mesure du possible, prenez en charge ces autres modalités. La Vue d’ensemble de la configuration de stream de Content Test Application (CTA) fournit plus d’informations sur la façon de tester le streaming avec des types d’entrée autres qu’une manette. Pour plus d’informations sur les commandes tactiles et l’entrée tactile native, consultez Prise en main de l’entrée tactile.
- Répondez au type d’entrée le plus récent Les joueurs peuvent reprendre des jeux et continuer à jouer en streaming sur divers appareils, et ne disposent pas toujours d’une manette physique. Dans ces cas, les joueurs s’attendent à pouvoir passer de manière fluide de la manette à l’entrée tactile, puis à la souris et au clavier. Les jeux peuvent utiliser une stratégie « le dernier l’emporte » pour adapter l’expérience utilisateur et les invites au type d’entrée préféré des joueurs. Dans la mesure du possible, n’enfermez pas les joueurs dans un type d’entrée et n’exigez pas l’utilisation d’une manette pour passer à un autre type d’entrée. Consultez Vue d’ensemble de GameInput pour plus d’informations sur la gestion des différents types d’entrée.
- Tenez compte de la latence d’entrée La latence est une réalité inévitable dans les environnements de streaming. Bien que la plateforme s’efforce de réduire la latence autant que possible, les jeux peuvent mieux comprendre la latence et en tenir compte lors de l’interprétation des entrées. Consultez Mesure de la latence du streaming de jeux et Vue d’ensemble de la compensation de la latence du streaming de jeux pour plus d’informations sur les techniques disponibles pour réduire la latence perçue par les joueurs.
Localisation
- Utilisez Intelligent Delivery pour la localisation du contenu au lieu de plusieurs packages XBOX Game Streaming détecte la région physique (c’est-à-dire le pays/la région) depuis laquelle l’utilisateur se connecte. En outre, XBOX Game Streaming détecte les paramètres régionaux que l’utilisateur a définis sur son appareil local. Ces valeurs détectées de région et de paramètres régionaux sont transmises au serveur XBOX afin de le configurer en conséquence. XBOX Game Streaming garantit également que l’utilisateur recevra le package de jeu configuré dans Partner Center pour la région. Par conséquent, nous recommandons aux développeurs de soumettre un package unique pour leur jeu contenant tout le contenu localisé en utilisant les spécificateurs de langue Intelligent Delivery, plutôt que plusieurs packages comportant différents ensembles de contenu localisé. Cela garantit que les utilisateurs profiteront du jeu dans leur langue préférée, quel que soit le pays ou la région depuis lequel ils jouent.
Stockage
- Évitez d’exiger un lecteur temporaire pour conserver des données entre les sessions de jeu XBOX Game Streaming efface toutes les données du lecteur temporaire entre les sessions. Les sessions de jeu suivantes peuvent avoir lieu sur un autre serveur XBOX dans un autre centre de données. Les jeux ne doivent stocker sur le lecteur temporaire aucune donnée nécessaire d’une session à l’autre.
- Évitez une utilisation importante du stockage local persistant (PLS) XBOX Game Streaming fait suivre le stockage local persistant entre les sessions ; utiliser plus de 4 Go de PLS augmente le temps de lancement de votre jeu sur XBOX Game Streaming. Pour chaque tranche supplémentaire de 4 Go utilisée dans le PLS, prévoyez une augmentation de 20 secondes des temps de chargement.
Réseau
- Attendez-vous à une latence et à des caractéristiques réseau différentes XBOX Game Streaming exécute des consoles XBOX depuis des centres de données Azure. Cela signifie qu’un même utilisateur peut jouer depuis plusieurs plages d’adresses IP et peut avoir des temps de ping inférieurs à ceux des joueurs sur console domestique.
- Évitez le port 9002 XBOX Game Streaming utilise le port 9002 pour le réseau ; les développeurs de jeux ne doivent donc pas utiliser le port 9002 pour les communications TCP ou UDP. Consultez Configuration de l’accès réseau de développement pour plus d’informations sur les ports spécifiques et la configuration réseau de votre jeu.
Le port 9002 est désormais bloqué dans les GDK récents.
Scénarios en jeu non pris en charge
Les scénarios en jeu suivants ne sont pas pris en charge pendant le streaming cloud, car XBOX Game Streaming est conçu pour limiter l’expérience utilisateur au seul gameplay. Certains de ces scénarios peuvent toutefois fonctionner lorsqu’un utilisateur diffuse en streaming depuis sa console domestique.- Évitez d’essayer de lancer d’autres applications ou jeux XBOX Game Streaming ne prend pas en charge le lancement d’autres jeux ou applications, à l’exception du navigateur Edge.
- Évitez de supposer que les navigateurs web se trouvent sur la même machine physique que le jeu en cours Les activations de protocole vers un navigateur web ou un contenu web hébergé par le système sur XBOX Game Streaming entraînent le lancement de cette activation sur l’appareil local sur lequel joue l’utilisateur. Les développeurs doivent s’assurer que ces expériences ne dépendent pas de l’exécution du navigateur sur le même appareil que le jeu. Exemple : le jeu ouvre un site web doté d’un bouton « Retour » qui tente d’activer le jeu par protocole.
- Évitez d’exiger que l’utilisateur redémarre manuellement le jeu à quelque moment que ce soit Cela inclut les scénarios dans lesquels un jeu se met à jour et exige que l’utilisateur le redémarre manuellement. XBOX Game Streaming met fin aux sessions utilisateur dès que le jeu est fermé ; le redémarrage d’un jeu met donc fin au stream.
- Évitez de pénaliser excessivement les utilisateurs inactifs trop longtemps XBOX Game Streaming maintient une session utilisateur active pendant 5 à 10 minutes après une déconnexion inattendue. Par conséquent, si les jeux pénalisent les utilisateurs inactifs, ils pénaliseront inutilement les utilisateurs de XBOX Game Streaming. Les jeux peuvent utiliser l’API XGameStreamingGetClients pour détecter spécifiquement la déconnexion d’un client GameStreaming.
Services de jeu
XBOX Game Streaming rend les jeux accessibles à un public plus large grâce aux serveurs XBOX des centres de données, ce qui a des implications pour les services de jeu qui utilisent des caractéristiques de l’appareil, comme le temps de ping ou les ID d’appareil, pour modifier le comportement du jeu.- Évitez d’utiliser le jeton de sécurité des XBOX services (XSTS) pour le bannissement ou la détection des fraudes Les utilisateurs de XBOX Game Streaming obtiennent un nouveau serveur XBOX à chaque session ; il est donc tout à fait normal de voir de nombreuses sessions utilisateur distinctes provenant du même appareil. En outre, les services de jeu ne doivent pas bannir ces appareils dans ce cas. Pour savoir que ces sessions proviennent d’un serveur XBOX, les développeurs peuvent utiliser l’API GDK XGameStreamingGetServerLocationName dans leur jeu. Vous pouvez également le détecter à partir du jeton XSTS ; consultez Référencement des serveurs XBOX Game Streaming dans les revendications du jeton de sécurité des XBOX services (XSTS) pour plus d’informations sur la gestion de l’identité des appareils dans vos services de jeu.
- Évitez d’empêcher les utilisateurs de jouer si trop de personnes jouent sur le même serveur XBOX Chaque serveur XBOX est utilisé par plusieurs joueurs à des moments différents ; si votre jeu bannit de telles instances, cela nuira à l’expérience des joueurs de XBOX Game Streaming. (Par exemple, si le jeu rencontre des problèmes lorsque trop de sessions de jeu proviennent de la même adresse IP ou du même ID d’appareil.)
- Évitez que les services de jeu signalent comme suspectes de nombreuses sessions provenant de la même adresse IP Plusieurs serveurs XBOX d’un centre de données peuvent partager la même adresse IP publique pour les communications sortantes et entrantes. Assurez-vous que vos services de jeu peuvent gérer plus de 100 consoles XBOX distinctes avec la même adresse IP.
-
Évitez d’utiliser une logique dépendant de l’adresse IP de l’emplacement d’exécution du jeu pour prendre des décisions de stratégie concernant l’utilisateur
Les serveurs XBOX ne se trouvent pas nécessairement dans le même pays ou la même région que les utilisateurs. L’utilisation de l’adresse IP pour la prise de décisions de gameplay dégradera l’expérience utilisateur.
La fonction XGameStreamingGetClientIPAddress peut être utilisée pour déterminer l’adresse IP du client de streaming et convient mieux à la logique de gameplay.[!IMPORTANT]
XGameStreamingGetClientIPAddressest dépréciée depuis la version 2604 du GDK et sera supprimée dans une version ultérieure. Pour déterminer l’emplacement de l’utilisateur, utilisez plutôt les revendications du jeton XSTS. Consultez Référencement des serveurs XBOX Game Streaming dans les revendications XSTS pour plus de détails. - Évitez que le jeu ou les services de jeu dysfonctionnent ou pénalisent les utilisateurs lorsque les vérifications de latence révèlent une latence très faible En raison de la configuration des centres de données, les temps de ping des utilisateurs de XBOX Game Streaming seront toujours inférieurs à ceux des utilisateurs sur consoles locales. Même si vous recevez un temps de ping de 0 ms, il est important de ne pas utiliser les temps de ping pour dégrader l’expérience des utilisateurs ou les bannir. Ne supprimez ni n’ajustez aucune logique interne de jeu ou de serveur en fonction des temps de ping.
