UN analyse technique du rendu graphique dans Villes : Skylines 2 a identifié la raison pour laquelle les performances sont si mauvaises. En termes simples, le jeu tente de dessiner des paysages urbains en utilisant un nombre choquant de polygones, avec peu de systèmes en place pour réduire la quantité lorsque cela n’est pas nécessaire. Ce n’est pas quelque chose qui devrait se produire dans un jeu moderne, mais la récente panne suggère également que les changements au sein de Unity sont également en partie responsables.

Avant même la sortie du jeu, le développeur Colossal Order a émis un avertissement aux clients potentiels que les performances de Cities: Skylines 2 n’avaient « pas atteint le niveau de référence que nous avions visé ».

Et lorsque la suite de la gestion de la ville est finalement apparue, il s’est avéré que le développeur ne plaisantait pas et que le seul moyen d’obtenir un semblant de fréquence d’images décente était de détruire la plupart des images. paramètres graphiques trop bas ou complètement désactivés. Le premier patch du jeu a un peu aidé, mais il n’en demeure pas moins qu’en tant que jeu de simulation et de gestion, il ne devrait vraiment pas être aussi dépendant du GPU qu’il l’est.

J’ai appris la réponse complète à cette énigme au cours du week-end, via un court Article Reddit. Il contient deux choses : Un lien vers un analyse technique du jeu, impliquant une partie d’outils logiciels de décompilation et de rendu, et une excellente discussion des résultats. L’analyse a été réalisée par le développeur de logiciels Paavo Huhtala, qui a exploré le fonctionnement interne du jeu au peigne fin.

C’est une lecture longue et dense, surtout si vous ne savez pas grand-chose sur le rendu, mais le principal problème est que les paysages urbains sont dessinés à l’aide de chemin trop de polygones. Et je veux dire par plusieurs ordres de grandeur de trop. Que pensez-vous de 25 000 sommets (coins d’un triangle) pour un modèle de corde à linge simple ?

Publicité

Si vous avez besoin d’un point de référence, prenez les modèles de vêtements utilisés dans Cyberpunk 2077. Certains d’entre eux utilisent un nombre énorme de polygones et j’en ai vu un avec jusqu’à 29 500. Mais c’est Triangles et ceux-ci partageront des coins, car ils sont « cousus » ensemble. Le nombre réel de sommets pour cette veste, cela pourrait coûter aussi peu que 8 000.

Cette pile de journaux dans Cities: Skylines 2 comprend 100 000 sommets (Crédit image : Paavo Huhtala | Ordre colossal)

Il se passe tellement de choses dans Cities : le moteur Skylines 2 effectue près de 7 000 appels de tirage et plus de 50 000 appels d’API (requêtes effectuées par le jeu, via DirectX) dans une seule image. Maintenant, ces chiffres en eux-mêmes, et placés dans aucun contexte, ne veulent pas dire grand-chose, mais ils sont à la fois énormes en général et indiquent que le jeu demande beaucoup trop au GPU.

Par exemple, prendre une scène aléatoire dans le paysage urbain de Cyberpunk 2077 montre que moins de 10 000 appels API sont nécessaires pour restituer l’image. Désormais, on ne peut pas comparer directement ces deux jeux car ils sont très différents, et les jeux de simulation de ville feront probablement plus d’appels que n’importe quel jeu de tir, car le monde change tellement et se remplit de nombreux modèles interactifs. Mais même ainsi, 50 000, c’est… eh bien, un parcelle!

Apparemment, la décision d’utiliser des modèles à grand nombre de polygones « deviendra pertinente dans l’avenir du projet », quoi que cela signifie.

Normalement, de nombreux appels rendraient un jeu très gourmand en CPU, mais ce n’est pas le cas avec Cities: Skylines 2. C’est parce qu’il y a encore plus de problèmes qui détruisent complètement le GPU. De nombreux modèles à polygones élevés utilisés n’ont pas de version dite LOD (niveau de détail).

Il s’agit de versions simplifiées des objets originaux, construites à partir de moins de triangles, et utilisées lorsque l’objet est éloigné de la caméra. En d’autres termes, cela ne sert à rien de conserver tous les détails complexes lorsque vous ne pouvez pas les voir.

Vous vous souvenez de cette veste à 29 500 polygones que j’ai mentionnée plus tôt ? Il n’est jamais vraiment utilisé dans le jeu actuel, car les versions LOD de cette échelle sont tout à fait réduites. Lorsqu’il est vu de loin, le vêtement n’est représenté que par une poignée de triangles, et vous ne pouvez pas le savoir car il ne s’agit que de quelques pixels sur l’écran.

Les développeurs ouvertement admis cela provoquait des problèmes de performances et que cela serait résolu à temps. Apparemment, la décision d’utiliser des modèles à grand nombre de polygones « deviendra pertinente dans l’avenir du projet », quoi que cela signifie.

