Emparejamiento aburrido sin desequilibrio y colas: una guía práctica

Matchmaking es el componente principal de la mayoría de los juegos multijugador modernos. Una vez que un desarrollador lo toma en serio, resulta que los recién llegados se encuentran regularmente con profesionales en la batalla, y algunos jugadores tienen que esperar para siempre solo para entrar en el partido. Además, es difícil probar y analizar antes del lanzamiento, ya que debe tener en cuenta muchos factores. ¿Cómo se distribuyen los jugadores geográficamente? ¿Cuánto tiempo están listos para esperar en la cola? ¿Qué ping es óptimo para un juego cómodo? Estos y otros factores afectan la calidad del emparejamiento.

imagen

Debajo del corte, primero discutiremos la práctica general de seleccionar batallas en juegos multijugador, y luego compartiremos nuestra propia experiencia en la organización de emparejamientos para War Robots.

¿Qué criterio elegir?


Entonces, ¿qué determina un buen emparejamiento? Por supuesto, esto depende de las características de la plataforma y el género del juego, pero, por regla general, los desarrolladores se guían por los siguientes criterios:

  • corto tiempo de espera;
  • bajo ping;
  • La mínima diferencia en la experiencia, las habilidades y el progreso de los jugadores: aquí la experiencia del juego puede tenerse en cuenta tanto en general como para una clase específica, si el juego tiene una división en ellos;
  • oposición entre los partidos: grupos de jugadores previamente reunidos destinados a un trabajo coordinado;
  • inicio simultáneo del partido para todos los jugadores.

Son posibles otros requisitos, por ejemplo:

  • recoger jugadores que hablen el mismo idioma;
  • tener en cuenta los resultados de los últimos partidos del jugador, así como el coeficiente de cumplimiento de la clasificación: si un jugador ha perdido los últimos partidos, puede que ahora esté fuera de forma y, por algún tiempo, debería facilitar a los oponentes;
  • hacer emparejamientos teniendo en cuenta la composición de los equipos: si un equipo carece, por ejemplo, de un tanque o un sanador, busque oponentes de un equipo con la misma composición;
  • reunir trolls, libreas y pinzas para que no interfieran con otros jugadores;
  • diversifica la composición de los jugadores para que las mismas personas no se encuentren en diferentes partidos con demasiada frecuencia;
  • Reúna a los jugadores mediante el chat de voz.

Está lejos de ser siempre posible satisfacer simultáneamente todos estos requisitos. Además, una gran cantidad de requisitos siempre van en contra del deseo de lograr un corto tiempo de espera. Incluso si el juego es muy exitoso, y cientos de personas esperan el partido cada minuto, es posible que todavía no haya tiempo suficiente para cumplir algunos requisitos. Por ejemplo, si desea encontrar otro equipo australiano satisfactorio para un equipo de australianos como rivales, el tiempo de espera puede aumentar dramáticamente.

En este sentido, de todos los requisitos deseados, es necesario elegir el más importante para un proyecto en particular. Acortar esta lista conducirá a un mejor cumplimiento de los requisitos restantes y tiempos de espera más cortos.

Además, al desarrollar juegos multijugador, vale la pena recordar que la adición de varios modos de juego divide la base de jugadores en varias colas y, por lo tanto, conduce a un aumento en el tiempo de espera y, por lo tanto, a un deterioro en la calidad del emparejamiento. Por lo tanto, piense nuevamente antes de agregar este o aquel modo al juego, y si vale la pena darle al jugador la oportunidad de elegir entre ellos.

Reducir el número de requisitos para el emparejamiento no es la única forma de reducir el tiempo de espera. Por ejemplo, puede implementar el modo multijugador en el sistema Drop-In-Drop-Out, para que los usuarios puedan unirse al juego en cualquier momento y salir de él en cualquier momento. Si esto no es posible, con una corta duración de los partidos, puedes permitir que el jugador juegue con bots en el proceso de espera. Por supuesto, esto no resolverá el problema de las expectativas, pero al menos nos permitirá pasar el tiempo.

