L’affichage des points de dégâts dans Diablo III

L’affichage des points de dégâts dans Diablo III

Lorsqu’on travaille au développement de logiciels, que ce soit dans un but économique, de divertissement ou pour créer votre jeu vidéo préféré, on sait que la solution à un problème simple n’est pas toujours aussi évidente qu’il y paraît. En un mot, le développement de jeux est complexe. Il implique des milliers d’éléments variables sur lesquels la moindre anomalie peut entraîner des semaines entières de retour en arrière et de rétrogradation. D’un point de vue extérieur, on a envie de demander « Mais pourquoi ne pas simplement corriger le problème ? » Eh bien, c’est un peu comme demander à un pâtissier pourquoi il ne remplace pas le sucre par du saccharose. Dans les deux cas, la réponse est « Ce n’est pas si simple. »


Les chiffres, comment ça marche ?

Dans Diablo III, les informations affichées au joueur sont très nombreuses. Intéressons-nous aux chiffres. Il y en a partout ! Sur votre équipement, sur le profil de votre personnage, autour de la tête de votre Nephalem lorsque vous combattez. Derrière chaque chiffre se cache une somme considérable de paramètres qui régissent leur comportement.

Nous avons reçu de nombreux commentaires de joueurs pour qui les chiffres affichés en combat commençaient à prendre trop de place ou devenaient difficiles à lire au cœur des affrontements. Avant, les nombres élevés étaient enthousiasmants parce qu’ils sortaient du lot. Comment raviver ce sentiment tout en évitant que les joueurs aient l’impression de perdre en puissance ?

La mise à jour 2.4 contient quelques nouvelles fonctionnalités qui servent ce but. D’abord, nous avons intégré une nouvelle option en jeu qui permet de tronquer les nombres pour les afficher sous forme abrégée. Ensuite, nous avons ajouté une fonctionnalité inédite qui affiche les plus élevés en surbrillance et dans une nouvelle couleur. L’implémentation de chacun de ces ajouts a été un véritable défi : certains posaient des problèmes de conception, d’autres de localisation et, au bout du compte, le résultat de nos décisions devait être beau.

Notre idée de départ était d’afficher en surbrillance les 5% de vos dégâts les plus élevés générés au cours des quelques secondes écoulées. Mais un premier problème est apparu : chaque configuration est différente, notamment en termes de dégâts infligés. Certaines produisent des nuées de chiffres qui varient avec le temps, tandis que d’autres inondent votre écran d’un flux continu d’informations. Autre problème révélé par nos premiers essais : le système ne s’adaptait pas aux fluctuations des dégâts infligés. Par exemple, prenez le pylône de puissance, qui augmente temporairement vos dégâts. Une fois son effet expiré, le joueur doit pouvoir continuer à visualiser les dégâts les plus élevés qu’il inflige.

Au fil du temps, nous avons étoffé notre algorithme afin qu’il prenne en compte tous ces cas particuliers, et avons défini les règles suivantes pour les chiffres qui s’affichent en orange :

  • Les dégâts doivent être supérieurs à 10 000 pour être pris en compte.
  • Si le montant de dégâts censé s’afficher est supérieur au dernier nombre affiché en orange, alors il s’affichera lui aussi en orange.
  • La valeur du nombre le plus élevé est réduite de 3% par seconde.
    • Cela réduit les risques de ne voir aucun nombre affiché en surbrillance pendant trop longtemps.
  • Les 10 premiers nombres ne sont pas pris en compte.
    • Cela permet au système de se calibrer.
  • Si aucun dégât n’est infligé pendant 10 secondes, le système est réinitialisé.


Où sont mes milliards ? Les défis de la localisation

Si vous avez joué à la dernière mise à jour, vous avez peut-être déjà vu nos nouvelles abréviations pour les dégâts. De très nombreux joueurs, anglophones pour la plupart, nous ont demandé pourquoi nous avons choisi de compter en millions et pas en milliards.

Il y a plusieurs raisons à cela, mais l’une des principales est la localisation. Diablo III est un jeu international, édité en 13 langues, c’est pourquoi à chaque fois que nous faisons un choix de conception qui affecte une partie écrite (qu’il s’agisse de mots ou, en l’occurrence, de nombres), nous devons penser aux conséquences de cette modification pour chaque version du jeu. Et il est très illusoire de penser que les chiffres sont la partie la plus facile à traduire.


À gauche : en anglais. À droite : en coréen.

Voici un exemple de traduction qui paraît simple au premier abord, mais qui peut rapidement se compliquer. Certaines langues, comme l’espagnol, ne possèdent pas de terme unique pour désigner un « milliard » (« billion » en anglais). L’espagnol, par exemple, va utiliser l’expression « mille millions » plutôt qu’un terme spécifique. En anglais, d’un point de vue étymologique, l’utilisation de « billion » est le résultat d’une évolution de l’anglais américain et de l’anglais britannique du mot « billion » (« milliard ») pour adopter le sens de « mille millions », plutôt que son sens original, « un million de millions ».

Et le problème devient encore plus complexe pour des langues comme le coréen ou le chinois, dans lesquelles les grands nombres sont abrégés de façon différente. Par exemple, en anglais, les chiffres sont regroupés par tranches de trois : milliers, millions, milliards, etc. En coréen, les chiffres sont regroupés par quatre, selon une méthode de comptage appelée myriade. Cela est dû au fait qu’en coréen, les nombres sont groupés par dizaines de milliers et non par milliers.

