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.
Generación de solicitudes de reposición manual desde un servicio de backend
Como alternativa a enviar solicitudes de reposición desde un servidor de juegos, puede enviarlas desde un servicio de juego del lado del cliente. Para utilizar esta opción, el servicio del lado del cliente debe tener acceso a datos actualizados de la actividad de la sesión de juego y las conexiones del jugador; si el juego utiliza un servicio de directorio de sesiones, esto podría ser una buena opción.
En este tema se supone que ya ha creado los componentes de FlexMatch necesarios y que ha añadido correctamente procesos de creación de emparejamientos al servidor de juegos y un servicio de juego del lado del cliente. Para obtener más información sobre la configuración de FlexMatch, consulte Hoja de ruta: Adición del emparejamiento a una solución de alojamiento de Amazon GameLift Servers.
Para habilitar la reposición de emparejamiento para su juego, añada la siguiente funcionalidad:
-
Enviar solicitudes de reposición de emparejamiento a un creador de emparejamientos y hacer un seguimiento del estado de las solicitudes.
-
Actualice la información de emparejamiento de la sesión de juego. Consulte Actualización de datos de emparejamientos en el servidor de juegos
Al igual que con otras funciones del cliente, un servicio de juegos del lado del cliente utiliza el AWS SDK con Amazon GameLift Servers la API. Este SDK está disponible en C++, C # y en otros lenguajes. Para obtener una descripción general del cliente APIs, consulta la referencia de la Amazon GameLift Servers API, que describe la API del servicio para Amazon GameLift Servers las acciones y enlaza con guías de referencia específicas de cada idioma.
Para configurar un servicio de juego del lado del cliente para reponer juegos emparejados, complete las siguientes tareas.
-
Dispare una solicitud de reposición. Por lo general, un juego inicia una solicitud de reposición siempre que un juego emparejado tiene una o varias ranuras de jugadores vacías. Es posible que desee vincular solicitudes de reposición a circunstancias específicas, por ejemplo, para suplir funciones de personaje cruciales o equilibrar equipos. También es probable que desee limitar las reposiciones en función de la antigüedad de una sesión de juego. Independientemente de lo que utilice como disparador, necesitará la siguiente información como mínimo. Puedes obtener esta información del objeto de sesión de juego (GameSession) llamando DescribeGameSessionscon un identificador de sesión de juego.
-
Número de ranuras de jugadores vacías en la actualidad. Este valor se puede calcular a partir del límite de jugadores máximos de una sesión de juego y el recuento actual de jugadores. El recuento actual de jugadores se actualiza siempre que el servidor de juegos contacta con el servicio Amazon GameLift Servers para validar la conexión de un nuevo jugador o para informar del abandono de un jugador.
-
Política de creación. Esta configuración indica si la sesión de juego acepta nuevos jugadores.
El objeto de sesión de juego contiene otra información potencialmente útil, incluida la hora de inicio de la sesión de juego, propiedades personalizadas del juego y datos del emparejador.
-
-
Cree una solicitud de reposición. Añada código para crear y enviar solicitudes de reposición de emparejamiento a un creador de emparejamientos de FlexMatch. Las solicitudes de relleno se gestionan mediante los siguientes clientes APIs:
Para crear una solicitud de reposición, llame a
StartMatchBackfillcon la siguiente información. Una solicitud de reposición es parecida a una solicitud de emparejador (consulte Solicitud del emparejamiento de jugadores), pero además identifica la sesión de juego existente. Para cancelar una solicitud de reposición, llame aStopMatchmakingcon el ID del ticket de solicitud de reposición.-
ID de ticket: proporcione un ID de ticket del emparejador (o puede optar por que se generen automáticamente). Puedes usar el mismo mecanismo para asignar entradas tanto a las solicitudes de emparejamiento como IDs a las de relleno. Los tickets para el emparejamiento y la reposición se procesan de la misma forma.
-
Emparejador: identifique el nombre de la configuración del emparejador que se va a usar. Por lo general, deberá utilizar el mismo emparejador para la reposición que el que se usó para crear el emparejamiento original. Esta información se encuentra en un objeto de sesión de juego (GameSession),
MatchmakerDatapropiedad, bajo la configuración de emparejamiento ARN. El valor del nombre es la cadena después de ""matchmakingconfiguration/". (Por ejemplo, en el valor de ARN "arn:aws:gamelift:us-west-2:111122223333:matchmakingconfiguration/MM-4v4", el nombre de la configuración del emparejador es "MM-4v4".) -
ARN de sesión de juego: especifique la sesión de juego que se va a reponer. Utilice la propiedad
GameSessionIddel objeto de sesión de juego; este ID utiliza el valor de ARN que usted necesita. Los boletos de emparejamiento (MatchmakingTicket) para las solicitudes de reposición tienen el ID de sesión de juego mientras se procesan; los boletos para nuevas solicitudes de emparejamiento no reciben un ID de sesión de juego hasta que se coloca el partido; la presencia de un ID de sesión de juego es una forma de diferenciar entre las entradas para nuevos partidos y las entradas para rellenarse. -
Datos del jugador: incluya información del jugador (Jugador) de todos los jugadores actuales en la sesión de juego que está en fase de reposición. Esta información permite al emparejador localizar los mejores emparejamientos de jugador para los jugadores que se encuentren en la sesión de juego. Debe incluir la membresía del equipo de cada jugador. No especifique un equipo si no utiliza la reposición. Si el servidor de juegos ha comunicado de forma precisa el estado de conexión del jugador, tendría que poder adquirir estos datos como sigue:
-
Llama al DescribePlayerSessions() con el identificador de la sesión de juego para descubrir todos los jugadores que están conectados actualmente a la sesión de juego. Cada sesión de jugador incluye un ID de jugador. Puede añadir un filtro de estado para recuperar solo las sesiones de jugador activas.
-
Extrae los datos del jugador del objeto de la sesión de juego (GameSession), de la
MatchmakerDatapropiedad (consulteAcerca de los datos del emparejador. Usa el jugador IDs adquirido en el paso anterior para obtener datos únicamente para los jugadores conectados actualmente. Como los datos del emparejador no se actualizan cuando los jugadores abandonan el juego, tendrá que extraer los datos solo para los jugadores actuales. -
Para la latencia de los jugadores, si el emparejador solicita datos de latencia, recopile nuevos valores de latencia de todos los jugadores actuales e inclúyalos en el objeto
Player. Si se omiten los datos de latencia y el creador de emparejamientos tiene una regla de latencia, la solicitud no se emparejará correctamente. Las solicitudes de reposición exigen datos de latencia solo para la región en la que se encuentra el juego en esos momentos. Puede obtener una región de sesión de juego de la propiedadGameSessionIddel objetoGameSession; este valor es un ARN, que incluye la región.
-
-
-
Haga un seguimiento del estado de una solicitud de reposición. Añada código para permanecer a la escucha de actualizaciones del estado del ticket de emparejamiento. Puede utilizar la configuración del mecanismo para realizar un seguimiento de los tickets de las nuevas solicitudes de emparejamiento (consulte Seguimiento de eventos de emparejamiento) utilizando notificación (preferido) o sondeo de eventos. Aunque no necesita disparar la actividad de aceptación del jugador con solicitudes de reposición y la información del jugador se actualiza en el servidor de juegos, aún tiene que vigilar el estado del ticket para gestionar errores y repeticiones de envío de solicitudes.
Un creador de emparejamientos solo puede procesar una solicitud de reposición de emparejamiento de una sesión de juego a la vez. Si necesita cancelar una solicitud, llame a StopMatchmaking. Si necesita cambiar una solicitud, llame a
StopMatchmakingy envíe una solicitud actualizada.Una vez que una solicitud de reposición de emparejamiento tiene éxito, su servidor de juegos recibe un objeto
GameSessionactualizado y gestiona las tareas necesarias para incorporar nuevos jugadores a la sesión de juego. Más información en Actualización de datos de emparejamientos en el servidor de juegos.