Diseño de colas de sesiones de juego - 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.

Diseño de colas de sesiones de juego

En este tema se describe cómo diseñar una cola que ofrezca una experiencia de jugador con una latencia mínima y que utilice los recursos de alojamiento de forma eficiente. Para obtener más información sobre las colas de sesiones de juego y su funcionamiento, consulte Configuración de colas de Amazon GameLift para la ubicación de las sesiones de juego.

Estas características de Amazon GameLift requieren colas:

Definición del ámbito de la cola

Es posible que la población de jugadores del juego tenga grupos de jugadores que no deberían jugar juntos. Por ejemplo, si publica el juego en dos idiomas, cada idioma debería tener sus propios servidores de juegos.

Para configurar la ubicación de las sesiones de juego para su población de jugadores, cree una cola independiente para cada segmento de jugadores. Revise cada cola para ubicar a los jugadores en los servidores de juegos correctos. Algunas formas habituales de determinar el ámbito de las colas son las siguientes:

  • Por ubicaciones geográficas. Al implementar los servidores de juegos en varias áreas geográficas, puede crear colas para los jugadores en cada ubicación con el fin de reducir la latencia de los jugadores.

  • Por compilación o variaciones del script. Si tiene más de una variante del servidor de juegos, es posible que esté ofreciendo soporte a grupos de jugadores que no puedan jugar en las mismas sesiones de juego. Por ejemplo, es posible que las compilaciones o scripts de los servidores de juegos admitan distintos idiomas o tipos de dispositivos.

  • Por tipos de eventos. Puede crear una cola especial para administrar los juegos de los participantes en torneos u otros eventos especiales.

Creación de una política de latencia de jugadores

Si las solicitudes de posicionamiento incluyen datos de latencia de los jugadores, el algoritmo busca las sesiones de juego en las ubicaciones con la latencia media más baja de todos los jugadores. Ubicar las sesiones de juego en función de la latencia media de los jugadores impide que Amazon GameLift ubique a la mayoría de los jugadores en juegos con una latencia alta. Sin embargo, Amazon GameLift sigue ubicando a los jugadores con una latencia extrema. Para adaptarse a estos jugadores, cree políticas de latencia para los jugadores.

Una política de latencia de jugadores impide que Amazon GameLift ubique una sesión de juego solicitada en cualquier lugar en el que los jugadores de la solicitud experimenten una latencia superior al valor máximo. Las políticas de latencia de los jugadores también pueden impedir que Amazon GameLift haga coincidir las solicitudes de sesión de juego con las de los jugadores con una latencia más alta.

sugerencia

Para administrar reglas específicas de latencia, como exigir una latencia similar a todos los jugadores de un grupo, puede utilizar Amazon GameLift FlexMatch para crear reglas de emparejamiento basadas en la latencia.

Por ejemplo, considere esta cola con un tiempo de espera de 5 minutos y las siguientes políticas de latencia de los jugadores:

  1. Si se pasa 120 segundos buscando una ubicación donde todas las latencias de los jugadores son de menos de 50 milisegundos.

  2. Si se pasa 120 segundos buscando una ubicación donde todas las latencias de los jugadores son de menos de 100 milisegundos.

  3. Si se emplea el tiempo de la cola restante en buscar una ubicación donde todas las latencias de los jugadores son de menos de 200 milisegundos.


                Un ejemplo de pantalla de la consola que configura la cola descrita anteriormente.

Creación una cola con varias ubicaciones

Recomendamos un diseño con varias ubicaciones para todas las colas. Este diseño puede mejorar la velocidad de ubicación y la resiliencia del alojamiento. Se requiere un diseño de varias ubicaciones para utilizar los datos de latencia de los jugadores con el fin de que puedan participar en las sesiones de juego con una latencia mínima. Si va a crear colas en varias ubicaciones que utilizan flotas de instancias de spot, siga las instrucciones que se indican en Tutorial: Configuración de una cola de sesiones de juego para instancias de spot.

