Je connais l'algorithme Truskill, c'est assez complexe mais efficace.
Ma question existe-t-il d'autres algorithmes / méthodes pour déterminer une compétence des joueurs pour une mesure précise pour le jeu compétitif multi-joueurs?
Je connais l'algorithme Truskill, c'est assez complexe mais efficace.
Ma question existe-t-il d'autres algorithmes / méthodes pour déterminer une compétence des joueurs pour une mesure précise pour le jeu compétitif multi-joueurs?
Réponses:
Je pense que demander «le plus simple et le plus efficace» est une exigence irréaliste, mais il existe certainement quelques bonnes approches. Plutôt que d'entrer dans les détails, je vais créer un lien vers un article:
http://www.lifewithalacrity.com/2006/01/ranking_systems.html
Cela couvre:
Dans l'ensemble, vous verrez qu'ils sont tous à peu près des variations sur le même thème - vous choisissez une valeur de départ ou moyenne pour un joueur, puis les valeurs sont utilisées pour prédire le résultat du jeu. La différence entre le résultat réel et le résultat prévu est utilisée pour modifier les scores de chaque joueur, et le processus se répète avec les scores ajustés. Étant donné que chaque modification des scores rend le résultat prévu plus précis, les scores convergent vers leurs «vraies» valeurs. (Cela suppose en fait qu'il s'agit d'un jeu d'adresse plutôt que de hasard, que la compétence en question peut être classée linéairement, etc.)
Cela dépend du jeu. Vous pouvez rencontrer quelques problèmes:
Pour les jeux qui ont une composante chance et une composante compétence (Bridge, Poker, Magic: the Gathering, etc.), la plupart des algorithmes ne tiennent pas compte du fait qu'un joueur plus faible peut parfois avoir de la chance. Si votre jeu entre dans cette catégorie, vous devrez travailler. En général, cela signifie déterminer quel pourcentage est la chance et quel pourcentage est la compétence (une astuce difficile, mais si vous avez déjà utilisé un algorithme basé sur les compétences comme Elo, vous pouvez exécuter des métriques sur les résultats pour déterminer la fréquence à laquelle l'algorithme prédit un bouleversement par rapport à la fréquence à laquelle il se produit réellement). Ensuite, vous devez changer l'algorithme, et exactement ce qu'il faut changer est probablement au-delà de la portée de cette question.
Pour les jeux où les matchs peuvent être manipulés (je peux choisir de jouer un match avec classement contre mon ami), vous devez mettre en place des protections supplémentaires pour empêcher les joueurs de lancer délibérément des matchs.
Pour les jeux où un joueur peut "sortir de l'entraînement" s'il ne joue pas régulièrement, le système pourrait impliquer une sorte de dégradation basée sur le temps. Le système Glicko est un mod d'Elo qui ajoute une variable "incertitude" au classement de chaque joueur, en fonction du nombre de jeux auxquels ils ont joué et de la façon dont ils les ont joués récemment; plus le classement d'un joueur est certain, moins il change d'un jeu à l'autre.
Les jeux multijoueurs (qu'ils soient gratuits pour tous, en équipe ou d'une autre structure de joueurs) nécessitent bien sûr un soin particulier. Certains jeux en équipe permettent de comprendre plus facilement la contribution de chaque individu par rapport à d'autres.
Demandez également quel est le but de votre système de notation / classement. Dans les jeux et les sports professionnels, le but est statistique: l'évaluation est utilisée comme prédicteur du résultat d'un match donné. L'objectif principal ici est la précision. Cependant, c'est rarement ce que veulent les joueurs; au lieu de cela, ils veulent de la progression, un sentiment qu'ils s'améliorent et gravissent les échelons (qu'ils s'améliorent ou non). En bref, il y a un compromis entre précision et plaisir que vous devez considérer.
Qu'avez-vous trouvé compliqué à propos de TrueSkill ? Je pensais que c'était un algorithme simple avec juste la bonne quantité de boutons à modifier pour différents modes de jeu, et il se réduit à Elo lorsque le jeu est en tête-à-tête avec une grande certitude.
Si vous cherchez le moyen le plus simple de classer et de mesurer efficacement un joueur dans un environnement multijoueur - ma recommandation est TrueSkill.
Qu'en est-il d'un système par paire comme elo ? Il est utilisé depuis des lustres dans les sports "normaux" avec d'excellents résultats.
Pour les matchs gratuits, vous pouvez les interpréter comme un groupe de matchs par paires et attribuer des points en fonction du classement relatif.