Que recherchez-vous ?
Engine & platform

Focus Jeux : Profilage et optimisation des performances

MARIKA NAKAMURA / UNITY TECHNOLOGIESSenior Technical Product Manager
Sep 28, 2022|11 Min
Focus Jeux : Profilage et optimisation des performances
Cette page a été traduite automatiquement pour faciliter votre expérience. Nous ne pouvons pas garantir l'exactitude ou la fiabilité du contenu traduit. Si vous avez des doutes quant à la qualité de cette traduction, reportez-vous à la version anglaise de la page web.
Voici le troisième blog de notre série Games Focusqui met en lumière les principales initiatives de développement de produits pour l'année à venir et au-delà. Ici, nous couvrons l'état d'avancement, les plans de publication à venir et la vision future du profilage et de la performance chez Unity.

Je m'appelle Marika. Je travaille dans l'industrie du jeu vidéo depuis près de dix ans et je suis actuellement chef de produit technique senior pour les outils de profilage et l'optimisation des performances chez Unity.

Lorsque nous pensons à la performance chez Unity, il y a trois domaines principaux dans lesquels nous pensons pouvoir apporter notre aide :

  • Aperçu : Vous permettre d'analyser les performances de votre jeu, d'identifier les goulets d'étranglement et de mettre en évidence les domaines qui bénéficieraient de stratégies d'optimisation.
  • Expérience : Assurer la fluidité de la création de vos projets en améliorant les performances de l'éditeur et du moteur d'exécution Unity.
  • L'innovation : Vous guider dans les nouvelles techniques de programmation et les nouveaux paradigmes qui tiennent compte de la performance dès le départ.

Le billet d'aujourd'hui se concentre sur les deux premiers domaines, couvrant les récentes mises à jour de notre suite d'outils de profilage et la façon dont les commentaires des clients façonnent notre feuille de route pour 2023 et au-delà. Il se termine par un récapitulatif des meilleures pratiques pour optimiser les projets.

Nous nous pencherons sur le troisième domaine, les techniques de programmation et les flux de travail axés sur les performances, en mettant l'accent sur les projets basés sur les DOTS, dans un prochain article.

Le profilage dans Unity

Nous aimons considérer les fonctions de profilage de Unity comme des outils de détective qui vous aident à percer les mystères de la lenteur ou des dysfonctionnements de votre application, ou de l'excès de mémoire allouée par le code. Ils vous aident à comprendre ce qui se passe sous le capot du moteur de jeu Unity.

Notre objectif est d'améliorer les performances des outils Unity et du runtime grâce au profilage et à l'optimisation, vous aidant ainsi à offrir des performances fluides à vos joueurs sur un large éventail de plateformes et d'appareils.

Quelles sont les solutions disponibles à l'heure actuelle ?

Memory Profiler est conçu pour faciliter le suivi de l'utilisation et de la composition de la mémoire. Je suis heureux de vous annoncer que le Memory Profiler 1.0.0 est désormais un package vérifié pour la version bêta d'Unity 2022.2 et les versions supérieures (vous trouverez les instructions de téléchargement ici). Merci à tous ceux qui nous ont fait part de leurs précieux commentaires sur la manière d'améliorer le flux de travail pour cette fonctionnalité importante.

Beaucoup d'entre vous sont confrontés au défi de travailler dans les limites de la mémoire de chacune de leurs plates-formes cibles. Le Memory Profiler vous aide à résoudre ce problème en vous fournissant une vue d'ensemble claire de l'impact des actifs et des objets sur la mémoire. Il fournit également des informations contextuelles détaillées sur les objets et les systèmes auxquels la mémoire se rapporte.

Vous pouvez approfondir la capture grâce à des vues de décomposition et comparer les instantanés de mémoire afin d'identifier les fuites potentielles et les allocations inutiles qui ont un impact négatif sur l'utilisation de la mémoire.

