EVERSPACE 2 fait cap sur le futur avec l'Unreal Engine 5

Redécouvrez les Beltegrades sous un nouveau jour avec Lumen

Avec l'aimable autorisation de ROCKFISH Games
Bonjour, nous sommes Caspar Michel, producteur, et Marco Unger, artiste 3D et responsable des effets visuels et des environnements chez ROCKFISH Games. Nous faisons partie d'une petite équipe basée à Hambourg en Allemagne et spécialisée dans la création de jeux d'action spatiaux avec notre série EVERSPACE. Notre dernier titre, EVERSPACE 2, est paru sur PC en avril 2023 et sur Xbox et PlayStation en août 2023. Dernièrement, la mise à jour Incursions du 29 avril 2024 a marqué le passage d'EVERSPACE 2 de l'Unreal Engine 4 à l'Unreal Engine 5.3. Nous allons vous parler des avantages et des défis que ROCKFISH a rencontrés lors de cette migration.

En faisant passer EVERSPACE 2 d'une version standard de l'UE4 à l'UE 5.3, notre objectif était d'assurer la maintenabilité du jeu à long terme et de simplifier le développement du contenu pour les extensions à venir. Il s'agissait d'une mise à niveau stratégique visant à éviter les complications lors des phases de développement et des mises à jour futures. Nous avons estimé que le travail effectué aujourd'hui nous éviterait d'éventuels casse-têtes demain.
L'association d'une lumière stellaire ambiante et des éclairages multiples de la station Prescott donne tout son sens à Lumen (image de droite).
Nous utilisons généralement les dernières technologies et mettons à jour le moteur régulièrement pendant le développement, en nous appuyant fortement sur les extensions de plateforme, dont certaines ne fonctionneraient plus correctement avec un SDK obsolète. Si nous n'avions pas prévu de poursuivre le développement d'EVERSPACE 2, nous serions probablement restés sur l'UE4, mais comme nous avons l'intention de créer du contenu d'extension, nous aurions perdu énormément de temps à trouver des solutions pour les outils obsolètes.

Intégration de Lumen

EVERSPACE 2 est considéré par beaucoup comme l'un des titres spatiaux les plus séduisants du marché aujourd'hui. Nous sommes particulièrement fiers de l'éclairage du jeu, qui mélange une solution d'éclairage global précalculé et un éclairage global de l'espace écran (SSGI) pour tous les types de zones dans les divers systèmes solaires du jeu. Cependant, les lightmaps à haut niveau de détail demandent plusieurs jours de calcul, même avec le matériel très performant de notre studio.
L'éclairage global indirect de Lumen (image de droite) simule le rebond de la lumière sur les surfaces (un calcul souvent très coûteux) afin de créer des ombres plus détaillées et réalistes. Cela apporte plus de caractère à une scène ou à une zone.
Pour implémenter Lumen, il nous a suffi de régler une variable dans notre fichier de configuration (INI) sur "True". Nous n'avons rien eu à faire de plus pour que la fonctionnalité soit utilisable. C'est rare, dans le développement de jeux ! De prime abord, nous étions sceptiques vis-à-vis de la mise en œuvre du système d'éclairage global dynamique et de reflets, mais nous avons rapidement constaté que Lumen améliorait des visuels déjà impressionnants. Aucune autre lightmap prégénérée ne l'aurait permis.
Les os de cette créature antique semblent encore plus érodés avec Lumen (image de droite).
Nous avons implémenté Lumen en quelques clics seulement, mais nous avons apporté des modifications supplémentaires au fichier INI afin d'augmenter le rayon de culling de scène du ray tracing et de l'adapter à l'ampleur de nos environnements, tout en activant l'occlusion ambiante de l'espace écran (SSAO) en association avec Lumen. C'était un choix plutôt artistique et, bien que ce ne soit pas particulièrement réaliste, ce qui est visible à l'écran a énormément gagné en profondeur. 