Una forma de crear una cola con varias ubicaciones consiste en añadir una flota con varias ubicaciones a una cola. De esa forma, la cola puede colocar las sesiones de juego en cualquiera de las ubicaciones de la flota. También puede añadir otras flotas con diferentes configuraciones o ubicaciones de origen para aumentar la redundancia. Si utiliza una flota de instancias de spot con varias ubicaciones, siga las prácticas recomendadas e incluya una flota de instancias bajo demanda con las mismas ubicaciones.

En el siguiente ejemplo, se describe el proceso de diseño de una cola básica con varias ubicaciones. En este ejemplo, utilizamos dos flotas: una flota de instancias de spot y una flota de instancias bajo demanda. Cada flota tiene las siguientes Regiones de AWS para las ubicaciones: us-east-1, us-east-2ca-central-1 y us-west-2.

Para crear una cola básica de varias ubicaciones con flotas de varias ubicaciones, realice el siguiente procedimiento:
  1. Elija una ubicación para crear la cola. Puede minimizar la latencia de las solicitudes colocando la cola en una ubicación cercana a donde implementó el servicio de cliente. En este ejemplo, crearemos la cola en us-east-1.

  2. Cree una cola nueva y añada nuestras flotas de varias ubicaciones como destinos de la cola. El orden de destino determina la forma en que Amazon GameLift ubica las sesiones de juego. En este ejemplo, incluimos primero la flota de instancias de spot y, en segundo lugar, la flota de instancias bajo demanda.

  3. Defina el orden de prioridad de la ubicación de las sesiones de juego de la cola. Este orden determina dónde busca primero la cola un servidor de juegos disponible. En este ejemplo, utilizaremos el orden de prioridad predeterminado.

  4. Defina el orden de ubicación. Si no define el orden de las ubicaciones, Amazon GameLift utilizará las ubicaciones en orden alfabético.


                Un ejemplo de pantalla de la consola que configura las ubicaciones y los destinos de ubicación de las colas, tal como se describe en el procedimiento anterior.

                Un ejemplo de pantalla de la consola que configura los valores en los campos Prioridad de ubicación de la sesión de juego y Orden de ubicación, tal como se describe en el procedimiento anterior.

Priorice la ubicación de las sesiones de juego.

Amazon GameLift utiliza el algoritmo de FleetIQ para determinar dónde ubicar una nueva sesión de juego en función de un conjunto ordenado de criterios. Puede utilizar el orden de prioridad predeterminado o personalizar el orden.

Orden de prioridad predeterminado

Para las solicitudes de ubicación que incluyen datos de latencia de los jugadores, FleetIQ prioriza los criterios de ubicación de la sesión de juego en el siguiente orden predeterminado:

  1. Latencia: la latencia media más baja para todos los jugadores de la solicitud.

  2. Costo: el costo de alojamiento más bajo, si la latencia es igual en varias ubicaciones. El costo del alojamiento se basa principalmente en una combinación del tipo de instancia y ubicación.

  3. Destino: pedido de destino, si la latencia y el costo son iguales en varias ubicaciones. FleetIQ prioriza los destinos según el orden que aparece en la configuración de la cola.

  4. Ubicación: orden de ubicación, si la latencia, el costo y el destino son iguales en varias ubicaciones. FleetIQ prioriza los destinos según las ubicaciones que aparecen en la configuración de la cola.

Orden de prioridad personalizado

Para personalizar el orden de prioridad de una cola en la consola de Amazon GameLift, arrastre el valor de prioridad a la posición en la que desee ubicarlo. Para personalizar el orden de prioridad de una cola mediante AWS Command Line Interface (AWS CLI), utilice el comando create-game-session-queue junto con la opción --priority-configuration. Puede utilizar este comando para crear una nueva cola o para actualizar una cola existente.

El algoritmo de FleetIQ añade cualquier criterio que no se mencione explícitamente al final de la lista, según el orden predeterminado. Si incluye el criterio de ubicación en la configuración de prioridad, también debe proporcionar una lista ordenada de ubicaciones.

