Curieux de savoir comment Google a construit techniquement Stadia, son offre de cloud gaming ? Plongez donc dans la retranscription – en quatre parties – de la présentation « Stadia Streaming Tech: A Deep Dive » qui a eu lieu lors du Google I/O en 2019. Voici la dernière partie de cette série et cette fois, elle sera consacrée à l’infrastructure, à un retour d’expérience sur Project Stream et la présentation de quelques outils simplifiant la vie des développeurs. Bonne lecture.
L’infrastructure de Stadia
Dans les épisodes précédents, nous avons parlé des recherches approfondies en Expérience Utilisateur menées par l’équipe « Jouabilité » de Stadia, de tachions en morse et de pigeons voyageurs, également connus sous le nom d’infrastructures de streaming. Maintenant, il est temps de parler de ce qui rend ces fondations sous-jacentes si solides.
Tout repose sur trois piliers de l’excellence de Google qui propose une infrastructure inégalée contrôlant l’expérience du joueur de bout en bout. Des investissements continus en matière de technologies ont été faits, autant d’un point de vue matériel ou sur le traitement des données, la sécurité EIN, et – au fil des ans – Guru Somadder et son équipe ont construit le schéma directeur pour lancer des produits qui permettent à leurs partenaires de tous réussir à inventer le futur.
Comme vous pouvez le voir sur cette carte, il s’agit d’une représentation de l’infrastructure du réseau de Google. Elle représente les points d’interconnexion sur Internet. Google en possède 90 ainsi que 100 installations d’interconnexion dans le monde entier, plus de 7 500 nœuds de périphéries déployés en profondeur chez les opérateurs de réseau et les fournisseurs d’accès à Internet. Ils sont situés à proximité des joueurs et permettent à Google de fournir une expérience cohérente à l’échelle.
Stadia tire également parti de ces investissements technologiques permanents. Des technologies d’accélération matérielle qui compensent les rendements décroissants de la loi de Moore, l’exploitation des données des services Google pour une compréhension approfondie de la latence des joueurs afin de leur offrir une expérience optimale et, enfin, l’apprentissage machine pour améliorer tous les aspects du développement des jeux.
Ce n’est pas seulement la technologie mais aussi la façon dont elle est appliquée qui donne à Google une capacité unique de construire une plateforme de jeu dans le cloud toujours disponible et hautement sécurisée. L’ADN de Google sur la mise à l’échelle, sur lequel repose son ingénierie, est ancré dans tout cela.
La firme de Mountain View a cette capacité de lancer certains de ses meilleurs ingénieurs sur les problèmes les plus difficiles en s’appuyant sur une culture des réussites existantes ainsi qu’une portée de classe mondiale pour les joueurs sur le web (Chrome, les services Google, etc.), dans le salon (Android TV, Chromecast) et sur le mobile (Android). N’oublions pas non plus qu’au fil des ans, Google a inventé et profondément influencé un large éventail de protocoles et d’algorithmes Internet comme HDMI5, Quick, RTC, VP9 et BBR.
Pour résumer, Stadia est construit en utilisant certains de ces mêmes principes de base, des meilleures pratiques et des technologies qui sont les fondations de certains des produits Google les plus performants et les plus évolutifs.
Retour d’expérience sur « Project Stream »
Après avoir solidifié son Streamer, l’équipe derrière Stadia a eu besoin de le tester, de le valider et de l’optimiser. Et Assassin’s Creed représentait le test parfait. Il comportait une grande variété d’environnements ce qui signifiait des exigences de débit variables et il présentait une tonne de mécanismes de jeu différents ce qui signifiait des exigences de latence variables. Sans compter l’énorme excitation autour de ce jeu auquel tout le monde voulait jouer. Il était donc possible d’obtenir un large public à travers tous les États-Unis.
En interne, l’équipe cherchait à tester et à améliorer son Streamer et participer à la phase d’optimisation que les développeurs traversent et mettre au point les outils qui leur étaient nécessaires.
La première version du jeu était déjà d’une grande qualité générale et l’équipe « Jouabilité » était enthousiaste à l’idée d’avoir un titre à ce stade particulier du développement. Elle voulait essayer beaucoup de nouvelles choses et a eu la chance de le faire.
La coopération avec l’équipe d’Ubisoft en particulier, qui a été très collaborative et ouverte à l’exploration de ces idées, et l’équipe Stadia, qui a toujours été très dynamique mais également très bien rodée, ont permis de valider les résultats de leurs recherches. Ils ont donc veillé à ce que l’optimisation de la plateforme et des outils de développement se fasse sur le terrain et à ce que les résultats soient validés au niveau mondial.
Certains des résultats les plus intéressants ont consisté à manipuler la qualité perceptive avec laquelle tous les repères synthétiques présentés n’auraient apporté aucune amélioration. Autre point intéressant : parce-que la plateforme était en ligne, elle pouvait s’améliorer constamment. Il était donc possible de faire des tests A/B, non seulement avant le lancement mais aussi après le lancement.
Ils ont fini par améliorer la fidélité visuelle pendant que le jeu était en ligne ce qui signifie qu’un jour, les joueurs se sont connectés pour jouer à leur jeu et leur expérience a été tout simplement meilleure sans qu’il soit nécessaire de faire des mises à jour ou de perturber le service. Ils obtenu de très bons résultats et un taux de réponse impressionnant.
Ce qui a le plus enthousiasmé l’équipe, c’est ce qu’ils ont pu réaliser et la façon dont le Project Stream leur a permis d’évoluer vers la plate-forme connue aujourd’hui sous le nom de Stadia.
Grâce au Project Stream, ils ont pu apprendre et améliorer leur Streamer, qui est désormais capable de diffuser une meilleure qualité avec des débits binaires plus faibles, de s’adapter à un réseau plus rapide, de prendre en charge lea 4K, la HDR et le son surround (entre autres choses).
Des outils pour améliorer la jouabilité
L’équipe Stadia a aussi élargie ses outils jusqu’à pouvoir en disposer de toute une panoplie, notamment concernant l’optimisation de la jouabilité dont voici un bref aperçu ci-dessous. Même si côté Google, l’équipe de Stadia s’est assurée que la plate-forme offre une excellente expérience en l’état, une extension naturelle a été de fournir ces outils aux développeurs qui souhaitaient une optimisation ou une personnalisation un peu plus poussée.
À partir d’un portail de développement, il est possible à un développeur de lancer n’importe quelle version de son jeu et d’accéder immédiatement à une grande variété d’informations et de modificateurs par le biais de l’interface utilisateur. Parmi ces outils, on peut citer l’émulation de connexions qui lui permet d’essayer différents modèles de réseaux – comme les modèles DSL et Wi-Fi – et de voir le comportement de son jeu dans ces différentes conditions.
Un autre utilitaire disponible est un outil de capture rapide, qui permet d’enregistrer la vidéo d’une image rendue, encodée et décodée en même temps, ce qui permet de déboguer l’ensemble du pipeline vidéo en un seul clic.
Et parmi les API disponibles, citons l’API d’analyse de la diffusion permettant au développeur de définir les préférences de l’encodeur pour son titre, ce qui s’aligne directement avec ce qui a été remarqué lors du lancement de Project Stream. Assassin’s Creed, par exemple, s’est vraiment appuyé sur l’utilisation de l’encodage.
L’API MediaStream donne au développeur un accès direct à toutes les valeurs pertinentes concernant la diffusion en temps réel, telle que la résolution actuelle, le RTT et bien d’autres choses encore. Cette API peut être utilisée pour ajuster dynamiquement le comportement ou la mécanique selon les besoins.
L’API des capacités de diffusion renvoie un signal sur le endpoint utilisé avec toutes les capacités pertinentes de la diffusion. Cela permet de faire vivre des expériences de jeu étonnantes aux joueurs en tout lieu, lui permettant de passer en toute transparence d’un appareil moins performant à une configuration complète avec HDR et son surround au cours de la même session. Le jeu pourra le détecter automatiquement et activera, suspendra ou reprendra ces modes.
L’API de jeton de trame, quant à elle, permet d’associer une image livrée à une entrée particulière, ce qui facilite les mécanismes de compensation, comme ceux auxquels vous pourriez être habitués dans les jeux multi-joueurs traditionnels.
Ce ne sont là que quelques-unes des très nombreuses API et utilitaires que l’équipe de Stadia fournie dans le cadre de cette boîte à outils. Contrairement à de nombreux commentaires trouvés sur la toile et parfois relayés par les « experts du jeu vidéo », Stadia n’est donc pas une plateforme cherchant à surfer de manière opportuniste sur l’industrie vidéoludique. Les équipes de Google travaillent en réalité depuis des années pour s’assurer que sa technologie ait des performances inégalées, capables de fournir d’excellentes expériences pour les joueurs, et ce à large échelle. Les équipes de développement de Stadia ont également veillé à ce que beaucoup d’outils soient à la disposition des développeurs et éditeurs de jeux vidéo, leur permettant de profiter pleinement de l’opportunité que présente Stadia de donner leur véritable vision du jeu vidéo.
Une nouvelle ère a été lancée avec Stadia qui pose le cadre de ce qui est véritablement la « next gen ». Le service devrait évoluer au cours des années à venir pour atteindre sa véritable maturité à l’horizon 2025. Il y a encore beaucoup à faire pour atteindre la vision de Jade Raymond mais le projet est en très bonne voie, et nous avons hâte de voir ce que 2021 va pouvoir nous apporter.
Voilà, c’est la fin de cette série consacrée à la technologie de streaming qui propulse Stadia officiellement depis plus d’un an. Nous aborderons d’autres aspects techniques dans les prochaines semaines. Si vous ne voulez pas rater cet article, abonnez-vous au blog. Sinon pour continuer cette discussion technique, n’hésitez pas à vous inscrire sur le Discord Stadia Fr si ce n’est pas déjà fait.