Sous le capot : l’infrastructure de jeu en nuage de Meta

Posted on

La promesse du cloud gaming est une promesse de démocratisation du gaming. Quiconque aime les jeux devrait pouvoir en profiter et partager l’expérience avec ses amis, où qu’il se trouve et même s’il ne dispose pas du matériel de jeu le plus récent et le plus cher. Facebook lancé sa plate-forme de jeu en nuage en 2020 pour donner à quiconque sur Facebook un accès instantané aux jeux Android et Windows natifs sur tous les écrans et navigateurs Web.

La création de l’accès sans précédent offert par les jeux en nuage a obligé les ingénieurs de Meta à relever de nouveaux défis et à développer une infrastructure matérielle croissante capable d’offrir des expériences de jeu de qualité aux utilisateurs du monde entier.

Mais le jeu lui-même évolue également. Des nouvelles expériences 3D comme la réalité augmentée et la réalité virtuelle à ce qui deviendra éventuellement le métaverse, les gens du monde entier veulent jouer à des jeux de plus en plus immersifs de la manière la plus transparente et la plus simple possible. Même s’il faudra un effort considérable dans l’ensemble de l’industrie pour concrétiser le métaverse, nous pensons que la création de l’infrastructure et la résolution des défis du cloud gaming nous orientent également vers des solutions pour le métaverse.

Pourquoi le cloud gaming ?

Le jeu en nuage est une question d’accessibilité – apporter des jeux aux gens quel que soit l’appareil qu’ils utilisent ou où ils se trouvent dans le monde. Placer des applications de jeu sur le cloud évite aux utilisateurs d’avoir à acheter du nouveau matériel et supprime également le besoin de téléchargements volumineux ou d’attente de mises à jour. Il permet une lecture croisée transparente sur les ordinateurs de bureau et les appareils mobiles, ainsi qu’une distribution flexible des applications.

Les jeux en nuage promettent également une expérience de développement plus facile, car les développeurs ne devraient pas avoir à se préoccuper autant de l’optimisation des jeux pour plusieurs plates-formes matérielles (par exemple, ordinateur de bureau et mobile). Dans un monde idéal, les développeurs n’auront besoin de créer une application qu’une seule fois et celle-ci pourra être distribuée sur plusieurs appareils sans avoir besoin de plusieurs fichiers binaires. Et pour les joueurs et les développeurs soucieux de la sécurité et de l’intégrité, le cloud gaming signifie moins de soucis de triche et de piratage.

À l’intérieur de l’infrastructure de jeu en nuage de Meta

Activer le cloud gaming chez Meta signifiait développer une nouvelle infrastructure matérielle et logicielle pour relever les défis inhérents au cloud gaming. Les jeux basés sur le cloud nécessitent une faible latence de bout en bout pour offrir une expérience de jeu rapide et fluide où la vidéo et l’audio de qualité doivent être diffusés avec le moins de gigue possible. L’infrastructure doit également être capable d’exécuter plusieurs jeux sur un seul serveur de jeu en nuage pour être économiquement efficace. Et tout cela doit être sécurisé contre diverses cyberattaques tout en restant robuste et efficace.

Edge computing, GPU et virtualisation

La meilleure façon pour notre infrastructure de cloud gaming d’offrir une grande latence aux joueurs est de la rapprocher le plus possible d’eux en termes de distance réseau. Les centres de données de Meta ne peuvent à eux seuls fournir le niveau de latence ultra-faible dont nous avons besoin pour les jeux en nuage. Nous nous appuyons donc sur l’edge computing, où nous rapprochons l’infrastructure de cloud gaming des joueurs en la déployant dans les périphéries qui sont en métropolitique zones proches de grandes populations.

jeu en nuage
À mesure que nous augmentons le nombre de sites d’informatique de pointe, nous pouvons également améliorer la latence pour les joueurs.

Notre objectif au sein de chaque site d’edge computing est d’avoir un environnement d’hébergement unifié pour nous assurer que nous pouvons exécuter autant de jeux que possible de la manière la plus fluide possible. Les jeux d’aujourd’hui sont conçus pour les GPU, nous nous sommes donc associés à NVIDIA pour créer un environnement d’hébergement au-dessus des GPU basés sur l’architecture NVIDIA Ampere. Alors que les jeux continuent de devenir de plus en plus intensifs et complexes sur le plan graphique, les GPU nous fourniront la haute fidélité et la faible latence dont nous avons besoin pour charger, exécuter et diffuser des jeux.

Pour exécuter les jeux eux-mêmes, nous utilisons Ficellenotre système de gestion de cluster, en plus de notre système d’exploitation informatique de pointe. Nous construisons des services d’orchestration pour gérer les signaux de streaming et utilisons Twine pour coordonner les serveurs de jeu en périphérie.

