Añada FlexMatch a un servidor de juegos alojado en Amazon GameLift - Amazon GameLift

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.

Añada FlexMatch a un servidor de juegos alojado en Amazon GameLift

En este tema se describe cómo añadir la compatibilidad con el emparejamiento de FlexMatch a los servidores de juegos personalizados que utilizan el alojamiento administrado de Amazon GameLift. Para obtener más información sobre cómo añadir FlexMatch a sus juegos, consulte los siguientes temas:

La información de este tema supone que ha integrado correctamente el SDK del servidor de Amazon GameLift en el proyecto del servidor de juegos, tal y como se describe en Adición de Amazon GameLift en su servidor de juegos. Con esta tarea completada, dispone de la mayoría de los mecanismos que necesita. Las secciones de este tema cubren las restantes tareas para gestionar los juegos que se configuran con FlexMatch.

Configuración del servidor de juegos para el emparejamiento

Para configurar el servidor de juegos para gestionar juegos emparejados, complete las siguientes tareas.

  1. Inicie sesiones de juego creadas con el emparejamiento. Para solicitar una nueva sesión de juego, Amazon GameLift envía una solicitud onStartGameSession() a su servidor de juegos con un objeto de sesión de juego (consulte GameSession). Su servidor de juegos utiliza la información de la sesión de juego, incluidos los datos de juego personalizados, para iniciar la sesión de juego solicitada. Para obtener más información, consulte Inicio de una sesión de juego.

    Para juegos emparejados, el objeto de sesión de juego contiene también un conjunto de datos del creador de emparejamientos. Los datos del creador de emparejamientos incluyen información que el servidor de juegos necesita para iniciar una nueva sesión de juego para el emparejamiento. Esto incluye la estructura del equipo del emparejamiento, asignaciones de equipo y ciertos atributos de los jugadores que pueden ser relevantes para el juego. Por ejemplo, el juego podría desbloquear determinadas características o niveles en función del nivel de habilidad medio de los jugadores o elegir una asignación en función de las preferencias de los jugadores. Obtenga más información en Trabajo con datos del emparejador.

  2. Administre las conexiones de los jugadores. Cuando se conecte a un juego emparejado, el cliente de juegos hará referencia al ID de jugador y a un ID de sesión del jugador (consulte Validación de un jugador nuevo). El servidor de juegos utiliza el ID de jugador para asociar un jugador entrante con información de los jugadores en los datos del creador de emparejamientos. Los datos del creador de emparejamientos identifican la asignación de equipo del jugador y pueden proporcionar otra información para representar correctamente al jugador en el juego.

  3. Informe cuando los jugadores abandonan un juego. Asegúrese de que el servidor de juegos llama a la API del servidor RemovePlayerSession() para comunicar el abandono de jugadores (consulte Notificación de la finalización de una sesión de jugador). Este paso es importante si está utilizando la reposición de FlexMatch para completar las ranuras vacías en los juegos existentes. Es fundamental si el juego inicia solicitudes de reposición a través de un servicio de juego por parte del cliente. Puede obtener más información sobre la implementación de la reposición de FlexMatch en Reposición de juegos existentes con FlexMatch.

  4. Solicite nuevos jugadores para sesiones de juego emparejadas existentes (opcional). Decida la manera en la que desee realizar la reposición de los juegos emparejados existentes. Si los creadores de emparejamientos han establecido el modo de reposición en "manual", es posible que desee añadir soporte de reposición a su juego. Si el modo de reposición se establece en "automático", es posible que necesite una forma de desactivarlo para las sesiones de juego individuales. Por ejemplo, es posible que desee detener la reposición de una sesión de juego una vez que se alcance un punto determinado en el juego. Para obtener más información sobre la administración de la reposición de emparejamiento, consulte Reposición de juegos existentes con FlexMatch.

Trabajo con datos del emparejador

Su servidor de juegos debe poder reconocer y utilizar la información del juego en un objeto GameSession. El servicio de Amazon GameLift pasa estos objetos a su servidor de juegos siempre que se inicia o actualiza una sesión de juego. La información básica de la sesión de juego incluye nombre e ID de sesión del juego, número máximo de jugadores, información de conexión y datos de juego personalizados (si se proporcionan).

En el caso de las sesiones de juego creadas mediante FlexMatch, el objeto GameSession también contiene un conjunto de datos del creador de emparejamiento. Además de un ID de emparejamiento único, identifica al creador de emparejamientos que creó el emparejamiento y describe los equipos, asignaciones de equipos y jugadores. Incluye los atributos de los jugadores de la solicitud de emparejamiento original (consulte el objeto Player). No incluye la latencia de los jugadores; si necesita datos de latencia de los jugadores actuales, como para la reposición de emparejamientos, recomendamos obtener datos nuevos.

nota

Los datos del creador de emparejamientos especifican el ARN de configuración de emparejamientos completo, que identifica el nombre de la configuración y la cuenta y la región de AWS. Cuando solicite una reposición de emparejamiento desde un servicio o cliente de juego, solo necesitará el nombre de configuración. Puede extraer el nombre de la configuración analizando la cadena que va a continuación de ":matchmakingconfiguration/". En el ejemplo mostrado, el nombre de la configuración de emparejamiento es "MyMatchmakerConfig".

El siguiente JSON muestra un conjunto típico de datos del creador de emparejamientos. Este ejemplo describe un juego de dos jugadores, con jugadores emparejados en función de sus puntuaciones de habilidad y el nivel más alto alcanzado. El creador de emparejamientos también realiza emparejamientos en función del personaje y garantiza que los jugadores emparejados tengan al menos una preferencia de mapa en común. En este escenario, el servidor de juegos debe poder determinar qué asignación es la preferida y usarla en la sesión de juego.

{ "matchId":"1111aaaa-22bb-33cc-44dd-5555eeee66ff", "matchmakingConfigurationArn":"arn:aws:gamelift:us-west-2:111122223333:matchmakingconfiguration/MyMatchmakerConfig", "teams":[ {"name":"attacker", "players":[ {"playerId":"4444dddd-55ee-66ff-77aa-8888bbbb99cc", "attributes":{ "skills":{ "attributeType":"STRING_DOUBLE_MAP", "valueAttribute":{"Body":10.0,"Mind":12.0,"Heart":15.0,"Soul":33.0}} } }] },{ "name":"defender", "players":[{ "playerId":"3333cccc-44dd-55ee-66ff-7777aaaa88bb", "attributes":{ "skills":{ "attributeType":"STRING_DOUBLE_MAP", "valueAttribute":{"Body":11.0,"Mind":12.0,"Heart":11.0,"Soul":40.0}} } }] }] }