Le cloud gaming sous Linux

Dans cet article, je vous parle d’une tendance actuelle que connait le jeu vidéo, tous supports confondus. Même si elle demeure marginale, je crois qu’elle sera haussière  à l’avenir, à cause des raisons que j’évoquerai par la suite. Le marché du cloud gaming est un marché fragmenté et ses acteurs essayent de se faire une place dans la distribution du jeu, en considérant toutes les opportunités qui s’offrent à eux. J’espère que les utilisateurs de Ubuntu Desktop et de Linux seront capables de suivre cette tendance haussière, car elle pourrait représenter un moyen indirect à l’installation du jeu vidéo grand publique sur Linux.

Cloud gaming logos

Il y a plein de raisons au fait que le jeu vidéo n'arrive pas à prospérer sur Linux Desktop. Aucune n’a une importance prédominante, c’est plutôt la combinaison ce celles-ci qui en fait un obstacle difficile à franchir. On pourrait citer par exemple, les drivers de cartes graphiques qui sont rarement adaptés aux PCs sous Linux.


Pendant très longtemps, les constructeurs de cartes graphiques ont fait preuve de fénéantise lorsqu'il s'agissait de les exploiter correctement sur les différentes distributions. Faute de clients qui s'en plaignent, Nvidia ne propose à ce jour que le minimum en termes de support et d'interface pour l'utilisateur. Vous pouvez même être sûr que si un patch venait à être déployé, il arriverait presque toujours après être arrivé sur Windows. Pour ma part, je trouve que c’est scandaleux, d’autant qu’ayant acheté ma carte, je n’admets pas que son utilisation sur un système autre que Windows soit bridée et mal optimisée.


Pour une raison de part de marché, les grands studios de jeux vidéo ont longtemps déconsidéré Linux Desktop comme support pour leurs créations. Le travail à fournir pour porter des jeux qui exploitent des moteurs comme l'Unreal Engine et Unity sont minimes, et pourtant le support est constamment privé de jeux qui pourraient fonctionner aussi bien que sous Windows, si toutefois l'optimisation était adéquate.


Il y a certes des tentatives pour porter les jeux déjà existants sous Linux par le biais de projets comme Proton, dont la vidéothèque se remplit de jour en jour. Développé par Steam, cette librairie crée une couche de compatibilité qui permet, sans que les développeurs de jeux n’aient à faire le moindre effort, de faire fonctionner les jeux disponibles sous Windows avec toutefois une chute des performances causé par l’émulation.


L’effort pour porter des jeux vidéo sous Linux a toujours fait partie des projets de Steam et de Valve. J'aimerais vous rappeler à cette occasion le projet de Steam Machine, qui visait à proposer des consoles utilisant Linux Desktop comme OS et le client de Steam comme interface graphique. Ce projet est mort étouffé par la pauvreté du catalogue de jeux, et il n’en demeure que le client de Steam qui a été porté sous Linux.

NVIDIA RTX 3080
On est en janvier 2020, soit près de 4 mois après la sortie de la Nvidia RTX 3080 et pas moyen de mettre la main dessus.

Les obstacles qui entravent le jeu sous Linux ne sont pas seulement liés à son écosystème, certains qui ont fait leurs apparitions depuis peu, sont communs à d'autres plateformes et le quatrième trimestre de 2020 aura été révélateur de nombreux maux de l’indutrie.


Pour la première fois depuis sept ans environs, nous avons assisté à la sortie de deux consoles de jeux. Comme à chaque sortie, les performances des dites consoles ont été très largement supérieures à celles des consoles de précédentes génération, quatre à huit fois plus puissantes en fonction du modèle. Durant cette période également, les deux fabricants de GPU, Nvidia et AMD ont chacun à leur tour présenté des cartes graphiques ayant montré un gain de performance extraordinaire, appuyé par les technologies d'IA, qui ont permis de creuser le fossé avec les cartes génération précédente. Ce trimestre aura été du point de vue de l'augmentation de la puissance de calcul des processeurs phénoménal, et je ne parle pas seulement d'une augmentation prévisible, comme on y a pu assister depuis des années, mais d'un remaniement qui signera sans doute la fin de certaines architectures, de certains géants, et de certaines industries.


