ACTU
Les expériences à la con du week-end : épisode 16 - La VR sous Linux
par CBL,
email @CBL_Factor
Tout a commencé après avoir vu cette vidéo dans laquelle un Youtubeur tente de jouer à Half-Life: Alyx sur sa Steam Machine en diffusant le jeu sur son Quest 2 via Steam Link. Je me suis dit : "J'ai aussi une bécane SteamOS et un Quest 2". Le type précise "no real issues to report". Vérifions tout ça.
Commençons par le commencement : les pré-requis matériels. Pour faire de la VR sur Steam Link, il vous faut :
J'ai donc acheté un câble Ethernet et dépoussiéré mon Quest 2. Je l'ai allumé. J'ai pris soin de le charger et de mettre des piles neuves dans les manettes pour l'occasion. Comme ça fait un bail que je ne l'ai pas utilisé, on me dit qu'il faut vérifier mon compte Meta, dont j'ai besoin pour télécharger Steam Link. Je dois me rendre sur www.meta.com/device et entrer un code à huit lettres. Ok, j'entre l'URL sur mon téléphone puis on me dit qu'il faut me connecter à mon compte Meta. Je renseigne mon login et mon mot de passe.
Un code est envoyé sur mon email. Je le copie-colle depuis Gmail. Un second m'est envoyé par SMS. Je le copie-colle également. Je suis enfin connecté et je peux entrer le code à huit lettres, ce qui n'est pas très pratique vu qu'il est affiché dans le casque. Me voilà connecté à mon compte Meta dans le casque. Tout ce bordel aurait pu être remplacé par deux étapes :
J'enlève mon casque un instant et ma femme me dit de me regarder dans un vrai miroir. Le tour de mes yeux est couvert de particules noires. Le plastique de mauvaise qualité de la mousse de protection du Quest 2 tombe en lambeaux. Je ne me souviens plus si j'ai fait remplacer le mien. Bref, sur le PC je lance l'installation de SteamVR, Half-Life: Alyx, Half-Life 2 VR et Beat Saber. À chaque fois, Steam m'explique que rien de tout cela n'est compatible SteamOS mais j'ai fait ma prière habituelle à Saint-Gabriel. Le Quest 2 est prêt et je vais donc dans les options de Steam. Je me rends dans le menu Remote Play sur PC et je lance Steam Link dans le casque puis je démarre la procédure d'appairage. Tout fonctionne et je me retrouve dans SteamVR Home. J'essaye de lancer Half-Life: Alyx et je vois qu'il s'exécute à la fois sur la TV et le casque. Pourquoi pas.
La compilation des shaders commence mais bloque à 100 %. Rien ne se passe comme prévu. Je ne peux pas passer ou annuler. Au bout d'un moment, Steam abandonne et redémarre tout seul. Ça commence bien. J'essaye une deuxième fois, même résultat. À chaque fois, je dois quitter et relancer Steam Link sur le casque, voire redémarrer le PC. Comme je suis constamment en mode Big Picture, la petite fenêtre qui indique que SteamVR tourne est invisible. J'abandonne Alyx pour le moment et lance Half-Life 2. Même combat : plantage puis redémarrage de Steam. Je suis sur le point d'abandonner et lance Beat Saber. Et là, tout fonctionne du premier coup mis à part que je n'ai aucune sauvegarde. Un coup d'oeil sur la page boutique du jeu me dit pourquoi : le titre n'utilise pas Steam Cloud et je suis sur un PC différent de celui qui me servait à faire de la VR. Mais sinon c'est parfait. La latence est presque invisible (j'ai 110 heures au compteur sur ce jeu) et le framerate est impeccable. Je fais quelques chansons pour me défouler.
Mais je reste frustré de ne pas pouvoir jouer à Half-Life en VR. Je commence à googler mes problèmes et je fais deux modifications. Je passe sur la bêta de SteamVR au lieu de la version stable et j'active l'option transformant SteamVR en runtime OpenXR par défaut. À noter que je n'ai jamais réussi à trouver l'option dans les menus. Je crois que c'est Beat Saber qui me l'a proposée après avoir quitté le jeu et je ne l'ai jamais retrouvée depuis. Et cette fois, ça marche ! Half-Life 2 VR se lance et uniquement dans le casque. C'est parfait. Je peux massacrer du zombie headcrab avec mon fils juste à côté sans qu'il ne soit traumatisé par l'expérience. Heureux, je quitte Half-Life 2 VR pour lancer Alyx. Et cette fois, ça fonctionne également. Sauf que là encore, ma sauvegarde a disparu. Incrédule, je vais sur la page boutique du jeu et me rends compte que Valve n'a pas implémenté Steam Cloud sur son propre jeu (pas de soucis pour Half-Life 2 VR) ! Je suis en détails élevés et le framerate est parfait. Je dessine quelques bites sur la fenêtre dans l'intro pour me refamiliariser avec les contrôles.
Une fois satisfait, je quitte le jeu et tente de quitter SteamVR depuis le casque. L'affichage reste bloqué sur l'interface pendant quelques secondes avant que Steam Link ne m'avertisse que la connection avec le PC est perdue. Du côté du PC, Steam me dit que SteamVR tourne toujours. Impossible de l'arrêter. Je tente de relancer Steam Link mais je n'arrive pas à me connecter. Je dois relancer le PC. Voilà qui n'est pas très pratique. Une fois que le bousin tourne, je n'ai aucun problème à passer d'un jeu VR à l'autre mais quitter totalement la VR et y revenir est un peu plus brutal. À noter que j'ai essayé en mode desktop et c'est le même résultat. La seule différence est que je peux voir cette fois la petite fenêtre SteamVR et que je peux utiliser ce bon vieux xkill pour tuer SteamVR pour de bon. Au vu des forums Steam, je ne suis pas le seul à rencontrer ce problème sur SteamOS.
Globalement, la VR fonctionne sous Linux. Mais quant à dire "no real issues to report", je n'ai qu'un commentaire à faire : c'est encore loin d'être au point. Après, le support de ma bécane par SteamOS reste en bêta. Et en toute honnêteté, mon expérience de la VR sous Windows n'a jamais été satisfaisante, que ce soit au niveau personnel ou professionnel. Je dirais même qu'elle a progressivement empiré. Oculus Link a arrêté de fonctionner depuis bien longtemps et j'ai eu un bon paquet de galères avec SteamVR, y compris des plantages. Une fois, j'ai dû modifier le code JS de la page web (toute l'interface de Steam ou presque est en web) qui sert à mapper les boutons des Oculus Touch car elle affichait des erreurs. Quant à Steam Link, mon expérience a été aussi assez aléatoire au point de devoir passer à Virtual Desktop...
Espérons que l'arrivée (prochaine ?) du Steam Frame améliore et simplifie les choses pour la VR sur PC. Je suis limite nostalgique de l'époque HTC Vive. Certes, on avait un fil à la patte mais il n'y avait pas de surcouche Meta à la noix, ni de problème de connexion. Terminons sur un point positif : durant cette aventure, j'ai découvert que les gens qui ont créé le mod pour Half-Life 2 en ont aussi sorti des gratuits pour Episode 1 et Episode 2. Et qu'il existe un mod VR pour Black Mesa.
Commençons par le commencement : les pré-requis matériels. Pour faire de la VR sur Steam Link, il vous faut :
- un PC décent
- un routeur Wi-Fi décent
- un casque VR supportant Steam Link (Quest 2/3/3s, Pico 4/Ultra...)
Complexe administratif
J'ai donc acheté un câble Ethernet et dépoussiéré mon Quest 2. Je l'ai allumé. J'ai pris soin de le charger et de mettre des piles neuves dans les manettes pour l'occasion. Comme ça fait un bail que je ne l'ai pas utilisé, on me dit qu'il faut vérifier mon compte Meta, dont j'ai besoin pour télécharger Steam Link. Je dois me rendre sur www.meta.com/device et entrer un code à huit lettres. Ok, j'entre l'URL sur mon téléphone puis on me dit qu'il faut me connecter à mon compte Meta. Je renseigne mon login et mon mot de passe.
Un code est envoyé sur mon email. Je le copie-colle depuis Gmail. Un second m'est envoyé par SMS. Je le copie-colle également. Je suis enfin connecté et je peux entrer le code à huit lettres, ce qui n'est pas très pratique vu qu'il est affiché dans le casque. Me voilà connecté à mon compte Meta dans le casque. Tout ce bordel aurait pu être remplacé par deux étapes :
- un message dans le casque type "Ça fait un bail que vous n'avez pas utilisé votre compte, alors on vous a envoyé un email pour vérifier votre identité"
- un petit tour dans Gmail pour ouvrir l'email en question et cliquer sur un lien
Matériaux anormaux
J'enlève mon casque un instant et ma femme me dit de me regarder dans un vrai miroir. Le tour de mes yeux est couvert de particules noires. Le plastique de mauvaise qualité de la mousse de protection du Quest 2 tombe en lambeaux. Je ne me souviens plus si j'ai fait remplacer le mien. Bref, sur le PC je lance l'installation de SteamVR, Half-Life: Alyx, Half-Life 2 VR et Beat Saber. À chaque fois, Steam m'explique que rien de tout cela n'est compatible SteamOS mais j'ai fait ma prière habituelle à Saint-Gabriel. Le Quest 2 est prêt et je vais donc dans les options de Steam. Je me rends dans le menu Remote Play sur PC et je lance Steam Link dans le casque puis je démarre la procédure d'appairage. Tout fonctionne et je me retrouve dans SteamVR Home. J'essaye de lancer Half-Life: Alyx et je vois qu'il s'exécute à la fois sur la TV et le casque. Pourquoi pas.
La compilation des shaders commence mais bloque à 100 %. Rien ne se passe comme prévu. Je ne peux pas passer ou annuler. Au bout d'un moment, Steam abandonne et redémarre tout seul. Ça commence bien. J'essaye une deuxième fois, même résultat. À chaque fois, je dois quitter et relancer Steam Link sur le casque, voire redémarrer le PC. Comme je suis constamment en mode Big Picture, la petite fenêtre qui indique que SteamVR tourne est invisible. J'abandonne Alyx pour le moment et lance Half-Life 2. Même combat : plantage puis redémarrage de Steam. Je suis sur le point d'abandonner et lance Beat Saber. Et là, tout fonctionne du premier coup mis à part que je n'ai aucune sauvegarde. Un coup d'oeil sur la page boutique du jeu me dit pourquoi : le titre n'utilise pas Steam Cloud et je suis sur un PC différent de celui qui me servait à faire de la VR. Mais sinon c'est parfait. La latence est presque invisible (j'ai 110 heures au compteur sur ce jeu) et le framerate est impeccable. Je fais quelques chansons pour me défouler.
Oubliez Freeman !
Mais je reste frustré de ne pas pouvoir jouer à Half-Life en VR. Je commence à googler mes problèmes et je fais deux modifications. Je passe sur la bêta de SteamVR au lieu de la version stable et j'active l'option transformant SteamVR en runtime OpenXR par défaut. À noter que je n'ai jamais réussi à trouver l'option dans les menus. Je crois que c'est Beat Saber qui me l'a proposée après avoir quitté le jeu et je ne l'ai jamais retrouvée depuis. Et cette fois, ça marche ! Half-Life 2 VR se lance et uniquement dans le casque. C'est parfait. Je peux massacrer du zombie headcrab avec mon fils juste à côté sans qu'il ne soit traumatisé par l'expérience. Heureux, je quitte Half-Life 2 VR pour lancer Alyx. Et cette fois, ça fonctionne également. Sauf que là encore, ma sauvegarde a disparu. Incrédule, je vais sur la page boutique du jeu et me rends compte que Valve n'a pas implémenté Steam Cloud sur son propre jeu (pas de soucis pour Half-Life 2 VR) ! Je suis en détails élevés et le framerate est parfait. Je dessine quelques bites sur la fenêtre dans l'intro pour me refamiliariser avec les contrôles.
Une fois satisfait, je quitte le jeu et tente de quitter SteamVR depuis le casque. L'affichage reste bloqué sur l'interface pendant quelques secondes avant que Steam Link ne m'avertisse que la connection avec le PC est perdue. Du côté du PC, Steam me dit que SteamVR tourne toujours. Impossible de l'arrêter. Je tente de relancer Steam Link mais je n'arrive pas à me connecter. Je dois relancer le PC. Voilà qui n'est pas très pratique. Une fois que le bousin tourne, je n'ai aucun problème à passer d'un jeu VR à l'autre mais quitter totalement la VR et y revenir est un peu plus brutal. À noter que j'ai essayé en mode desktop et c'est le même résultat. La seule différence est que je peux voir cette fois la petite fenêtre SteamVR et que je peux utiliser ce bon vieux xkill pour tuer SteamVR pour de bon. Au vu des forums Steam, je ne suis pas le seul à rencontrer ce problème sur SteamOS.
Conséquences imprévues
Globalement, la VR fonctionne sous Linux. Mais quant à dire "no real issues to report", je n'ai qu'un commentaire à faire : c'est encore loin d'être au point. Après, le support de ma bécane par SteamOS reste en bêta. Et en toute honnêteté, mon expérience de la VR sous Windows n'a jamais été satisfaisante, que ce soit au niveau personnel ou professionnel. Je dirais même qu'elle a progressivement empiré. Oculus Link a arrêté de fonctionner depuis bien longtemps et j'ai eu un bon paquet de galères avec SteamVR, y compris des plantages. Une fois, j'ai dû modifier le code JS de la page web (toute l'interface de Steam ou presque est en web) qui sert à mapper les boutons des Oculus Touch car elle affichait des erreurs. Quant à Steam Link, mon expérience a été aussi assez aléatoire au point de devoir passer à Virtual Desktop...
Espérons que l'arrivée (prochaine ?) du Steam Frame améliore et simplifie les choses pour la VR sur PC. Je suis limite nostalgique de l'époque HTC Vive. Certes, on avait un fil à la patte mais il n'y avait pas de surcouche Meta à la noix, ni de problème de connexion. Terminons sur un point positif : durant cette aventure, j'ai découvert que les gens qui ont créé le mod pour Half-Life 2 en ont aussi sorti des gratuits pour Episode 1 et Episode 2. Et qu'il existe un mod VR pour Black Mesa.