Le résultat final avec Lumen est spectaculaire, en particulier dans les situations d'éclairage à fort contraste où la lumière des étoiles se reflète dans la géométrie complexe des stations spatiales, des structures antiques et des plateformes minières.
Les ombres gérées par Lumen (image de droite) renforcent encore le niveau de détail de cette colonie minière fourmillante.
Néanmoins, tout n'a pas été aussi simple que l'intégration de Lumen. La migration s'est accompagnée de quelques problèmes liés aux systèmes de particules Niagara, qui ont fait l'objet de modifications importantes. Certains modules étaient obsolètes et d'autres avaient été fusionnés, ce qui entraînait des erreurs lorsque l'éditeur essayait de convertir ou de mettre à jour automatiquement les systèmes existants. Avec la suppression du déplacement de matériaux, nous avons également dû retravailler en profondeur une grande partie des effets visuels, ce qui n'est pas une mince affaire dans un jeu plein de lasers flashy et d'explosions colorées. Malgré tout, nous avons estimé que l'opération serait rentable à long terme, car nous pourrions plus facilement faire évoluer les versions.

Défis, bogues et obstacles

Au total, nos programmeurs ont consacré plusieurs centaines d'heures à la migration initiale, en comptant le développement, les réunions, la résolution des problèmes et la correction de nombreux bogues dus au changement de moteur. 

Nous avions déjà opéré des migrations entre plusieurs versions majeures de l'Unreal Engine 4, mais nous avons tout de même rencontré des difficultés au début du passage à l'Unreal Engine 5.3. Dès le départ, nous avons eu affaire à de nombreux bogues et incompatibilités système. Ils concernaient notamment des shaders, des matériaux, des cinématiques, des effets visuels, de particules et de physique, des textures étirées, des éléments d'interface utilisateur (IU) clignotants et inopérants, et des rayons laser coupés. La liste n'est pas exhaustive, mais elle donne une idée du type de bogues et de problèmes relevés par notre équipe de contrôle qualité et nos testeurs externes. 

Peu après nous être lancés dans le projet de migration vers l'Unreal Engine 5, nous avons publié un court article de blog montrant quelques-uns des bogues visuels qui étaient apparus afin d'annoncer à notre communauté que le travail était en cours et de montrer avec humour les coulisses du développement du jeu.
Bien que de nombreux environnements soient déjà splendides, l’éclairage de Lumen (image de droite) permet d'accentuer le caractère de chaque astéroïde et donne à ces surfaces rugueuses une texture plus visuelle.
Parmi les premiers bogues rencontrés dès l'ouverture de l'UE5, nous avons remarqué que les raccords des vaisseaux luisaient en raison d'une mauvaise association de certains shaders de matériaux. Notre communauté a immédiatement réclamé le style "Tron" pour les vaisseaux jouables. Depuis, nous l'avons recréé dans un DLC cosmétique spécial : le Supporter Pack.

Nous avons commencé la migration vers le moteur le 28 novembre 2023 et nous avons poursuivi les optimisations tout au long du projet. Notre plus gros problème était une perte de performances générale affectant plus particulièrement la PlayStation 5 et les Xbox Series X et S. Dans certains niveaux, la PlayStation 5 et la Xbox Series X passaient d'une fréquence stable de 60 FPS à moins de 30 FPS. Ce n'était pas dû à une seule raison, mais à de multiples petits problèmes cumulés. Nous avons en grande partie résolu ces problèmes de performances en supprimant des vaisseaux PNJ superflus en arrière-plan des zones problématiques, en effectuant une nativisation des blueprints et en optimisant la fréquence des ticks des acteurs et des composants.
L'éclairage dynamique de Lumen améliore considérablement les graphismes des plateformes extraplanétaires comme les stations spatiales (image de droite).

Fonctionnalités et avantages

En plus de Lumen, le passage à l'Unreal Engine 5 nous a permis d'implémenter des fonctionnalités activables dans le jeu telles que la réduction de la latence et la génération d'images NVIDIA Reflex, la technologie de mise à l'échelle Intel XeSS et la technologie de mise à l'échelle AMD FSR 3.0 avec interpolation d'images pour les joueurs PC équipés de processeurs graphiques haut de gamme. Comme tous nos joueurs ne disposent pas du matériel nécessaire pour apprécier pleinement de telles fonctionnalités, nous avons veillé à toutes les rendre optionnelles.

