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.
Integre la puerta de enlace del jugador en un juego
Tras crear una flota compatible con Player Gateway, debes actualizar el cliente y el backend del juego para integrarlos con Player Gateway. El backend del juego recupera los puntos finales de retransmisión y las fichas de pasarela de los jugadores y, a continuación, se los proporciona a los clientes del juego. Los clientes del juego envían todo el tráfico UDP a estos puntos finales de retransmisión.
La integración sigue esta ruta de llamadas:
-
El backend del juego llama a la
GetPlayerConnectionDetailsAPI para recuperar los puntos finales de retransmisión y las fichas de acceso a los jugadores de cada jugador de una sesión de juego. -
El backend del juego envía los puntos finales de retransmisión y las fichas de entrada de los jugadores al cliente del juego.
-
El cliente del juego antepone el token de puerta de enlace del jugador a todos los paquetes UDP salientes y los envía a los puntos finales de retransmisión.
-
La red de retransmisión valida el token de puerta de enlace del jugador y enruta el tráfico a tu servidor de juegos.
-
El servidor del juego devuelve el tráfico al cliente del juego a través de las mismas rutas de retransmisión.
Integración de back-end
El backend del juego debe llamar a la GetPlayerConnectionDetails API para recuperar los puntos finales de retransmisión y las fichas de acceso a los jugadores. A continuación, el backend proporciona esta información a los clientes del juego.
GetPlayerConnectionDetails API
La GetPlayerConnectionDetails API devuelve los detalles de conexión de los jugadores en una sesión de juego:
- Retransmita puntos finales y fichas
-
Cuando la puerta de enlace del jugador está habilitada y es compatible con la ubicación, devuelve:
-
Puntos finales de retransmisión: varios puntos finales de retransmisión (dirección IP y puerto) que varían de un jugador a otro
-
Token de puerta de enlace del jugador: token que el cliente debe anteponer a todos los paquetes UDP (válido durante al menos 3 minutos)
-
Vencimiento: fecha y hora de caducidad del token Player Gateway
-
- Conexión directa
-
Si la puerta de enlace del jugador no está habilitada o no es compatible con la ubicación, devuelve la dirección IP y el puerto del servidor del juego
El cliente del juego debe estar diseñado para gestionar ambos tipos de conexión.
Ejemplo de llamada a la API:
// C++ example using AWS SDK Aws::GameLift::GameLiftClient client; Aws::GameLift::Model::GetPlayerConnectionDetailsRequest request; request.SetGameSessionId(gameSessionId); request.SetPlayerIds(playerIds); // Vector of player IDs auto outcome = client.GetPlayerConnectionDetails(request); if (outcome.IsSuccess()) { auto result = outcome.GetResult(); auto connectionDetails = result.GetPlayerConnectionDetails(); // Process each player's connection details for (const auto& detail : connectionDetails) { std::string playerId = detail.GetPlayerId(); // Get relay endpoints (IP address and port) auto endpoints = detail.GetEndpoints(); for (const auto& endpoint : endpoints) { std::string ipAddress = endpoint.GetIpAddress(); int port = endpoint.GetPort(); } // Get player gateway token auto token = detail.GetPlayerGatewayToken(); // Get expiration time auto expiration = detail.GetExpiration(); // Send endpoints and token to game client } }
Consulte GetPlayerConnectionDetailsen la referencia Amazon GameLift Servers de la API.
Actualice los puntos finales de retransmisión
Llama GetPlayerConnectionDetails periódicamente para proporcionar a los jugadores puntos finales actualizados cuando los puntos finales de los relevos no funcionen correctamente. Recomendamos que todos los jugadores de una sesión de juego llamen a la API cada 60 segundos. Para optimizar el uso de la API, agrupa a varios jugadores IDs en una sola llamada a la API.
importante
Las llamadas de actualización periódicas son el mecanismo principal para ofrecer puntos finales actualizados a los jugadores. Si bien las fichas de acceso a los jugadores siguen siendo válidas durante al menos 3 minutos, si se actualizan cada 60 segundos, los jugadores reciben puntos de conexión actualizados con regularidad.
Integración con el cliente
El cliente del juego debe anteponer los tokens de pasarela del jugador a todos los paquetes UDP salientes y enviarlos a los puntos finales de retransmisión proporcionados. El Amazon GameLift Servers cliente SDK for C++ y Unreal Engine proporciona utilidades para simplificar esta integración.
Requisitos del cliente:
Para dirigir el tráfico a través de Player Gateway, el cliente del juego debe:
-
Anteponga los tokens de la puerta de enlace del jugador: anteponga el token de la puerta de enlace del jugador a todos los paquetes UDP salientes. Los tokens de pasarela de jugador no deben estar cifrados y deben aparecer al principio de cada paquete. Los paquetes que no contengan un token de entrada de jugador válido se eliminarán.
-
Enviar a los puntos finales de retransmisión: envíe todos los paquetes UDP a los puntos finales de retransmisión proporcionados.
-
Mantén la actividad de conexión: asegúrate de que el cliente del juego envíe un paquete al servidor del juego o que el servidor del juego envíe un paquete al jugador, al menos una vez cada 30 segundos. Esta actividad mantiene la conexión a través de la red de retransmisión.
-
Gestiona las actualizaciones de los puntos de conexión: acepta los puntos de enlace de retransmisión y las fichas de acceso de los jugadores actualizados desde tu servidor (se recomienda cada 60 segundos) y cambia a nuevos puntos de enlace sin interrumpir la conexión.
SDK de cliente
El SDK de Amazon GameLift Servers cliente para C++ y Unreal Engine proporciona utilidades para simplificar la integración de las pasarelas de reproducción:
-
Administración de fichas: coloca las fichas de las pasarelas del jugador en todos los paquetes UDP salientes.
-
Selección de puntos finales: enruta el tráfico a los puntos finales de retransmisión mediante un algoritmo configurable.
-
Actualización de los terminales: programa llamadas periódicas para recuperar de tu servidor los puntos finales de retransmisión actualizados y las fichas de acceso a los jugadores.
Algoritmos de selección de
El SDK del cliente incluye dos algoritmos integrados para seleccionar el punto final de retransmisión que se va a utilizar:
- Algoritmo alternativo
-
Utiliza un punto final hasta que deja de funcionar correctamente y, a continuación, cambia a otro punto final. Ideal para menús, vestíbulos y juegos por turnos en los que se aceptan interrupciones breves. Durante la conmutación por error del terminal, es posible que se pierdan paquetes durante el tiempo de espera configurado (predeterminado: 2 segundos).
- Algoritmo de rotación predictivo
-
Rota continuamente por todos los puntos finales disponibles y predice los fallos antes de que se produzcan. Ideal para juegos en tiempo real, como juegos de disparos en primera persona y juegos de carreras, donde la entrega constante de paquetes es fundamental. Requiere que el servidor del juego envíe mensajes con una frecuencia constante.
También puedes implementar algoritmos personalizados ampliando la clase de algoritmos base del SDK.
Recursos del SDK del cliente
Para obtener instrucciones de integración completas y códigos de ejemplo, consulte los siguientes recursos:
- C++
-
Hay disponible un SDK de cliente para C++ en Amazon GameLift ServersClient SDK for C++
. - Unreal Engine
-
Hay un complemento para Unreal Engine disponible en el SDK del Amazon GameLift Servers cliente para Unreal
Engine. El acceso requiere ser miembro de la organización de Epic Games a partir del. GitHub Consulta Unreal Engine en GitHub para obtener más información.
Realización de una prueba de integración
Antes de implementarlo en una flota, prueba la integración de la pasarela de jugadores de forma local con la herramienta de pruebas de la pasarela de jugadores. Esta herramienta simula la infraestructura de proxy UDP de la puerta de enlace del jugador y te ayuda a comprobar si el cliente del juego coloca correctamente los tokens de la puerta de enlace del jugador, dirige el tráfico a través de varios puntos finales y gestiona la degradación de la red.
Para obtener instrucciones de configuración y uso, consulta la aplicación de pruebas de Player Gateway
Prácticas recomendadas
Sigue estas prácticas recomendadas a la hora de integrar Player Gateway:
-
Actualiza los puntos finales cada 60 segundos: llama
GetPlayerConnectionDetailscada 60 segundos para asegurarte de que los jugadores reciban los puntos finales actualizados con regularidad. -
Llamadas a la API
GetPlayerConnectionDetailspor lotes: cuando llames a varios jugadores en la misma sesión de juego, agrupa las llamadas para reducir la sobrecarga de la API. -
Mantén la actividad de conexión: asegúrate de que el tráfico fluya entre el cliente del juego y el servidor del juego al menos una vez cada 30 segundos. Puede ser server-to-client tráfico client-to-server o bien.
-
Gestiona las actualizaciones de los terminales de forma adecuada: cuando el cliente del juego reciba los puntos de conexión actualizados del servidor, realiza la transición a los nuevos puntos de conexión sin interrumpir la conexión del jugador.
-
Elige el algoritmo correcto: selecciona el algoritmo de selección de puntos finales que mejor se adapte a los requisitos de tu juego. Usa el algoritmo alternativo para las partidas por turnos y el algoritmo de rotación predictiva para las partidas en tiempo real.