¿La forma más sencilla y efectiva de clasificar y medir la habilidad del jugador en un entorno multijugador?


12

Sé del algoritmo Truskill, es bastante complejo pero efectivo.

Mi pregunta, ¿hay otros algoritmos / métodos para determinar la habilidad de un jugador para medir con precisión el juego competitivo multijugador?


Un poco subjetivo / amplio, creo, ¿en qué género de juego estás pensando específicamente? (No veo un juego de carreras y fps que comparta un método de clasificación simple). ¿Tal vez esto debería ser un wiki comunitario y convertido en una lista de algoritmos / métodos / middleware / lo que sea?
Riley Adams

La mayoría de los sistemas de clasificación utilizan proporciones de victorias, derrotas y partidos. Luego, deje espacio para las condiciones específicas del juego, por lo que la mayoría de los métodos deberían funcionar con ajustes menores.
Wight

1
¿Hay problemas de patentes con TruSkill? Microsoft lo creó y no se sabe que sean amigables con la comunidad.
deft_code

2
Si evita los algoritmos que podrían estar patentados, no podrá hacer nada práctico. Si sabe que algo está patentado y lo utiliza de todos modos, puede terminar debiendo más daños si lo demandan. Así que supongamos que no, no está patentado, es una marca registrada, así que no lo llame "TrueSkill" a menos que esté en Xbox Live.

2
Desafortunadamente, TrueSkill está patentado, por lo que usarlo para cualquier propósito puede ser peligroso para usted.
Petr Pudlák

Respuestas:


10

Creo que pedir el "más simple y efectivo" es un requisito poco realista, pero ciertamente hay algunos buenos enfoques. En lugar de entrar en detalles, vincularé a un artículo:

http://www.lifewithalacrity.com/2006/01/ranking_systems.html

Esto cubre:

  • ELO
  • una variante ELO de Days of Wonder
  • TrueSkill (y glicko, en el que parece estar basado o al menos similar)
  • Ranking eGenesis (para Tales in the Desert)

En general, verás que todas son variaciones del mismo tema: eliges un valor inicial o promedio para un jugador, y luego los valores se usan para predecir el resultado del juego. La diferencia entre el resultado real y el resultado previsto se utiliza para modificar los puntajes de cada jugador, y el proceso se repite con los puntajes ajustados. Dado que cada modificación de los puntajes hace que el resultado predicho sea más preciso, los puntajes convergen en sus valores "verdaderos". (En realidad, esto supone que es un juego de habilidad en lugar de azar, que la habilidad en cuestión es capaz de ser clasificada linealmente, etc.)


"lo más simple y efectivo" es solo un truco para evitar verse obligado a hacer de este un wiki comunitario.
Hendrik Brummermann

7

Depende del juego. Hay algunos problemas en los que puede meterse:

  • Para los juegos que tienen un componente de suerte y un componente de habilidad (Bridge, Poker, Magic: the Gathering, etc.), la mayoría de los algoritmos no tienen en cuenta el hecho de que un jugador más débil a veces puede tener suerte. Si tu juego cae en esta categoría, deberás hacer algo de trabajo. En general, esto significa averiguar qué porcentaje es suerte y qué porcentaje es habilidad (un truco difícil, pero si ya ha estado utilizando un algoritmo basado en habilidades como Elo, podría ejecutar algunas métricas en los resultados para averiguar con qué frecuencia el algoritmo predice un malestar frente a la frecuencia con la que realmente sucede). Luego tiene que cambiar el algoritmo, y exactamente a qué cambiarlo probablemente esté más allá del alcance de esta pregunta.

  • Para los juegos en los que se pueden manipular los partidos (puedo elegir jugar un juego clasificado contra mi amigo), debes poner medidas de seguridad adicionales para evitar que los jugadores tomen partidos a propósito.

  • Para los juegos en los que un jugador puede "dejar de practicar" si no juega regularmente, el sistema podría implicar algún tipo de degradación basada en el tiempo. El sistema Glicko es un mod de Elo que agrega una variable de "incertidumbre" a la clasificación de cada jugador, en función de cuántos juegos han jugado y qué tan recientemente los jugaron; cuanto más seguro es el ranking de un jugador, menos cambia de un juego a otro.

  • Los juegos multijugador (ya sean gratuitos para todos, basados ​​en equipos u otra estructura de jugadores) necesitan un cuidado especial, por supuesto. Algunos juegos basados ​​en equipos hacen que sea más fácil determinar la contribución de cada individuo, en comparación con otros.

  • También pregunte cuál es el propósito de su sistema de calificación / clasificación. En los juegos y deportes profesionales, el propósito es estadístico: la calificación se usa como un predictor del resultado de un partido determinado. El objetivo principal aquí es la precisión. Sin embargo, esto rara vez es lo que quieren los jugadores; en su lugar, quieren progresión, una sensación de que están mejorando y subiendo de rango (ya sea que estén mejorando o no). En resumen, hay una compensación entre precisión y diversión que debes considerar.


Todo sobre el diseño es siempre un equilibrio =)
Wight

3

¿Qué te pareció complicado de TrueSkill ? Pensé que era un algoritmo directo con la cantidad justa de botones para ajustar para diferentes modos de juego, y se reduce a Elo cuando el juego se enfrenta cara a cara con gran certeza.

Si está buscando la forma más sencilla de clasificar y medir efectivamente a un jugador en un entorno multijugador, mi recomendación es TrueSkill.


Estaba buscando una alternativa que pueda modificarse más fácilmente. Como lo que usó Starcraft 2. Pero TrueSkill es una buena medida, es más difícil incluir medidas de juego a la variación.
Wight

2

¿Qué pasa con un sistema por pares como elo ? Se ha utilizado durante siglos en deportes "normales" con excelentes resultados.

Para las partidas libres para todos, puede interpretarlas como un montón de coincidencias por pares y asignar puntos en función de la clasificación relativa.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.