Nous avons créé et utilisé des technologies de conteneurs pour les jeux Windows et Android. Nous avons différentes solutions d’hébergement pour les jeux Windows et Android, et la solution d’hébergement Windows est livrée avec l’intégration avec PlayGiga. Nous avons construit un système d’orchestration consolidé pour gérer et exécuter les jeux pour les deux systèmes d’exploitation. Cela signifie que nous pouvons proposer des jeux et gérer la capacité avec plus de flexibilité sur différentes plates-formes.

jeu en nuage

Diffusion vidéo et audio

En fin de compte, la diffusion d’une vidéo et d’un son fluides est l’une des parties les plus importantes de l’expérience de jeu dans le cloud. Quiconque a déjà joué à un jeu en ligne connaît les frustrations que peut causer la latence.

Après avoir examiné la maturité et la compatibilité de la technologie, nous avons opté pour WebRTC avec la technologie SRTP (Secure Real-Time Transport Protocol) comme solution pour diffuser en continu les entrées des utilisateurs et les images vidéo/audio pour les jeux. Ce faisant, nous avons également pu améliorer considérablement nos performances de streaming vidéo et audio au fil du temps.

Commençons par un flux de streaming de base que nous avions pour le cloud gaming au début.

Chaque fois qu’un joueur cliquait pour effectuer une action dans un jeu (par exemple, pour faire sauter son personnage), nous capturions l’événement de clic et l’envoyions au serveur, où le jeu recevait l’événement. Le jeu a ensuite rendu une image contenant le résultat de cette action (c’est-à-dire le saut du personnage). Nous avons capturé cette image rendue, l’avons copiée et encodée à l’aide d’un encodeur vidéo. La trame a ensuite été mise en paquets afin qu’elle puisse tenir dans un paquet UDP (User Datagram Protocol) et envoyée via le réseau au lecteur. Enfin, du côté du joueur, il y avait un tampon de gigue pour faciliter le jeu au fur et à mesure que les paquets arrivaient. Nous avons décodé les paquets en images, puis avons rendu l’image pour le joueur.

Tout cela s’est passé si vite que le joueur n’a pas perçu de temps entre le clic et l’action. Cependant, chacune de ces étapes prend un tout petit peu de temps. Et lorsque ces temps s’additionnent, cela peut entraîner une latence et un décalage plus élevés pour le joueur.

Notre modèle actuel améliore considérablement cela et améliore la latence en utilisant l’encodage GPU. L’utilisation de GPU pour l’encodage signifie que lorsqu’un jeu rend une image, elle est rendue dans le GPU et ne quitte jamais la mémoire du GPU tant qu’elle n’est pas encodée. Ce processus est beaucoup plus efficace et n’utilise pas une grande partie de la bande passante du bus PCI entre le GPU et le serveur principal. La trame codée finit également par être plus petite que la trame brute.

jeu en nuage
Notre modèle actuel de streaming vidéo et audio améliore considérablement la latence en utilisant l’encodage GPU.

Du côté de la mise en réseau, le fait d’avoir des sites informatiques en périphérie à proximité du lecteur permet également de réduire la latence vidéo et audio – encore plus significativement que les économies réalisées en déplaçant l’ensemble du pipeline de streaming vers les GPU.

Du côté du lecteur, nous utilisons également le décodage matériel pour réduire le temps de décodage. La vidéo et l’audio sont généralement synchronisés ensemble, mais nous pouvons également envoyer la vidéo un peu avant l’audio pour améliorer la latence. Nous pouvons également profiter de la latence inhérente à l’écran de l’ordinateur ou du téléphone du joueur. L’écran affiche les images une par une à une certaine fréquence (par exemple, 30 ips ou 60 ips). Nous pouvons utiliser ces intervalles imperceptibles entre les images pour aider à absorber une partie de la gigue et à lisser la vidéo. Pour les appareils prenant en charge des FPS plus élevés, la latence peut encore diminuer.

Sécuriser le cloud gaming

Les joueurs et les développeurs doivent être assurés que toute expérience de jeu en nuage est sécurisée et sécurisée. Les joueurs doivent savoir que leurs données sont en sécurité et que les jeux ne seront pas dominés par des tricheurs. Et les développeurs doivent être assurés que leur produit sera à l’abri du piratage et d’autres failles de sécurité.

L’intégration de l’informatique de pointe, de la virtualisation GPU et du streaming vidéo/audio rend l’infrastructure de jeu en nuage très complexe. Et cette complexité s’accompagne de défis de sécurité uniques. En tant que système basé sur Windows et Android, le système relève intrinsèquement les défis de sécurité de ces environnements et doit également être protégé contre les menaces telles que les attaques DDOS.

