Portage de StellarX sur Meta Quest

Sautez à bord en compagnie de l’équipe de StellarX, et voyez le processus de transformation du logiciel en une version complètement autonome

StellarX
Blog StellarX
Published in
13 min readMay 30, 2023

--

Lorsque Meta a annoncé le lancement de son nouveau casque Meta Quest Pro, nous avons entrevu une opportunité en or de diversifier l’accessibilité de StellarX. Ici, chez OVA & StellarX, notre mission fondamentale est de rendre les expériences immersives accessibles à quiconque; c’est pourquoi nous croyons que de rendre StellarX disponible via les appareils de VR mobile autonomes et aussi essentiel que de s’assurer que nous sommes indépendants de tout appareil (hardware agnostic), ce qui se traduit par le support de différents écosystèmes tout en maintenant une compatibilité multiplateforme complète. Pour nous, la multimodalité est la clé — et nous sommes toujours désireux d’explorer de nouvelles manières d’interagir avec les « réalités ». ✨

Ainsi, lorsque Meta nous a offert l’opportunité de joindre StellarX à son écosystème, nous étions absolument exaltés. Ce portage nous permettrait de travailler sur l’implémentation de fonctionnalités de réalité mixte (dont le déploiement est prévu incessamment) à la plateforme, tout en faisant de StellarX un produit VR multiplateforme entièrement autonome. Meta a su voir le grand potentiel offert par StellarX, un Espace permettant à quiconque de créer des expériences immersives, interactives et collaboratives.

Et maintenant, après des mois de dur labeur… Nous sommes fiers de dire que StellarX standalone est finalement devenu réalité! StellarX a été lancé sur la Boutique Meta Quest en date du 27 avril 2023. 🎉

Aussi simple que cela puisse paraître, ce n’a pas exactement été le cas. Il y avait beaucoup de facteurs à prendre en compte, et les équipes de R&D, de développement, de design et d’art y ont investi du temps, des efforts et des ressources considérables. Curieux de savoir comment nous y sommes parvenus? Laissez-nous vous guider à travers l’entièreté du processus de portage, et ce, de différents points de vue!

R&D

Pour la recherche et le développement à grande échelle, nous avons eu plusieurs défis à relever en cours de route — plus particulièrement en termes de performance. Développer une application sur une seule plateforme est déjà un défi en soi; alors, porter une app de création sandbox originellement développée pour les appareils PCVR au VR mobile, tout en maintenant une parité des fonctionnalités 1:1, était à un tout autre niveau.

Pour StellarX spécifiquement, nous avions affaire à des environnements interactifs générés par les utilisateurs incluant de la physique, des modèles 3D et divers médias importés au moment de l’exécution, une mise en réseau multi-utilisateurs, un transfert dans le nuage, des avatar animés et, enfin, un système de script visuel à part entière pour la création de scénarios. Nous devions trouver une façon d’adapter ces fonctionnalités tout en maintenant un taux de rafraîchissement stable de 72 FPS, plus qu’essentiel pour le confort de l’utilisateur dans une expérience VR, et en assurant la plus grande fidélité graphique possible. De plus, sur Quest 2, le tout devait tenir dans 6 Go de mémoire partagée entre le CPU et le GPU. 🖥️

Puisque StellarX permet aux utilisateurs de construire leurs propres environnements de zéro, nous ne pouvions pas nous appuyer sur des astuces d’optimisation de jeu fréquentes telles que l’éclairage pré-calculé et le static batching. Nous avons également choisi de travailler avec des ombres en temps réel; bien qu’il s’agisse d’un choix risqué sur VR mobile, elles rendaient les environnements beaucoup plus réalistes. Tout ceci a été rendu possible en partie grâce à l’implémentation de Meta du Fixed Foveated Rendering (Quest 2) et du Eye tracked Foveated Rendering (Quest Pro), qui réduisent la résolution de rendu de la vision périphérique et économisent des ressources GPU pour rendre, à une résolution plus élevée, la région fovéale (qui correspond à l’endroit où l’utilisateur regarde). Dans les mots de notre Directeur du Design XR et de la R&D, Pierre-Luc: « Après tout, nous parlons ici d’expériences immersives; il faut se sentir comme si nous étions réellement là ». Ainsi, la fluidité et la fidélité des environnements jouent un rôle important dans le succès de l’expérience. Ici, pas de raccourcis! Enfin, ce qui a fait toute la différence est qu’en tant qu’équipe, nous avons pu trouver notre « nombre d’or » en termes de collaboration. En convergeant vers le même but, nous avons nourri un environnement propice aux nouvelles idées, où l’expertise de chacun a pu rayonner. En fin de compte, nous ne sommes que des personnes construisant des choses pour d’autres personnes; et une technologie de réalité virtuelle n’est qu’aussi réelle que l’expérience humaine qu’elle sert.