La maintenabilité d'EVERSPACE 2 et le développement du contenu à venir devraient être bien plus simples que si nous n'avions pas procédé à la migration. Nous adoptons des outils actuels et l'UE est plus à même de répondre à nos besoins de développement. Nous avons déjà pu constater combien les nouveaux outils et fonctionnalités de l'Unreal Engine 5, comme les améliorations continues de l'analyseur de profilage Unreal Insights, vont accélérer notre travail sur l'extension que nous préparons.
Grâce à Lumen (image de droite), la lumière crue du jour décolore moins les surfaces naturelles.

Conseils à destination des développeurs

La migration vers un nouveau moteur est une tâche complexe, surtout pour un projet qui est déjà en version 1.0. Il ne faut pas sous-estimer son ampleur. Pour un jeu comme le nôtre, dont le contenu va s'inscrire dans la durée, nous avons estimé que ces efforts étaient justifiés. 

Pour nous, implémenter Lumen dans EVERSPACE 2 était plus que pertinent et a été bien plus facile qu'on aurait pu l'imaginer. Comme nous l'avons mentionné, sous l'UE4, nous utilisions un mélange d'éclairage prédéterminé et de SSGI. Nous générions le contenu de façon à ce qu'il prenne en charge l'éclairage précalculé avec des UV de lightmaps sur chaque objet. Or, Lumen est un système d'éclairage dynamique, donc il fonctionne bien avec le contenu déjà créé selon une autre solution d'éclairage. Pour Lumen, peu importe que l'objet ait été généré pour un éclairage prédéterminé ou dynamique. De ce fait, nous avons eu peu d'ajustements à apporter au contenu que nous avons importé dans l'UE5.

Notre communauté est emballée par l'idée de la migration, mais nous comprenons parfaitement l'inquiétude exprimée par certains joueurs concernant les performances. L'automatisation des contrôles de performances en amont et à chaque étape de la migration fournit des indicateurs de référence et d'optimisations possibles. C'est un point que nous avons fait l'erreur de négliger dans un premier temps. Pour y remédier, nous avons dû consacrer beaucoup de temps au développement de méthodologies de test, à l'ajout de fonctionnalités de support adaptées dans le jeu et à l'interprétation des données extraites. En recherchant et en résolvant les problèmes de performances assez tôt, nous avons pu agir sur de nombreux facteurs susceptibles de nuire à l'expérience des joueurs.

Le temps est toujours un facteur clé. Nous avons rencontré plus de problèmes que prévu. Toutefois, même s'ils étaient nombreux, les bogues étaient pour la plupart faciles à corriger. Il convient d'aborder la tâche de façon décontractée et d'être transparent avec la communauté sur le travail entrepris afin d'aider les fans à apprécier les efforts fournis.

Enfin, la migration vers l'Unreal Engine 5 a attiré l'attention sur la mise à jour du jeu. La presse et les partenaires s'intéressent beaucoup aux capacités du moteur et aux fonctionnalités qu'il intègre. Pour un studio indépendant, la visibilité est primordiale et c'était un bonus inattendu qui récompensait nos efforts.
Les zones industrielles pourvues de nombreuses sources lumineuses et de multiples types de surfaces dures sortent de l'ombre grâce à l'intégration de Lumen (image de droite).

Conclusion

À court terme, la migration vers l'UE5 a permis l'ajout de fonctionnalités et la réévaluation des procédures ainsi que l'intégration de fonctionnalités telles que Lumen et de plug-ins pour les derniers logiciels de mise à l'échelle. Par ailleurs, elle a permis à l'équipe d'en apprendre davantage sur l'UE5 et ses fonctionnalités en prévision de prochains projets. À long terme, nous pensons que le développement du futur contenu d'EVERSPACE 2 sera nettement plus simple que si nous n'avions pas entrepris cette migration. 

Il nous reste quelques points d'optimisation mineurs à régler, mais nous pensons que l'implémentation de Lumen et la migration vers l'Unreal Engine 5 devraient être bénéfiques à l'équipe et à EVERSPACE 2.

Obtenez l'Unreal Engine dès maintenant !

Procurez-vous l'outil de création le plus ouvert et le plus avancé au monde.
L'Unreal Engine est prêt à l'emploi, avec toutes les fonctionnalités et un accès complet au code source.