Prochaines étapes : amélioration de la stabilité et des temps d'itération de l'UEFN

Auteurs : Aurel Cordonnier et Kavita Chodavarapu

Chers développeurs Fortnite,

L’année dernière, nous nous sommes engagés https://www.youtube.com/watch?v=M1F5CimXO_8&t=2492s à améliorer la stabilité et la vitesse d’itération de l’UEFN. Notre objectif est de réduire de 50% les temps d’itération d’ici le mois de juin (voire davantage, nous espérons dépasser ces objectifs mais préférons rester prudents). Dans cet article, nous vous présentons les modifications que nous avons apportées à nos processus internes de test et d’assurance qualité afin d’améliorer la stabilité des versions, ainsi que la première série de mises à jour que nous allons déployer dans les prochains mois pour réduire les temps d’itération.

Stabilité des versions et tests

Nous avons modifié notre approche de test afin de nous concentrer sur ce qui vous importe le plus, à savoir les îles à fort engagement et celles basées sur la persistance des données de jeu. Notre batterie de tests inclut désormais davantage de contenus de développeur susceptibles de subir des baisses de performance, ce qui nous permet de détecter plus précocement les défauts critiques avant tout impact négatif sur l’expérience des développeurs.

Nous avons par ailleurs mis en place un processus de triage et d’escalade des bugs sous 24 heures, grâce auquel nous pouvons résoudre les problèmes détectés plus rapidement que jamais. De plus, nous testons actuellement six îles de développeur complexes deux fois par semaine afin de suivre les indicateurs de performance clés tels que le temps de démarrage, le temps de chargement et le fonctionnement des mini-jeux, et signalons immédiatement tout problème identifié.

Les résultats obtenus jusqu’à présent sont encourageants. Dans la version 39.30, 57% des défauts ont été détectés et corrigés avant la publication. Dans les versions 39.40 et 39.50, aucun défaut critique lié au contenu de développeur ou aux systèmes de persistance n’a été observé, grâce à un triage plus rapide et à une couverture de test élargie. Notre taux de bugs ayant échappé aux tests (et qui se glissent donc dans les versions publiées) a aussi considérablement diminué, passant de 18,5% dans la version 39.11 à seulement 4,7% dans la version 39.40.

Nous sommes conscients que des indicateurs internes ne reflètent qu’une partie de la réalité. C’est pourquoi, en collaboration avec l’équipe chargée de gérer la communauté, nous avons décidé de lancer des enquêtes mensuelles sur la stabilité afin de recueillir directement l’avis des développeurs et de nous assurer qu’ils constatent une réelle amélioration. Ces informations nous permettront de déterminer les domaines sur lesquels concentrer nos efforts en matière de stabilité.

Outils de gestion de la stabilité et des ressources

Outre un processus d’assurance qualité interne renforcé, nous disposons désormais de nouveaux outils et flux de travail pour vous aider à identifier et corriger les erreurs dans vos projets avant qu’elles ne provoquent des plantages ou des blocages.

  • Outils de gestion de l’intégrité des ressources : corrigez les problèmes de validation des ressources et les erreurs de mémoire insuffisante au fur et à mesure de vos itérations grâce à de nouvelles fonctionnalités de surveillance et de reporting après importation, ainsi qu’à la définition de seuils de mémoire propres à chaque plateforme.
  • Mises à jour du profileur spatial : grâce aux fonctionnalités de profilage avancées de l’UEFN, vous pouvez rapidement identifier les ressources gourmandes en mémoire sur toutes les plateformes. Ces fonctionnalités incluent de nouveaux résultats de calcul direct de la mémoire et une nouvelle vue des ressources en direct avec analyse des UObject Objects in Unreal Engine | Unreal Engine 5.7 Documentation | Epic Developer Community .

Optimisations du préparateur
Afin d’accélérer la préparation de votre île pour une session de jeu et d’améliorer les temps d’itération, nous procédons à une refonte du pipeline de préparation de l’UEFN pour le rendre plus efficace. Le processus de “préparation” préparer | Fortnite Documentation | Epic Developer Community consiste à convertir les ressources brutes en un format optimisé et prêt à l’emploi pour que le contenu se charge et s’affiche rapidement.

S’agissant d’améliorations internes de l’infrastructure backend de l’UEFN, vous n’aurez pas besoin de modifier votre flux de travail.

  • Zen DDC (Derived Data Cache - Using Derived Data Cache in Unreal Engine | Unreal Engine 5.7 Documentation | Epic Developer Community : nous déployons les derniers systèmes Zen Server sur l’infrastructure backend de l’UEFN et introduisons des instantanés préparés afin d’améliorer l’efficacité du processus de préparation, réduisant ainsi la boucle d’itération “play on client”.
  • Préparation incrémentielle : nous ajoutons un système qui ne prépare que les deltas (modifications) requis validés depuis votre projet, plutôt que de traiter une nouvelle fois les données inchangées.
  • Compilation distribuée des shaders : pour éviter que votre machine locale ne supporte toute la charge, nous distribuons la compilation des shaders vers le cloud, ce qui accélère les temps de compilation.

Améliorations des modifications en direct
Nous élargissons les fonctionnalités de modification en direct en offrant davantage de possibilités d’itération pendant une session de modification en direct grâce à la prise en charge de types de ressources supplémentaires et à de nouveaux flux de travail dans l’éditeur permettant de modifier une session en cours.

  • Prise en charge étendue des types de ressources : vous pouvez modifier davantage de types de ressources directement dans une session de modification en direct, ce qui réduit la fréquence de validation des modifications, p. ex., bus audio, séquence de niveau, etc.
  • Modification en direct pendant le mode de jeu : pendant le mode de jeu dans une session de modification en direct, une partie des modifications apportées dans l’éditeur de l’UEFN est appliquée sans valider les modifications ni interrompre le jeu. Par exemple, si vous concevez un parcours d’obstacles, vous pouvez transformer des objets et ajuster leur position.
  • Panneau Historique des modifications : ce panneau affiche les modifications apportées à votre session qui ont été implémentées ainsi que celles qui nécessitent une validation de votre part. Ce panneau fonctionne en mode Édition et en mode Jeu pendant que la session est en cours.

Vous pouvez suivre ces mises à jour sur le document Feuille de route des développeurs Fortnite Trello . Nous utiliserons également ce fil de discussion pour partager les mises à jour concernant nos travaux en cours visant à améliorer la stabilité et les temps d’itération dans l’UEFN.