Integración de juegos con Amazon GameLift Realtime Servers - 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.

Integración de juegos con Amazon GameLift Realtime Servers

En este tema, se proporciona información general acerca de la solución de administración de Amazon GameLift con servidores en tiempo real. La descripción general explica cuándo esta solución es adecuada para tu juego y cómo Realtime Servers admite los juegos multijugador.

Para obtener una hoja de ruta completa para poner en marcha tu juego, consultaHoja de ruta de alojamiento GameLift gestionado de Amazon.

sugerencia

Para probar el alojamiento de servidores de GameLift juegos en Amazon, consultaIntroducción a Amazon GameLift.

¿Qué son los servidores en tiempo real?

Los servidores en tiempo real son servidores de ready-to-go juegos livianos que Amazon GameLift proporciona para que los uses con tus juegos multijugador. Los servidores en tiempo real 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
  • Paquete de red completo para la interacción entre el cliente del juego y el servidor

  • Funcionalidad básica del servidor de juegos

  • Lógica de servidor personalizable

  • Actualizaciones en tiempo real de las configuraciones y la lógica del servidor

  • FlexMatch emparejamiento

  • Control flexible de los recursos de alojamiento

Configure los servidores en tiempo real creando una flota y proporcionando un script de configuración. Para obtener más información sobre la creación de servidores en tiempo real y cómo preparar el cliente del juego, consultePreparación del servidor de tiempo real.

Cómo Realtime Servers administra las sesiones de juego

Puedes añadir una lógica personalizada para la gestión de las sesiones de juego integrándola en el script en tiempo real. Puede escribir código para acceder a objetos específicos del servidor, añadir lógica basada en eventos mediante devoluciones de llamada o agregar lógica basada en escenarios sin eventos.

Cómo interactúan los clientes y servidores en tiempo real

Durante una sesión de juego, los clientes del juego interactúan enviando mensajes al servidor Realtime a través de un servicio de backend. A continuación, el servicio de backend retransmite los mensajes entre los clientes del juego para intercambiar la actividad, el estado del juego y los datos relevantes del juego.

Además, puedes personalizar la forma en que interactúan los clientes y los servidores añadiendo la lógica del juego al script en tiempo real. Con una lógica de juego personalizada, un servidor en tiempo real podría implementar devoluciones de llamadas para iniciar respuestas basadas en eventos.

Protocolo de comunicación

Los servidores en tiempo real y los clientes de juegos conectados se comunican a través de dos canales: una conexión TCP para una entrega confiable y un canal UDP para 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 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 del juego en particular, y la carga proporciona datos adicionales relacionados con el código de operación. Ambos elementos están definidos por el desarrollador. El cliente del juego actúa en función de los opCodes de los mensajes que recibe.

Grupos de jugadores

Realtime Servers ofrece funciones para gestionar grupos de jugadores. De forma predeterminada, Amazon GameLift coloca a todos los jugadores que se conectan a un juego en un grupo de «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 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 Realtime Servers, la autenticación del servidor y el cifrado de paquetes de datos están integrados en el servicio. Estas funciones de seguridad se activan al activar la generación de certificados TLS. Cuando un cliente del juego intenta conectarse con un servidor Realtime, el servidor responde automáticamente con el certificado TLS, que el cliente valida. Amazon GameLift gestiona el cifrado mediante TLS para la comunicación TCP (WebSockets) y DTLS para el tráfico UDP.

Personalización de un servidor en tiempo real

Un servidor en tiempo real funciona como un servidor de retransmisión sin estado. El servidor Realtime retransmite paquetes de mensajes y datos del juego entre los clientes del juego conectados al juego. Sin embargo, el servidor Realtime no evalúa los mensajes, procesa datos ni ejecuta ninguna lógica de juego. Utilizado de esta manera, cada cliente del juego mantiene su propia visión del estado del juego y proporciona actualizaciones a otros jugadores a través del servidor de retransmisión. Cada cliente de juego es responsable de incorporar estas actualizaciones y conciliar su propio estado del juego.

Puede personalizar sus servidores agregándolos a la funcionalidad de secuencias de comandos en tiempo real. Con la lógica del juego, por ejemplo, puedes crear un juego con estados con una visión autorizada por el servidor del estado del juego.

Amazon GameLift define un conjunto de llamadas del lado del servidor para secuencias de comandos en tiempo real. 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.

  • Valida si un jugador puede unirse a un grupo si lo solicita.

  • Determina cuándo enviar los mensajes de un jugador determinado o a un jugador objetivo, o realiza un procesamiento adicional en respuesta.

  • Notifica a todos los jugadores cuando un jugador abandona un grupo o se desconecta del servidor.

  • Vea el contenido de los objetos de la sesión del juego o de los objetos de mensajes y utilice los datos.

Despliegue y actualización de servidores en tiempo real

Una ventaja clave de Realtime Servers es la posibilidad de actualizar los scripts en cualquier momento. Cuando actualizas un script, Amazon GameLift distribuye la nueva versión a todos los recursos de alojamiento en cuestión de minutos. Una vez que Amazon GameLift implemente el nuevo guion, todas las sesiones de juego nuevas que se creen después de ese momento utilizarán la nueva versión del guion. (Las sesiones de juego existentes seguirán utilizando la versión original).