Integración de juegos con Servidores en tiempo real de Amazon GameLift
En este tema se proporciona una descripción general de Amazon GameLift administrado con la solución de Servidores en tiempo real. La descripción general explica cuándo esta solución es adecuada para el juego y cómo Servidores en tiempo real admite los juegos multijugador.
sugerencia
Para probar el alojamiento del servidor de juegos de Amazon GameLift, consulte Introducción a Amazon GameLift.
¿Qué son los servidores de Realtime?
Los servidores de Realtime son servidores de juegos ligeros y listos para utilizarse proporcionados por Amazon GameLift para que los utilice con sus juegos multijugador. Los servidores de Realtime eliminan el proceso de desarrollo, prueba e implementación de un servidor de juegos personalizado. Esta solución puede ayudar a minimizar el tiempo y el esfuerzo necesarios para completar el juego.
Características principales
-
Pila de red completa para la interacción del cliente y servidor de juegos
-
Funcionalidad principal del servidor de juegos
-
Lógica del servidor personalizable
-
Actualizaciones en directo de la lógica del servidor y las configuraciones de Realtime.
-
Emparejamiento de FlexMatch
-
Control flexible de los recursos de alojamiento
Cree una flota y proporcione un script de configuración para configurar los servidores para configurar servidores de Realtime.
Cómo Servidores en tiempo real administra las sesiones de juego
Tiene la opción de añadir lógica personalizada para la administración de sesiones de juego si la compila en el script de Realtime. Puede escribir código para obtener acceso a objetos específicos del servidor, añadir lógica basada en eventos mediante devoluciones de llamada o añadir lógica basada en escenarios que no sean eventos.
Cómo interactúan los clientes y servidores de Realtime
Durante una sesión de juego, los clientes de juegos interactúan enviando mensajes al servidor de Realtime a través de un servicio de backend. Después, el servicio de backend transmite los mensajes entre los clientes del juego para intercambiar la actividad, el estado del juego y los datos relevantes del juego.
Además, añada la lógica de juego al script de Realtime para personalizar la forma en que los clientes y los servidores interactúan. Con la lógica de juego personalizada, un servidor de Realtime podría implementar devoluciones de llamada para iniciar respuestas basadas en eventos.
Protocolo de comunicación
Los servidores de Realtime y los clientes de juegos conectados se comunican a través de dos canales: una conexión TCP para ofrecer una entrega de confianza y un canal UDP para proporcionar una entrega rápida. Al crear mensajes, los clientes de juego eligen qué protocolo utilizar en función de la naturaleza de los mensajes. La entrega de mensajes se configura como UDP de forma predeterminada. Si no hay un canal UDP disponible, Amazon GameLift envía los mensajes mediante TCP como alternativa.
Contenido de los mensajes
El contenido del mensaje consta de dos elementos: un código de operación obligatorio (opCode) y una carga opcional. El opCode de un mensaje identifica una actividad de jugador o un evento de juego en particular, mientras que la carga facilita datos adicionales relacionados con el código de operación. Ambos elementos están definidos por el desarrollador. El cliente de juegos actúa en función de los opCodes en los mensajes que recibe.
Grupos de jugadores
Servidores en tiempo real proporciona funcionalidad para administrar grupos de jugadores. De forma predeterminada, Amazon GameLift ubica todos los jugadores que se conectan a un juego en un grupo “todos los jugadores”. Además, los desarrolladores pueden definir otros grupos para sus juegos y los jugadores pueden ser miembros de varios grupos de forma simultánea. Los miembros del grupo pueden enviar mensajes y compartir los datos del juego con todos los jugadores del grupo. Un posible uso de los grupos consiste en configurar equipos de jugadores y administrar la comunicación de los equipos.
Servidores en tiempo real con certificados TLS
Con Servidores en tiempo real, la autenticación del servidor y el cifrado de los paquetes de datos están integrados en el servicio. Estas características de seguridad se habilitan al activar la generación de certificados TLS. Cuando el cliente del juego intenta conectarse a un servidor de Realtime, el servidor responde automáticamente con el certificado TLS, que el cliente valida. Amazon GameLift administra el cifrado mediante la comunicación TLS para TCP (Websockets) y DTLS para el tráfico UDP.
Personalización de un servidor de Realtime
Un servidor de Realtime funciona como un servidor de retransmisión sin estado. El servidor de Realtime retransmite paquetes de datos del juego y los mensajes entre los clientes del juego conectados al juego. Sin embargo, el servidor de Realtime no evalúa los mensajes, no procesa datos ni ejecuta ninguna lógica del juego. Si se utiliza de esta forma, cada cliente del juego mantiene su propia vista del estado del juego y facilita actualizaciones a otros jugadores mediante el servidor de retransmisión. Cada cliente de juego es responsable de incorporar estas actualizaciones y conciliar su propio estado del juego.
Puede personalizar los servidores añadiéndolos a la funcionalidad de script de Realtime. Con la lógica del juego, por ejemplo, puede compilar un juego con estado con una vista autorizada por el servidor del estado del juego.
Amazon GameLift define un conjunto de devoluciones de llamada del servidor para scripts de Realtime. Implemente estas devoluciones de llamada para añadir a su servidor la funcionalidad basada en eventos. Por ejemplo, puede hacer lo siguiente:
-
Autenticar a un jugador cuando un cliente de juego intenta conectarse con el servidor.
-
Valide si un jugador podrá unirse a un grupo cuando se solicite.
-
Establezca cuándo entregar mensajes de un jugador determinado a otro jugador de destino, o realizar un procesamiento adicional en la respuesta.
-
Informe a todos los jugadores cuando un jugador abandone un grupo o se desconecte del servidor.
-
Visualice el contenido de los objetos de la sesión de juego o los objetos de mensajes, y utilice los datos.
Implementación y actualización de servidores en tiempo real
Una ventaja clave de Servidores en tiempo real es la capacidad de actualizar los scripts en cualquier momento. Al actualizar un script, Amazon GameLift distribuirá la nueva versión a los recursos de alojamiento en cuestión de minutos. Una vez que Amazon GameLift implemente el nuevo script, todas las sesiones de juego nuevas que se hayan creado después de ese momento utilizarán la nueva versión del script. (Las sesiones de juego existentes seguirán utilizando la versión original).