Proceso de emparejamiento de FlexMatch - Amazon GameLift Servers

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Proceso de emparejamiento de FlexMatch

En este tema se describe un escenario de emparejamiento básico y las interacciones entre los distintos componentes del juego y el servicio de FlexMatch.

Paso 1: Solicitud del emparejamiento de jugadores

Un jugador que utilice el cliente de juegos hace clic en el botón “Unirse a un juego”. Esta acción hace que el servicio de emparejamiento del cliente envíe una solicitud de emparejamiento a FlexMatch. La solicitud identifica el emparejador de FlexMatch que se utilizará al cumplir con la solicitud. La solicitud también incluye la información del jugador que necesite el emparejador personalizado, como el nivel de habilidad, las preferencias de juego o los datos de latencia geográfica. Puede realizar solicitudes de emparejamiento para uno o varios jugadores.

Paso 2: Adición de solicitudes al grupo de emparejamiento

Cuando FlexMatch recibe la solicitud de emparejamiento, genera un ticket de emparejamiento y lo añade al grupo de tickets del emparejador. El ticket permanece en el grupo hasta que se realice el emparejamiento o se alcance el límite de tiempo máximo. El servicio de emparejamiento de clientes recibe notificaciones periódicas sobre los eventos de emparejamiento, incluidos los cambios en el estado de los tickets.

Paso 3: Creación de una partida

El emparejador de FlexMatch ejecuta continuamente el siguiente proceso en todos los tickets de su grupo:

  1. El emparejador ordena el grupo por la antigüedad de los tickets y, a continuación, comienza a crear un posible emparejamiento empezando por el ticket más antiguo.

  2. El emparejador añade un segundo ticket al posible emparejamiento y evalúa el resultado según las reglas de emparejamiento personalizadas. Si el posible emparejamiento pasa la evaluación, los jugadores del ticket pasan a formar parte de un equipo.

  3. El emparejador añade el siguiente ticket de la secuencia y repite el proceso de evaluación. Cuando se hayan ocupado todas las ranuras para los jugadores, el emparejamiento estará listo.

En el caso de emparejamientos grandes (de 41 a 200 jugadores), el sistema de emparejamiento utiliza una versión modificada del proceso descrito anteriormente, de forma que se puedan compilar emparejamientos en un plazo de tiempo razonable. En lugar de evaluar cada ticket de forma individual, el emparejador divide un grupo de tickets preestablecido en posibles emparejamientos y, a continuación, equilibra cada emparejamiento en función de una característica del jugador que haya especificado. Por ejemplo, un emparejador podría clasificar previamente los tickets en función de ubicaciones similares de baja latencia y, después, utilizar el equilibrio posterior al emparejamiento para asegurarse de que los equipos estén emparejados equitativamente según la habilidad del jugador.

Paso 4: Informe de los resultados de emparejamiento

Cuando se encuentra un emparejamiento aceptable, se actualizan todos los tickets emparejados y se genera un evento de emparejamiento correcto para cada ticket de emparejamiento.

  • FlexMatch como servicio independiente: el juego recibe los resultados de emparejamiento en un evento de emparejamiento correcto. Los datos de los resultados incluyen una lista de todos los jugadores emparejados y las asignaciones de sus equipos. Si las solicitudes de emparejamiento contienen información sobre la latencia de los jugadores, los resultados también sugieren una ubicación geográfica óptima para el emparejamiento.

  • FlexMatchcon una solución de Amazon GameLift Servers alojamiento: los resultados de las partidas se pasan automáticamente a una Amazon GameLift Servers cola para ubicar la sesión de juego. El emparejador determina qué cola se utiliza para la ubicación de las sesiones de juego.

Paso 5: Inicio de una sesión de juego para el emparejamiento

Una vez que el emparejamiento propuesto se haya formado satisfactoriamente, se iniciará una nueva sesión de juego. Tus servidores de juego deben poder utilizar los datos de los resultados del emparejamiento, incluidas las asignaciones de jugadores IDs y equipos, al configurar una sesión de juego para la partida.

  • FlexMatch como servicio independiente: el servicio personalizado de ubicación de emparejamientos obtiene los datos de los resultados de los eventos de emparejamiento correctos y se conecta al sistema de ubicación de sesiones de juego existente para localizar un recurso de alojamiento disponible para el emparejamiento. Una vez encontrado un recurso de alojamiento, el servicio de ubicación de emparejamientos se coordina con el sistema de alojamiento actual para iniciar una nueva sesión de juego y obtener información de conexión.

  • FlexMatchcon una solución de Amazon GameLift Servers alojamiento: la cola de sesiones de juego localiza el mejor servidor de juego disponible para la partida. En función de cómo esté configurada la cola, intentará situar la sesión de juego con los recursos de menor costo y en un lugar en el que los jugadores experimenten una latencia baja (si se proporcionan datos sobre la latencia de los jugadores). Una vez finalizada correctamente la sesión de juego, el servicio Amazon GameLift Servers solicita al servidor de juegos que inicie una nueva sesión de juego y le transmite los resultados del emparejamiento y otros datos opcionales del juego.

Paso 6: Conexión de los jugadores a la partida

Tras iniciar una sesión de juego, los jugadores se conectan a la sesión, reclaman su asignación de equipo y comienzan a jugar.

  • FlexMatch como servicio independiente: el juego utiliza el sistema de administración de sesiones de juego existente para proporcionar información de conexión a los jugadores.

  • FlexMatchcon una solución de Amazon GameLift Servers alojamiento: si la sesión de juego se coloca correctamente, FlexMatch actualiza todas las entradas coincidentes con la información de conexión de la sesión de juego y un identificador de sesión del jugador.