Netmarble Games: optimiser les performances avec ADPF

Netmarble: logo de la série Game of Thrones
Netmarble: scène de combat
Netmarble: scène de combat avec le boss de zone Drogon

Netmarble, l'un des principaux développeurs de jeux mobiles, a développé Game of Thrones: Kingsroad (bientôt disponible sur Android), un RPG d'action-aventure basé sur la série Game of Thrones, primée aux Emmy® Awards et aux Golden Globes®. Ils ont rencontré des problèmes de performances, en particulier le throttling thermique, lors de l'exécution du jeu sur des appareils Android, ce qui a un impact sur les performances durables et l'expérience utilisateur. Pour y remédier, ils ont exploité de manière stratégique le Android Adaptive Performance Framework (ADPF) et implémenté des optimisations axées sur le scaling de la résolution et l'ajustement dynamique de la fréquence d'images.

Défi

Les jeux mobiles haute fidélité exigent des ressources GPU et CPU importantes, ce qui entraîne souvent une génération de chaleur excessive et un étranglement thermique sur les appareils Android. Netmarble a constaté que les sessions de jeu prolongées entraînaient une augmentation de la température de l'appareil, ce qui entraînait une dégradation des performances, y compris des baisses de fréquence d'images et des performances incohérentes. Le défi principal consistait à maintenir une expérience visuelle attrayante tout en gérant efficacement la température de l'appareil pour éviter le throttling et garantir des performances durables.

Solution

Netmarble a adopté une approche basée sur les données pour utiliser l'ADPF, en se concentrant sur les ajustements dynamiques en fonction de l'état thermique en temps réel.

Identifier les goulots d'étranglement

Netmarble a effectué une analyse minutieuse des performances, mesurant l'impact de divers paramètres de qualité graphique sur les fréquences d'images et la charge thermique. Cette analyse a révélé que l'ajustement de la résolution avait l'impact le plus important sur la charge du GPU et la sortie thermique, sans avoir un impact important sur les fréquences d'images. Plus important encore, ils ont constaté que les autres options graphiques (ombres, textures, etc.) avaient un impact relativement minime sur les performances thermiques globales.

Échelle de résolution dynamique

Netmarble a ajouté un système de résolution dynamique. Elle modifie la qualité d'image du jeu en fonction de la température de l'appareil, à l'aide de l'API Thermal ADPF. Cela permet au jeu de s'adapter à différentes conditions. Lorsque l'appareil est frais, le jeu utilise une haute résolution. Si l'appareil devient trop chaud, le jeu réduit la résolution pour réduire la chaleur.

Ajustement de la fréquence d'images adaptative

En plus du scaling de la résolution, Netmarble a implémenté des ajustements dynamiques de la fréquence d'images. Si le FPS cible du jeu est défini sur 60, le système peut progressivement réduire le FPS cible en cas de chaleur excessive. Pour éviter les problèmes thermiques, Netmarble a défini le nombre minimal d'images par seconde évolutif sur 30. Cela garantissait une expérience de jeu cohérente. De plus, le système est conçu pour augmenter progressivement les FPS jusqu'à la cible lorsque la température diminue, afin de maintenir des performances optimales.

Résultats

L'implémentation de la mise à l'échelle dynamique de la résolution et des ajustements adaptatifs des FPS, pilotés par ADPF, a permis d'améliorer considérablement la gestion thermique et les performances durables.

Netmarble: comparaison des performances
  • Amélioration de la marge thermique:l'ADPF a réduit la marge thermique moyenne de 1,04 à 0,92 (11 %), ce qui évite la dégradation des performances et améliore la longévité de l'appareil. La valeur de la marge thermique n'a jamais dépassé 1,0, ce qui a empêché la surchauffe de l'appareil.
  • Fréquences d'images plus cohérentes:ADPF offre une expérience de jeu plus fluide en ajustant intelligemment la fréquence d'images cible du jeu en fonction de l'état thermique de l'appareil. Sans ADPF, les FPS du jeu peuvent fluctuer de manière significative (par exemple, de 40 à 56) en raison de la limitation thermique. Ce taux de rafraîchissement incohérent, causé par la difficulté de l'appareil à gérer la chaleur, peut entraîner une expérience de jeu désagréable et choquante. Avec ADPF, le jeu réduit de manière proactive la fréquence d'images cible si nécessaire pour éviter une accumulation de chaleur excessive, ce qui garantit une fréquence d'images plus stable et cohérente, généralement comprise entre 50 et 60 FPS. Cela évite les baisses de frame abruptes associées à la régulation thermique, ce qui améliore considérablement l'expérience de jeu.
  • Graphismes de haute qualité préservés:en privilégiant l'ajustement de la résolution comme mécanisme d'ajustement principal, Netmarble a minimisé l'impact visuel de la gestion thermique, en maintenant les autres paramètres (textures, effets, etc.) à des niveaux plus élevés.

Conclusion

En se concentrant sur l'ajustement de la résolution et les ajustements dynamiques des FPS guidés par ADPF, Netmarble a réussi à atténuer les problèmes de surchauffe dans Game of Thrones : Kingsroad, tout en préservant un équilibre optimal entre les performances, la qualité visuelle et l'expérience utilisateur. Leur utilisation stratégique de l'ADPF met en avant une approche efficace pour les développeurs de jeux mobiles confrontés à des défis similaires. L'ADPF a permis d'offrir une expérience plus fiable, plus agréable et plus cohérente, ce qui a permis aux joueurs de jouer plus longtemps avec moins de pertes d'images et de réduire les inquiétudes liées à la surchauffe de l'appareil. Grâce à cette solution, Netmarble continue de proposer des expériences de jeu de haute qualité tout en assurant des performances et une longévité optimales de l'appareil.

Premiers pas avec ADPF dès aujourd'hui dans Unity, Unreal et C++

Les développeurs qui souhaitent utiliser l'adaptabilité Android doivent procéder comme suit:

Quel que soit le moteur que vous utilisez, vous pouvez toujours choisir d'utiliser directement les API. Pour en savoir plus, consultez Adaptabilité Android et le plug-in ADPF Unreal Engine.