Diseña una cola 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ña una cola de sesiones de juego

En este tema se describe cómo diseñar una cola que ofrezca una experiencia al 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, consulteConfiguración de GameLift colas de Amazon para la colocación de las sesiones de juego.

Estas GameLift funciones de Amazon requieren colas:

Defina el alcance de su cola

La población de jugadores de tu juego puede tener grupos de jugadores que no deberían jugar juntos. Por ejemplo, si publicas tu juego en dos idiomas, cada idioma debería tener sus propios servidores de juego.

Para configurar la ubicación de las sesiones de juego para tu población de jugadores, crea una cola independiente para cada segmento de jugadores. Defina cada cola para colocar a los jugadores en los servidores de juego correctos. Algunas formas comunes de determinar el alcance de las colas son:

  • Por ubicaciones geográficas. Al desplegar tus servidores de juego en varias áreas geográficas, puedes crear colas para los jugadores en cada ubicación a fin de reducir la latencia de los jugadores.

  • Mediante variaciones de compilación o script. Si tienes más de una variante de tu servidor de juegos, es posible que estés apoyando a grupos de jugadores que no puedan jugar en las mismas sesiones de juego. Por ejemplo, las compilaciones o los scripts de servidores de juegos pueden admitir diferentes idiomas o tipos de dispositivos.

  • Por tipos de eventos. Puedes crear una cola especial para gestionar las partidas de los participantes en torneos u otros eventos especiales.

Crea una política de latencia para jugadores

Si tus solicitudes de posicionamiento incluyen datos de latencia de los jugadores, el algoritmo encuentra las sesiones de juego en las ubicaciones con la latencia media más baja para todos los jugadores. Colocar las sesiones de juego en función de la latencia promedio de los jugadores impide que Amazon coloque GameLift a la mayoría de los jugadores en juegos con alta latencia. Sin embargo, Amazon GameLift sigue situando a los jugadores con una latencia extrema. Para dar cabida a estos jugadores, crea políticas de latencia para los jugadores.

Una política de latencia para los jugadores impide que Amazon coloque una sesión GameLift 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 jugadores con mayor latencia.

sugerencia

Para gestionar reglas específicas de latencia, como exigir una latencia similar para todos los jugadores de un grupo, puedes usar Amazon GameLift FlexMatch para crear reglas de emparejamiento basadas en la latencia.

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

  1. Dedica 120 segundos a buscar una ubicación en la que todas las latencias de los jugadores sean inferiores a 50 milisegundos.

  2. Dedica 120 segundos a buscar una ubicación en la que todas las latencias de los jugadores sean inferiores a 100 milisegundos.

  3. Dedica el tiempo de espera restante hasta que se agote el tiempo de espera a buscar una ubicación en la que todas las latencias de los jugadores sean inferiores a 200 milisegundos.


                Una pantalla de ejemplo en la consola que configura la cola descrita anteriormente.

Crea una cola en varias ubicaciones

Recomendamos un diseño de varias ubicaciones para todas las colas. Este diseño puede mejorar la velocidad de colocación y la resiliencia del alojamiento. Se requiere un diseño de múltiples ubicaciones para utilizar los datos de latencia de los jugadores para que puedan participar en las sesiones de juego con una latencia mínima. Si estás creando colas en varias ubicaciones que utilizan flotas de Spot Instance, sigue las instrucciones que aparecen enTutorial: Cómo configurar cómo configurar cómo configurar cómo configurar cómo configurar cómo configurar cómo configurar cómo configurar cómo configurar cómo configurar.

Una forma de crear una cola con varias ubicaciones es añadir una flota con varias ubicaciones a una cola. De esta 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 puntuales con varias ubicaciones, siga las prácticas recomendadas e incluya una flota de instancias bajo demanda con las mismas ubicaciones.

El siguiente ejemplo describe el proceso de diseño de una cola básica de varias ubicaciones. En este ejemplo, utilizamos dos flotas: una flota de instancias puntuales y una flota de instancias bajo demanda. Cada flota tiene las siguientes ubicacionesRegiones de AWS de ubicación:us-east-1us-east-2,ca-central-1, yus-west-2.