¿Cómo evaluar el cumplimiento de los criterios seleccionados?


Entonces, tenemos un cierto número de jugadores, que debemos asignar a los partidos. ¿Cómo hacerlo mejor? ¿Qué es preferible: el mismo nivel de habilidades o bajo ping? ¿Cómo podemos equilibrar estos requisitos para que las partes jueguen entre sí?

A modo de comparación, necesitamos una determinada métrica. De alguna manera, todos estos criterios deben converger en un parámetro, por el valor más alto del cual el sistema puede realizar una búsqueda. A continuación lo llamaremos el puntaje del partido.

Para obtener el valor de esta evaluación, primero debe calcular los indicadores individuales. Considere una combinación de factores:

  • Equipos con el mismo nivel de habilidad. Este es el criterio más obvio en el emparejamiento. Para cada juego, el método de cálculo de este parámetro es individual. Uno de los más simples: tome el nivel promedio de experiencia por equipo y compárelo con el mismo valor para otro equipo. Cuanto mayor sea la diferencia, peor será la coincidencia y menor será el indicador deseado.
  • Jugadores con el mismo nivel de habilidad. Incluso si los dos equipos están perfectamente equilibrados, pero consisten, por ejemplo, en dos profesionales y un principiante, el indicador promedio de las habilidades de los equipos será el mismo, pero un buen partido aún no funcionará. Por lo tanto, presentamos otro parámetro no para el equipo en su conjunto, sino para cada jugador individualmente, o la variación del nivel de habilidades dentro del equipo.
  • Fiesta Idealmente, un grupo que juegue juntos durante mucho tiempo debería oponerse a otro del mismo grupo, y no contra tres jugadores separados. Es fácil de calcular: si un equipo ha estado jugando entre sí durante mucho tiempo, tenemos un indicador igual al 100%. Si un equipo de tres juega contra dos amigos y un jugador aleatorio, obtenemos el 60%. Si ninguno de los jugadores hubiera jugado antes, el valor sería 0%.
  • Hacer ping a los oponentes. Para cada usuario, verificamos el ping con los tres jugadores del equipo contrario. Cuanto mayor sea el ping, menor será el puntaje.
  • Variabilidad de los oponentes. En la búsqueda de cumplir con los requisitos de mayor prioridad, el sistema de emparejamiento a menudo puede poner a los mismos equipos uno contra el otro con las tasas de partidos más altas. Por lo tanto, para que los jugadores no se aburran constantemente jugando con caras conocidas, vale la pena llevar un registro de cuántas veces se encuentran en partidos.


Un ejemplo de un partido en el que los equipos tienen un indicador del 100% para un partido, un buen indicador de la habilidad promedio en el equipo, pero una correlación débil en las habilidades de los jugadores individuales: en el equipo azul, difieren significativamente

¿Cómo tener en cuenta la ambigüedad de los criterios?


Entonces, para cada uno de los criterios, tenemos un puntaje de 0% (muy mala coincidencia) a 100% (mejor), pero al final solo necesitamos obtener un número. Para esto usaremos el valor promedio ponderado. Entonces podemos establecer la prioridad de importancia para cada criterio.

Al calcular la estimación, vale la pena considerar si queremos obtener una dependencia lineal de los parámetros. Por ejemplo, ¿vale la pena mejorar el ping de 210 ms a 200 ms de 110 ms a 100 ms? Ambas opciones se mejoran en 10 ms, pero el valor de ping en sí es el doble de diferente.

Curiosamente, en el caso de algunos criterios, es más fácil obtener una diferencia significativa en el rendimiento que en el caso de otros. Entonces, para ganar un 0% en términos de nivel de habilidad, se requiere reunir tres jugadores profesionales y tres principiantes en el partido, lo cual es extremadamente raro. Sin embargo, obtener un 0% según el criterio de partido es mucho más fácil, porque para esto necesitas tener un equipo bien armado contra tres jugadores individuales. También vale la pena considerar este aspecto.