Pour l’analyse des images, Huhtala a noté que 36 millions de triangles devaient être traités pour plusieurs passes de rendu. Bien que beaucoup d’entre eux ne soient pas visibles à l’écran, il s’agit toujours d’un nombre excessivement élevé et ne fera qu’augmenter à mesure que la ville s’agrandit au cours du jeu.

Villes : Skylines 2 traite des millions de triangles pour des scènes comme celle-ci (Crédit image : Paradox Interactive)

Mais c’est encore pire. Il semble que Cities: Skylines 2 ne semble pas éliminer les objets qui ne sont pas particulièrement bien visibles et combinés à la méthode utilisée pour créer des ombres (quatre des passes de rendu séparées uniquement pour les ombres), une énorme quantité de temps est perdue dans le traitement de données totalement inutiles. Près des trois quarts de tous les appels de tirage et la moitié du temps d’image dans l’analyse étaient uniquement destinés à faire les ombres !

C’est pourquoi le jeu fonctionne bien mieux lorsque vous définissez les niveaux de détail sur bas, désactivez les ombres et tout ce qui repose sur la géométrie. Il semblerait donc que les développeurs aient simplement fait un véritable gâchis et qu’ils devraient être tenus entièrement responsables de tout cela, n’est-ce pas ? Eh bien, peut-être pas.

L’analyse de Huhtala va plus loin que la simple analyse d’un cadre de rendu. L’utilisation d’un outil de décompilation pour découvrir comment le jeu utilisait Unity (le package moteur utilisé pour créer le jeu) met en évidence un certain nombre de problèmes qui échappaient quelque peu aux développeurs.

Cities : Skylines 2 semble faire un usage intensif de deux fonctionnalités majeures de Unity : POINTS et HDRP. Le premier est un ensemble complexe mais puissant de progiciels qui, en théorie, permettent aux jeux d’être extrêmement complexes et riches en interaction avec les objets ; ce dernier est le pipeline de rendu haute définition du moteur et est requis si vous souhaitez utiliser toutes les dernières technologies graphiques dans votre jeu.

Cependant, vous n’avez pas vraiment besoin de comprendre ce qu’ils font, car ce n’est pas vraiment le problème. Commande colossale a commencé à travailler sur Skylines 2 en 2018, bien avant que DOTS ne soit rendu public. Même le HDRP n’était pas encore complètement prêt à l’époque, et certainement pas comparable à son état actuel. Huhtala suggère que les développeurs ont dû écrire beaucoup de code eux-mêmes, simplement parce que Unity n’avait pas ce dont ils avaient besoin ou que le statut des nouvelles fonctionnalités logicielles nécessitait d’importantes solutions artisanales à cette époque.

À mon avis, il semble que le développeur ait été très malheureux avec le timing de l’évolution des choses sous le capot d’Unity, mais il a quand même pris la décision de suivre cette voie, même s’il savait qu’il lui faudrait faire pas mal de travail de codage. pour naviguer à travers les modifications du système.

Peut-être que Colossal Order avait espéré que Unity appliquerait tous les changements rapidement, lui laissant suffisamment de temps pour s’y prendre correctement. Cependant, il semblerait qu’il ait simplement dû « se contenter » de ce dont il disposait et a fini par faire de mauvais choix en matière de techniques de rendu.

Mais indépendamment de cela, le résultat final est que le jeu fonctionne vraiment mal, ayant été créé par une équipe qui a choisi une voie de développement impliquant l’utilisation d’un logiciel qui n’était pas entièrement prêt. Ou du moins, les développeurs n’en auraient pas beaucoup d’expérience, car c’était tellement nouveau.

Lorsqu’il s’agit de créer des jeux sur plusieurs plateformes et genres, Unity est généralement le moteur de choix pour des centaines de milliers de projets. Mais cela ne veut pas dire qu’il est simple à utiliser et, au contraire, il s’agit d’un système assez complexe dans sa forme actuelle. Le créateur d’Unity souligne que si vous développez des jeux depuis longtemps, passer au DOTS est un grand changement.

Cities : Skylines 2 pourrait devenir le jeu qu’il était censé être et tout cela sera oublié avec le temps. Mais pour l’instant, cela nous rappelle que créer des jeux énormes et complexes est une tâche difficile. dur et cela peut tourner mal si vous prenez les mauvaises décisions dès le début.

4.5/5 - (4 votes)
Publicité
Article précédentL’avocat d’Epic Games affirme que Google a détruit les preuves dans l’affaire Fortnite
Article suivantEn Chine, on s’inspire de Mario Kart pour empêcher les automobilistes de s’endormir au volant

LAISSER UN COMMENTAIRE

S'il vous plaît entrez votre commentaire!
S'il vous plaît entrez votre nom ici