Poids, rendu, visuels, zoom sur la technique de COD : Warzone

COD warzone poids patch mise à jour

Découvrez pourquoi le jeu est aussi volumineux et petit tour d’horizon technique.

[divider style= »dotted » top= »3″ bottom= »3″]

A lire aussi : COD Modern Warfare – Warzone: Les armes de la saison 4

[divider style= »dotted » top= »3″ bottom= »3″]

A l’occasion de la sortie de la saison 4 de Call of Duty Warzone, Digital Foundry a mis en ligne une vidéo technique (disponible en fin d’article), sur les coulisses et le fonctionnement du moteur de jeu IW8. Développé par les équipes techniques d’Infinity Ward, ce moteur s’avère être l’un des plus rapides, fluides et détaillés, dédié à un Battle Royale sur console et PC. Il permet d’avoir, sur une seule carte, 150 joueurs sans temps de chargement (hormis le premier) et le tout pour une expérience cible à 60 fps sur consoles.

Pour ceux qui ne sont pas encore partis après les mots « Call of duty« , je tiens à vous prévenir que cette article va être un peu technique tout en étant le plus sommaire possible.

Modern Warfare 2019 : Un moteur de jeu complet parmi les meilleurs

[divider style= »normal » top= »1″ bottom= »1″]

Aperçu

[divider style= »dotted » top= »3″ bottom= »3″]

Pendant de nombreuses années, Call Of Duty a été décrié pour son moteur à la traîne vis à vis de la concurrence, notamment le FrostBite de DICE. Le moteur, essoufflé, manquait d’optimisation pour un rendu parfois en retard de plusieurs années et une réutilisation de textures déjà vues dans les précédents épisodes. Mais pour le dernier né de sa franchise (sans compter les Remastereds), IW a voulu reprendre les choses en main avec pour objectif principal d’atteindre les 60 fps sur console avec la meilleure qualité visuelle possible, tout en dotant son moteur des derniers standards du marché avec :

  • la possibilité de générer du rendu à la fois visible, invisible et dans le spectre thermique (ex : rendre un personnage présent derrière un mur et visible pour le joueur à l’aide de lunettes thermiques)
  • l’ajout de lumières volumétriques
  • l’ajout de nouvelles textures plus réalistes avec une optimisation de leur géométrie.

Le système de streaming en arrière plan a également été revu pour utiliser une approche basée sur un système hybride de tuiles, on abordera ce point là plus en détail par la suite.

Concrètement dans Warzone

[divider style= »dotted » top= »3″ bottom= »3″]

Warzone n’est pas le premier Battle Royale de l’univers Call of Duty, Blackout l’était dans COD : Black Ops IV. Cependant, Warzone a été pensé totalement indépendamment.

Les deux partagent des technologies similaires, mais pour IW, il était nécessaire de repenser le mode depuis le début tout en intégrant à leur autres modes de jeux (le multijoueur classique, la campagne et les modes coops) des technologies pensées pour Warzone, afin que l’expérience reste unique pour tous. L’optimisation apportée par Warzone a donc été bénéfique pour les performances des autres modes.

L’objectif premier d’IW pour son mode, c’était de créer la plus grande carte multijoueur d’un Battle Royale, mais que cette carte soit aussi fidèle que possible aux autres cartes de plus petite taille disponibles dans les modes classiques du multi-joueur.

Mais comment obtenir cette fidélité en étant le plus optimale possible ?
IW a conçu la carte de Warzone comme une carte géante qui a ensuite été découpée, puis chacun des morceaux a été transformé en carte individuelle pour les modes multi-classiques.

Comparaison Quarry Warzone GroundWar

Cette façon de procéder a un autre avantage. Si un élément pour une saison X ou Y vient à changer sur une carte – ajout d’un élément d’histoire par exemple – IW s’assure qu’il sera répercuter sans conséquences sur toutes les cartes. Cela permet de garder une cohérence totale.

Mais ce concept va bien plus loin car, avant, IW faisait de son multijoueur et de sa campagne, deux codes bien distincts. Depuis Modern Warfare 2019, le multijoueur, la campagne et Warzone partagent tous le même moteur, le même code. Chaque optimisation de l’un, bénéficie ainsi aux autres.

Parlons LOD

[divider style= »dotted » top= »3″ bottom= »3″]

Maintenant que nous avons parlé de comment InfinityWard a pensé son jeu, discutons un peu technique, notamment du LOD – Level Of Detail (« niveau de détail » en français). Le concept du LOD est assez simple : Prenons par exemple une maison, dans la vraie vie.

  1. Lorsque vous êtes au plus prêt de celle-ci, vous la distinguez parfaitement, votre œil en voit tous les détails.
  2. Mais maintenant, reculons d’environ 50m, vous n’allez plus distinguer aussi efficacement les volets, ni les portes, ni la cheminée par exemple. Ces éléments deviennent pour vous qu’une vague forme rectangulaire.
  3. Reculons encore de 50m et maintenant vous ne distinguez plus rien, la maison devient un bloc avec un toit triangulaire.
  4. Reculez maintenant encore de 100m, pour votre œil, la maison parfaitement détaillée n’est plus qu’un vulgaire pavé.

