
Résoudre les problèmes de bégaiement dans les jeux Unreal Engine : aperçus de l’Unreal Fest 2025
Lors de l’Unreal Fest 2025, qui s’est tenu à Orlando, en Floride, Ari Arnbjörnsson, ingénieur logiciel senior, a abordé un problème crucial pour les joueurs PC : les saccades dans les jeux développés avec Unreal Engine. Face à l’afflux de titres récents affectés par des problèmes de performances, la communauté des joueurs s’interroge sur la réponse d’Epic Games à ce problème persistant.
Le cœur du problème : « La grande chasse à l’auto-stop »
Dans sa présentation au thème intrigant intitulé « La Grande Chasse aux sorcières », Arnbjörnsson a revêtu le costume d’un chasseur de sorcières et a mis les développeurs au défi d’éliminer activement les causes du bégaiement. Il a présenté sept facteurs principaux contribuant à ces perturbations du gameplay et a fourni des bonnes pratiques concrètes aux développeurs souhaitant améliorer les performances.
Identifier les coupables du bégaiement
1. Problèmes de streaming de niveau
Le premier problème majeur est le Level Streaming, qui engendre divers problèmes liés au chargement et au déchargement dynamiques des environnements de jeu. Arnbjörnsson a souligné qu’une mauvaise utilisation d’acteurs de maillage statique, tels que des objets complexes comme des tables et des ustensiles, peut considérablement impacter les performances du jeu, en particulier dans les vastes univers AAA. Pour atténuer ces problèmes, il a préconisé l’utilisation de maillages statiques instanciés (ISM) ou hiérarchiques (HISM), ainsi que l’utilisation de la fonctionnalité d’acteurs de niveau compactés pour condenser de nombreux maillages statiques en acteurs moins nombreux et moins gourmands en ressources. Il a également mentionné les prochaines avancées des Cell Transformers d’Unreal Engine 5.5, conçus pour convertir automatiquement les acteurs de maillage statique en maillages instanciés lors de l’exécution.
2. Optimisation physique
Une autre source de problèmes provient du traitement lié à la physique. Les développeurs sous-estiment souvent le besoin d’optimisation, notamment depuis l’introduction de la technologie Nanite dans Unreal Engine 5, ce qui laisse supposer que les maillages complexes fonctionneront parfaitement. Arnbjörnsson recommande plutôt d’utiliser des formes de collision plus simples : en commençant par des sphères, puis des capsules, puis des boîtes, et enfin des polygones convexes. Il a également souligné l’importance de désactiver les interactions physiques pour les objets distants et non interactifs. La fonctionnalité expérimentale d’initialisation physique asynchrone d’Epic vise à alléger la charge physique sur le thread de jeu, mais il est conseillé aux développeurs de l’aborder avec prudence.
3. Retards de génération d’acteurs
Les délais de génération d’acteurs représentent le prochain défi majeur. Les acteurs lourds équipés de multiples composants, comme les modèles de personnages, peuvent entraîner des baisses notables de fréquence d’images lors de leur initialisation. Pour y remédier, Arnbjörnsson a suggéré de limiter le nombre d’acteurs générés par image, de différer l’activation des composants des acteurs et de mettre en œuvre des stratégies de pooling d’acteurs pour réutiliser les objets existants plutôt que de les détruire et de les recréer à répétition. Bien que l’intégration du pooling d’acteurs comme fonctionnalité par défaut dans Unreal Engine soit à l’étude, les développeurs sont actuellement encouragés à créer des pools sur mesure pour leurs types d’acteurs spécifiques.
4. Compilation d’objets d’état de pipeline (PSO)
L’une des causes les plus fréquentes de saccades est liée à la compilation des objets d’état de pipeline (PSO).Contrairement aux consoles, dont les configurations matérielles sont uniformes, les PC rencontrent des difficultés avec la compilation des shaders en cours de jeu, ce qui entraîne des saccades lorsque les shaders doivent être compilés à la volée. Bien que la mise en cache préalable des PSO ait été introduite dans Unreal Engine 5.3 pour résoudre ce problème, les développeurs doivent encore concevoir leurs propres stratégies de compilation PSO et exploiter des outils tels que le plugin PSO Cache Buster pour optimiser davantage les performances.
5. Pics de collecte des déchets
Le ramasse-miettes peut également entraîner des problèmes de performances lorsque des instances d’UObject inutilisées s’accumulent, prolongeant ainsi le processus de ramasse-miettes. Les développeurs doivent gérer activement le nombre d’UObjects et planifier intelligemment le ramasse-miettes afin de minimiser les interruptions. Epic explore actuellement une fonctionnalité expérimentale d’analyse d’accessibilité incrémentale, visant à répartir les tâches de ramasse-miettes sur plusieurs trames afin de pallier ces problèmes.
6. Attaches de chargement synchrones
Des problèmes de chargement synchrone surviennent lorsque le thread du jeu est bloqué par des chargements d’éléments bloquants, ce qui entraîne des interruptions extrêmement longues et frustrantes. Pour y remédier, les développeurs doivent utiliser rigoureusement des techniques de chargement asynchrone et des validateurs d’éléments comme CommonValidators d’Arnbjörnsson pour détecter les comportements de chargement problématiques. Les versions 5.4 et 5.5 d’Unreal Engine visent à améliorer la situation en introduisant des fonctionnalités permettant de vider partiellement les files d’attente asynchrones.
7. Problèmes de plan et de contenu
Enfin, les performances peuvent être affectées par des Blueprints et des scripts de contenu trop complexes, qui peuvent impliquer des temporisations excessives, des mises à jour fréquentes ou des séquences volumineuses. Pour aider les développeurs, Epic améliore l’outil Unreal Insights, facilitant ainsi la visualisation et la correction des goulots d’étranglement des performances au sein des projets.
Conclusion : Relever les défis de l’optimisation
En conclusion de sa présentation, Arnbjörnsson a souligné que si les avancées technologiques remodèlent continuellement le paysage du jeu vidéo, les développeurs doivent rester conscients de ses limites. Des stratégies d’optimisation efficaces et une résolution créative des problèmes restent essentielles pour offrir les expériences de jeu les plus fluides possibles. Sa session visait non seulement à informer, mais aussi à inciter les développeurs à agir contre les problèmes de bégaiement dans leurs projets.
Pour plus de détails, regardez la conférence complète
ici
.
Laisser un commentaire