Pareciera que la competitividad está plasmada en el código genético del ser humano. Cuando somos niños, gran parte de nuestra interacción social se basa en el juego y la competencia. En México, nos encontramos rodeados de publicidad y revuelo en todos los medios de comunicación acerca del próximo clásico del fútbol o de quién será el ganador de la Liga MX. Con la llegada de los eSports, hemos presenciado cómo los jugadores de videojuegos le dan una estima tan alta a los profesionales y su rango competitivo. Elo, MMR y otros términos más han inundado los foros de comunidad con individuos en búsqueda de mejorar su habilidad y su posicionamiento en la escalera del juego competitivo.
Como desarrollador, alguna vez te has preguntado… ¿de dónde parten estos sistemas de puntuación competitiva? ¿Quién dictamina cuáles son las reglas para posicionarte? ¿Cómo es que el sistema determina tu habilidad? ¿Por qué existe descontento con la puntuación de algunos títulos y qué los hace diferentes del resto? ¿Cómo puedo maximizar el engagement en la modalidad competitiva de mi videojuego? A continuación, se presentarán los resultados de nuestra investigación.
Disclaimer: Los resultados plasmados en esta investigación son meramente informativos y no reflejan el panorama completo. Para obtener más información al respecto, se incluyen links hacia las fuentes detalladas.
¿Qué es un sistema de puntuación?
Los sistemas de puntuación son métodos matemáticos capaces de estimar el nivel de destreza de un jugador con respecto al resto. Las puntuaciones resultantes son producto de un proceso de cálculo matemático muy elaborado. La importancia de la matemática en el diseño de un sistema de puntaje radica en que la diferencia entre la habilidad entre un jugador y otro debe de ser estadísticamente relevante y debe de reflejar un incremento o decremento fiel a los cambios en habilidad. Existen múltiples sistemas de puntuación que han sido implementados en videojuegos comerciales y, a continuación, se describen los más relevantes.
Sistema Elo, el viejo confiable
El sistema de puntuación Elo fue creado por el profesor Arpad Elo para clasificar jugadores de ajedrez en la década de 1960 y fue plasmado en su publicación “The Rating of Chessplayers Past & Present”. De manera formal, se considera un sistema de clasificación de escala de proporción con intervalo relativo, porque pretende clasificar al jugador dentro de una categoría, pero no contiene ningún punto de referencia (fixed point) como otros sistemas de medición. El intervalo o proporción para establecer la diferencia de habilidad entre un jugador y otro se basa en la desviación estándar.
La desviación estándar o desviación típica es una medida que indica qué tan dispersos están los datos alrededor de un punto de referencia. Un valor de desviación alto indica que los datos se encuentran más dispersos (se encuentran distribuidos en todo el gráfico). Un valor de desviación bajo significa que los datos se encuentran muy cerca del valor de referencia.
Elo toma en cuenta que todos los jugadores tienen días buenos y días malos (Good/Bad Performances), por lo que su verdadera habilidad se encuentra establecida en una media entre todos, además, asume que todas estas Performances se encuentran distribuidas de forma normal (también se conoce como la distribución Gaussiana). Como regla empírica, en una distribución normal aproximadamente el 68% de los valores se ubican a no más de una desviación estándar de la media, 95% de los valores se ubican a no más de dos desviaciones estándar y 99.7% de los valores se ubican a no más de tres desviaciones estándar.
En algunas variantes de Elo se llega a cambiar el modelo de distribución a una distribución logística, puesto que sus resultados en particular no son correctamente representados por la distribución normal.
Elo se representa a través de un número entero que va cambiando conforme se juegan partidas y se acumulan los resultados. Se espera que dos jugadores con el mismo nivel de Elo tengan la misma cantidad de victorias, llegando a un empate. . Cuando un jugador consigue una victoria sobre otro, “toma” puntos del perdedor. La cantidad de puntos a tomar se encuentra en función de la diferencia entre el puntaje de los dos jugadores. Por ejemplo, si un jugador con puntaje muy alto vence a uno con un puntaje bajo, va a tomar una cantidad mínima del perdedor. En cambio, si un jugador con puntaje bajo le gana a uno con puntaje alto, va a tomar una suma significativa del perdedor. A largo plazo, el intercambio de puntaje entre jugadores termina reflejando un valor muy cercano a la habilidad real del individuo.
La principal ventaja de utilizar Elo radica en que su efectividad ha sido discutida y aprobada por más de 40 años, y a la fecha sigue siendo el backbone de los sistemas de puntuación de algunas organizaciones internacionales de ajedrez. Además, existen implementaciones Open Source del sistema en una multitud de lenguajes, por lo que puede ser integrado fácilmente al backend de nuestro desarrollo sin importar el stack de tecnología.
Algunas de las desventajas de implementar un sistema Elo se ven reflejadas en los jugadores. En el caso de los jugadores con Elo muy alto, pueden dejar de participar en partidas competitivas con el fin de proteger y mantener su rango actual, puesto que el tiempo de inactividad no es una variable a considerar para calcular un nuevo puntaje y no se puede modificar hasta que el jugador se empareje en una nueva partida. Esto eventualmente decrementa el movimiento en las partidas competitivas y disminuye el engagement (pésimo en modelos de monetización como Free to Play y Games-as-a-Service).
En los casos en los que el jugador es capaz de escoger a su oponente, los jugadores tienden a escoger oponentes que les ofrezcan el menor riesgo al perder y la mejor recompensa al ganar. Por ejemplo, pueden escoger jugadores que consideren como sobrevalorados o evitar jugadores promesa (con un puntaje mucho más bajo, pero con una habilidad comparable a la suya).
Elo fue pensado originalmente para el ajedrez, en donde compiten solamente dos jugadores. Utilizar este método para partidas en equipo o Free For All requiere modificaciones al algoritmo. Esto implica aumento en el tiempo de desarrollo. [1]
Muchos videojuegos han llegado a utilizar Elo o variantes del mismo, tales como League of Legends, Overwatch, Puzzle Pirates, Roblox, FIFA Mobile, RuneScape 3, Mechwarrior Online, Age of Empires II, PlayerUnknown’s Battlegrounds y Guild Wars. [2]
Glicko
El sistema Glicko fue desarrollado por el Dr. Mark Glickman en 1995 y fue presentado como una mejora al sistema Elo.
El cambio más significativo de Glicko frente a Elo viene en la forma en la que Glicko trata la fiabilidad de los puntajes. Glicko introduce un nuevo concepto al cálculo del puntaje conocido como “ratings deviation” (RD) o desviación de puntajes. Una desviación de puntajes es la desviación estándar que representa la incertidumbre de que un puntaje realmente refleje la habilidad de un jugador. Una medida alta de RD significa que el puntaje no es completamente fiable y tal vez no ha jugado lo suficiente. Un puntaje bajo se interpreta como que el jugador juega competitivo de manera muy frecuente.
Cuando se termina una partida, cambian tanto el puntaje del jugador como su RD. Además, el tiempo es una variable que afecta directamente la fiabilidad del puntaje, por lo que incrementa la incertidumbre de que el puntaje refleje la realidad. Por ejemplo, si un jugador deja de competir profesionalmente durante un período de tiempo considerable, puede que su puntaje ya no refleje su habilidad actual y como decimos coloquialmente, “se oxidó” o “perdió el toque”.
En Glicko, los cambios en puntaje no se encuentran balanceados. Si el puntaje del ganador incrementa en x, esto no significa que el puntaje del perdedor decrementa en x. La puntuación ganada o perdida se encuentra completamente en función del RD de cada jugador.
Si recuerdas la regla empírica de la distribución normal, decía que “aproximadamente el 95% de los valores se ubican a no más de dos desviaciones estándar”. Glicko utiliza esta regla para otorgar validez estadística a su método. Debido a que RD es un valor de desviación estándar, también puede fungir como intervalo de confianza. Sabemos que el 95% de los valores se ubican a no más de dos desviaciones estándar de la media. Si un jugador tiene un puntaje x, podemos decir con un 95% de confianza, que la habilidad real del jugador se encuentra a no más de dos desviaciones estándar (RD) de x. Cuando un jugador tiene un valor RD muy bajo, entonces el intervalo de confianza es muy pequeño y el valor de x se encuentra muy muy cercano a la habilidad real del jugador.
Glicko establece que para calcular el puntaje de un jugador que nunca ha participado en una partida competitiva se necesitan varias partidas contra jugadores que ya han sido calificados (aproximadamente de 5 a 10 partidas). El jugador sin calificar comienza con una puntuación y un RD fijos, actualizando estos valores al final de cada partida y utilizándolos para emparejar en los siguientes juegos.
La ventaja más prominente de Glicko es que toma en cuenta el tiempo de inactividad del jugador para el cálculo del puntaje. Además, se encuentra dentro del dominio público, por lo que al igual que Elo, existen implementaciones del sistema en la gran mayoría de lenguajes de programación, por lo que no es complicado implementarlo en cualquier stack de tecnología.
Las desventajas de Glicko se vuelven visibles en una mala implementación del sistema. Por ejemplo, Glicko requiere de una planeación muy minuciosa de los períodos puntuables (el período transcurrido desde la última partida competitiva), puesto que la fiabilidad de RD depende completamente de ello. Una mala implementación podría hacer que en un videojuego con una esperanza de vida de 5 años (período en el que existe una base de jugadores lo suficientemente grande para que el modo competitivo sea costeable y redituable), un jugador requiera 15 o 20 años para perder completamente la fiabilidad de su calificación y el sistema pierda completamente su propósito. Una mala implementación también podría hacer que, si un jugador compite de manera muy frecuente, el RD se vuelva tan pequeño que su puntaje deje de cambiar de manera apreciable y se pierda el engagement. Por esta razón, se recomienda que el RD jamás baje de cierto límite inferior. [3]
Glicko-2
Glicko-2 es una mejora a Glicko que fue publicada en 2013. Glicko-2 añade una variable más al cálculo del puntaje, la volatilidad. La volatilidad es alta cuando un jugador tiene resultados muy erráticos. Por ejemplo, cuando un jugador tiene una racha inusualmente alta después de un periodo de estabilidad (un período de días buenos y malos). La volatilidad determina los cambios en el valor de RD, lo que lo vuelve aún más preciso que Glicko. Glicko-2 es retrocompatible con Glicko y ofrece una serie de fórmulas de conversión para adaptar puntajes Glicko a Glicko-2. [4]
Algunos videojuegos comerciales que han implementado variantes de Glicko o Glicko-2 en su modo clasificatorio son Team Fortress 2, Splatoon 2, Counter Strike: Global Offensive, Guild Wars 2, Dota Underlords, Pokémon Showdown y Dominion Online.
TrueSkill
TrueSkill es un sistema de puntuación desarrollado por Microsoft Research. Es un sistema con base en una técnica estadística muy utilizada en Inteligencia Artificial y Aprendizaje Máquina conocida como Inferencia Bayesiana, la cual es una fórmula que sirve para actualizar la probabilidad de una hipótesis ante la disponibilidad de nuevas observaciones. [5] De manera similar a Glicko, modela la habilidad en una distribución normal y utiliza la desviación estándar como intervalo de confianza del 95%.
Trueskill es capaz de adaptarse a cualquier cantidad de jugadores (1v1, Partidas en Equipos, Partidas desbalanceadas y Free-For-All). Dependiendo del tipo de partida y la cantidad de jugadores, se requiere entre 3 y 91 partidas para poder establecer una estimación real de la habilidad del jugador. Otra de las características más prominentes de Trueskill es que tiene la capacidad de calcular el puntaje para jugadores que se unieron a la partida tarde. Por ejemplo, si un jugador no estuvo presente durante todo el juego y entró 20 minutos tarde, el sistema es capaz de ajustar el puntaje de acuerdo a su participación.
TrueSkill ha sido utilizado en desarrollos de Microsoft desde la época de Halo 2. Se estima que casi todas sus franquicias han implementado este sistema de puntuación para sus modos competitivos.
Existen algunos paquetes para implementar TrueSkill en una multitud de lenguajes, sin embargo, no pertenece al dominio público. Microsoft permite que TrueSkill sea utilizado en desarrollos locales y proyectos no comerciales. [6]
Conclusiones
Si bien el diseño de los sistemas de puntuación se encuentra fuera del scope del desarrollo de videojuegos, consideramos importante que los game designers, backend engineers y game developers tengan un panorama general acerca de cómo funcionan y cuál es el que mejor se adapta a sus necesidades. El diseño de un videojuego es un proceso iterativo de toma de decisiones y creemos que si tu videojuego está en mira de producir un ambiente altamente competitivo, el tomar una decisión informada respecto al sistema de puntaje propiciará un ambiente de calidad, engagement y éxito a tu proyecto.
Muchas gracias por tu atención.
Ing. Carlos Alberto García de Alba Chávez @ Eldritch Games.
Referencias
[1] Arpad, E., 1978. The Rating of Chessplayers, Past and Present. 2nd ed. New York: American Chess Foundation.
[2] Wikipedia. 2022. Elo rating system. [online] Disponible en: <https://en.wikipedia.org/wiki/Elo_rating_system> [Última visita el 21 de Febrero del 2022].
[3] Glickman, M., 2022. The Glicko System. [ebook] Harvard University. Disponible en: <http://www.glicko.net/glicko/glicko.pdf> [Última visita el 21 de Febrero del 2022].
[4] Glickman, M., 2022. Example of the Glicko-2 system. [ebook] Boston University. Disponible en: <http://www.glicko.net/glicko/glicko2.pdf> [Última visita el 22 de Febrero del 2022].
[5] OpenMind. 2022. Inferencia Bayesiana, aprendizaje y desarrollo de sistemas IA. [online] Disponible en: <https://www.bbvaopenmind.com/tecnologia/inteligencia-artificial/inferencia-bayesiana-aprendizaje-ia> [Última visita el 22 de Febrero del 2022].
[6] trueskill.org. 2022. TrueSkill. [online] Disponible en: <https://trueskill.org> [Última visita el 22 de Febrero del 2022].