Il s'est aussi accompagné pour chacune des sorties précédemment citées d'une manière ou d'une autre de pénuries dues à l’approvisionnement. On n’est aujourd'hui plus capables de servir l'ensemble des demandeurs de puissance de calcul, car elle est de plus en plus utilisée dans d'autres secteurs plus importants, plus avantageux financièrement et plus utiles pour la société. Des secteurs qui touches les domaines de l'IA auxquels une grande puissance de calcul est nécessaire pour entrainer les modèles. Les secteurs du Data Mining ou de la crypto Currency.


Les joueurs sont au final ceux qui tirent le moins parti de ce matériel onéreux et rare. Ils ne passent pas 24h/24, 365 jours par an à utiliser leurs cartes graphiques, et ils ne travaillent pas à élaborer des algorithmes qui pourraient être capables d'inventer des vaccins, séquencer de l'ADN, faire des calculs complexes pour des simulations spatiales, etc...


Et je pourrais faire aux consoles exactement la même analyse, après tout une console n'est qu'un PC moins puissant. Dans un aveu d’impuissance, le PDG de Microsoft Xbox, Phil Spencer a confié à un journaliste de Gamespot qu'il en était réduit à demander au PDG d'AMD, Lisa Su, quand est-ce qu’il pourrait avoir plus de processeurs et de cartes graphiques pour ses consoles Xbox. Cet homme commande du matériel pour des dizaines de millions de consoles pour une compagnie importante, et il ne parvient pas à se faire servir car la présidente d’AMD a d’autres clients bien plus importants. Comme AMD fabrique des processeurs qui sont utilisés dans tout un tas de domaines et qu'apparemment celui des consoles est celui qui rapporte le moins, c'est tout naturellement qu'AMD préfère s'il a à faire un choix servir ses clients les plus importants.


C'est pour cela que je crois que le matériel informatique nécessaire pour faire tourner des jeux de plus en plus demandeurs en puissance de calcul, aura ou bien tendance à être moins disponible pour les joueurs, car d'autres acteurs s'en empareront pour maintenir leur production, ou bien à être plus cher car le circuit traditionnel proposera à la fois moins de pièces pour un publique plus important.


Si les consoles sont moins disponibles, les grands constructeurs de consoles finiront par attirer moins de développeurs. Si mon raisonnement vous semble tiré par les cheveux, je vous invite à considérer la sortie d'un jeu vidéo très attendu lors du mois de Décembre, Cyberpunk 2077. Cette sortie s'est faite dans la douleur à cause d’une optimisation bancale pour les consoles de nouvelles générations, et inexistante pour les consoles de la précédente génération, au demeurant, toutefois parfaite pour le PC. Si beaucoup y voient un retard lié au causes naturelles, ou encore un échec des développeurs, moi j'y vois la limite d'un modèle.


Développer un jeu vidéo prend énormément de temps, et il faut optimiser l'expérience de jeu sur chaque support sur lequel le jeu est publié. L’optimisation passe par l’amélioration de petites choses comme configurer les touches sur une manette, ou encore ajuster les vibrations à certains endroits du jeu en fonction du modèle de manette. Elle passe aussi par l’amélioration de choses complexes auxquels on ne pense pas comme l’ajustement du temps de chargement sur des disques dur différents, ou utiliser des APIs spécifiques à l'environnement. Autant d'éléments qui font du déploiement d'un patch de dernière de minute un cauchemar, tant il faut le tester sur chaque support que l'on s’est astreint à supporter. Ce qui se faisait sans peine avant, demande plus de ressources humaines maintenant que l'on exige des jeux qu'ils aient des graphismes et animations parfaites et des mondes infinis capable de tenir les joueurs en haleine pour l'éternité.


