God of War Ragnarök est arrivé sur PC cette semaine, offrant une version améliorée du hit PlayStation avec une série de mises à jour graphiques et de nouvelles fonctionnalités spécifiques au PC. Pour marquer l’occasion, Alex Battaglia s’est entretenu avec Matt DeWald, producteur principal chez les développeurs originaux de Sony Santa Monica, et Steve Tolin, directeur technique des développeurs de portage PC Jetpack Interactive.
Cette interview de grande envergure comprend de nombreuses informations techniques sur le portage, notamment sur la manière dont le jeu a été conçu pour évoluer bien au-delà des versions console, tout en évitant les problèmes courants sur PC comme les bégaiements de compilation des shaders et l’utilisation inefficace des processeurs hybrides modernes. Comme toujours, l’interview ci-dessous a été légèrement modifiée pour plus de longueur et de clarté.
Nous aurons bientôt la répartition du portage PC par Digital Foundry – soyez attentifs à cela au début de la semaine prochaine. Malheureusement, nous n’avons pas eu le temps nécessaire avec le code de test pour terminer notre couverture du lancement du jeu – mais ce que nous pouvons dire, c’est que Jetpack Interactive et Santa Monica Studio ont livré ici un portage solide. Nous aurons bientôt plus à dire, ainsi que ces paramètres optimisés si importants.
Digital Foundry : Alors, quand le projet de portage de God of War Ragnarok a-t-il commencé ?
Matt DeWald: Oui, nous avons donc travaillé dessus pendant environ 18 à 24 mois maintenant. La majeure partie du travail avant la sortie de Ragnarok consistait simplement à mettre le moteur au point sur DX12. Une fois Ragnarok entièrement sorti, c’est à ce moment-là que nous avons pu effectuer la transition complète et commencer le véritable processus de portage. Ensuite, lorsque Valhalla a été terminé, c’est à ce moment-là que nous avons pu également rassembler tout ce contenu et le conclure ici. Donc un peu entre 18 et 24 mois.
Digital Foundry : Le premier jeu God of War sur PC était un portage DX11, tandis que Ragnarök est un portage DX12. Comment s’est déroulé le portage de tout ce que vous aviez sur DX12 ?
Steve Tolin:Nous avons fait DX11 pour le premier jeu parce que cela nous a donné les résultats dont nous avions besoin à l’époque, mais nous savions en arrière-plan que passer à DX12 était ce que nous devions faire, pour tous les gains de performances que nous voulions obtenir. Shader Model 6 et DX12 Ultimate ont en quelque sorte tenu la promesse de ce que DX12 pouvait toujours être, donc c’est à ce moment-là que cela en valait la peine.
Digital Foundry : Vous avez mentionné spécifiquement DX12 Ultimate, qui a ajouté des éléments comme un nouveau modèle de shader, VRS, le ray tracing DirectX, ainsi que des shaders de maillage. De quoi exactement DX12 Ultimate et le nouveau modèle de shader vouliez-vous vraiment profiter pour porter God of War Ragnarok ?
Steve Tolin: La gestion des ressources sans contrainte était la plus importante. Nous allons maintenant aussi loin que possible sur le CPU pour générer des listes de commandes. La gestion du pool de ressources est meilleure, elle ressemble davantage à celle d’une console. Avant Ultimate et ce modèle de shader, il y avait encore une partie de transition héritée qui n’était pas tout à fait ce qu’elle devait être. La gestion des ressources et la gestion de la chronologie pour DirectX, le fait de tout mettre sur la VRAM et d’être prêt et au bon moment, c’est tout ce qui compte avec un jeu PC, n’est-ce pas ?
Digital Foundry : En parlant de ressources, DX12 propose une compilation explicite des PSO, et c’est mon problème sur PC. Je déteste quand ça ne fonctionne pas et que la compilation des shaders est saccadée. Je n’en suis qu’au début, mais je n’ai remarqué aucun pic de temps d’image pendant ma partie, ce qui est ce que vous voulez voir. Que faites-vous exactement pour les PSO ?
Steve Tolin:On n’a que 30 minutes ? [laughs] Nous sommes dans le même camp que vous – nous utilisons le hashtag #StutterStruggle de la même manière que vous et nous le prenons à cœur, car ce n’est pas quelque chose que nous voulons voir dans nos jeux.
Gérer les paramètres des cookies
Le plus gros problème et l’obstacle pour beaucoup de cela est que vous devez avoir une représentation complète de tous vos passages de rendu d’exécution et de tout ce qui est hors ligne, afin que vous puissiez exécuter tous vos matériaux à travers elle pour générer toutes les permutations pour tout, puis attraper tout ce qui est fait.
Très tôt, nous avons décidé de ne pas laisser l’assurance qualité jouer au jeu et accumuler des PSO de cette façon, puis de livrer un ensemble connu à l’avance et d’espérer que les joueurs ne regarderont pas dans un coin. Nous avons réalisé la construction complète hors ligne et créé les PSO hors ligne, donc toutes les données sont connues à l’avance dans le pipeline pour nous, et il nous a fallu beaucoup de temps pour y parvenir.
Digital Foundry : Ragnarök est à la fois un jeu PS4 et PS5, et il est facile de remarquer les différences de taille d’installation pour chaque plateforme. Comment gérez-vous la compression et la décompression des ressources pour PC ?
Matt DeWald:L’une des choses qui a été soulignée dans notre fiche technique est simplement la taille du jeu – et c’est un très gros jeu pour être honnête, il s’agit de tout Ragnarök plus tout Valhalla plus tous les correctifs que nous avons publiés depuis le lancement.
Mais sur PC, nous manquons de matériel dédié à la décompression, nous avons donc examiné plusieurs méthodes et systèmes de décompression que nous pourrions utiliser. Nous n’en avons tout simplement pas trouvé qui nous serait bénéfique du point de vue des performances ou de la stabilité, car il y a eu des problèmes de stabilité avec certaines technologies de décompression. Nous avons donc simplement choisi d’utiliser plus d’espace disque, car l’espace disque est relativement bon marché de nos jours. Cela prend beaucoup de place, mais c’est bien mieux que d’avoir une mauvaise expérience parce que la décompression vous bloque ou provoque des saccades d’images ou d’autres problèmes.
Steve Tolin:Il y a plus de compression sur les ressources dans ce jeu que dans le précédent. C’est juste que sur certaines d’entre elles, nous avons choisi, comme Matt l’a dit, d’utiliser plus d’espace disque plutôt que plus de ressources CPU.
Digital Foundry : Le God of War original était un jeu PS4, il était donc relativement facile d’intégrer même les textures haute résolution dans un GPU de 6 Go. Ragnarök est un titre PS5, et de nombreux GPU PC ne font que 8 Go. Alors comment avez-vous réussi à respecter les budgets VRAM des GPU grand public ?
Steve Tolin:Nous savions que nous devions être plus évolutifs sur celui-ci, dans le jeu précédent, notre paramètre le plus bas était de 4 Go, maintenant il est de 6 Go. Nous avons juste besoin de plus pour les cibles de rendu, en particulier avec des résolutions plus élevées, mais maintenant nous allons jusqu’à 20 ou 24 Go – je suis sûr que la semaine prochaine il y aura 32 Go !
Pour DX12, nous avons un mantra ici, qui est que nous devons être un bon citoyen PC. Nous demandons beaucoup de VRAM, et le système d’exploitation nous dit « eh bien, vous devez réduire un peu la mémoire – vous diffusez, vous lancez un autre jeu, ces onglets Chrome consomment beaucoup ». Nous réagissons donc beaucoup à cela, mais nous en utilisons autant que nous le pouvons. Nous en utilisons plus que sur la version PS5, si possible. C’était beaucoup de travail, je dois remercier Arn pour cela en particulier.
Digital Foundry : Cela signifie-t-il que le jeu, en fonction de la VRAM disponible, adaptera automatiquement la qualité des textures et les cartes en streaming pour s’adapter au pool ?
Steve Tolin:En quelque sorte ! Il y a un cache qui est impliqué, donc c’est la taille du cache qui évolue, donc il y a un compromis entre la quantité que nous diffusons à partir du disque plutôt qu’à partir d’un cache RAM ou VRAM.
En ce qui concerne le portage des bizarreries graphiques, la dernière fois que nous avons discuté, vous avez mentionné à quel point le système de particules était unique et qu’il constituait un défi à porter sur PC. J’aimerais savoir s’il y a eu quelque chose de similaire cette fois-ci, ainsi que comment vous avez porté le traçage de la carte cubique très particulier qui a été réalisé sur le mode qualité de la PS5.
Steve Tolin:C’est Kyle qui a fait toutes les particules dans la version DX11, et c’était une réécriture complète pour DX12. Heureusement, les leçons apprises de ce portage initial et les API DX12 étant plus modernes et ayant une meilleure gestion de la mémoire ont permis de le rendre beaucoup plus simple.
Matt DeWald:Pour les réflexions sur les cartes cubiques, nous avons essayé de faire fonctionner correctement DXR, mais nous n’avons pas réussi à le faire, nous sommes donc revenus à des cartes cubiques de base dans ce domaine. Nous avons réalisé qu’en raison du nombre de surfaces réfléchissantes et de l’environnement global, le lancer de rayons est particulièrement visible dans la scène que Stephen McAuley a évoquée dans son exposé à la GDC [around 23:00 in the Realm Between Realms. Given the time of the project, we’ve pushed that to the side for now. We’re hoping to get to that post-launch if we can get DXR working the want we want it to.
Digital Foundry: How does the game scale beyond the PlayStation 5 version? Previously we talked about LOD distance, shadow distance, shadow resolution.
Matt DeWald: It scales up in a couple of those same things where we can increase numbers, like the number of rays, and we looked at doing even more than in the original God of War. We were already working on Ragnarök at that time, so we could pull in some of the features the team was working on, so we weren’t able to do that this time. Because we already support base PS4 to PS5 in quality and performance mode, we felt we had a breadth of settings and could tweak the numbers for PC: texture size, sampling numbers, resolution of volumetric fog, any of those things.
Digital Foundry: For the enhanced (32:9) aspect ratio, was that a huge art pass to get it working?
Matt DeWald: Yeah, that was a ton of animation work, because we have a lot of controlled camera movements, not just in cinematics, but in what we call GPMs, gameplay moments where the camera is controlled. Obviously the animators hack a lot of stuff to warp people into positon or move things around, so by going to 32:9, we more than tripled the amount of work we had to do to fix up all of those moments and cinematics and identify all of the points where characters aren’t fully animated because they weren’t supposed to be on-screen.
And for the HUD, is it more malleable now?
Matt DeWald: It still has limitations; we have multiple modes and it’ll stretch to the screen or stay centred. We had to provide three modes – 32:9, 21:9 and 16:9, plus 16:10. PC has that wonderful thing where everyone has custom configurations and you have to figure out how it works on all the different setups. It’s a lot of work because a lot of game is built bespoke for a single platform, and it’s a closed environment, so once we open it up for PC, it’s a lot of work. Shout out to Mike, the programmer on the UI side, for doing a lot of that work.
Digital Foundry: The first GoW game on PC defaults to « original » settings, based on those used for PS4/PS4 Pro, while Ragnarök defaults to medium. What settings are closest to PS5’s performance and quality modes?
Matt DeWald: Low is close to base PS4, with a few things changed because PC doesn’t have unified memory and our CPU is not necessarily as powerful, going up to ultra which is PS5 quality mode.
Digital Foundry: Is async compute used in the DX12 version of the game on PC?
Steve Tolin: Async copy queues for resources, and then compute jobs all the time, everywhere, everything.
Digital Foundry: What’s something you really enjoyed working on for the Ragnarök port?
Steve Tolin: I think there’s three things we hit: taking full advantage of DX12 – going fully multi-threaded, getting PSOs working smoothly, and the final thing is CPU topology. Cores aren’t cores anymore, caches and cache clusters make more of a difference than you might think. We reorganised where our work gets done for a large performance boost. It’s all the Intel Hybrid Detect stuff. That’s important, more teams and games should be looking at that.
Matt DeWald: Mine’s going to be more boring, but it’s that it’s great working on a project where you have a great starting point. Ragnarök is a great product and I’m really proud of the team working on that, so porting something over that’s already in a good state is a lot easier. Also the fact that we were able to deal with such a small team – we’re still working with Jetpack who did the last game, and it’s still just four guys over there. We’re doing this with four engineers, plus some internal support from animators, QA folks and a handful of people with subject matter expertise. I’m always proud of what the team is able to accomplish in a short amount of time.
We’re super excited for people to play the game. It’s a whole new audience that gets to experience it. We get to see all the crazy stuff people put together, it’s always fun.
I also love watching videos of you guys doing tech analysis, because for us it’s like « oh, we didn’t think about that. Why didn’t we do that? Can we do that in a patch? » I’m just really excited to get this out the door and see what the reactions are and see what we can do to make it even better.