|
Bonjour à tous,
je pratique le koli sous toutes ses formes depuis un moment, en random, en équipe préformé et en multi (2 ou 3 comptes, là aussi en 2 + alea ou 2 + préformé) et je trouve que la majorité des soucis du kolizeum provient du matchmaking
Je me suis donc penché sur le système en question (le systeme True Skill développé par le MIT sur la base des travaux d'Elo) et voici mes conclusions :
Le systeme True Skill (que j'apellerais TS dans la suite) propose un classement des joueurs d'un même jeu via leurs performances les uns contre les autres, que ça soit seul ou en équipe plus ou moins grande, comme son nom l'indique il permet de trier les joueurs en fonction de leur "niveau de jeu"/"skill"/"compétences" et prend pour cela en compte uniquement quelques paramètres :
- l'issue des rencontre (victoire, défaite, match nul)
- la prédictibilité du résultat (victoire très probable, victoire probable, victoire serrée (le terme est juste traduit de l'anglais j'ai pas réussi à bien le retranscrire mais représente des chances de victoires à 50%), victoire improbable, victoire très improbable)
- le "skill" (représenté de façon mathématique par le moment d'ordre un de la loi normale représentant les performance du joueur (dans le cas d'ankama ils l'apellent mu ou µ, c'est en gros la valeur moyenne de la loi normale), et sa variance (sigma) )
les joueurs sont ensuite trié par "skill" selon la loi suivante : s=µ-3sigma (ici s c'est la cote de kolizeum)
Le système converge très rapidement vers le skill réel du joueur (sigma tend vers 0), en gros vers µ, d'après le MIT en une vingtaine de parties au grand maximum, bien plus vite qu'avec un classement elo (du nom de son createur), ce qui veux dire qu'après une vingtaine de partie notre cote ne dois plus bouger que lorsque notre niveau de jeu change par rapport aux autres joueurs (ie quand les autres progressent plus vite que nous la cote diminue, quand on progresse plus vite elle augmente)
Le système TS marche très bien pour des équipe de 1 (bien mieux que le classement elo, mais il est plus lourd, donc pas forcement pratique) ainsi que pour de grosses équipes (jusqu'à une dizaine de joueur) mais marche mal pour de petites équipes (attention ça veux juste dire qu'il converge moins vite que dans les autres cas, il faut donc bien plus de parties pour que notre cote soit stable)
La cote représente donc notre capacité à gagner au jeu, et le matchmacking (dans le but de proposer des matchs serrés, et donc à niveau égal) dois nous faire affronter des joueur de skill équivalent
mais attention comme je le dis plus haut notre cote va dépendre de sigma, valeur extrêmement importante car c'est elle qui va évoluer le plus de match en match pour donner un ordre d'idée :
si on perd µ diminue, si on gagne µ augmente (cette diminution ou augmentation peut être nulle si jamais l'issue du match était extrêmement prévisible, ie l’équipe qui avait 99% de chances de gagner gagne)
si l'issue est celle qui est prédite au début du match sigma diminue, si l'issue est contraire à celle prévue sigma augmente
ainsi on peut gagner un match qui était jugé ingagnable et voir sa cote (µ-3 x sigma) diminuer car sigma aura bien plus augmenté que µ
à l'inverse on peut perdre un match et gagner en cote (sigma diminue vu que l'issue était très prévisible, mais µ baisse peu)
L'issue des match est prédite via la différence des µ modulé par la variance (en gros on donne 70 % de chance de gagner à l'équipe A car son µ est plus grand et que la variance de chaque équipe est faible, au contraire les chances peuvent etre de 50% alors que les µ sont assez différents car les variances (sigma) sont grandes)
maintenant qu'on voit comment fonctionne le système pour calculer le skill de chaque joueur du jeu les uns par rapport aux autres on observe que dans notre cas certains paramètres sont passés sous silence :
- Les synergies entre classes
- Les équipements (regroupe les parchemins de carac)
- La map
- Les niveaux des personnages (regroupe les parchemins de sorts)
Ces paramètres sur lesquels nous nous basons pour juger de l'équilibre d'un combat sur dofus (on sais tous que toutes choses égales par ailleurs le nombre de PA déterminera l'issue du combat, pareil pour les pm, et si on va plus loin en regardant les pv resist pa et pm on peut souvent se faire une idée du vainqueur) sont donc pris en compte dans le skill par le système TS, compté comme partie entière des capacités des joueurs.
Hors ceci est à mon sens une des plus grosses erreur dans le cas du kolizeum, qui voit s'affronter de petites équipes (donc on converge moins vite vers son skill réel), il faut beaucoup de match pour converger, et on dois faire ces matchs sans changer son skill, et dans notre cas sans changer du coup son équipement, son niveau, ses compositions, sa map, et bien sur son niveau de jeu, or dans dofus on change toutes ses choses en permanence, d'un match à l'autre (à l'exception du niveau de jeu qui évolue bien plus lentement et qui est justement ce que cherche à calculer le système TS), et qui provoque de très nombreuses issues non prévues, sigma augmente très souvent (ce qui n'est pas bon pour l’algorithme, sigma devant généralement diminuer de plus en plus une fois la convergence effectuée, ne remontant que lorsque µ change)
au passage il est impossible de savoir si le skill est du principalement au niveau de jeu, au stuff, au lvl du perso etc... ce qui nous donne des combats parfaitement déséquilibrés et un système qui fait affronter des gens de tranche de niveau très différentes (des lvl 50 contre des lvl 90 par exemple, ou encore des 17X contre des 200)
Ainsi j'espère avoir bien mis en valeur les points important de la difficulté à faire du matchmaking pour le système TS avec dofus
TS c'est fait pour des matchs ou les joueurs disposent des mêmes ressources, par exemple les échecs (mais là le classement elo suffit), ou encore counter strike, halo, ou encore tout autre jeu miroir, il faut que le jeu lui même soit équilibré s'il n'est pas miroir (par exemple si on prend starcraft 2 un tel système de classement marcherait si toutes les map utilisées n'avantageaient aucune des races), mais il est totalement inefficace pour un jeu en équipe où chaque joueur a des ressources différentes et non équilibrées entre elles (à dofus on n'aura pas le même classement selon le personnage joué (entre un cra 50 et un xelor 200 par exemple), alors qu'a CS ou halo quel que soit le skin que j'utilise ou le camp que je choisi mon classement sera le même)
Il existe quelques solutions (répartir le matchmaking sur diverses plages de caractéristiques, niveau, stuff etc...) mais elles sont peu voir pas applicable dans notre situation (trop de temps de matchmaking, beaucoup de contraintes pour former les groupes etc...)
au final le matchmaking et le classement sont assez corrects dans la tranche de lvl 199/200, là ou seule l'opt,i les synergies et le niveau de jeu déterminent le classement, mais il est impossible de déterminer ce qui joue le plus (bien que je mettrait les synergies assez haut, le niveau de jeu pas très loin derriere et l'opti ensuite)
maintenant il reste des biais, le niveau de jeu comprenant une grande part de communication (le multicompte à niveau de jeu égal (ainsi que opti et synergie) écrasera des joueurs qui ne communiquent pas) et les synergies étant biaisées par le matchmaking aléatoire (et la les groupes préformés ont un avantage sur les groupes random s'ils sont formés autour de synergies fortes)
après je suis persuadé que la situation actuelle n'est pas la meilleur, mais ça reste un bon compromis, je vous invite cependant à me faire part de toute remarque si jamais vous n'avez pas compris certains points (j'aimerais éviter de vous refaire toutes les maths derrière, si ça vous intéresse lisez l'article du MIT, il fait 8 pages et est assez clair, mais il faut s'y connaître en statistique, il suffit d'aller chercher dans les références de l'article de wikipedia sur le système TS pour avoir l'article en question), de même si vous avez des idées pour améliorer le matchmaking n'hésitez pas (il existe des pistes comme des variables en plus, un µ et un sigma pour l'équipement (µ serait le niveau moyen normalisé de l'équipement, et sigma la variance, mais prendre en compte les parcho et les dofus séparément (les dofus ont un faible lvl mais une grande puissance) etc...), le niveau du perso (ici le µ serait le niveau normalisé et sigma 0), et les synergies et d'utiliser une combinaison des 4 pour le matchmaking)
merci d'avoir lu ce pavé et à vos retours !
|