Pour identifier et résoudre les problèmes de sécurité, nous évaluons la sécurité à chaque étape du développement, de la conception et de la mise en œuvre aux tests. Cela inclut la modélisation des menaces, les révisions du code de sécurité, les tests fuzz et les tests de sécurité. Nous ne voulons pas que le cloud gaming devienne un point d’entrée pour attaquer d’autres systèmes Meta, de sorte que l’infrastructure de cloud gaming est complètement isolée de l’infrastructure de données centrale de Meta. Nous avons également une équipe de sécurité interne qui travaille aux côtés de sociétés externes pour effectuer des évaluations de sécurité régulières sur le système.

Le cloud gaming et le métaverse

Le métaverse a des implications majeures pour l’avenir du jeu – non seulement dans les types de jeux auxquels les gens joueront, mais aussi dans la façon dont ces jeux leur seront livrés. Le métaverse poussera les exigences de connectivité réseau plus loin que jamais. Le travail préparatoire que nous posons aujourd’hui va jouer un rôle important en aidant l’industrie au sens large à créer l’infrastructure cloud qui sera nécessaire pour gérer l’informatique complexe nécessaire à la création d’expériences métavers.

Tout comme les jeux AAA, les futures expériences de métaverse nécessiteront la plus grande fidélité et la plus faible latence possible. Si l’expérience n’est pas fluide, elle ne fonctionnera pour personne, ce qui signifie qu’un réseau métaverse doit avoir une latence ultra-faible, une évolutivité élevée, un débit élevé et un stockage de données fédéré.

Quelle que soit l’apparence de cette nouvelle architecture réseau, elle nécessitera une amélioration radicale de l’architecture réseau globale actuelle. Il aura besoin d’une liaison et d’un protocole de communication peer-to-peer fiables, sensibles à la qualité de service (QoS) pour échanger des informations entre les personnes à proximité (par exemple, sous la même couverture Wi-Fi AP). Il a besoin d’une topologie de réseau unifiée et omniprésente pour limiter les performances de latence, de gigue et de perte de paquets dans le monde entier. Les défis liés à l’amélioration de la latence, de la fiabilité et du débit et au développement de bases de données fédérées peuvent obliger les ingénieurs à reconcevoir et à redistribuer les ressources de calcul et de routage dans les réseaux de communication de bout en bout. Ensuite, le métaverse aura besoin d’une stratégie de gestion QoS de bout en bout omniprésente à chaque segment de ses réseaux, ainsi qu’à chaque couche de protocole application/réseau verticalement (c’est-à-dire de la couche application au sommet de la pile à la couche OS au bas de la pile).

Nous travaillons actuellement sur des solutions pour tout cela. Avec notre infrastructure de jeu en nuage fournissant des informations, nous travaillons avec des opérateurs et des opérateurs de réseaux mobiles, des fabricants de chipsets matériels et d’autres partenaires pour créer des solutions qui répondront aux besoins du métaverse.

Quel est l’avenir immédiat du cloud gaming ?

Beaucoup de gens vont entrer dans le métaverse pour la première fois grâce au jeu. Alors que nous travaillons à notre vision à long terme du métaverse, nous continuerons à créer de nouvelles expériences 2D pour aider à combler le fossé avec le métaverse pour les utilisateurs de la famille d’applications de Meta. Le récent lancement de Crayta sur Facebook Gaming en tant que plateforme de création en streaming est un excellent exemple de ce travail.

Au fur et à mesure que nous développons notre plate-forme de jeu en nuage, nous travaillons en permanence à la mise à niveau et à l’amélioration de notre infrastructure de jeu en nuage. Au cours des deux à trois prochaines années, nous travaillerons sur une plus grande expansion internationale pour apporter des jeux à plus de personnes partout dans le monde. Nous travaillons également avec opérateurs de réseaux mobiles et opérateurs pour améliorer significativement la latence de leur réseau d’accès. Côté matériel, nous travaillons avec les fabricants de chipsets pour améliorer la latence des appareils des utilisateurs. Nous travaillons également sur de nouvelles technologies de conteneurs pour offrir une meilleure efficacité de streaming. Et, bien sûr, il y aura toujours une pression continue sur la sécurité à mesure que le système se développera et s’améliorera.

Les développeurs peuvent s’attendre à des améliorations significatives, notamment l’amélioration de la compatibilité du système pour réduire les frais généraux des développeurs et leur fournir de meilleurs outils pour le développement, les tests, le débogage, l’expérimentation et l’analyse. Et les joueurs, la partie la plus importante de nos efforts de jeu dans le cloud, peuvent s’attendre à de nouvelles expériences de jeu plus immersives à venir.

Notre objectif de permettre aux gens de jouer ensemble à de grands jeux, où et quand ils le souhaitent, ne changera pas, mais nos efforts continus avec le cloud gaming feront en sorte que ces expériences ne feront que s’améliorer.

Leave a Reply

Your email address will not be published.