Un ejemplo de cómo se pueden componer los equipos según el nivel de habilidad. Verde y amarillo muestran ping entre jugadores

Ahora, en función de los valores de los indicadores de cada uno de los requisitos, podemos calcular la puntuación final.

Dado que este número es el criterio dominante, el algoritmo produce ciertas preferencias. Si el intercambio de dos jugadores aumenta el parámetro de evaluación de un partido en un 5%, pero lo reduce en un 10% en otro partido, el sistema no lo hará, porque en general el resultado será peor. Sin embargo, en algunos casos esto puede ser descuidado. Por lo tanto, puede ser apropiado mejorar un indicador del 50% (que es muy malo) al 55% reduciendo el otro del 90% al 80% (que todavía es bastante bueno). Esto se puede lograr, por ejemplo, calculando la raíz cuadrada de todos los indicadores de la evaluación hasta la etapa de promedio. Por lo tanto, mejorar los malos partidos se vuelve relativamente más importante que los buenos.

¿Cómo sucede esto en los robots de guerra?


Dado que estamos hablando de un juego móvil donde todo debería suceder rápidamente, la prioridad principal es el bajo tiempo de espera antes de entrar en batalla. Para esto, el sistema de emparejamiento debe ser lo más simple posible. Por el momento, el emparejador de War Robots solo tiene en cuenta la clasificación de selección de jugador (MMR) e intenta centrarse en los partidos, pero como no están muy extendidos en el juego, este criterio es secundario: si no puedes unir partidos de igual fuerza entre sí, el sistema intenta combinarse entre sí algunas partes o no se enfoca en este criterio en absoluto. Y si un jugador abandona la batalla, en su lugar tomarán otro que cumpla con los criterios, pero solo al comienzo del partido.

La calificación de la selección de jugadores depende del número de victorias / derrotas y el lugar en el equipo, y dependiendo del resultado del partido, puede aumentar o disminuir. Según esta clasificación, los jugadores se agrupan en ligas y divisiones. Dentro de la división, el emparejador busca jugadores con la puntuación más cercana posible, ampliando gradualmente el rango de búsqueda y cubriendo las siguientes divisiones también. Vale la pena señalar que el matchmaker intenta evitar que los jugadores entren en las ligas inferiores que subestiman intencionalmente su clasificación al rastrearlos de acuerdo con patrones de comportamiento característicos: generalmente el número de derrotas es mayor que el número promedio de batallas de liga por día.


Diagrama de flujo coincidente de War Robots Match simplificado

El sistema solía funcionar mal. El criterio principal era el poder de los robots y las armas, y de los resultados de los partidos solo se tuvieron en cuenta los últimos cinco. El sistema era más vulnerable a la manipulación. Los jugadores experimentados podrían estar en la misma batalla con los recién llegados, si solo cambiaron sus armas a las más débiles, o viceversa, un recién llegado al robot de primer nivel podría instalar el arma 12 y terminar en una batalla con profesionales, sin tener tiempo para desarrollar la habilidad del juego. En este sentido, el sistema de clasificación, basado en la experiencia real de victorias y derrotas, resultó ser mucho más honesto, aunque no fue posible hacerlo de inmediato: una reorganización completa del proceso de emparejamiento es un paso radical, por lo que al principio se hicieron intentos para establecer simplemente las condiciones adicionales del sistema.

El trabajo para optimizar y mejorar el emparejamiento en War Robots está en curso. Quizás en el futuro sea posible combinar el enfoque antiguo y el nuevo para encontrar coincidencias, pero no olvide que cualquier mejora en la calidad del emparejamiento conduce a un aumento en el tiempo de espera. Por lo tanto, el desarrollo de dicha solución será aconsejable solo si no afecta significativamente el rendimiento del sistema.

Source: https://habr.com/ru/post/475548/


All Articles