Il faut bien l'avouer, le casque d'Apple, le Vision Pro, a quelques atouts mais les jeux n'en font pas partie. Alors que le monde PC (et celui des consoles) vise les joueurs avec les différents modèles de casques, Apple s'oriente vers d'autres usages. Ce qui n'empêche pas quelques développeurs de tenter l'aventure. Phillip Johnson, qui a développé Vacation Simulator explique ainsi à nos confrères de Game Developer comment il a porté le jeu sur le Vision Pro. Il a aussi effectué le même travail sur Job Simulator, lui aussi disponible sur le casque.
![](https://cdn.mgig.fr/2024/08/mg-94640382-w1920-w828-w1300.jpg)
Un des premiers problèmes est venu de l'animation des mains. Les jeux tournent à 90 Hz, mais le suivi des mains, lui, se limite à 30 Hz, qui plus est sans une assistance matérielle. Sur les casques de joueurs, des accessoires servent généralement à positionner les mains, alors qu'Apple se repose sur les caméras de son casque. Au départ, cette limite posait de nombreux problèmes et rendait les jeux injouables. Pour régler ce souci, les développeurs ont trouvé une solution visiblement efficace : ils ont tenté d'extrapoler la position des mains, une voie inspirée des jeux en ligne pour caler la position des joueurs. L'idée est d'essayer de deviner la (future) position des mains en se basant sur les données précédentes… et elle fonctionne.
![](https://cdn.mgig.fr/2024/08/mg-4c0585e8-w2560-w828-w1300.jpg)
Pour la position des doigts, cette voie manquait d'efficacité, mais ils ont aussi trouvé une solution, en attendant un suivi des mains à 90 Hz avec visionOS 2.0. Pour les doigts, au lieu de tenter d'extrapoler la position, ils ont décidé de se baser sur des positions naturelles, récupérées pendant les essais, plutôt que de tenter d'en générer automatiquement. Ce choix a permis de rendre les deux jeux utilisables.
Un problème de graphismes… réglé avec des blagues
Un autre souci est venu des shaders, une partie importante dans le monde des graphismes. De façon très schématique, un shader est un petit programme qui va effectuer une tâche sur les pixels affichés à l'écran. Les shaders sont écrits dans un langage spécifique et doivent être compilés en fonction de la plateforme. Le problème vient de cette compilation, surtout avec visionOS. Dans un jeu classique, les shaders sont souvent compilés à la volée, ce qui peut amener des saccades. Sur un casque de réalité virtuelle (ou mixte comme chez Apple), c'est un problème : les saccades peuvent rendre malade l'utilisateur. L'autre solution consiste à effectuer la tâche pendant un temps de chargement, par exemple quand un joueur prend un ascenseur, mais les restrictions de visionOS empêchent les pauses de ce genre.
![](https://cdn.mgig.fr/2024/08/mg-7345d3fc-w1920-w828-w1300.jpg)
La solution choisie est un compromis : une compilation partielle au premier démarrage. Elle est moins longue que sur certains jeux PC où la tâche peut prendre littéralement plusieurs heures, mais pour faire patienter les joueurs pendant les quelques minutes nécessaires, les développeurs ont intégré leurs meilleurs Dad Jokes1 sur l'écran de chargement.
La dernière partie se concentre sur l'audio, mais elle est moins intéressante, dans le sens où le problème vient des choix effectués dans les deux jeux au départ. Le problème est que leur architecture pour la spatialisation de l'audio n'était pas compatible avec les API d'Apple, car Unity — le moteur choisi — ne les intègre pas nécessairement. La solution a été de passer par un gestionnaire audio open source et de le modifier pour qu'il puisse être compilé pour visionOS, avant d'adapter les jeux à ce gestionnaire.
Pour le reste, les développeurs sont visiblement contents du résultat et ils montrent qu'il est possible de proposer des jeux intéressants pour le casque d'Apple, même si ce n'est pas un outil qui vise spécifiquement ce domaine.
-
Cette expression américaine caractérise les blagues souvent nulles ou peu amusantes qu'un père de famille peut raconter. ↩︎