Quelles améliorations ont-elles été apportées au moteur graphique de Capcom, le MT Framework ? Comment a-t-il été adapté à un contexte de monde ouvert ? C'est ce que va nous expliquer le programmeur Yahagi-san dans ce tout nouvel article.
Mon nom est Yahagi, et je suis en charge de l'optimisation et de l'ingénierie liée au MT FRAMEWORK, au sein de l'équipe de Dragon's Dogma. Avant cela, j'ai travaillé sur des titres tels que Devil May Cry 4, Lost Planet Extreme Condition, Resident Evil 5 et Lost Planet 2. On a ainsi fait appel à mon expérience du MT FRAMEWORK pour l'adapter à un contexte de monde ouvert, le fondement même de DD.
Jusqu'à aujourd'hui, aucun jeu sur lequel j'ai travaillé n'avait demandé autant d'ajustements des systèmes internes du MT FRAMEWORK. La raison principale est que ces titres étaient tous basés sur des niveaux (ce qui n'est pas le cas ici). Toutes les données liées à un niveau étaient ainsi lues durant l'écran de chargement. Il n'y avait donc aucun chargement du niveau durant la partie. Et le MT FRAMEWORK était optimisé pour ce type de contexte. Pour Dragon's Dogma, nous avons dû commencer par repenser tout ceci.
La surface du monde ouvert étant des dizaines, voire des centaines de fois plus grande que les niveaux que nous avions créés jusqu'à présent, il nous était impossible de procéder de la même manière, sans quoi des problèmes seraient inévitablement apparus. Pour cette raison, nous avons spécialement créé ce que nous appelons un « World Offset », pour que la structure du monde ouvert évolue sans que le joueur ne le remarque, et qu'ainsi les données restent constamment à jour.
En outre, les limites imposées par les nombres à virgule flottante de simple précision ne nous permettaient pas de restituer ce monde immense. Une solution aurait pu être de contourner cette limite en faisant appel à un nombre à virgule flottante de double précision. Mais malheureusement ce type de donnée n'est pas optimal pour le développement lié aux consoles et aux jeux vidéo. Cette approche n'est réellement exploitable qu'en utilisant des superordinateurs. (Avec un peu de chance, les consoles de la prochaine génération le permettront.)
En adoptant ce « World Offset », nous avons été capables d'éviter de dépasser la précision offerte par les nombres à virgule flottante. Ainsi, en déplaçant le monde d'une distance définie, nous avons pu éviter toute rupture.
De plus, puisque dans un contexte de monde ouvert, les données doivent être lues en cours de partie, nous avons tout fait pour proposer un format qui puisse être traité de manière optimale par la PlayStation 3 et la Xbox 360. Les joueurs ne s'en apercevront jamais, mais en coulisses, nous faisons constamment différents calculs dans le but d'optimiser le chargement des données.
Par ailleurs, pour ce titre, nous avons utilisé des « éclairages différés ». Un profond changement pour nous tous. Cette fonction était nécessaire pour pouvoir proposer des variations dans la lumière et les ombres, ce qui est évidemment essentiel pour retranscrire les changements de temps tout au long du cycle de 24h. J'espère que vous apprécierez tous les variations hautement réalistes d'ombres et de lumières, dans ce vaste monde, en passant du jour à la nuit, avant d'assister à nouveau au lever du soleil.
Jusqu'à présent, pour afficher les images à l'écran, nous utilisions la technique tout à fait standard de pipeline de rendu appelée « Forward Rendering ». Toutefois, cette technique connait des limites, notamment en termes de lumière, et s'est finalement avérée inappropriée pour un rendu efficace des variations liées au cycle de 24h. Grâce à la lumière différée, nous sommes à présent capables de placer un nombre virtuellement infini de sources de lumière dans un environnement. Avec cette fonction, nous pouvons désormais afficher des sources de lumière vraiment réalistes, aussi bien pour les longues distances, que pour l'éclairage d'une lanterne, que lors de l'invocation d'un sort.
Par ailleurs, depuis Lost Planet 2, nous disposons de la version 2.x du MT FRAMEWORK, ce qui nous permet de proposer des graphismes encore plus riches qu'avec la version 1.x du moteur, utilisée notamment pour Resident Evil 5. Cette fois, nous nous sommes encore davantage concentrés sur les shaders, et avons implémenté encore plus de fonctions. Nous pouvons désormais afficher différents types d'interactivités dans nos graphismes : les personnages peuvent par exemple apparaître complètement trempés, ou avec des vêtements brûlés.
Enfin, Dragon's Dogma utilise FXAA, la toute dernière technologie d'anti-aliasing (proposée par nVidia). Son intégration dans le MT FRAMEWORK s'est faite après les versions de la Captivate, de l'E3 et du TGS (une autre technique d'anti-aliasing était alors utilisée). FXAA sera entièrement intégrée dans la version finale du jeu. Grâce à elle, nous avons pu bénéficier d'un anti-aliasing de haute qualité pour proposer ces gigantesques environnements qui auront l'air encore plus fluides.
Pour Dragon's Dogma, nous avons combiné toute l'expérience, les techniques, et la connaissance accumulées au fil des années, pour proposer la version la plus optimisée pour les consoles que nous ayons réalisée à ce jour. Nous espérons que vous apprécierez les superbes graphismes, qui seront encore meilleurs que tout ce que nous avons pu faire avec le MT FRAMEWORK par le passé.