Le fonctionnement de Goptimiz, quelques liens utiles et autres infos.

Afin que les chiffres et calculs présents sur ce site puissent être vérifiés, améliorés et réutilisés en cas de besoin, cette page liste les formules sur lesquelles se basent les calculs utilisés par Goptimiz et la méthodologie suivie.

C'est aussi l'occasion d'expliquer comment et pourquoi ces formules sont utilisées.

Les données Les simulations de combat Analyse des résultats Calcul du score Génération des classements Bonus

Les données

Les données utilisées par Goptimiz proviennent de 2 sources :

Les simulations de combat

Afin de calculer la puissance offensive et défensive de chacun des Pokémons (et de chacun de leurs movesets), Goptimiz simule tous les combats possibles dans Pokémon Go.

Le fait d'utiliser des simulations de combat permet d'obtenir des résultats très précis (contrairement aux classements utilisant des feuilles de calculs). En effet, les simulations permettent de prendre tous les paramètres possibles en compte (esquive, timing du combat, intéractions entre les combattants …) et elles permettent d'effectuer des millions de combats différents (2 891 904 simulations au total), ce qui rend les résultats plus fiables.

Toutes les combinaisons de combat possibles sont testées : chaque espèce de Pokémon avec chaque movesets possibles sont simulées, aussi bien en tant qu'attaquant, qu'en tant que défenseur. Pour les attaquants, des simulations sont aussi faites sans utiliser leur attaque chargée, ce qui permet de savoir à quel point un Pokémon est bon en attaque s'il n'utilise pas son attaque chargée.

Les simulations de combat de Goptimiz se basent sur tous les paramètres connus des combats d'arènes :

  Comme en jeu, les simulations utilisent un système de file d'attente à une place pour les différentes actions des Pokémons.
Bien qu'il n'y ait pas de preuves solides que les Pokémons défenseurs utilisent aussi un système de file d'attente, les simulations utilisent aussi ce système pour les défenseurs. Lorsqu'un défenseur possède assez d'énergie pour utiliser son attaque chargée, le script l'ajoute à la file d'attente et l'utilise soit immédiatement (si sa file d'attente est vide) soit après sa prochaine action (s'il y a déjà une action en cours). Ce système permet d'obtenir des résultats similaires à ce que l'on voit en jeu : le Pokémon défenseur utilise son attaque chargée environ 1 fois sur 2.
N'hésite pas à me faire part de tes recherches à ce sujet.

Analyse des résultats

Afin de pouvoir analyser les résultats des simulations et déterminer à quel point un Pokémon est fort en attaque et en défense, il convient de savoir ce qui fait un bon attaquant et un bon défenseur :

Qu'est-ce qui fait un bon attaquant ?

Qu'est-ce qui fait un bon défenseur ?

Le meilleur scénario imaginable est que le défenseur gagne le combat. Cela empêche l'attaquant de prendre l'arène.

Si le défenseur perd le combat, il faut au moins qu'il empêche l'attaquant de prendre facilement l'arène. Pour cela, il faut prendre en compte deux variables :

Calcul du score

Maintenant que l'on sait ce qui fait un bon Pokémon en attaque comme en défense, on peut juger l'issue d'un combat mathématiquement. Pour cela, Goptimiz utilise 3 variables, qui englobent tout ce que l'on veut savoir :

A partir de ces variables, nous pouvons calculer le score obtenu par chacun des adversaires :

Ces résultats (les scores) sont exprimés en pourcentages (entre 0% et 100%). Au plus le pourcentage est élevé, au plus le Pokémon a eu l'avantage pendant le combat.

Pour certains calculs effectués, on retire 100% du score du Pokémon ayant perdu le combat afin d'attribuer une valeur négative à son score. Pour ces scores "non normalisés", la valeur est donc comprise entre -100% et 100%.

Ces formules permettent aux Pokémons faibles d'avoir un petit impact sur les classements, alors que les Pokémons puissants auront un impact beaucoup plus grand sur l'ensemble des résultats. Goptimiz prend donc indirectement en compte le fait que les meilleurs Pokémons sont plus utilisés que les autres.

Génération des classements

Une fois que toutes les simulations ont été faites, il faut analyser les résultats afin de pouvoir classer les Pokémons. Voici comment sont calculés les classements dans Goptimiz :

Les movesets offensifs de chaque Pokémon

Afin de calculer le score offensif de chacun des movesets d'un Pokémon (ce qui est affiché sur les pages individuelles des Pokémons et sur la page Pokédex), le script fait la moyenne de tous les scores normalisés obtenus par ce moveset dans les simulations ou ce Pokémon était l'attaquant.

Les movesets défensifs de chaque Pokémon

Afin de calculer le score défensif de chacun des movesets d'un Pokémon (ce qui est affiché sur les pages individuelles des Pokémons, sur la page Pokédex), le script fait la moyenne de tous les scores normalisés obtenus par ce moveset dans les simulations ou ce Pokémon était le défenseur.

Les meilleurs pokémons défenseurs

La page des meilleurs défenseurs prend le meilleur moveset défensif des 40 meilleurs Pokémons et les classe selon leur score.

Les counters de chaque Pokémon

Afin de calculer les meilleurs counters contre un Pokémon (ce qui est affiché sur les pages individuelles des Pokémons et sur la page des meilleurs counters), le script fait la moyenne des scores obtenus par tous les attaquants contre ce Pokémon. Dans le cas où cette moyenne est négative, cela veut dire que l'attaquant avec ce moveset ne counter pas le Pokémon défenseur. Dans ce cas, cette valeur n'est pas prise en compte dans le classement. Tous les movesets du Pokémon défenseur sont regroupés, mais tous les movesets des attaquants sont pris séparément. Ainsi, on n'a pas besoin de connaître le moveset d'un défenseur pour savoir quel attaquant utiliser.

Les meilleurs attaquants

La page des meilleurs attaquants se base sur la page des meilleurs counters. Afin de prendre en compte les scores obtenus par l'attaquant et le nombre de Pokémons qu'il counter (sans donner trop d'importance au nombre de Pokémons qu'il counter pour ne pas fausser les résultats), le script utilise la formule suivante :
somme_des_scores / racine(nombre_de_pokemons).

Les meilleurs attaquants affichés sont donc les Pokémons ayant obtenu les meilleurs résultats contre le plus de Pokémons possibles.

Tu es toujours là ?

Si tu as des questions ou si tu veux plus de précisions au sujet du fonctionnement de Goptimiz, n'hésite pas à me contacter sur Twitter. Je mettrais à jour cette page au fur et à mesure, afin que tout soit expliqué du mieux possible.

Quelques informations bonus :