Hearthstone

Point de vue des développeurs : équilibrer l’Arène grâce à la science

Point de vue des développeurs : équilibrer l’Arène grâce à la science

Bonjour ! Je suis Tian, expert en données senior dans l’équipe Hearthstone, et je vais vous parler des mathématiques qui se cachent derrière l’équilibrage de l’Arène.

Les nombreux matchs d’Arène qui se jouent constamment génèrent énormément de données sur lesquelles nous nous reposons pour veiller à ce que l’Arène reste équilibrée. Ça fait BEAUCOUP de données. Si j’avais ma place au Laboumratoire, je serais certainement dans l’aile des sciences mathématiques !

Un équilibre délicat

ABunchOfKnobs_option02.jpgL’équilibrage de l’Arène se fait en deux temps. Nous commençons par attribuer un ou plusieurs groupes à chaque carte (un groupe est un sous-ensemble de cartes aux performances similaires). Chaque carte appartient généralement à deux groupes, et les cartes légendaires et normales sont placées dans des groupes distincts. Nous déterminons les groupes des cartes en fonction de leur taux de victoire et de leur popularité. Cela signifie que les trois cartes que vous vous voyez proposer à chaque phase de sélection sont de puissance similaire.

Nous équilibrons ensuite le taux de victoire pour chacune des neuf classes. Dans l’idéal, celui-ci doit être d’environ 50 %. Pour nous rapprocher de cet objectif, nous ajustons les coefficients associés à chaque carte. Ceux-ci sont des nombres qui représentent la probabilité pour qu’une carte apparaisse. Plus le coefficient d’une carte est élevé, plus il est probable que celle-ci vous soit proposée. Si le coefficient d’une carte est modifié, les probabilités d’apparition de son groupe sont également affectées.

Ce système nécessite beaucoup de données pour fonctionner, mais grâce aux nombreuses parties d’Arène qui se jouent quotidiennement, nous avons tout ce qu’il nous faut !

ThreeSteps_EK_600x260.png

Pour exploiter ces données afin d’améliorer l’équilibrage du jeu, nous procédons en trois étapes :

  1. Élaborer un modèle
  2. Résoudre les problèmes d’optimisation sous contraintes
  3. Calculer les coefficients

Ceci fait, il ne nous reste plus qu’à programmer des correctifs pour appliquer les changements.

Élaborer un modèle

Si vous êtes un habité de l’Arène, vous avez sans doute l’habitude d’évaluer vos chances de victoire. Certaines cartes font pencher la balance plus que d’autres. Ainsi, vos probabilités de victoire augmenteront beaucoup plus si vous piochez Le roi-liche plutôt qu’un Pingouin glisseneige.

EN_SnowFlippaLichKing.png

Imaginons que vous piochiez Le roi-liche pendant la partie. Vous vous demandez peut-être : « Quelle est la probabilité que je gagne maintenant que j’ai pioché cette carte ? 60 % ? 50 % ? Comment quantifier ces chances ? » Imaginez maintenant que vous piochiez Barrière de glace au tour suivant ; vous voudrez d’autant plus calculer vos chances de victoire.

Pour répondre à ces questions, nous avons créé un modèle d’apprentissage automatique. L’ordinateur reçoit de nombreuses données sur toutes les parties d’Arènes jouées qui lui permettent de prédire les probabilités de victoire. De manière plus formelle, nous entraînons le programme que nous avons construit. Cet entraînement lui permet de nous donner les probabilités de victoire en fonction des X cartes piochées chaque fois que nous le lui demandons.

Résoudre les problèmes d’optimisation sous contraintes

ABunchOfKnobs_option03.jpgPrenons un peu de recul et imaginons que ce modèle est un boîtier plein de boutons. Chaque bouton représente une carte spécifique. En tournant un bouton, vous pouvez ajuster les valeurs associées à sa carte.

Imaginons qu’avant de toucher à quoi que ce soit, le boîtier vous indique que les probabilités de victoire actuelles sont de 40 %. Après avoir tourné un bouton, vos chances de victoire passent à 46 %. Une question intéressante se pose alors : est-il possible d’atteindre un nombre idéal en ajustant plusieurs boutons ?

Cette question souligne la nécessité de construire un problème d’optimisation. Nous cherchons à trouver la meilleure solution parmi toutes celles possibles. Nous voulons nous rapprocher au maximum de cet objectif en « réglant plusieurs boutons » à la fois. En termes mathématiques, nous minimisons une fonction objectif sur un vecteur multidimensionnel.

Pour équilibrer l’Arène, nous voulons que le taux de victoire estimé se rapproche au maximum des 50 % pour chaque classe, et nous modifions les valeurs associées à chaque carte pour y parvenir.

Toutefois, les boutons ne peuvent pas être manipulés arbitrairement ; il y a quelques règles à respecter ! Voici quelques-unes des contraintes programmées sur notre « boîtier » :

  • La nouvelle valeur ne doit pas s’écarter de +/- 30 % de la précédente. Des changements drastiques pourraient nuire à l’expérience de jeu.
  • Pour réduire la puissance globale d’une classe dans l’Arène, ses meilleures cartes devront apparaître moins souvent que les autres, et inversement si nous voulons renforcer une classe.
  • Il existe quelques contraintes techniques pour que le problème reste valide. Par exemple, les gains totaux de probabilité d’apparition doivent être égaux aux pertes totales (en mathématiques, on parle de somme nulle).

Calculer les coefficients

HeavyLooking.pngLa dernière étape d’équilibrage de l’Arène consiste à ajuster les coefficients attribués à chaque carte en fonction des résultats des deux premières étapes. D’une manière générale, une carte dotée d’un coefficient de 2,0 apparaît deux fois plus souvent qu’une carte dont le coefficient est égal à 1,0. L’optimisation sous contraintes nous indique quels « boutons » nous devons régler et comment. Nous associons ensuite chaque « bouton » à la probabilité d’apparition de chaque carte. Nous savons désormais comment modifier le coefficient de chaque carte en plus des modificateurs associés aux caractéristiques de celle-ci (s’il s’agit d’un sort, d’une arme, son extension d’origine, etc.).

La touche finale

Une fois cette étape d’équilibrage terminée, le taux de victoire global des neuf classes doit être très proche de 50 %. Toutefois, il existe des cas rares où le taux de victoire après équilibrage n’est pas idéal. Cela peut arriver lorsque le taux de victoire d’une classe est trop éloigné des 50 % avant les ajustements des coefficients. Même si nous n’atteignons pas les valeurs idéales, nous constatons généralement tout de même une nette amélioration.

Grâce à ce système d’analyse des données de l’Arène qui allie les mathématiques appliquées à l’informatique et l’apprentissage automatique, nous sommes en mesure de déterminer si une classe doit être affaiblie ou renforcée et nous pouvons attribuer les coefficients optimaux à chaque carte et chaque classe.

ABunchOfKnobs_option05.jpg

J’espère que cet article sur le système de micro-ajustements de l’Arène vous a plu ! Votre avis nous intéresse, alors n’hésitez pas à partager vos questions et vos commentaires !

Article suivant
World of Warcraft
3 j.

Correctifs, 21 mars 2019

Vous trouverez ici la liste des derniers correctifs pour World of Warcraft.