Et bien le LOD, c’est l’application de ce principe là dans les jeux vidéo.

Pourquoi demander au moteur de jeu de rendre une maison parfaitement détaillée, si votre personnage se trouve à plus d’une centaine de mètres de celle-ci et que l’écrasement ne vous permettra pas de distinguer les détails ? Autant générer une maison qui ressemblera à un bloc, vous ne pourrez pas faire la différence.

Dans Modern Warfare ce principe est appliqué avec trois niveaux bien distinct. Le LOD 0, le LOD 1 et le LOD 2. Chacun ayant un niveau de détails bien distinct comme vous pouvez le voir dans l’exemple ci-dessous.

Les impostors

[divider style= »dotted » top= »1″ bottom= »1″]

J’ai découvert les impostors en écrivant cet article, je ne connaissais pas ce procédé et je ne sais même pas s’il a une traduction française. On continuera donc à appeler ça les impostors. Le concept des impostors est assez simple mais je le trouve diablement efficace. C’est aussi, à mon avis, l’une des principales raisons expliquant le poids extrêmement important du jeu.

Pour venir compléter le LODIW va utiliser ces fameux impostors. Par exemple, il est très difficile de créer un rendu dynamique pour des arbres, surtout à longue distance, tout en restant réaliste et sans consommer trop de ressources. Du coup, plutôt que de générer un rendu 3D, un aplat 2D est utilisé.
Mais toujours dans un soucis de réalisme, il faut que l’aplat 2D tienne compte de l’angle de vue du joueur (ou de la caméra) pour que le rendu soit le plus convainquant possible vis à vis du rendu 3D qui sera par la suite affiché à l’utilisateur.
Et pour ça, il y a en moyenne 36 billboards (une grande texture) différents par objet à rendre. Imaginez maintenant le nombre de billboards nécessaires pour l’intégralité du jeu, si chaque objet, bâtiment ou autre élément possède 36 billboards. Vous comprenez un peu mieux pourquoi le jeu pèse plusieurs centaines de Giga-Octets.

Je vous rajoute une petite vidéo basée sur le moteur d’Unity pour vous donner un ordre d’idée.

Le système de streaming

[divider style= »normal » top= »1″ bottom= »1″]

Pour décider quoi et comment afficher ce que le joueur doit voir sur son écran, IW s’appuie sur un système de diffusion basé sur des tuiles. L’environnement du joueur est découpé en tuiles qui forment une sorte de carte.
Le joueur se déplace de tuile en tuile sur cette carte et chaque tuile dispose d’un état, définit par la position du joueur et l’orientation de la caméra. Puis c’est cet état qui définit si les éléments de la tuile doivent être affichés ou non, dans quelle qualité, s’il fait préalablement le charger, s’il est à afficher bientôt, en cours d’affichage, etc.

Je vous laisse avec l’image ci-dessous pour mieux illustrer ces tuiles entourant un joueur :

Un jeu multiplateformes et crossplay

[divider style= »normal » top= »1″ bottom= »1″]

Une autre explication concernant la taille du jeu sur toutes les plateformes vient justement du fait qu’il soit multiplateformes.

Call of Duty Modern Warfare étant un jeu crossplay PC, PS4 et Xbox One, son moteur de jeu – son code de base – doit embarquer tout le contenu dédié à ces trois environnements, afin de pouvoir tourner de façon optimale pour tous.

Cela veut dire par exemple des shaders supplémentaires, du code réseau, etc. Notez que, par exemple, 30% du temps des développeurs est consacré à la résolution de bugs liés à l’environnement multiplateformes.

En conclusion

[divider style= »normal » top= »1″ bottom= »1″]

Tous ces éléments ne font pas de Modern Warfare un jeu parfait.
Ce problème de taille et de patch conséquent est une réalité bien agaçante pour les joueurs et même si IW a indiqué travailler sur une future solution, cela reste toujours une grosse contrainte, que cela soit à cause de la taille de stockage et/ou à cause de la lenteur de certaines connections. Vient s’ajouter à cela les problèmes de cheat, que IW semble traiter assez efficacement pour le moment, mais qui sont inhérents malheureusement à tous ces jeux.

Mais je dois reconnaître que le travail effectué par IW m’a assez bluffé. J’avais depuis longtemps décroché des Call Of Duty, ne retrouvant pas le plaisir que j’avais pendant les premiers épisodes. Plaisir qui est revenu suite à la sortie de celui-ci.

Je vous invite à regarder la vidéo de Digital Foundry qui m’a permis d’écrire cet article et qui est un petit bijou de reportage. Je n’ai pas abordé tous les sujets et cela vous permettra d’en apprendre davantage sur la gestion des ombres, l’utilisation du rendu procédurale pour tous les éléments sans collision (les buissons, les fleurs, etc.) ou comment IW a dû s’adapter aux contraintes techniques des deux consoles.

PS : Pour ceux que ça intéresserait, je vous conseille la chaine Youtube Pause Process qui traite justement du monde du développement de jeux vidéo en passant du concept de prototype, à l’Unreal Engine ou simplement en expliquant ce qu’est l’antialiasing. Cette chaîne est un petit bijou de vulgarisation et le tout en français.

[divider style= »normal » top= »2″ bottom= »2″]

Retour en haut