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.
Commençons par le commencement : les pré-requis matériel. Pour faire de la VR via Steam Link il vous faut :
Donc j'ai 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 vaut vérifier mon compte Meta dont j'ai besoin pour télécharger Steam Link. Il me dit de me rendre sur www.meta.com/device et d'entrer un code à huit lettres. OK. J'entre l'URL sur mon téléphone et on me dit qu'il faut me connecter à mon compte Meta. Je rentre mon login et mon mot de passe.
Un code m'est envoyé à mon email. Je copie-colle le code depuis Gmail. On me dit qu'un code est envoyé par SMS à mon téléphone. Je le copie-colle. 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. Je suis 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 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 morceau. 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. A 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 donc je vais dans les options de Steam. Je vais dans le menu Remote Pair play sur PC et je lance Steam Link dans le casque et je fais 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 se lance à la fois sur la TV et le casque. Pourquoi pas.
La compilation des shaders commence mais bloque à 100%. Rien ne se passe. Je ne peux pas passer ou annuler. Au bout d'un moment Steam abandonne et redémarre tout seul. Ca commence bien. J'essaye une deuxième fois. Même résultat. A 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 l'instant et lance Half-Life 2. Même combat : crash et Steam qui redémarre. 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 : Meta n'utilise pas Steam Cloud et je suis sur un PC différent de mon PC principal qui me servait à faire de la VR. Mais sinon c'est parfait. La latence est presque invisible (j'ai 110H au compteur) 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 beta de SteamVR au lieu de la version stable et j'active l'option qui fait que SteamVR est mon runtime OpenXR par défaut. A 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é après avoir quitté le jeu et je ne l'ai jamais retrouvé depuis. Et cette fois ça marche. Half-Life 2 VR se lance et il se lance uniquement dans le casque. C'est parfait : je peux massacrer du zombie headcrab avec mon fils juste à côté sans qu'il soit traumatisé par l'expérience. Heureux, je quitte Half-Life 2 VR pour lancer Alyx. Et cette fois ça fonctionne. Sauf que là encore ma sauvegarde a disparu. Incrédule, je vais sur la page boutique du jeu et me rend compte que Valve n'a pas implémenté Steam Cloud pour son propre jeu ! (Pas de soucis pour HL 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 me dise 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 et impossible de 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. A 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 à avoir le 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 beta. 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, pas de problème de connexion,... Terminons sur un point positif : durant cette aventure, j'ai découvert que les gens qui créé le mod pour HL 2 ont aussi sorti des mods gratuits pour Episode 1 et Episode 2. Et il existe un mode VR pour Black Mesa.
Commençons par le commencement : les pré-requis matériel. Pour faire de la VR via Steam Link il vous faut :
- un PC décent
- un routeur WiFi décent
- un casque VR supportant Steam Link (Quest 2/3/3s, Pico 4/Ultra...)
Complexe administratif
Donc j'ai 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 vaut vérifier mon compte Meta dont j'ai besoin pour télécharger Steam Link. Il me dit de me rendre sur www.meta.com/device et d'entrer un code à huit lettres. OK. J'entre l'URL sur mon téléphone et on me dit qu'il faut me connecter à mon compte Meta. Je rentre mon login et mon mot de passe.
Un code m'est envoyé à mon email. Je copie-colle le code depuis Gmail. On me dit qu'un code est envoyé par SMS à mon téléphone. Je le copie-colle. 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. Je suis connecté à mon compte Meta dans le casque. Tout ce bordel aurait pu être remplacé par deux étapes :
- un message dans le casque "Ca 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 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 morceau. 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. A 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 donc je vais dans les options de Steam. Je vais dans le menu Remote Pair play sur PC et je lance Steam Link dans le casque et je fais 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 se lance à la fois sur la TV et le casque. Pourquoi pas.
La compilation des shaders commence mais bloque à 100%. Rien ne se passe. Je ne peux pas passer ou annuler. Au bout d'un moment Steam abandonne et redémarre tout seul. Ca commence bien. J'essaye une deuxième fois. Même résultat. A 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 l'instant et lance Half-Life 2. Même combat : crash et Steam qui redémarre. 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 : Meta n'utilise pas Steam Cloud et je suis sur un PC différent de mon PC principal qui me servait à faire de la VR. Mais sinon c'est parfait. La latence est presque invisible (j'ai 110H au compteur) 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 beta de SteamVR au lieu de la version stable et j'active l'option qui fait que SteamVR est mon runtime OpenXR par défaut. A 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é après avoir quitté le jeu et je ne l'ai jamais retrouvé depuis. Et cette fois ça marche. Half-Life 2 VR se lance et il se lance uniquement dans le casque. C'est parfait : je peux massacrer du zombie headcrab avec mon fils juste à côté sans qu'il soit traumatisé par l'expérience. Heureux, je quitte Half-Life 2 VR pour lancer Alyx. Et cette fois ça fonctionne. Sauf que là encore ma sauvegarde a disparu. Incrédule, je vais sur la page boutique du jeu et me rend compte que Valve n'a pas implémenté Steam Cloud pour son propre jeu ! (Pas de soucis pour HL 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 me dise 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 et impossible de 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. A 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 à avoir le 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 beta. 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, pas de problème de connexion,... Terminons sur un point positif : durant cette aventure, j'ai découvert que les gens qui créé le mod pour HL 2 ont aussi sorti des mods gratuits pour Episode 1 et Episode 2. Et il existe un mode VR pour Black Mesa.