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 servidor de juegos
Puede iniciar solicitudes de reposición de emparejamiento manualmente desde el proceso del servidor de juegos que aloja la sesión de juego. El proceso del servidor es el que contiene la mayor cantidad de up-to-date información sobre los jugadores conectados al juego y el estado de los espacios vacíos.
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 funcionalidades de servidor, los servidores de juegos utilizan el SDK del servidor de Amazon GameLift Servers. Este SDK está disponible en C++ y C#.
Para realizar solicitudes de reposición de emparejamiento desde su servidor de juegos, complete las siguientes tareas.
-
Dispare una solicitud de reposición de emparejamiento. Por lo general, es buena idea iniciar 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 la actividad de reposición en función de la antigüedad de una sesión de juego.
-
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 servidores APIs:
Para crear una solicitud de reposición, llame a
StartMatchBackfillcon la siguiente información. Para cancelar una solicitud de reposición, llame aStopMatchBackfillcon 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 qué emparejador utilizar para la solicitud de reposición. Por lo general, deberá utilizar el mismo emparejador que se usó para crear el emparejamiento original. Esta solicitud toma un ARN de configuración de emparejamiento. Esta información se almacena en el objeto de sesión de juego (GameSession), que se proporcionó al proceso del servidor Amazon GameLift Servers al activar la sesión de juego. La el ARN de configuración de emparejamiento se incluye en la propiedad
MatchmakerData. -
ARN de sesión de juego: identifique la sesión de juego que se va a reponer. Puedes obtener el ARN de la sesión del juego llamando a la API del servidor GetGameSessionId(). Durante el proceso de emparejamiento, los tickets de las nuevas solicitudes no tienen un ID de sesión de juego, mientras que los tickets de las solicitudes de reposición si lo tienen. La presencia del ID de sesión de juego es una forma de saber la diferencia entre los tickets de los nuevos emparejamientos y los tickets de las reposiciones.
-
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 a los creadores de emparejamientos 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:
-
El proceso del servidor que aloja la sesión de juego debe contener la mayor cantidad de up-to-date información sobre los jugadores que están conectados actualmente a la sesión de juego.
-
Para obtener las asignaciones de los jugadores IDs, los atributos y el equipo, extrae los datos de los jugadores del objeto de la sesión de juego (GameSession),
MatchmakerDatapropiedad (consulteAcerca de los datos del emparejador). Los datos del emparejador incluyen a todos los jugadores emparejados en la sesión de juego, por lo que tendrá que extraer los datos solo de los jugadores actualmente conectados. -
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 cada 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.
-
-
-
Monitorice el estado de una solicitud de reposición. Amazon GameLift Servers actualiza en su servidor de juegos el estado de las solicitudes de reposición por medio de la función de devolución de llamada
onUpdateGameSessiondel SDK del servidor (consulte Inicialización del proceso del servidor). Añada código para gestionar los mensajes estado, así como los objetos de sesión de juego actualizados como resultado de solicitudes de reposición correctas en Actualización de datos de emparejamientos en el servidor de juegos.Un creador de emparejamientos solo puede procesar una solicitud de reposición de emparejamiento de una sesión de juego a la vez. Si necesitas cancelar una solicitud, llama al StopMatchBackfill(). Si necesita cambiar una solicitud, llame a
StopMatchBackfilly envíe una solicitud actualizada.