Eu conheço o algoritmo de Truskill, é bastante complexo, mas eficaz.
Minha pergunta: existem outros algoritmos / métodos para determinar uma habilidade de jogadores para uma medição precisa do jogo competitivo para vários jogadores?
Eu conheço o algoritmo de Truskill, é bastante complexo, mas eficaz.
Minha pergunta: existem outros algoritmos / métodos para determinar uma habilidade de jogadores para uma medição precisa do jogo competitivo para vários jogadores?
Respostas:
Penso que pedir "o mais simples e eficaz" é um requisito irrealista, mas existem certamente algumas boas abordagens. Em vez de entrar em detalhes, vou apontar para um artigo:
http://www.lifewithalacrity.com/2006/01/ranking_systems.html
Isso abrange:
No geral, você verá que todas são variações do mesmo tema - você escolhe um valor inicial ou médio para um jogador e, em seguida, os valores são usados para prever o resultado do jogo. A diferença entre o resultado real e o resultado previsto é usada para modificar as pontuações de cada jogador, e o processo se repete com as pontuações ajustadas. Como cada modificação nas pontuações torna o resultado previsto mais preciso, as pontuações convergem para seus valores "verdadeiros". (Na verdade, isso pressupõe que é um jogo de habilidade, e não ao acaso, que a habilidade em questão é capaz de ser classificada linearmente etc.)
Depende do jogo. Existem alguns problemas nos quais você pode entrar:
Para jogos que têm um componente de sorte e um componente de habilidade (Bridge, Poker, Magic: the Gathering, etc.), a maioria dos algoritmos não explica o fato de que um jogador mais fraco às vezes pode ter sorte. Se o seu jogo se encaixar nessa categoria, você precisará fazer algum trabalho. Geralmente, isso significa descobrir qual porcentagem é sorte e qual porcentagem é habilidade (um truque difícil, mas se você já usa um algoritmo baseado em habilidades como o Elo, pode executar algumas métricas nos resultados para descobrir com que frequência o algoritmo prevê uma perturbação em relação à frequência com que isso realmente acontece). Então você precisa alterar o algoritmo, e exatamente o que alterá-lo provavelmente está além do escopo desta pergunta.
Nos jogos em que as partidas podem ser manipuladas (eu posso optar por jogar uma partida classificada contra meu amigo), você deve colocar salvaguardas extras para impedir que os jogadores joguem propositalmente partidas.
Para jogos em que um jogador pode ficar "fora de prática" se não jogar regularmente, o sistema pode envolver algum tipo de degradação com base no tempo. O sistema Glicko é um mod do Elo que adiciona uma variável "incerteza" ao ranking de cada jogador, com base em quantos jogos eles jogaram e em quanto tempo eles os jogaram; quanto mais certo o ranking de um jogador, menos ele muda de jogo para jogo.
Jogos multiplayer (seja para todos, baseados em equipes ou em alguma outra estrutura de jogadores) precisam de cuidados especiais, é claro. Alguns jogos em equipe facilitam a contribuição de cada indivíduo, em comparação com outros.
Pergunte também qual é o objetivo do seu sistema de classificação / classificação. Em jogos e esportes profissionais, o objetivo é estatístico: a classificação é usada como um preditor do resultado de qualquer partida. O objetivo principal aqui é precisão. No entanto, isso raramente é o que os jogadores querem; em vez disso, eles querem progressão, um sentimento de que estão melhorando e subindo nas fileiras (estejam realmente melhorando ou não). Em suma, há uma troca entre precisão e diversão que você precisa considerar.
O que você achou complicado sobre o TrueSkill ? Eu pensei que era um algoritmo simples, com a quantidade certa de botões para ajustar para diferentes modos de jogo, e isso reduz a Elo quando o jogo é direto com alta certeza.
Se você está procurando a maneira mais simples de classificar e medir efetivamente um jogador em um ambiente multiplayer - minha recomendação é TrueSkill.