
Créer Zenith : La Dernière Ville
Zenith : La Dernière Ville
Comment une petite équipe éloignée crée-t-elle un MMO en VR ? Avec une plateforme de développement flexible, une programmation multithread, des outils DevOps robustes et le soutien d'une communauté active, Ramen VR a lancé un jeu multiplateforme bien optimisé qui ravit les joueurs et inaugure une nouvelle ère de jeu.
Créer un MMO VR performant et réussi pour toutes les principales plateformes VR
PlayStation®VR, PlayStation®VR2, Quest, Quest 2, Rift, SteamVR
22
À distance

Faire un pari ambitieux
Andy Tsen et Lauren Frazier se sont rencontrés à Oculus Launch Pad en 2016, où ils ont noué des liens autour d'un intérêt commun pour les MMO et l'anime isekai. Le duo a vu une opportunité de combiner ces genres et de créer une nouvelle expérience MMO immersive en VR. En 2019, ils ont quitté leurs emplois, fondé Ramen VR et commencé à travailler sur Zenith : La Dernière Ville.

Les résultats
- Lancement d'un MMO VR avec une équipe de seulement 15 personnes
- Réussite éclatante avec la première place sur Quest et Steam au lancement
- Plus de 45 millions de dollars de financement d'investisseurs à ce jour
- Éliminé la perte de données de projet avec Unity Version Control

Obtenir l'adhésion à une vision audacieuse
Faire Zenith a nécessité un saut de foi : Tsen et Frazier ont financé le développement précoce de leur poche. « Le nom de notre studio vient de tout ce que nous pouvions nous permettre de manger à l'époque, » plaisante Tsen.
Un investisseur providentiel a tout changé. Bientôt, Ramen VR a été inscrit au programme d'accélérateur Y Combinator et a levé 280 000 $ en 45 jours avec une campagne Kickstarter record. Les contributeurs étaient impressionnés par l'ampleur du projet et la détermination du studio à le réaliser.
« Personne qui a déjà construit un MMO auparavant n'essaierait de faire cela, » dit Tsen. « Startup, VR, MMO, multiplateforme – c'est le développement de jeux en mode difficile ! »

Trouver les bons outils
Tsen et Frazier avaient précédemment collaboré sur un projet Unity primé – un MOBA VR, Conjure Strike – et étaient confiants de pouvoir s'attaquer à quelque chose d'encore plus ambitieux.
« Nous savions à quel point il serait difficile de construire un jeu de cette ampleur en VR, mais nous pensions aussi qu'il y avait un écart entre à quel point les gens pensent que c'était et à quel point c'était en réalité, » dit Tsen. « Cet écart était constitué de plateformes et d'outils comme Unity, qui permettent la création de contenu à une échelle beaucoup plus grande avec une équipe beaucoup plus petite. »
Ramen VR a lancé Zenith avec une équipe de 15, mais ils ont maintenant 22 membres clés dans l'équipe. Lors de la sélection de nouveaux outils de développement, ils s'assurent qu'ils sont personnalisables, facilement intégrés, fonctionnent bien avec les systèmes existants et sont accessibles aux contributeurs techniques et non techniques.

Construction d'une base grâce à la pile technologique orientée vers les données (DOTS)
En tant que jeux basés sur des systèmes, les MMO nécessitent des bases techniques solides et évolutives. Au début du développement, Ramen VR a organisé les systèmes de Zenith en utilisant des MonoBehaviors, mais exécuter la logique des centaines de fois sur des centaines de GameObjects identiques était inefficace. Ils ont tiré parti du cadre Entity Component System (ECS) de Unity, un pilier clé de la Data-Oriented Technology Stack (DOTS), pour éviter les inconvénients de la programmation orientée objet.
« Un MMO est une excellente application pour l'ECS », note Frazier. « Zenith nécessite des milliers d'Entités pour coexister en même temps, et l'ECS nous permet de fonctionner à grande échelle. »