L'onglet Résumé donne un aperçu de la mémoire totale utilisée. L'onglet Objets Unity affiche tous les objets Unity qui utilisent de la mémoire, tandis que l'onglet Toute la mémoire affiche une ventilation de toute la mémoire dans l'instantané qu'Unity suit.
Vous pouvez comparer l'utilisation de la mémoire entre deux instantanés de mémoire.

Affiner l'ensemble des outils de profilage existants

Dans la version 2022.1, nous avons ajouté le gestionnaire de synchronisation des images, qui vous permet de capturer et d'accéder aux données de synchronisation des images sur plusieurs images. Si les performances sont insuffisantes, utilisez cette fonction pour évaluer les cadres et analyser les raisons pour lesquelles votre application n'atteint pas les objectifs de performance. Pour en savoir plus, consultez notre documentation.

Si vous souhaitez surveiller les métriques GPU de bas niveau dans le Unity Profiler, vous pouvez utiliser le nouveau package Paquet System Metrics Malique nous avons publié en 2022.1 grâce à un partenariat avec Arm. Ce logiciel vous permet d'accéder à des mesures de bas niveau du système ou du matériel sur les appareils mobiles. Si vous souhaitez en savoir plus sur la manière de garantir le bon fonctionnement de votre contenu sur les appareils mobiles équipés de processeurs Arm et de GPU Mali, ce blog 2021 peut vous guider.

Optimisation des performances

Les outils de profilage présentés jusqu'à présent constituent un bon point de départ pour vous aider à identifier les domaines dans lesquels les performances peuvent être améliorées. Dans mon équipe, cependant, l'"optimisation des performances" ne s'applique pas seulement aux performances d'exécution de vos jeux sur les appareils cibles, mais aussi à la façon dont votre équipe travaille - à votre productivité. Notre objectif est de vous offrir des temps d'itération plus rapides, moins d'interruptions et une plus grande efficacité au sein de l'éditeur.

Dans Unity 2021 LTS, l'importation de vos actifs est trois à quatre fois plus rapide, et l'ouverture des projets importés jusqu'à 8,7 % plus rapide par rapport à Unity 2020 LTS.

Je suis impatient de vous faire part de certaines des améliorations disponibles dans les versions 2022 :

  • Amélioration de la réimportation des matériaux pour le pipeline de rendu universel et le pipeline de rendu haute définition.
  • Amélioration du flux de travail de l'éditeur, notamment :
  • Temps d'enregistrement plus rapide pour les scènes de grande taille
  • Réduction du temps d'attente lors de la sélection des scènes
  • Amélioration des performances dans la vue Scène lorsqu'il y a beaucoup de groupes LOD
  • Un ensemble optimisé de gréements d'animation
  • Meilleur défilement de la hiérarchie
  • Amélioration du processus d'enregistrement pour les grands préfabriqués
  • Amélioration du temps d'itération lorsque l'on travaille dans l'éditeur grâce à des optimisations sur les rechargements de domaine
  • Améliorations du mode de jeu, y compris :
  • Amélioration des performances des lots statiques
  • Processus optimisé pour la recherche de répertoires de ressources par Addressables
  • Systèmes de particules de préchauffage

Une fois de plus, vos commentaires ont joué un rôle essentiel dans bon nombre de ces améliorations. Continuez à nous faire part de vos commentaires sur notre future feuille de route ici, ou contactez l'équipe sur les forums. Nous sommes particulièrement intéressés par les questions liées à la performance, que nous présentons ici.

Prochaines étapes

Depuis plus de dix ans, nous veillons à ce que vous puissiez obtenir les meilleures performances possibles grâce à nos outils de profilage, et nous continuerons d'affiner la panoplie d'outils. Ce développement a pris de nombreuses formes, y compris toutes les fonctionnalités que nous avons déjà mentionnées ici.