Para crear una cola básica de varias ubicaciones con flotas de varias ubicaciones
  1. Elige una ubicación en la que 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 deus-east-1.

  2. Crea una nueva cola y añade tus flotas con múltiples ubicaciones como destinos de cola. El orden de destino determina la forma en que Amazon GameLift organiza las sesiones de juego. En este ejemplo, enumeramos primero la flota de instancias puntuales y, en segundo lugar, la flota de instancias bajo demanda.

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

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


                Una pantalla de ejemplo en la consola que configura las ubicaciones y los destinos de las colas tal como se describe en el procedimiento anterior.

                Una pantalla de ejemplo en la consola que configura la prioridad de ubicación de las sesiones del juego y el orden de ubicación tal como se describe en el procedimiento anterior.

Priorizar la ubicación de las sesiones de juego

Amazon GameLift utiliza el algoritmo FleetIQ para determinar dónde colocar una nueva sesión de juego en función de un conjunto ordenado de criterios. Puede utilizar el orden de prioridad predeterminado o puede 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 promedio 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 la ubicación.

  3. Destino: orden de destino, si la latencia y el costo son iguales en varias ubicaciones. FleetIQ establece el orden de prioridad de 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 establece el orden de prioridad de la configuración de la cola.

Orden prioritario personalizado

Para personalizar el orden de prioridad de una cola en la GameLift consola de Amazon, arrastra el valor de prioridad hasta la posición en la que quieras colocarlo. Para personalizar el orden de prioridad de una cola mediante laAWS Command Line Interface (AWS CLI), utilice el create-game-session-queuecomando con la--priority-configuration opción. Puede utilizar este comando para crear una cola nueva o actualizar una cola existente.

El algoritmo 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 su configuración de prioridad, también debe proporcionar una lista ordenada de ubicaciones.

Diseñe múltiples colas según sea necesario

En función del juego y de los jugadores, puede que quieras crear más de una cola de sesiones de juego. Cuando el servicio de cliente del juego solicita una nueva sesión de juego, especifica qué cola de sesiones de juego usar. Para ayudarle a determinar si debe utilizar varias colas, tenga en cuenta lo siguiente:

  • Variaciones de tu servidor de juegos. Puedes crear una cola independiente para cada variante de tu servidor de juego. Todas las flotas que estén en cola deben desplegar servidores de juego compatibles. Esto se debe a que los jugadores que usen la cola para unirse a las partidas deben poder jugar en cualquiera de los servidores de juego de la cola.

  • Diferentes grupos de jugadores. Puedes personalizar la forma en que Amazon organiza GameLift las sesiones de juego en función del grupo de jugadores. Por ejemplo, es posible que necesites colas personalizadas para ciertos modos de juego que requieran un tipo de instancia o una configuración de tiempo de ejecución especiales. O tal vez quieras crear una cola especial para gestionar las posiciones de un torneo u otro evento.

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

Evalúe el tamaño de colas

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

Las métricas de cola pueden proporcionar información sobre lo siguiente:

  • Rendimiento general de las colas: las métricas de cola indican el éxito con el que una cola responde a las solicitudes de ubicación. Estas métricas también pueden ayudarte a identificar cuándo y por qué fallan las ubicaciones. En el caso de las colas con flotas escaladas manualmente, lasQueueDepth métricasAverageWaitTime y pueden indicar cuándo debes ajustar la capacidad de una cola.

  • Rendimiento del algoritmo FleetIQ: en el caso de las solicitudes de ubicación que utilizan el algoritmo 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 latencia de jugador más baja o los recursos con el costo más bajo. También hay métricas de error que identifican los motivos más comunes por los que Amazon no GameLift puede encontrar una ubicación ideal. Para obtener más información sobre las métricas, consulte Supervise Amazon GameLift con Amazon CloudWatch.

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

Al evaluar las métricas del rendimiento del algoritmo FleetIQ, tenga en cuenta los siguientes consejos:

  • Para hacer un seguimiento de la velocidad de la cola a la hora de encontrar una ubicación ideal, usa laPlacementsSucceeded métrica 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 probabilidad de que una cola encuentre una ubicación ideal, revise las siguientes métricas de error:

    • Si elFirstChoiceOutOfCapacity valor es alto, ajusta la escala de capacidad para las flotas de la cola.

    • Si la métricaFirstChoiceNotViable de error es alta, observe sus flotas de instancias puntuales. Las flotas de instancias puntuales no se consideran viables cuando la tasa de interrupciones de un tipo de instancia determinado es demasiado alta. Para resolver este problema, cambie la cola para utilizar flotas de instancias puntuales con diferentes tipos de instancias. Le recomendamos que incluya flotas de instancias puntuales con diferentes tipos de instancias en cada ubicación.