Choisir le bon flux de production
Dans le nouveau flux de travail, chaque GameObject « acteur » (joueurs, mobs, objets à collectionner) a une Entité ECS correspondante. L'ECS parcourt les GameObjects et vérifie les balises pertinentes, déclenchant la logique chaque fois qu'elles sont trouvées.
« C'était agréable de pouvoir choisir le flux de travail approprié à la situation. Nous aurions pu faire des Objets purs ou des Entités pures – mais je ne pense pas que vous devriez avoir à choisir, » dit Frazier.

Prévention des limites de taux
L'ECS a également aidé à relever des défis d'infrastructure. Plus de 120 000 joueurs se sont inscrits pour tester en alpha Zenith, et Ramen VR a sous-estimé la pression que cela mettrait sur leurs serveurs. Lorsque de nombreux joueurs se sont déconnectés, les serveurs ont dépassé les limites de stockage et les joueurs ont perdu des données de sauvegarde. Pour résoudre ce problème, l'équipe a créé une balise ECS pour suivre la progression des quêtes. « Notre système ECS vérifie les balises, et lorsqu'il en trouve une, il la met dans une file d'attente, la retire toutes les X secondes et l'écrit dans un stockage externe, » explique Frazier.

Optimiser les visuels sur tous les appareils
Zenith est un MMO multiplateforme, donc optimiser les graphismes pour tous les principaux appareils VR était crucial pour s'assurer que le jeu atteindrait le plus grand nombre de joueurs possible. Créer des jeux VR signifie dessiner deux fois plus de GameObjects, à une résolution plus élevée, à des taux de rafraîchissement plus élevés, pour garantir une bonne immersion et réduire le mal de VR. Ils ont donc opté pour le Universal Render Pipeline (URP).
« Le Universal Render Pipeline était le meilleur choix pour nous car nous expédions sur PC, Android (Oculus Quest) et PSVR, » dit Frazier. « L'URP nous a permis de construire pour toutes les plateformes VR. »

Réduction des coûts de rendu
Avec le rendu Single Pass Instanced d'URP, Ramen VR pouvait rendre des visuels pour les deux yeux au même endroit, économisant du temps CPU et GPU et améliorant les performances. La personnalisation était également un atout. « Nous avons modifié les shaders standard (Simple Lit, Unlit) pour répondre aux changements de notre cycle jour-nuit – rendant les choses plus orange ou rouges au coucher du soleil, ajoutant une teinte bleue la nuit, et ainsi de suite », dit Frazier.
Le studio est satisfait de ce qu'il a réalisé avec URP, mais espère pousser les visuels de Zenith plus loin dans une future version. « Une grande partie de notre qualité originale a été sacrifiée en raison des limitations matérielles – principalement la mémoire, mais aussi le temps GPU », dit Frazier. « Maintenant, nous essayons de tirer parti de choses comme texture arrays pour retrouver une partie de cette fidélité perdue. »

Gestion des fichiers de projet
Pour s'assurer qu'ils peuvent livrer du nouveau contenu en continu et dans les délais, Ramen VR utilise Unity Version Control (UVCS) pour gérer le projet. « Cela nous a permis d'améliorer notre productivité, d'améliorer nos flux de travail et de travailler ensemble beaucoup plus facilement », dit le programmeur Jordan J.
UVCS a des flux de travail doubles pour les artistes et les ingénieurs, et les membres de l'équipe peuvent choisir de travailler de manière centralisée ou distribuée tout en s'engageant dans le même dépôt. « Le flux centralisé signifie moins d'accidents et de décalages entre local et distant que vous ne voyez avec quelque chose comme Git », dit Frazier. Ramen VR n'a jamais perdu de données de projet depuis l'adoption d'UVCS.

Rassemblement des joueurs
Une mise en œuvre intelligente d'ECS et une optimisation visuelle avec URP signifient que les joueurs peuvent s'aventurer ensemble et explorer le vaste monde de Zenith sans subir de ralentissements ou perdre des progrès. Et une pile technologique évolutive et personnalisable signifie que Ramen VR est prêt à continuer d'ajouter du nouveau contenu à Zenith pendant des années à venir.

Rejoignez des développeurs du monde entier qui utilisent Unity pour créer des jeux VR réussis.