La pile technologique orientée données, ou DOTS, est un autre domaine dans lequel nous nous sommes efforcés d'obtenir des gains de performance significatifs. Le compilateur Burst et le système de travail C# sont deux des principales caractéristiques qui font partie intégrante de la livraison réussie de DOTS. Elles ont été exploitées avec succès dans notre propre moteur de performance interne et sont aujourd'hui à la disposition de tous. Prochainement, nous proposerons la troisième fonctionnalité critique, Entities, qui boostera les performances des projets dans des domaines tels que la mise en réseau, la physique et bien plus encore. Il s'agit d'un aspect tellement important de notre engagement dans le développement de jeux que nous consacrerons un article indépendant de Games Focus à DOTS dans cette série, qui sera bientôt disponible.

Pour l'instant, jetons un coup d'œil à quelques améliorations prévues pour les prochaines versions.

Nous nous efforçons de réduire le temps de démarrage de l'éditeur, afin d'améliorer le temps de démarrage et de vous aider à rester dans le flux. Aujourd'hui, lorsque vous connectez un appareil cible à l'éditeur, vous pouvez rencontrer des problèmes d'instabilité tels que la déconnexion ou l'impossibilité de récupérer l'appareil. Nous nous efforçons de rendre les connexions de l'éditeur aux plateformes mobiles plus fiables et plus performantes dans la version 2023.1.

En outre, nous souhaitons rendre plus efficace l'identification des goulets d'étranglement à l'aide du Profiler et savoir ce qu'il convient de faire une fois qu'ils ont été repérés. Notre objectif est de vous orienter rapidement vers les domaines d'optimisation qui produiront les plus grands gains de performance.

Nous envisageons également d'ajouter des informations sur la mémoire en fonction de l'appareil pour lequel vous construisez, afin que vous puissiez obtenir des gains de performance spécifiques à la plateforme. Nous n'en sommes qu'aux premières étapes, et nous attendons activement vos commentaires sur cette nouvelle fonctionnalité, que vous pouvez fournir sur notre page de feuille de route.

Ressources

La maîtrise de la suite d'outils de profilage d'Unity est l'une des compétences les plus utiles que vous puissiez ajouter à votre boîte à outils de développement de jeux. C'est pourquoi nous travaillons à la création d'un contenu plus avancé sur les meilleures pratiques pour vous aider à tirer le meilleur parti de nos outils.

Plusieurs de mes coéquipiers ont récemment rédigé notre guide le plus complet à ce jour sur le profilage dans Unity, en partenariat avec des ingénieurs experts de l'équipe Unity Integrated Success et des experts.

Je vous suggère également de télécharger ces e-books avancés supplémentaires qui proposent des meilleures pratiques d'optimisation spécifiques à chaque plateforme :

Une autre référence pratique est cet organigramme, qui propose une approche recommandée pour identifier les goulets d'étranglement dans votre projet.

Organigramme qui fournit une approche recommandée pour identifier les goulets d'étranglement dans votre projet.

Enfin, cette Liste de lecture sur le profilage et l'optimisationcréée par nos équipes de contenu et de marketing, comprend des articles de blog clés qui vous aideront à comprendre les concepts et les méthodes de profilage, des plus basiques aux plus avancés.

Images de couverture pour trois livres électroniques d'Unity : Optimisez les performances de vos jeux pour consoles et PC, Optimisez les performances de vos jeux mobiles, et Guide ultime du profilage dans les jeux Unity.
Dites-nous ce que vous en pensez

Mon équipe travaille dur pour vous apporter les solutions dont vous avez besoin pour vos projets les plus ambitieux, et nous sommes toujours désireux de comprendre comment nous pouvons mieux vous aider.

Restez à l'écoute des mises à jour sur notre page de feuille de route publique. C'est également le meilleur endroit pour faire part de vos commentaires directement à l'équipe chargée des produits.

Surveillez le blog pour notre prochaine mise à jour Games Focus, qui se concentrera sur ce que fait Unity pour vous aider à cibler davantage de plateformes et de facteurs de forme avec le contenu de vos jeux. Et, comme toujours, faites-nous part de vos commentaires sur les forums.