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 !
L’é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. | (https://tof.cx/images/2018/12/01/2a1794ffcb8d7a5ffb625913b06306a7.jpg) |
(https://tof.cx/images/2018/12/01/7285f4aa2dc926dbba56065ccba5c6d1.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. |
Prenons 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. | (https://tof.cx/images/2018/12/01/78f803d5ae0ba1790964115437636c02.jpg) |
(https://tof.cx/images/2018/12/01/d1388ad726c9d8a989cdb93043871e17.png) | La 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.). |