Développement

D’un simple point de vue de développement, il y avait beaucoup à considérer; de l’intégration de nouveau contenu, à la résolution de problèmes de compatibilité causés par la migration vers une nouvelle plateforme. Notre but était de lancer la version la plus complète, optimisée et conviviale de StellarX; et ce, de façon saine pour l’équipe. Le temps, la communication et la collaboration étroite étaient donc de mise! 👨‍💻

Environ la moitié de l’équipe dev a travaillé sur le portage lui-même, sur des corrections de bugs et sur des améliorations de performance et d’accessibilité, alors que l’autre moitié a travaillé sur de nouvelles fonctionnalités et d’autres initiatives similaires. Notre équipe d’assurance qualité a également sauté à pieds joints et nous a grandement aidés en identifiant et en documentant toutes sortes de problèmes. Dans l’ensemble, le processus de portage s’est plutôt bien déroulé; nous nous sommes assurés de planifier solidement au préalable, et bien que le temps ait passé très vite, nous laissions toujours un peu de place dans nos planifications bihebdomadaires pour des surprises inattendues et des requêtes de dernière minute. Au final, nous avons pu garder un débit régulier sans surcharger l’équipe; mais bien sûr, cela ne veut pas dire que nous n’avons pas dû faire face à quelques pépins en cours de route.

L’un des plus grands défis était relié à la charge de travail future. Bien que nous voulions rendre l’entièreté de StellarX disponible sur l’écosystème Meta, nous devions tout de même maintenir la version PCVR du logiciel en parallèle. Ainsi, une question a surgi: comment pouvions-nous supporter deux plateformes simultanément, sans toutefois doubler la charge de travail pour l’équipe? Si nous ne nous attaquions pas à ce problème lors des premiers stades du développement, il deviendrait bien vite impossible de maintenir le produit de façon adéquate. Ainsi, via de nombreuses itérations, nous avons développé des outils automatisés pour tester, construire et déployer StellarX sur les deux plateformes, et nous avons travaillé de concert avec notre équipe QA en vue d’alléger autant que possible le travail manuel pour pouvoir se concentrer sur ce qu’il y a de plus important: s’assurer de fournir des expériences immersives, interactives et significatives par le biais de StellarX.

Design

Le lancement sur la boutique Quest a entraîné de nombreux changements à gérer du côté design; des flux utilisateur lors du lancement de l’application, à la simple manière dont les interfaces sont construites. Dans l’ensemble, les questions que nous nous sommes posées lors de la conception de la version autonome de StellarX ont permis d’aborder d’importants points en termes d’ergonomie et d’accessibilité, et ainsi de faciliter de nombreuses améliorations générales à l’expérience utilisateur du logiciel.

La conception des interfaces a définitivement occupé une place centrale dans la contribution de l’équipe design au portage. Pour nous assister, nous avons utilisé les directives du Oculus Developer SDK, comportant une section riche sur les considérations de design UX. Cette documentation nous a offert une base solide pour la création d’interfaces utilisateur (UIs) de haute qualité, lisibles, utilisables et visuellement attrayantes dans un contexte d’application autonome. Tout au long du processus, nous avons pris soin d’intégrer ces directives de recherche et de documentation à nos propositions au meilleur de nos capacités. Nous avons également eu l’opportunité d’aborder des projets complémentaires qui ont conduit à des améliorations significatives à l’expérience utilisateur de StellarX. Par exemple, nous avons retapé l’entièreté des flux de connexion et d’inscription au lancement de l’application, pour permettre un processus fluide pour tous les utilisateurs entrants; priorisant par le fait même la simplicité, la convivialité, et fournissant des informations complémentaires à nos utilisateurs.

Dans l’ensemble, le processus s’est bien déroulé pour l’équipe design, en partie parce que nous avons passé beaucoup de temps à explorer les capacités du Quest et la gamme d’expériences déjà offertes sur la boutique et l’AppLab. En tant que designers, il est de notre devoir d’être exposés à un grand nombre d’expériences VR diversifiées telles que des jeux vidéo, des applications de productivité, des animations, et plus; non seulement pour générer de l’inspiration, mais aussi pour savoir ce qui fonctionne bien, et ce qui fonctionne moins. Nous nous sommes définitivement gardés occupés avec nos casques dans les 12 derniers mois, et sommes tombés encore plus amoureux de ce que nous faisons, et de la plateforme pour laquelle nous concevons. 💖

Enfin, le lancement de l’app sur un appareil plus largement accessible qu’un PC ou un portable prêt pour le VR soulevait également des questions en matière d’accessibilité. Il serait plus facile d’installer et d’essayer StellarX; les implications seraient donc que plus d’utilisateurs seraient exposés à l’application. Ceci a ouvert la voie à la réception et à l’implémentation de commentaires et d’idées générés par les utilisateurs, ce qui est une perspective excitante que l’équipe design attendait avec impatience: le fait de rendre l’application plus largement disponible, afin d’en apprendre encore davantage sur l’expérience de nos utilisateurs.

