Choix de la meilleure résolution
Les joueurs diffusent des jeux en streaming sur une grande variété d’appareils, notamment des téléphones, des tablettes, des PC et des téléviseurs. Ceux-ci vont des écrans basse résolution aux écrans haute résolution, et des moniteurs ultra-larges 32:9 aux tablettes carrées en passant par les appareils en orientation portrait. Les joueurs préfèrent que le jeu remplisse tout leur écran ou toute leur fenêtre, sans bandes noires. Dans la mesure du possible, l’image est également plus nette si elle correspond à l’écran du client sans mise à l’échelle. Enfin, la résolution idéale pour un client peut dépendre du matériel et des conditions réseau. L’API XGameStreamingGetDisplayDetails prend en compte tous ces facteurs et renvoie une largeur et une hauteur « préférées ». Dans des conditions idéales, la résolution « préférée » correspond à la résolution et au rapport d’aspect de l’écran du client, mais si cette résolution n’est pas possible, il s’agit de la résolution et du rapport d’aspect les plus proches qui respectent les contraintes du flux et les paramètres passés àXGameStreamingGetDisplayDetails.
Si votre jeu peut effectuer le rendu dans n’importe quelle résolution, il suffit d’appeler XGameStreamingSetResolution et de définir votre résolution de rendu sur la résolution préférée pour obtenir les meilleurs résultats.
De nombreux jeux sont conçus pour un ensemble fixe de résolutions. Par exemple, votre jeu peut disposer d’une version PC qui prend en charge plusieurs résolutions, même si celles-ci sont normalement réduites à une seule sur XBOX. Dans ce cas, Microsoft recommande d’utiliser la résolution préférée comme guide pour choisir la résolution la plus proche prise en charge par votre jeu. Une bonne façon de procéder consiste à trouver la correspondance la plus proche du rapport d’aspect préféré afin que le jeu remplisse autant que possible l’écran du client. Notez que la structure XGameStreamingDisplayDetails inclut les limites des résolutions que vous pouvez définir. Elle inclut également des indicateurs qui vous indiquent si le flux actuel prend en charge les résolutions non standard et la mise à l’échelle de la présentation.
S’il n’est pas possible de choisir automatiquement la résolution, mais que la version PC de votre jeu inclut un sélecteur de résolution, vous pouvez également permettre aux joueurs de choisir des résolutions, à condition que celles-ci respectent les contraintes de XGameStreamingDisplayDetails.
Écoute des mises à jour
Pendant un streaming, la meilleure résolution peut changer pour plusieurs raisons :- Sur les serveurs cloud, les jeux sont lancés avant que les clients de streaming ne se connectent ; la résolution préférée n’est donc pas immédiatement disponible.
- Un joueur utilisant un téléphone ou une tablette peut faire pivoter son appareil entre les orientations portrait et paysage.
- Un joueur sur PC peut redimensionner la fenêtre du client de streaming ou basculer en mode plein écran.
- Les conditions réseau peuvent évoluer et nécessiter une résolution de flux différente.
XGameStreamingClientProperty::DisplayDetails) pour détecter les changements de résolution préférée du client. Lorsque ces événements se produisent, changez la résolution pour qu’elle corresponde aux nouvelles valeurs de XGameStreamingDisplayDetails.
Il est au minimum très important de gérer l’événement de connexion initiale du client pour que les joueurs sur les serveurs cloud obtiennent une résolution correspondante.
Limitations relatives aux changements
Le changement de résolution du flux est visible par les joueurs sous la forme d’un bref clignotement (semblable à ce qui se produit lors du changement de résolution d’un jeu sur PC). Pour limiter les perturbations, Microsoft recommande de ne changer la résolution qu’en réponse aux événements ci-dessus. Outre l’expérience du joueur, il est déconseillé de changer la résolution du flux plus d’une fois toutes les 200 ms, car l’encodeur vidéo risque de ne pas avoir le temps de s’adapter à la résolution du jeu, ce qui entraîne un bref étirement visuel. Les événements ci-dessus ne se déclenchent pas plus d’une fois toutes les 200 ms.Définition des paramètres de XGameStreamingGetDisplayDetails
L’APIXGameStreamingGetDisplayDetails inclut des paramètres correspondant aux contraintes de votre jeu. S’ils sont correctement définis, l’API calcule la meilleure résolution qui respecte ces contraintes. Les paramètres sont les suivants :
maxSupportedPixels : il s’agit du nombre total de pixels que votre jeu ne doit pas dépasser. Pour préserver les performances, une bonne règle consiste à multiplier la largeur et la hauteur dans lesquelles votre jeu effectuerait normalement le rendu sur le type d’appareil système actuel. Par exemple, si votre jeu effectue normalement le rendu en 1440p sur XBOX Series S, sur ce type d’appareil, passez maxSupportedPixels=2560*1440=3686400.
widestSupportedAspectRatio et tallestSupportedAspectRatio : il s’agit des limites de rapport d’aspect de votre jeu. En les définissant sur les rapports d’aspect les plus larges et les plus hauts que vous avez testés, vous vous assurez que votre jeu s’affiche correctement sur tous les appareils.
Entrée tactile et résolution personnalisée
Le changement de résolution viaXGameStreamingSetResolution modifie l’espace de coordonnées de l’entrée tactile pour correspondre au nouveau rapport d’aspect. GameInputTouchState inclut les coordonnées tactiles dans une plage normalisée de 0 à 1. Lors d’un changement de résolution, cette plage reste la même, mais représente désormais votre nouvelle résolution. Par exemple, sans résolution personnalisée dans un jeu en 1920x1080, un toucher en (0.5, 0.5) représente (960, 540), mais si vous appelez XGameStreamingSetResolution pour passer en 1600x800, un toucher en (0.5, 0.5) représente (800, 400). Notez que les valeurs de résolution et de rapport d’aspect de GameInputTouchSensorInfo ne sont pas mises à jour lorsque vous changez de résolution ; utilisez les valeurs que vous avez passées à XGameStreamingSetResolution, et non GameInputTouchSensorInfo, pour calculer les emplacements tactiles.
Zone sécurisée
De nombreux appareils ont des écrans partiellement masqués par des encoches, des coins arrondis et des barres de balayage superposées.XGameStreamingDisplayDetails inclut un rectangle safeArea qui décrit le rectangle non masqué au centre de l’écran. Pour garantir la visibilité du contenu important, traitez ce rectangle comme les limites de l’espace sécurisé du titre. Les zones situées à l’extérieur peuvent être visibles et doivent toujours contenir du contenu, mais pas d’éléments d’interface utilisateur importants.
