A maneira mais simples e eficaz de classificar e medir a habilidade do jogador em um ambiente com vários jogadores?


12

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?


Um pouco subjetivo / amplo, eu acho, em que gênero de jogo você está pensando especificamente? (Não vejo um jogo de corrida e fps compartilhando um método simples de classificação). Talvez isso deva ser publicado na comunidade e transformado em uma lista de algoritmos / métodos / middleware / o que for?
Riley Adams

A maioria dos sistemas de classificação usa índices de vitórias, perdas e combinações. Em seguida, abra espaço para condições específicas do jogo, para que a maioria dos métodos funcione com pequenos ajustes.
Wight

1
Existem problemas de patente com o TruSkill? A Microsoft o construiu e eles não são conhecidos por serem amigáveis ​​à comunidade.
Deft_code 14/09/10

2
Se você evitar algoritmos que possam ser patenteados, não poderá fazer nada prático. Se você sabe que algo está patenteado e o usa de qualquer maneira, pode acabar sofrendo mais danos se for processado. Então, vamos supor que não, ele não é patenteado - é marca registrada; portanto, não o chame de "TrueSkill", a menos que você esteja no Xbox Live.

2
Infelizmente, o TrueSkill é patenteado, portanto, usá-lo para qualquer finalidade pode ser perigoso para você.
Petr Pudlák

Respostas:


10

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:

  • ELO
  • uma variante ELO da Days of Wonder
  • TrueSkill (e glicko, no qual parece basear-se ou pelo menos semelhante a)
  • Ranking eGenesis (para Contos no deserto)

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.)


"o mais simples e eficaz" é apenas uma trapaça para evitar ser forçado a fazer deste um wiki da comunidade.
Hendrik Brummermann

7

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.


Tudo sobre design é sempre equilibrado =) #
Wight

3

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.


Eu estava apenas procurando uma alternativa que possa ser ajustada mais facilmente. Como o que Starcraft 2 usou. Mas o TrueSkill é uma boa medida, mas é mais difícil incluir medidas de variação na variação.
Wight

2

Que tal um sistema pareado como o elo ? É utilizado há anos em esportes "normais", com excelentes resultados.

Para partidas gratuitas para todas as partidas, você pode interpretá-las como várias partidas em pares e atribuir pontos com base na classificação relativa.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.