Tutorial: Creación de una cola de Amazon GameLift con instancias de spot
- Introducción
-
En este tutorial se describe cómo configurar la ubicación de las sesiones de juego para los juegos implementados en flotas de spot de bajo costo. Las flotas de spot requieren medidas adicionales para mantener la disponibilidad continua de los servidores de juego para los jugadores.
- Destinatarios previstos
-
Este tutorial está dirigido a los desarrolladores de juegos que quieran utilizar las flotas de spot para alojar servidores de juegos personalizados o servidores en tiempo real.
- Aprenderá a lo siguiente:
-
-
Definir el grupo de jugadores al que sirve la cola de la sesión de juego.
-
Construir una infraestructura de flota que respalde el ámbito de la cola de sesiones de juego.
-
Asignar un alias a cada flota para abstraer el ID de la flota.
-
Crear una cola, añadir flotas y priorizar dónde coloca Amazon GameLift las sesiones de juego.
-
Añadir políticas de latencia de los jugadores para ayudar a minimizar los problemas de latencia.
-
- Requisitos previos
-
Antes de crear flotas y colas para ubicar en las sesiones de juego, realice las siguientes tareas:
-
Consulte Cómo funciona Amazon GameLift.
-
Cargue la compilación del servidor de juegos o el script de Realtime en Amazon GameLift.
-
Paso 1: Definición del ámbito de la cola
En este tutorial, diseñaremos una cola para un juego que tiene una variación de compilación de servidor de juegos. En el momento del lanzamiento, publicaremos el juego en dos ubicaciones: Asia-Pacífico (Seúl) y Asia-Pacífico (Singapur). Como esas ubicaciones están cerca, la latencia no es un problema para nuestros jugadores.
En este ejemplo, hay un segmento de jugadores, lo que significa que crearemos una cola. En el futuro, cuando lancemos el juego en Norteamérica, podremos crear una segunda cola destinada a los jugadores de Norteamérica.
Para obtener más información, consulte Definición del ámbito de una cola.
Paso 2: Creación de una infraestructura de flota de spot
Cree flotas en ubicaciones y con compilaciones de servidores de juegos o scripts que se ajusten al ámbito definido en Paso 1: Definición del ámbito de la cola.
En este tutorial, crearemos una infraestructura de dos ubicaciones con al menos una flota de spot y una flota bajo demanda en cada ubicación. Todas las flotas implementan la misma compilación del servidor de juegos. Además, prevemos que el tráfico de jugadores será mayor en la ubicación de Seúl, por lo que añadiremos más flotas de spot allí.
En el siguiente diagrama se muestra un ejemplo de infraestructura de flota de spot, con 3 flotas en la ubicación ap-northeast-2 (Seúl) y 2 flotas en la ubicación ap-southeast-1 (Singapur). Todas las instancias de ambas flotas utilizan la compilación MBG_prod_V1. La flota de ap-northeast-2 contiene las siguientes configuraciones de flota: flota 1234_spot_1 con un tipo de instancia c5.large, flota 1234_spot_2 con un tipo de instancia c5.xlarge y flota 1234_ondemand con un tipo de instancia c5.large. La flota de ap-southeast-1 contiene las siguientes configuraciones de flota: flota 1234_spot_1 con un tipo de instancia de c5.large y flota 1234_ondemand con un tipo de instancia de c5.large.
Paso 3: Asignación de alias a cada flota
Cree un nuevo alias para cada flota de su infraestructura. Los alias abstraen las identidades de la flota, lo que hace que el reemplazo periódico de la flota sea eficiente. Para obtener más información sobre la creación de alias, consulte Creación de un alias de Amazon GameLift.
Nuestra infraestructura de flota tiene cinco flotas, por lo que creamos cinco alias mediante la estrategia de enrutamiento. Necesitamos tres alias en la ubicación Asia-Pacífico (Seúl) y dos en la ubicación Asia-Pacífico (Singapur).
El siguiente diagrama muestra la infraestructura de flota de spot descrita en el paso dos con los alias añadidos a cada flota. La flota 1234_spot_1 tiene el alias MBG_spot_1, la flota 1234_spot_2 tiene el alias MBG_spot_2 y la flota 1234_ondemand tiene el alias MBG_ondemand.
Para obtener más información, consulte Creación una cola con varias ubicaciones.
Paso 4: Creación de una cola con destinos
Cree la cola de las sesiones del juego y añada los destinos de su flota. Para obtener más información sobre la creación de una cola, consulte Creación de una cola de sesión de juego.
Al crear la cola:
-
Establezca el valor predeterminado del tiempo de espera en 10 minutos. Más adelante, podrá comprobar cómo afecta el tiempo de espera de la cola a los tiempos de espera de los jugadores para entrar en los juegos.
-
Omita por ahora la sección sobre las políticas de latencia de los jugadores. Nos ocuparemos de ello en el siguiente paso.
-
Priorice las flotas de la cola. Cuando trabaje con flotas de spot, le recomendamos que adopte uno de los siguientes enfoques:
-
Si su infraestructura utiliza una ubicación principal con las flotas en una segunda ubicación como respaldo, priorice las flotas primero por ubicación y luego por tipo de flota.
-
Si su infraestructura utiliza varias ubicaciones por igual, priorice las flotas por tipo de flota y coloque las flotas de spot en la parte superior de la lista.
-
Para este tutorial, crearemos una nueva cola con el nombre MBG_spot_queue
y añadiremos los alias de nuestras cinco flotas. Después, priorizaremos las ubicaciones primero por ubicación y, en segundo lugar, por tipo de flota.
Según esta configuración, esta lista siempre intentará incluir nuevas sesiones de juego en una flota de spot en Seúl. Cuando esas flotas estén llenas, la cola utilizará la capacidad disponible en la flota bajo demanda de Seúl como reserva. Si las tres flotas de Seúl no están disponibles, Amazon GameLift ubicará las sesiones de juego en las flotas de Singapur.
En el siguiente diagrama se muestra una cola con un tiempo de espera de 300 segundos y los destinos priorizados. Los destinos están en el siguiente orden: 1234_spot_1 en ap-northeast-2, 1234_spot_2 en ap-northeast-2, 1234_ondemand en ap-northeast-2, 1234_spot_1 en ap-southeast-1 y 1234_ondemand en ap-southeast-1.
Paso 5: Adición de límites de latencia a la cola
Nuestro juego incluye información de latencia en las solicitudes de ubicación de las sesiones de juego. También tenemos una característica de grupo de jugadores que crea una sesión de juego para un grupo de jugadores. Podemos hacer que los jugadores esperen un poco más para empezar a jugar con la experiencia de juego ideal. Nuestras pruebas de juego muestran las siguientes observaciones:
-
Lo ideal es una latencia inferior a 50 milisegundos.
-
El juego no se puede jugar con latencias superiores a 250 milisegundos.
-
Los jugadores tardan aproximadamente un minuto en impacientarse.
Para nuestra cola, con un tiempo de espera de 300 segundos, añadimos instrucciones de política que limitan la latencia permitida. Las instrucciones de política permiten gradualmente valores de latencia más altos, de hasta 250 milisegundos.
Con esta política, nuestra cola busca ubicaciones con una latencia ideal (inferior a 50 milisegundos) durante el primer minuto y, a continuación, flexibiliza el límite. La cola no incluye ubicaciones en las que la latencia de los jugadores sea de 250 milisegundos o más.
El siguiente diagrama muestra la cola del paso cuatro con las políticas de latencia de los jugadores añadidas. Las políticas de latencia de los jugadores establecen el límite de 50 ms durante 60 segundos, el límite de 125 ms durante 30 segundos y el límite de 250 ms hasta que se agote el tiempo de espera.
Resumen
¡Enhorabuena! Estos son los objetivos conseguidos:
-
Tiene una cola de sesiones de juego limitada a un segmento de la población de jugadores.
-
La cola utiliza las flotas de spot de forma eficaz y es resiliente cuando se producen interrupciones de spot.
-
La cola prioriza las flotas para que la experiencia de los mejores jugadores sea la mejor.
-
La cola dispone de límites de latencia para proteger a los jugadores de malas experiencias de juego.
Ahora puede utilizar la cola para ubicar sesiones de juego para los jugadores a los que sirve. Al realizar solicitudes de ubicación de sesiones de juego para esos jugadores, hace referencia al nombre de la cola de sesiones de juego en la solicitud. Para obtener más información sobre cómo realizar solicitudes de ubicación en sesiones de juego, consulte Creación de sesiones de juego o Integración de un cliente de juegos para Servidores en tiempo real.
Pasos siguientes: