Optimisations de la performance du client RIFT

Posté par le 30 septembre 2013
Catégories: En direct des Dév , Updates.

Dans le cadre de la mise à jour 2.4, nous avons apporté des modifications considérables au système interne de RIFT – dans certains cas, les plus colossales en date. Notre équipe d’ingénieurs a mis les bouchées doubles afin d’optimiser le rendu de qualité pour les ordinateurs les plus et les moins performants. Tous les joueurs pourront s’attendre à une amélioration du taux de rafraîchissement, mais pour certains, la différence sera flagrante : par exemple, la mise à jour 2.4 a amélioré de 17 % le taux de rafraîchissement des ordinateurs dotés des cartes graphiques de la série Radeon HD 6800. La suite des détails plus bas…

Suppression d’éléments visuels en jeu

L’une des principales tâches du moteur de jeu est de trier les graphismes pour ne reproduire que les éléments nécessaires – ce qui n’est pas chose facile. Ce triage permet d’identifier les objets et les éléments de l’univers de jeu que la carte graphique doit reproduire. Si cette tâche est correctement effectuée, le processeur graphique sera moins mis à l’épreuve. En revanche, lorsque le rendement est trop lent, nous pouvons constater un effet de goulot d’étranglement, à savoir que la reproduction des éléments visuels devient limitée.

Il existe différentes méthodes de triage, et selon le contexte, chacune aura ses avantages propres. L’élimination des objets hors du cône de vue (frustum culling) revient à exclure de la reproduction graphique les objets qui se trouvent derrière le joueur, sur les côtés ou à très longue distance. Cette méthode simple permet un rendement rapide. En revanche, puisqu’elle n’exclut pas les objets qui se trouvent derrière d’autres objets – un monstre caché derrière un mur, par exemple – la carte graphique reproduira le monstre en plus du mur derrière lequel il se trouve, ce qui use davantage le processeur graphique.

Depuis la sortie de RIFT, nous utilisions une deuxième méthode, fournie par Umbra Software. Il s’agit d’un système sophistiqué qui passe derrière la carte vidéo pour sélectionner les éléments qui seront reproduits. Le gros du travail est fourni par la carte vidéo, ce qui est un avantage, et cette méthode fonctionne pour n’importe quel environnement, qu’il s’agisse de forêts, cités, donjons ou Dimensions. En revanche, le risque pour les joueurs, qui jouent avec des résolutions de plus en plus élevées, est que la carte vidéo finisse par subir l’effet du goulot mentionné plus haut. De plus, la plupart des joueurs possèdent des systèmes dotés d’un processeur ayant au moins 4 cœurs ; or jusqu’à présent RIFT n’exploitait pas suffisamment cette caractéristique.

Avec la mise à jour 2.4, nous avons intégré le logiciel Umbra 3. Ce système sollicite les différents cœurs d’un processeur, et non plus le processeur graphique afin que ce dernier puisse correctement reproduire l’univers de jeu. Le principal inconvénient d’Umbra 3 est qu’il fonctionne avec les objets statiques uniquement, aussi sa performance est réduite dans les environnements qui renferment de nombreux objets dynamiques, tels que les Dimensions. De plus, ce nouveau logiciel n’est pas forcément plus rapide pour tous les utilisateurs. Les joueurs dont le processeur date, ou qui n’avaient pas de souci de rendement avec leur carte vidéo, pourraient ne pas constater d’améliorations.

Afin de déterminer le logiciel de triage le plus adapté à RIFT, nos ingénieurs ont mis en place un système de détection en jeu qui reproduit de façon périodique l’univers du jeu à l’aide des trois méthodes citées (frustum, Umbra et Umbra 3). Initialement, nous avions pensé à ce système pour comparer ces méthodes et observer de quelles façons Umbra 3 améliore la performance du jeu. Par la suite, nous nous sommes rendu compte qu’il nous permettrait de déterminer le meilleur logiciel à utiliser en fonction des différents événements et du matériel informatique de chaque joueur.

Ainsi, le système interne de RIFT ajuste constamment la méthode de suppression utilisée au fur et à mesure que vous vous déplacez dans l’univers de jeu. Umbra 3 est bien adapté – particulièrement sur les processeurs neufs – à la Baie de la Tempête, qui contient de nombreux murs et structures. Umbra, quant à lui, est plus adapté à certaines zones du monde ouvert et à certains couplages processeur graphique/CPU.

Il est peut-être étonnant de remarquer que le frustum, méthode ultra simple, est parfois aussi la plus rapide ! Cela prouve à quel point le phénomène du goulot peut être difficile à prédire. Certains joueurs auront le meilleur taux de rafraîchissement lorsque le moteur ne s’attarde pas trop sur le jeu, et reproduit simplement les polygones via la carte vidéo.

Granularité des pixels

De nos jours, les écrans sont énormes ! Il n’est pas rare de voir des résolutions de 1920×1080, voire beaucoup plus. Les écrans capables d’afficher des résolutions élevées sont bien pratiques pour les interfaces utilisateur puisque le texte devient clair et lisible. En revanche, ils usent beaucoup de ressources lors de l’affichage des éléments de l’univers (paysage, personnages, autres joueurs, monstres, etc.). En optant pour un écran deux fois plus large, le jeu doit afficher deux fois plus de pixels, ce qui baisse le rendement. Et contrairement à ce que l’on pourrait croire, ces pixels supplémentaires n’améliorent pas tant que ça les images en 3D. Si l’œil humain repérera facilement la différence de clarté lorsqu’un texte est affiché à basse résolution, il n’en est pas de même pour les images.

Un de nos ingénieurs responsables de l’affichage s’est demandé récemment s’il n’était pas possible de trouver un bon équilibre entre ces deux options. Serait-ce possible d’afficher l’interface utilisateur à une résolution élevée qui reproduise le texte de façon claire et nette, tout en préférant pour le reste une résolution plus basse qui améliore le taux de rafraîchissement ?

Eh bien oui, et nous l’avons fait. Vous retrouverez dans le menu des options vidéo une nouvelle option : la Granularité des pixels. Par défaut, le curseur est fixé à 100, ce qui signifie que l’univers du jeu est affiché à pleine résolution. En le baissant jusqu’à 50, vous diviserez de moitié la résolution de l’écran de jeu (sans pour autant affecter l’IU). La taille de l’écran s’étirera afin de correspondre aux dimensions de votre écran d’ordinateur.

Si votre bécane est un monstre, et que les joueurs qui n’ont que deux cartes graphiques vous font doucement ricaner, nous vous conseillons de ne pas déplacer le curseur. À moins que vous ne recherchiez un taux de rafraîchissement plus élevé, auquel cas, pourquoi pas faire quelques essais ? La plupart de nos développeurs confirment que vous pouvez baisser le curseur à 75 ou 80 pour voir une bonne amélioration du taux de rafraîchissement, sans que la qualité de l’image souffre.

Difficile à croire ? J’ai justement prévu quelques captures d’écran. Ces images à pleine résolution sont sous format .bmp, et montrent précisément ce que je vois sur mon écran.

Voici une capture de la Baie de la Tempête à pleine résolution, et à pleine granularité. Belle image, n’est-ce pas ? Le taux ici est de 41 images par seconde. Aucun souci de latence enregistré mais bon, le serveur interne est à vingt pas de mon bureau.


Granularité des pixels 100

Ici, j’ai déplacé le curseur à 75. S’imposent quelques questions : vous plaindriez-vous de la baisse de qualité ? La remarqueriez-vous ? Moi, non. Par contre, l’amélioration de 15 % du taux de rafraîchissement, qui passe de 41 à 47 images par seconde, je l’ai remarquée.

Granularité des pixels 75

Là, on passe à 50, afin de montrer la différence. La baisse de qualité est visible, même à mes yeux d’ingénieur. En revanche, je constate une amélioration de 22 % du taux de rafraîchissement, qui passe à 50 images par seconde.

Granularité des pixels 50

Évidemment, libre à vous, selon les contraintes de votre matériel, de choisir le degré de granularité qui vous sied. Je vous conseille de faire quelques essais, ne serait-ce que pour constater par vous-même « le trucmuche glissant de rafraîchissement magique », comme le décrit Simon Ffinch, notre directeur du design.

Améliorations pour les systèmes moins performants

Nous avons également travaillé sur la performance rendue par les systèmes moins performants. La plupart des modifications concernent justement les améliorations mentionnées plus haut. Nous avons également ajouté des options concernant le détail des graphismes afin que vous puissiez réduire le nombre de polygones que votre système doit afficher, et ainsi bénéficier d’un meilleur rendement.

Ci-dessous, une image de la Ferme de Vieux-pré à Libremarche, avec les mêmes réglages de qualité minimaux utilisés plus haut :

Default distance

Voici la même ferme après avoir baissé la Distance du terrain, la Distance objet et le Détails des objets au minimum :

Lowest distance

À vrai dire, si votre ordinateur date d’après 2011, ces deux images ne vous impressionneront guère. Si en revanche, votre matériel est plus vieux, vous noterez non sans plaisir que le taux de rafraîchissement a augmenté de 18 % ! Certes, vous ne verrez plus le joli paysage à l’horizon, et la Faille de la Terre a moins d’allure sans le tourbillon de roches, mais ces détails apparaîtront au fur et à mesure que vous vous en approchez. Et à ce moment-là, vous pourrez jouer avec la Granularité des pixels pour augmenter davantage le rendement.

En résumé

Nous voulions à tout prix éviter de proposer des modifications que nous n’étions pas en mesure d’intégrer, c’est pourquoi nous avons attendu la sortie de RIFT 2.4 avant de faire des annonces techniques. Nous avons rassemblé une myriade de données complexes sur la performance de RIFT avant et après la mise à jour. Ces données ont été récupérées auprès de vrais joueurs de RIFT connectés aux serveurs – il ne s’agit pas de tests internes. Nous avons déterminé que :

  • le taux de rafraîchissement a augmenté de 5 %, pour tous les joueurs, quels que soient les réglages de qualité choisis.
  • les joueurs dont les réglages de qualité sont au minimum ont constaté une amélioration générale de 11 %, allant jusqu’à 20 % en monde ouvert.
  • les joueurs ayant choisi une qualité moyenne bénéficient d’une amélioration de 10 % en monde ouvert.
  • les joueurs ayant opté pour un niveau de qualité élevé ont noté une amélioration de 11 % dans la Tombe de fer, à Glasmarteau, dans les Profondeurs insondables, et dans les Mines de Couprofond.
  • avec une qualité de niveau élevé ou ultra, le taux de rafraîchissement à la Baie de la Tempête a augmenté de 5-6 %.
  • tous réglages compris, les joueurs ont enregistré une amélioration moyenne de 8 % au cours des champs de bataille.

Ces données démontrent que ces améliorations ont été remarquées par l’ensemble des joueurs. En outre, nous nous sommes délibérément abstenus de toucher aux réglages par défaut des options afin que la qualité des graphismes reste inchangée dans RIFT 2.4. Plus les joueurs modifieront leurs réglages, plus le taux de rafraîchissement devrait augmenter.

Évidemment nous ne nous arrêterons pas là – nous sommes constamment à l’affût de nouvelles façons d’optimiser votre aventure dans RIFT.

Chris « Aahz » Swiedler
Engineering Development Director

balises: