J'ai demandé aux développeurs pourquoi les ports PC en 2023 fonctionnent comme des ordures

respect dt image vedette 2
Cette histoire fait partie de la série ReSpec de Jacob Roach, couvrant le monde du jeu et du matériel PC.

Quand on regarde le état des versions PC en 2023, il est facile de commencer à pointer du doigt. Le jeu n'est pas optimisé (quoi que cela signifie), ou l'éditeur s'est précipité trop vite, ou les cartes graphiques que Nvidia nous a vendues viennent avec trop peu de VRAM. Mais ces accusations, dans la plupart des cas, sont à moitié cuites et présomptueuses, et bien qu'elles fassent allusion à la réalité, elles ne racontent pas toute l'histoire.

Contenu

  • Quel est le problème?
  • Ce que tu peux bien faire
  • La voie à suivre pour les ports PC

Vidéos recommandées

Je voulais savoir ce qui se passait réellement, alors je me suis assis avec quelques développeurs pour comprendre l'état des jeux PC et pourquoi tant de versions sont arrivées avec de si gros problèmes. Plus important encore, je voulais savoir ce que les développeurs et les éditeurs pouvaient faire pour résoudre ces problèmes, et bien que la voie à suivre ne soit pas claire, il devient évident que les développeurs savent qu'il y a un problème.

Quel est le problème?

Un petit PC de jeu assis à côté de la PS5.

Tout d'abord, nous devons identifier le problème principal avec le PC, en particulier lorsque les jeux sont livrés dans des états jouables (sinon parfaits) sur les consoles mais arrivent horriblement cassés sur PC. À un niveau élevé, le problème avec le PC en tant que plate-forme est exactement ce qui le rend si attrayant en premier lieu: la flexibilité.

En rapport

  • Avec des partenariats PC exclusifs, tout le monde perd
  • Les consoles ont toujours un gros avantage, et cela nuit aux jeux sur PC
  • Comment un jeu de caméra corporelle virale a trompé Internet en lui faisant croire qu'il s'agissait de vraies images

Marc Whitten, vice-président senior et directeur général de Unity Create, déclare que "la diversité et la variabilité des configurations PC sur lesquelles les jeux seront joués … peuvent certainement exposer des problèmes inattendus. Whitten souligne également "les différents systèmes d'exploitation et les nouvelles mises à jour de pilotes, la chaleur et la latence et la personnalisation de l'utilisateur" comme facteurs pouvant jouer dans le problème.

C'est la réponse, j'en suis sûr, que la plupart des gens supposent être l'explication.

Mais le problème, selon Whitten, n'est pas le manque de tests en soi. Il affirme que les jeux sont "généralement testés de manière approfondie tout au long du développement". Le problème revient à l'échelle des différentes configurations que les développeurs doivent tester, ainsi que les variables dont ils ne peuvent pas tenir compte pour.

En tant qu'expérience de pensée, disons qu'un développeur a épinglé 100 configurations de PC différentes à tester, en faisant varier le CPU, le GPU, RAM, et disque dur entre eux. Pour mémoire, c'est un chiffre que je viens de sortir, pas quelque chose qu'un développeur a réellement référencé comme un objectif réaliste. Maintenant, prenez toutes ces configurations et multipliez-les par des dizaines de facteurs supplémentaires: quel système d'exploitation utilisez-vous? Quelle version de cet OS? Qu'en est-il de la version du pilote? Quels paramètres du BIOS sont activés? Avez-vous des logiciels fonctionnant en arrière-plan comme Razer Synapse ou Corsair iCue ?

Le RTX 4080 dans un banc d'essai en cours d'exécution.
Jacob Roach / Tendances numériques

La portée des configurations possibles va bien au-delà du CPU et du GPU que vous avez dans votre système, et ces facteurs peuvent facilement se multiplier en dizaines de milliers de scénarios que les développeurs ne peuvent tout simplement pas prendre en compte pour. Dans un monde idéal, les développeurs peuvent résoudre les plus gros problèmes pour les configurations de PC les plus populaires avec les dernières mises à jour de pilotes et de système d'exploitation, ne laissant que de petits problèmes spécifiques à résoudre après le lancement.

Whitten n'est pas seul dans ce sentiment non plus. John Johanas, directeur du jeu de Ruée vers la Hi-Fiet Le Mal Intérieur 2, dit qu '«il est assez irréaliste de penser que vous pouvez fabriquer un produit qui fonctionnera parfaitement sur ce ressemble à une configuration illimitée de processeurs, de GPU, de mémoire et, plus probablement, de ce qui s'exécute dans le arrière-plan."

Hideyuki Miyashita, programmeur système sur Ruée vers la Hi-Fi, d'accord, mais a spécifiquement souligné le coût de l'optimisation d'un jeu pour chaque configuration possible: En termes de performances PC, rendre chaque fonctionnalité graphique évolutive pour différentes configurations serait idéal; cependant, les coûts de développement imposent un plafond supérieur à un support d'évolutivité réaliste.

