Quand on parle de Shadow et du cloud, la première chose à laquelle beaucoup de monde pense, c’est la latence (point bonus pour la rime !). Quoi de plus naturel ? Il n’y a rien de plus frustrant que de se retrouver avec quelques dixièmes de secondes de décalage en pleine partie ou de sentir un poid sur sa souris comme si le curseur pesait 20kg...
Nous avons constaté qu’il s’agissait d’un des principaux sujets de conversation à propos de toutes les technologies de cloud, notamment dans les messages postés sur les réseaux et dans nos échanges avec la communauté. Et ça tombe bien car cette problématique a été placée au cœur du développement de Shadow depuis le premier jour.
Grâce aux retours, aux nombreux tests, aux échanges avec notre communauté mais aussi en comparant la plupart des services proposant du cloud, nos développeurs ont pu identifier et éliminer petit à petit les faiblesses de Shadow dans ce domaine, et notre Roadmap va vous montrer comment on peut encore améliorer notre technologie !
Le saviez-vous ? Sur un ordinateur local, il y a bien de la latence ! Celle-ci est induite par les différents composants de la machine : du processeur à la carte graphique, en passant par l’affichage sur l’écran ainsi que la gestion de tout ce petit monde par le système d'exploitation.
Le processus d’affichage d’une image prend naturellement du temps, infime certes, mais du temps quand même ! Cette latence est exprimée en millisecondes (ms). Si l’on considère que celle-ci est imperceptible dans le cas d’un PC classique, c’est qu’en moyenne, cette latence ne dépasse pas les 40ms. Il faut atteindre les 80 à 100ms pour que l’œil humain puisse distinguer clairement cette fameuse latence (à moins que ne soyez un cyborg). C’est le même principe que pour un jeu en ligne, lorsque vous remarquez que vos actions prennent du temps à être effectuées, on parle alors de ping, que les joueurs connaissent bien !
Mais quid de Shadow dans ce cas ? Shadow étant un PC, il est donc soumis aux mêmes latences que sur un local mais avec quelques étapes supplémentaires.
- En premier lieu, il y a l’encodage vidéo. Il permet de transformer l’image de l'ordinateur Shadow sous un format vidéo commun (H264) pour que celle-ci puisse être lisible par n'importe quel appareil distant. Ce processus ajoute moins de 10ms de latence. Ce qui est complètement négligeable lorsqu’on reprend les faits évoqués plus haut. D’autant plus que nous travaillons encore à l’optimisation de cette phase. Il faut bien comprendre que le système de streaming nécessaire au bon fonctionnement de Shadow n’a rien à voir avec la technologie derrière Netflix ou Youtube. Pour le streaming vidéo classique, l’image est déjà encodée dans tout un tas de formats adaptés pour toutes les résolutions. Et pourtant il arrive parfois de devoir attendre quelques secondes pour qu’un vidéo commence ! C’est comme si l’image de Shadow arrivait quelques secondes après !
- En second vient la composante réseau. Forcément en fonction de votre connexion internet et de la distance par rapport à notre datacenter, la latence est plus ou moins élevée. On parle alors du Ping (temps exprimé en ms pour faire un aller-retour entre le client et notre datacenter). Dans le cas d’une connexion fibrée, ce ping est de 27ms en moyenne en France par exemple. Dans le cas de l’ADSL, cette latence varie mais la moyenne se situe aux alentours de 58ms (sources ARIASE). Cette phase est la plus compliquée à évaluer. Gardez simplement à l’esprit que l’expérience sera inévitablement bien meilleure sur une connexion fibrée (et non pas tigrée, à ne pas confondre). Sur notre datacenter parisien, on observe d’ailleurs un ping médian de 14,5 ms. Et plus nous pourrons déployer de nouveaux datacenters plus ce ping va diminuer dans certaines zones géographiques.
- Enfin, vient la phase de décodage vidéo qui intervient cette fois-ci sur l’appareil local recevant le signal de Shadow. Encore une fois, cette phase est infime et ne représente que quelques millisecondes supplémentaires pour les appareils de moins de 3 ans et environ 5 à 10ms supplémentaires pour les plus vieux. Là encore tout dépend de l'appareil que vous possédez, un peu comme si vous lanciez un logiciel de décodage vidéo sur votre PC. Celui-ci sera plus ou moins long à démarrer en fonction de la puissance ou de la vétusté de celui-ci. A noter que cette phase est quasi inexistante sur la Shadow Box et la Shadow Ghost car nous maîtrisons complètement le hardware et le software installé.
Gregory Gelly (principal engineer Streaming) : “En dehors du réseau domestique, c’est aussi l’appareil local sur lequel tourne Shadow qui a de l’impact sur la latence. Plus une machine est vieille, moins elle sera capable de décoder rapidement le flux vidéo de Shadow. Cependant, Nous travaillons toujours sur l’optimisation des configurations plus anciennes ainsi que sur les phases d’encodage et de décodage de Shadow pour obtenir une meilleure expérience globale”. A cela, nous ajoutons également une technologie de “lissage” permettant d'anticiper d'éventuelles pertes de paquets afin que vos sessions Shadow soient fluides quel que soit votre environnement de connexion. Notre système a donc été pensé pour n’avoir que très peu d’impact sur la latence pour que votre expérience soit la meilleure possible.Tous les chiffres que nous avons exprimés dans cet article sont mesurés sur notre service actuel en utilisant la compression standard H264.
Au total on mesure donc un écart inférieur à 25ms sur Shadow par rapport à un PC local dans de bonnes conditions (60 images par secondes sur une fibre à 2ms). Un chiffre particulièrement bon puisqu’il signifie un retard inférieur à deux images par seconde ! En augmentant la fréquence de rafraîchissement on parvient même à descendre encore plus bas ! Mais je n’en dirais pas plus car ce sera le sujet d’un autre article à venir.
La technologie derrière Shadow s'améliore constamment, la récente mise à jour Copperfield en est la preuve et nous pouvons aller encore plus loin. En attendant, n’hésitez pas à consulter notre Roadmap afin d’être informé de nos avancées dans le développement de Shadow et de partager vos impressions et commentaires sur notre Discord ou nos réseaux sociaux !