Art

En ce qui concerne l’art 3D, cette réorientation nous a permis de réfléchir à ce qui était essentiel dans la composition d’un environnement 3D pour le rendre réellement intéressant, crédible et immersif. Quels étaient les facteurs déterminants pour créer un réel sentiment de présence en VR?

Durant le processus, l’équipe d’art s’est surtout concentrée sur l’adaptation des modèles et des assets existants, ainsi que sur la création de nouveau contenu rendu disponible avec la version Meta Quest de StellarX. Bien entendu, ils ont aussi fait face à leur part de défis, puisque le VR mobile s’accompagne de plusieurs contraintes de performance par rapport au PCVR. 🧐

Le plus significatif était sans aucun doute la réduction de la limite maximale d’objets à l’intérieur d’un seul environnement. Préserver l’essence et l’ambiance générale des modèles d’Espace, tout en en réduisant leur contenu et en essayant de maintenir une certaine ressemblance avec les versions originales, était un véritable casse-tête. Ce qui nous a permis d’éviter de réduire drastiquement le nombre d’objets inclus dans les environnements (les rendant ainsi tristes et vides!) était une meilleure gestion des matériaux et des textures. Ce processus d’optimisation a été la clé pour l’obtention d’environnements magnifiques, complets et même améliorés pour la version autonome.

Alors, quoi de neuf exactement?

Maintenant, c’est bien beau tout ça, mais vous devez vous demander — quel nouveau contenu vous attend dans cette version neuve et améliorée de StellarX?

Eh bien, pour commencer, nous avons apporté de nombreuses améliorations techniques; du système d’Avatars au pipeline de rendu, en passant par le tutoriel de l’application, le UX/UI, des corrections de bugs, et bien plus encore. Nous avons également optimisé le flux de démarrage de l’application et les processus de connexion et d’inscription depuis l’intérieur du casque VR. Toutes les plateformes pourront bénéficier de la majorité du travail qu’a entraîné le processus de portage; le but premier étant, bien sûr, d’amener StellarX à son plus haut niveau de maturité. 🙌

Trois nouveaux modèles ont été ajoutés à toutes les plateformes: Monorail, Havre hivernal et Héliport.

Sinon, pour l’instant, trois de nos modèles originaux ont été retravaillés afin de les rendre disponibles sur Meta Quest: l’Entrepôt, le Hangar et la Salle de Conférence, qui ont été renommés Centre de stockage, Aérodrome et Amphithéâtre. Ces modèles ont été améliorés et allégés, offrant ainsi à tous les utilisateurs de StellarX une plus grande marge de manœuvre avant l’atteinte des limites de performance. L’objectif ultime serait d’éventuellement rendre l’entièreté de notre librairie de modèles disponible sur VR mobile; nous vous assurons, nous y travaillons!

En outre, de nombreux nouveaux objets ont été ajoutés aux Collections afin d’offrir aux utilisateurs davantage de possibilités lors de la création d’environnements. StellarX étant utilisé pour des besoins de formation et de simulation dans un large éventail d’industries, nous voulions nous assurer de couvrir toutes les bases et d’être aussi versatiles que possible! Certains ajouts notoires sont des objets animés tels qu’un avatar humanoïde, un dinosaure, des voitures, et plus. 🚗

Prévu pour très bientôt, un nouvel arsenal de fonctionnalités de réalité mixte fera son apparition, tirant parti des particularités du Meta Quest 2 et du Meta Quest Pro telles que le color passthrough, les ancres spatiales et la compréhension de scène. Finalement, nous travaillons actuellement sur encore plus de nouvelles fonctionnalités prévues pour la fin du mois de juin, telles que le mode Création multijoueur ainsi que le hub d’importation, qui permettra à quiconque d’importer facilement ses propres assets et ressources, quel que soit son appareil. Cette version prendra également avantage des fonctionnalités exclusives du Meta Quest Pro telles que le suivi du regard, et exploitera la reconnaissance vocale et d’intention par l’IA (NLU) pour faciliter le processus de création.

Soulignons que la technologie de base reste la même dans les deux versions de StellarX, et qu’il n’y a pas de différences majeures entre les fonctionnalités de la version PCVR et la version autonome. Outre les fonctionnalités imminentes de réalité mixte et de suivi du regard, qui seront exclusives aux appareils Meta Quest, le nouveau contenu ainsi que les améliorations sont et seront accessibles tant aux utilisateurs PCVR qu’aux utilisateurs Meta Quest. Nous avons également veillé à ce que l’expérience utilisateur globale soit uniforme d’une version à l’autre en intégrant les nouveaux contenus, flux et améliorations d’usabilité à notre version PCVR également. Comme toujours, l’accessibilité et la démocratisation sont au cœur de ce que nous faisons; et nous voulons que toutes les versions de notre app reflètent cette vision!

Collaboration & synergie

Bien que chaque équipe ait été confrontée à des défis individuels au cours du processus de portage, l’un des aspects clés de la réussite de ce projet était la collaboration générale. En l’espace de 12 mois, les équipes ont tenu une variété de réunions, tant hors-VR qu’en VR. César, Lead Designer UX/UI, déclare:

« [Les sessions de brainstorming en VR] ont été parmi les plus amusantes que nous ayons eues au cours de ce projet. Et [pour l’équipe design spécifiquement], puisque nous sommes entièrement à distance (avec des membres provenant de 3 villes différentes), c’était également la première fois que certains de nos coéquipiers pouvaient être « présents » ensemble, dans la même salle de conférence virtuelle! Réellement fascinant. Je pense que ça nous a permis de resserrer les liens au sein de l’équipe. »

De manière plus générale, ce projet a donné à nos équipes l’opportunité de nourrir une synergie interfonctionnelle en se concentrant ensemble sur des fonctionnalités spécifiques. Par exemple, via une collaboration étroite avec les équipes de R&D et de design, l’équipe de développement a pu optimiser et traiter toutes ses priorités de performance et d’accessibilité tout en maintenant un rythme régulier pour le développement de nouvelles fonctionnalités et la correction de bugs. La communication, la priorisation et la collaboration étaient essentielles pour prévenir le redoutable crunch time. De son côté, alors qu’elle travaillait sur le hub d’importation, l’équipe design a dû mener des entretiens avec les utilisateurs et des recherches approfondies sur une période de 6 mois, durant lesquels ils étaient en constant contact avec les équipes de développement et de R&D et où les livrables se succédaient à un rythme soutenu.

Dans l’ensemble, l’équipe est très fière d’avoir pu mener à bien un projet aussi colossal en une courte année seulement; et ce, de façon saine pour l’équipe. 💪 Boris, Lead Artiste 3D, souligne:

« Le travail d’équipe, tout au long du processus, a été vraiment inspirant et motivant, nous poussant tous à donner le meilleur de nous-mêmes pour générer le produit le plus complet possible. Le fait que toutes les optimisations réalisées nous aient permis de conserver la plupart de nos environnements est extrêmement gratifiant. »

Maintenant que StellarX est devenu une application autonome, nous ne pouvons pas nous empêcher de nous demander ce que l’avenir nous réserve.

Nous croyons qu’essentiellement, il peut être résumé en deux mots: rétroaction utilisateur. Nous sommes impatients d’en apprendre plus sur l’expérience de nos utilisateurs lorsqu’ils créent et jouent dans StellarX. Qu’est-ce qu’ils aiment de l’application? Qu’est-ce qu’ils voudraient améliorer? Axel, Lead Développeur, affirme:

« Le lancement de StellarX sur une nouvelle plateforme nous permettra d’atteindre de nouvelles personnes, et nous avons hâte d’entendre ce qu’ils ont à dire. Il s’agit d’une gigantesque opportunité d’intégrer entièrement la rétroaction des utilisateurs à notre feuille de route pour nous aider à planifier les prochaines fonctionnalités, et à cibler ce qui sera le plus utile pour créateurs et joueurs confondus. »

Nous sommes dans l’attente de vos anecdotes, afin de pouvoir continuer à travailler sur une application conçue pour vous. Si vous avez une contribution, n’hésitez pas à nous contacter via notre site web, ou encore à venir discuter directement avec l’équipe sur notre serveur Discord! Nous sommes à votre pleine disposition. 👂

Dans un sens beaucoup plus large, ce processus de portage est aussi l’occasion parfaite pour nous d’expérimenter et de développer davantage des fonctionnalités de réalité mixte et d’IA, afin de de faire de notre plateforme une expérience de réalité étendue multimodale où les humains et les agents d’IA peuvent co-créer ensemble de façon harmonieuse. Alors, rassemblons-nous, et trinquons à l’avenir! 🍹

Pour en savoir plus sur les fonctionnalités et améliorations incluses dans cette version, consultez cet article, ou encore les notes de mise à jour (EN) du logiciel!

Cet article a été rédigé avec la précieuse collaboration de quelques-uns des leaders de notre équipe: Pierre-Luc Lapointe, Directeur du Design XR et de la R&D; César Lozano, Lead Designer UX/UI ; Axel Berneron, Lead Développeur; and Boris Imare, Lead Artiste 3D.

Read this article in English here

Dominique Hudon | Créatrice de Contenu | StellarX

--

--

StellarX
Blog StellarX

The ultimate Metaverse content creation tool for non-pro-users.🕹⛺🤖 Create anything. Experience everything.