Ce n'est pas une nouvelle histoire. Le large éventail de configurations PC est le coupable commun de tout, de la difficulté d'optimiser les jeux sur PC à la raison pour laquelle nous n'avons pas vu Le CV rapide de Xbox apparaît dans Windows. La question est de savoir ce que les développeurs peuvent faire malgré le temps et l'argent limités dont ils disposent. Parce que les PC ne deviennent pas plus simples et que les jeux arrivent toujours sur la plate-forme en panne.

Ce que tu peux bien faire

Cal Kestis brandissant son sabre laser bleu et portant le BD-1 dans Star Wars Jedi: Survivor.

Nous avons beaucoup d'exemples de jeux mal pris en charge par PC cette année. Un premier exemple est Star Wars Jedi: Survivant, qui actuellement siège à un statut d'examen "Mixte" sur Steam bien qu'il soit l'un des jeux les plus acclamés de l'année. La meilleure critique se lit comme suit: "Un seul crash a corrompu mon fichier de sauvegarde de 140 heures à 99,8 % NG+." Ouais.

J'ai contacté l'équipe de développement pour avoir une idée de ce qui n'allait pas, et bien qu'ils aient été initialement réceptifs, EA est intervenu et a cessé de renvoyer mes e-mails. Ainsi, au lieu de regarder quels jeux font mal sur PC, nous devons regarder ce que les développeurs font bien.

Ruée vers la Hi-Fi est une étude de cas primordiale. C'est un nouveau jeu d'un studio AAA, et il utilise le tristement célèbre Unreal Engine 4. Vous pourriez penser que c'est comparer des pommes à des oranges entre Ruée vers la Hi-Fi et un jeu comme Star Wars Jedi: Survivant, mais ils ont plus en commun que vous ne le pensez. Comme le souligne Johanas, "... le fait que le jeu ait une esthétique de dessin animé donnera à certains utilisateurs l'impression que le jeu ne devrait pas être un problème pour fonctionner sur le PC de n'importe qui. De manière réaliste, le jeu fait beaucoup de choses pour obtenir le look que nous recherchions et la constante monde en mouvement qui est très éprouvant… Je savais qu'en entrant et je me suis assuré que nous essayions de frapper ces attentes."

Chai frappe un robot dans Hi-Fi Rush.
Béthesda

Fixer cet objectif dès le départ semblait important pour Ruée vers la Hi-Fila stabilité. Les développeurs notent que c'était un objectif de conception depuis le début de maintenir au moins 60 images par seconde (fps) en raison du fait qu'il s'agit à la fois d'un jeu de rythme et d'un jeu d'action, où le fait de ne pas atteindre cette marque entraînerait "des hoquets [qui] pourraient entraîner une désynchronisation de la musique et une expérience de jeu perçue comme médiocre", selon Johanas.

Comment l'équipe de Tango Gameworks a-t-elle réussi? Cela se résume largement à trois points principaux: une surveillance minutieuse de la VRAM, des opérations asynchrones et la mise en cache PSO.

Selon Kosuke Tanaka, programmeur graphique en chef pour Ruée vers la Hi-Fi, l'équipe a surveillé l'utilisation de la VRAM à chaque étape du développement. Cela inclut la surveillance de chaque niveau, bien sûr, mais aussi l'utilisation de la VRAM de chaque section artistique, en demandant aux artistes de réduire l'utilisation de la mémoire de texture ou de maillage pour s'adapter au budget du jeu. Ce n'est pas rare non plus dans le développement de jeux.

Ce qui fonctionne dans Ruée vers la Hi-FiSa faveur est sa forte direction artistique. Comme le souligne Tanaka: "Notre style artistique nous a un peu aidés car nous n'avons pas besoin de textures PBR traditionnelles telles que les cartes normales, la rugosité des cartes ou des cartes métalliques. C'est un témoignage de travailler avec des limites créatives, et comment cela peut influencer la stabilité de la finale produit. Johanas dit qu'il ne s'agissait pas d'une portée plus petite – il s'agissait de n'avoir "pas besoin d'aller grand sans raison".

J'ai demandé à l'équipe ce qu'elle avait appris de Ruée vers la Hi-Fi qu'il pourrait mener à des projets plus vastes et plus larges, mais ce n'est pas exactement la façon dont Tango tire les leçons du jeu. En fait, l'équipe de développement m'a dit qu'elle en avait appris beaucoup plus sur l'optimisation grâce à Ghostwire: Tokyo, qui s'intègre davantage dans le moule AAA traditionnel, et il a transposé ces idées dans Ruée vers la Hi-Fi, pas l'inverse.

Akito attaque les ennemis avec de la magie dans Ghostwire: Tokyo.
Ghostwire: Tokyo est une première vitrine du TSR d'Unreal Engine, qui est très similaire à FSR 2.0.

"Nous avons appris beaucoup de nos connaissances sur la façon de gérer le bégaiement dans le jeu en Ruée vers la Hi-Fi de notre expérience d'optimisation Ghostwire: Tokyo», m'a dit Miyashita. Une grande partie de cela était  Mise en cache de l'objet d'état du pipeline (PSO). Il s'agit d'une fonctionnalité disponible dans Unreal Engine 4 qui aide à réduire le bégaiement en précompilant les shaders avant de lancer le jeu.

Le principal problème est qu'Unreal Engine 4 ne le fait pas automatiquement, ce qui conduit à des situations où les shaders doivent se compiler pendant que vous jouez au jeu, ce qui provoque un bégaiement. Miyashita dit "cela a entraîné certains post-processus et VFX pour provoquer le bégaiement." Le programmeur dit également que la mise en cache PSO est facultative, elle doit donc être une priorité spécifique pour le développeur.

Cependant, la mise en cache ne résout pas tous les problèmes, et c'est là qu'interviennent les opérations asynchrones. Le Ruée vers la Hi-Fi L'équipe a utilisé la compilation asynchrone - où les shaders sont compilés séparément du fil du jeu - mais c'était aussi une grande priorité étant donné que le jeu fonctionnait sur Unreal Engine 4.

Comme nous l'avons vu avec d'autres jeux Unreal Engine 4 comme Star Wars Jedi: Survivant et chute rouge, le moteur n'est pas très bon pour s'adapter aux nombreux threads disponibles sur les processeurs modernes. Comme Miyashita explique: "La difficulté de prise en charge du multithreading dépend fortement du moteur utilisé. architecture. Malheureusement, UE4 est un peu court à cet égard.

En particulier, Unreal Engine 4, selon le développeur, place la création d'acteurs (objets/personnages) et de widgets (UI et superposition) sur le même thread CPU que le jeu. Cela signifie que chaque fois que le jeu veut, par exemple, charger un nouveau personnage, il prend la priorité sur le fil. Miyashita dit "cela peut entraîner la création complexe d'acteurs et de widgets bloquant le fil du jeu pendant une longue période". C'est un bégaiement.

La solution est les opérations asynchrones. Miyashita dit que l'équipe utilise des outils d'analyse pour identifier ce que fait le processeur lorsque des objets sont amenés et qu'ils s'efforcent de déplacer ces tâches vers différents threads afin que le jeu ne ralentisse pas bas. Ce ciblage spécifique peut également aider au chargement des ressources. Le déplacement de ces opérations dans une structure parallèle peut éviter les pièges du bégaiement en continu présents dans des jeux comme Espace mort.

La voie à suivre pour les ports PC

Layla se protège avec un parapluie spectral dans Redfall.

Les jeux qui sortent aujourd'hui dans des états désastreux ont commencé leur développement il y a des années, donc même si j'ai bon espoir que les versions PC s'amélioreront au fil de l'année, il faudra peut-être plusieurs années avant de voir ces problèmes de base adressée.

Whitten dit que "les développeurs sont aussi préoccupés par les performances que les joueurs", et c'est un sentiment que j'ai entendu à plusieurs reprises. Il existe des moyens d'optimiser les versions PC, des shaders de pré-cache aux opérations asynchrones en passant par la validation sur une grande variété de matériels. Mais la réalité est que les développeurs ne peuvent pas tout expliquer, en raison du temps ou de l'argent, et généralement des deux.

La voie à suivre ici est simple. Tout d'abord, faites savoir aux éditeurs de ces jeux que vous préférez voir un retard plutôt qu'un jeu cassé. Crier aux développeurs ne fera pas grand-chose – ils connaissent déjà le problème, et ils aimeraient probablement qu'il soit résolu tout autant que vous. Deuxièmement, soyez prudent lorsque vous achetez un nouveau jeu PC le jour de sa sortie. Il est difficile d'être patient lorsque vous attendez quelque chose avec impatience (croyez-moi, je sais), mais attendre pour acheter un jeu jusqu'à ce que le les problèmes ont été résolus envoie un signal fort aux éditeurs pour qu'ils investissent plus de temps et de ressources pour s'assurer que les jeux sont polis sur PC.

Il est facile d'oublier que c'est encore un territoire inexploré. Maintenant plus que jamais, les jeux arrivent sur PC le même jour qu'ils arrivent sur les consoles, contrairement à il y a quelques années où les ports PC sont arrivés des mois (voire des années) plus tard. Il y a deux générations de consoles, la plupart des jeux n'étaient livrés le même jour que sur une seule plateforme; dans la génération précédente, c'était deux. Désormais, les développeurs doivent livrer au moins trois plates-formes le même jour, et parfois plus de cinq s'ils ont une version de dernière génération.

Il n'est pas difficile de voir pourquoi il y a des problèmes sur PC dans ce contexte, mais j'espère que des versions plus raffinées sont en route.

Cet article fait partie de ReSpec – une colonne bihebdomadaire continue qui comprend des discussions, des conseils et des rapports approfondis sur la technologie derrière les jeux sur PC.

Recommandations des éditeurs

  • J'ai essayé de revivre l'héritage oublié de Halo en tant que franchise Mac - et ce fut un désastre
  • Les pires ports PC de tous les temps - et pourquoi ils étaient si mauvais
  • Star Wars Jedi: Survivor est en train d'être bombardé sur Steam en tant que port PC "totalement merdique"
  • Comment Unreal Engine 5 s'attaque au plus gros problème du jeu sur PC
  • L'IA arrive pour vos jeux PC, mais vous devriez être excité, pas inquiet