Diseño de varias colas según sea necesario

En función del juego y de los jugadores, es posible que desee crear más de una cola de sesión de juego. Cuando su servicio de cliente de juegos solicite una nueva sesión de juego, especifica qué cola de sesión de juego utilizar. Para ayudarle a determinar si debe usar varias colas, tenga en cuenta los siguientes aspectos:

  • Variaciones del servidor de juegos. Puede crear una cola independiente para cada variación del servidor de juegos. Todas las flotas de una cola deben implementar servidores de juegos compatibles. Esto se debe a que los jugadores que utilicen la cola para unirse a los juegos deben poder jugar en cualquiera de los servidores de juegos de la cola.

  • Diferentes grupos de jugadores. Puede personalizar la forma en que Amazon GameLift ubica las sesiones de juego en función del grupo de jugadores. Por ejemplo, es posible que necesite personalizar las colas para determinados modos de juego que requieren un tipo de instancia especial o una configuración de tiempo de ejecución. O bien, puede que le interese una cola especial para administrar las posiciones de un torneo u otro evento.

  • Métricas de las colas de las sesiones de juego. Puede configurar las colas en función de cómo desee recopilar las métricas de ubicación de las sesiones de juego. Para obtener más información, consulte Métricas de Amazon GameLift para colas.

Evaluación de métricas de cola

Utilice métricas para evaluar el desempeño de las colas. Puede ver las métricas relacionadas con las colas en la consola de Amazon GameLift o en Amazon CloudWatch. Para ver una lista y descripciones de métricas de colas, consulte Métricas de Amazon GameLift para colas.

Las métricas de colas pueden proporcionar información sobre los siguientes aspectos:

  • Rendimiento general de la cola: las métricas de la cola indican el grado de éxito con el que una cola responde a las solicitudes de ubicación. Esas métricas también pueden ayudarle a identificar cuándo y por qué fallan las ubicaciones. En el caso de las colas con flotas con escalación manual, las métricas de AverageWaitTime y QueueDepth pueden indicar cuándo debe ajustar la capacidad de una cola.

  • Rendimiento del algoritmo de FleetIQ: para las solicitudes de ubicación que utilizan el algoritmo de FleetIQ, las métricas muestran la frecuencia con la que el algoritmo encuentra la ubicación ideal para las sesiones de juego. La ubicación puede priorizar el uso de los recursos con la menor latencia de jugadores o los recursos con el menor costo. También hay métricas de error que identifican los motivos más comunes por los que Amazon GameLift no encuentra una ubicación ideal. Para obtener más información sobre las métricas, consulte Supervisión de Amazon GameLift con Amazon CloudWatch.

  • Ubicaciones específicas por ubicación: en el caso de las colas en varias ubicaciones, las métricas muestran las ubicaciones correctas por ubicación. En el caso de las colas que utilizan el algoritmo de FleetIQ, estos datos proporcionan información útil sobre de dónde se produce la actividad de los jugadores.

Cuando evalúe las métricas de rendimiento del algoritmo de FleetIQ, tenga en cuenta las siguientes recomendaciones:

  • Para realizar un seguimiento de la tasa de búsqueda de una ubicación ideal en la cola, utilice la métrica PlacementsSucceeded en combinación con las métricas de FleetIQ para obtener la latencia más baja y el precio más bajo.

  • Para aumentar la tasa de búsqueda de una ubicación ideal en una cola, revise las siguientes métricas de error:

    • Si el valor de FirstChoiceOutOfCapacity es alto, ajuste la escala de capacidad para las flotas de la cola.

    • Si la métrica de error FirstChoiceNotViable es alta, compruebe las flotas de instancias de spot. Las flotas de instancias de spot no se consideran viables cuando la tasa de interrupción es muy alta en un determinado tipo de instancia. Para solucionar este problema, cambie la cola para que utilice flotas de instancias de spot con otros tipos de instancias. Le recomendamos que incluya flotas de instancias de spot con diferentes tipos de instancias en cada ubicación.