Enfin, l’utilisation de la ponctuation vient encore ajouter une difficulté. Toutes les langues n’utilisent pas les virgules comme séparateurs de chiffres. Ainsi, de nombreuses langues européennes utilisent des points, tandis que d’autres n’utilisent aucun signe de ponctuation.


À gauche : le compte d’or coréen. À droite : le compte d’or français.

Alors que les nombres dans Diablo III augmentaient et que nous avions décidé d’ajouter des signes de ponctuation numérique, il nous fallait un moyen de « traduire » de la façon la plus élégante possible les conditions d’affichage de ces signes de ponctuation pour chaque langue. Notre code utilise une bibliothèque appelée ICU, ou International Components for Unicode, qui facilite grandement la localisation de logiciels. Bien qu’ICU ait de nombreux usages, pour cette fonctionnalité, nous avons exploité sa capacité à sélectionner un chiffre et une langue donnée (par exemple, l’anglais américain, le français ou le coréen) pour afficher un chiffre au format correct dans cette langue, avec des points ou des virgules au besoin. Notre équipe de localisation possède également un tableau qui indique les chiffres que chaque région choisit d’afficher ainsi que leur notation.


Voici un de nos tableaux de localisation, qui indique dans quelles langues et à quel endroit les chiffres sont tronqués.

Certaines localisations ont choisi d’abréger plus ou moins, souvent pour des raisons culturelles. La satisfaction du joueur est psychologiquement liée à la longueur des chiffres qui s’affichent, et les préférences des joueurs varient selon leurs standards culturels et personnels. Par exemple, en anglais, nous avons choisi de ne pas abréger les premiers millions parce que voir « 1,000,000 » est beaucoup plus gratifiant que de voir « 1M ». Et le fait de supprimer les milliards a également joué en notre faveur, car voir « 1,000M » suscite beaucoup plus d’excitation que de voir « 1B ». Bien entendu, il n’y a pas que la longueur des nombres qui importe. Leur forme, leur couleur et la manière dont ils s’affichent jouent également un rôle essentiel.


L’art de faire du chiffre – Les retouches graphiques

Il est important de s’assurer que lorsqu’un joueur voit un nombre, il puisse rapidement en comprendre sa signification en cet instant précis. Dans la mise à jour 2.4, nous avons cherché à afficher un maximum d’informations en combat. C’est là qu’intervient la surbrillance pour les dégâts des coups critiques.

En voilà, un beau coup critique !

Parmi les nombreuses façons d’afficher cette information, nous aurions pu nous contenter d’en changer la couleur. Nous nous sommes longuement demandé quel serait le meilleur moyen de communiquer ce nombre important. Faut-il qu’il soit plus gros ? Qu’il apparaisse différemment ? Qu’il clignote ? Ou juste qu’il change de couleur ? Parmi toutes ces options, comment choisir la bonne ?

Nous nous sommes orientés vers la couleur parce qu’elle nous permettait de présenter cette information aux joueurs d’une façon complètement différente et de résoudre par là même d’autres problèmes d’accessibilité. Les chiffres orange se détachent. Comme leur couleur est inhabituelle, ils attirent inconsciemment notre attention.

La couleur orange est également visible par les personnes atteintes de daltonisme. Lorsqu’on regarde un cercle chromatique, l’orange se trouve dans une zone différente de celles des couleurs que l’on utilise habituellement pour afficher des informations. Ainsi, les joueurs atteints de daltonisme peuvent eux aussi découvrir des nouveautés !

En modifiant les couleurs de l’interface, nos graphistes jouent sur trois éléments : la teinte, la saturation et la luminosité. Ces éléments constituent l’espace TSL (en anglais « HSL »), un standard répandu de roue chromatique. Chaque élément permet de faire naître une émotion ou susciter une réaction différente de la part du joueur. Nous voulons changer l’ambiance ? Nous modifions la teinte. Si nous voulons transformer une image éclatante en une image fade, nous réglons la saturation. Et si nous avons besoin d’attirer l’attention ou, au contraire, de la détourner ? C’est la luminosité qui nous intéressera.

En guise d’exemple, l’une des informations les plus cruciales du jeu est la quantité de soins que vous recevez. Comme les soins représentent votre force vitale, ils doivent être très visibles. Voilà pourquoi cette information est l’une des plus lumineuses du jeu. Nous voulions également une très bonne visibilité pour les coups critiques, alors nous avons joué sur leur luminosité afin que vous voyiez apparaître votre prochain pic de dégâts.


Tous ensemble

Lorsqu’on évoque l’équipe de Diablo III, il est facile de penser en premier lieu à nos développeurs qui modifient le fonctionnement d’une classe ou d’un objet, ou encore qui intègrent de nouvelles fonctionnalités sympas à découvrir. Cependant, les vêtements ou les armes de votre héros ne sont que la partie visible d’un grand ensemble où nos graphistes, ingénieurs, experts en localisation et bien d’autres encore nous aident à faire en sorte que tous les joueurs du monde profitent de la meilleure expérience de jeu.

Nous espérons que vous avez aimé cette petite incursion dans les coulisses d’une fonctionnalité qui, derrière une simplicité trompeuse, nécessite un travail de titan ! C’est un véritable privilège de venir tous les jours travailler sur ce jeu, même sur des détails minuscules. Merci d’avoir lu cet article !