Le prix toujours plus haut, d'un matériel moins disponible, exploité par des drivers mal optimisés sur une plateforme impopulaire, à laquelle les développeurs de jeux n'accordent pas d’importance ; je me suis fait à cette idée, et les grands studios aussi s'y sont fait. Certes, ils continuent d'utiliser Linux dans un tas de domaines qui se rapportent à l’élaboration de jeux vidéo, utilisent parfois même le noyau Linux pour le système d’exploitation des consoles, mais il est hors de question de les déployer sur ce support car ils ont suffisamment à faire avec tous les autres supports.


Pourtant, un tout dernier développement pourrait permettre aux utilisateurs de Linux Desktop de profiter des derniers jeux, comme leurs homologues sur Windows et consoles par le biais du Cloud Gaming. Depuis fin 2019, les services proposant cette alternative se font nombreux et rivalisent d'inventivité afin de proposer des tarifs et un catalogue intéressant. En outre, Ils permettent de passer outre l'obsolescence programmée du matériel, d’éviter un quelconque processus d'installation, et ne demandent que peu d'efforts aux développeurs qui pourraient en théorie, si le support devenait lucratif, ne gérer que quelques plateformes.


Leur mode de fonctionnement est facile à comprendre. Vous envoyez l'input d’un périphérique (clavier, souris, manette) à un serveur et vous recevez en retour un flux vidéo comme celui de Netflix, tout le traitement se fera sur le serveur qui optimisera le retour vidéo en fonction du débit internet. Si la promesse est alléchante, elle se heurte cependant à deux limites. La première est que vous devez disposer d'une connexion internet stable et suffisante, et la seconde que vous devez être suffisamment proche du serveur pour que l'envoi de l'input et le retour vidéo se fassent instantanément, autrement vous auriez du lag.


De nombreux services comme Google Stadia qui est disponible sur navigateur, et GeForce Now qui est disponible sur le Ubuntu Store, proposent d'ores et déjà une forme de cloud gaming avec toutefois un modèle économique différent. Il est important de noter que ces services, puisqu’ils utilisent tous un serveur, doivent d’une manière ou l’autre utiliser Linux. Si les joueurs abandonnaient les autres plateformes au profit du cloud, c'est tout naturellement que Linux serait adopté comme environnement de distribution de jeux. Si au début, il devra d’une manière ou l’autre émuler des librairies non disponibles, ou carrément un système d’exploitation entier, les développeurs auront vite tendance à virer toutes les couches intermédiaires que nécessite l’émulation. En effet, l’émulation coute de la puissance de calcul, qui a son tour coute de l’argent.


Cela s’est déjà produit par le passé avec le marché des serveurs et des logiciels professionnels. Par exemple, presque tous les outils de développement sont disponibles sous Linux Desktop nativement. Puisque les serveurs sont majoritairement sous Linux et qu’ils servent à distribuer les logiciels sous forme de services, il faut que les serveurs puissent être capables d’embarquer des interpréteurs de toutes sortes pour pouvoir les exploiter. Si une technologie fonctionne sur un serveur qui embarque le même noyau qu’un pc de bureau, le portage du jeu sur bureau se fera sans peine. Il sera même très apprécié par le développeur lui-même qui pourra tester son logiciel sur l’équivalent de sa plateforme de distributions sans passer par l’émulation.


Je vous ai livré ici ma réflexion sur le sujet et un des avenirs que j’imagine pour le jeu vidéo sous Linux. J’y ai abordé plusieurs aspects qui me semblent cruciaux et qui concernent autant le logiciel en général que le jeu vidéo en particulier. A moins d’avoir des années d’avance dans un domaine, il est impossible aujourd’hui de proposer un logiciel complet à une date de sortie prévue, sur d’innombrables supports, c’est pour cela que les logiciels en livraison continue se font de plus en plus nombreux (Google Docs, Slack, Discord…), et les jeux multi plateformes réussis si rares.


Si vous avez apprécié mon article, partagez-le sur vos réseaux sociaux favoris afin qu'un maximum de personnes le lisent. Merci.

Aucun commentaire:

Fourni par Blogger.