Criar uma fila de sessões de jogo - Amazon GameLift

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Criar uma fila de sessões de jogo

Este tópico descreve como criar uma fila que ofereça uma experiência ao jogador com latência mínima e que use com eficiência os recursos de hospedagem. Para obter mais informações sobre filas de sessões de jogo e como elas funcionam, consulte Configurar filas do Amazon GameLift para o posicionamento de sessões de jogo .

Estes atributos do Amazon GameLift exigem filas:

Defina o escopo da sua fila

A população de jogadores do seu jogo pode ter grupos de jogadores que não deveriam jogar juntos. Por exemplo, se você publicar seu jogo em dois idiomas, cada idioma deverá ter seus próprios servidores de jogos.

Para configurar o posicionamento de sessões de jogo para sua população de jogadores, crie uma fila separada para cada segmento de jogadores. Avalie cada fila para posicionar os jogadores nos servidores de jogos corretos. Algumas formas comuns de definir o escopo das filas incluem:

  • Por localizações geográficas. Ao implantar seus servidores de jogos em várias áreas geográficas, você pode criar filas para jogadores em cada local a fim de reduzir a latência dos jogadores.

  • Por variações de compilação ou script. Se tiver mais de uma variação do seu servidor de jogos, talvez você esteja apoiando grupos de jogadores que não podem jogar nas mesmas sessões de jogo. Por exemplo, compilações ou scripts de servidores de jogos podem oferecer suporte a diferentes idiomas ou tipos de dispositivos.

  • Por tipos de eventos. Você pode criar uma fila especial para gerenciar jogos para participantes de torneios ou outros eventos especiais.

Crie uma política de latência do jogador

Se suas solicitações de posicionamento incluírem dados de latência do jogador, o algoritmo descobrir sessões de jogo em locais com a menor latência média para todos os jogadores. O posicionamento de sessões de jogo com base na latência média do jogador impede que o Amazon GameLift coloque a maioria dos jogadores em jogos com alta latência. No entanto, o Amazon GameLift ainda coloca jogadores com latência extrema. Para acomodar esses jogadores, crie políticas de latência do jogador.

Uma política de latência do jogador impede que o Amazon GameLift coloque uma sessão de jogo solicitada em qualquer lugar em que os jogadores da solicitação experimentem latência acima do valor máximo. As políticas de latência do jogador também podem impedir que o Amazon GameLift combine solicitações de sessões de jogo com jogadores de maior latência.

dica

Para gerenciar regras específicas de latência, como exigir latência semelhante em todos os jogadores de um grupo, você pode usar o Amazon GameLift FlexMatch para criar regras de marcação de jogos com base na latência.

Por exemplo, considere essa fila com um tempo limite de cinco minutos e as seguintes políticas de latência do jogador:

  1. Passe 120 segundos procurando um local onde todas as latências do jogador sejam inferiores a 50 milissegundos.

  2. Passe 120 segundos procurando um local onde todas as latências do jogador sejam inferiores a 100 milissegundos.

  3. Passe o tempo restante da fila até o tempo limite procurando um local onde todas as latências do jogador sejam inferiores a 200 milissegundos.

Um exemplo de tela no console configurando a fila descrita anteriormente.

Criar uma fila de vários locais

Recomendamos um design de vários locais para todas as filas. Esse design pode melhorar a velocidade do posicionamento e a resiliência da hospedagem. É necessário um design de vários locais para usar os dados de latência do jogador e posicionar os jogadores em sessões de jogo com latência mínima. Se estiver criando filas de vários locais que usam frotas de instâncias spot, siga as instruções em Tutorial: Configurar uma fila de sessão de jogo para instâncias spot.

Uma forma de criar uma fila de vários locais é adicionar uma frota de vários locais a uma fila. Dessa forma, a fila pode posicionar sessões de jogo em qualquer um dos locais da frota. Você também pode adicionar outras frotas com configurações ou locais residenciais diferentes para redundância. Se você estiver usando uma frota de instâncias spot de vários locais, siga as melhores práticas e inclua uma frota de instância sob demanda com os mesmos locais.

O exemplo a seguir descreve o processo de criação de uma fila básica de vários locais. Neste exemplo, usamos duas frotas: uma frota de instâncias spot e uma frota de instâncias sob demanda. Cada frota tem o seguinte Regiões da AWS para locais de posicionamento: us-east-1, us-east-2, ca-central-1 e us-west-2.

Para criar uma fila básica de vários locais com frotas de vários locais
  1. Escolha um local para criar a fila. Você pode minimizar a latência da solicitação colocando a fila em um local próximo ao local onde você implantou o serviço ao cliente. Neste exemplo, criamos a fila em us-east-1.

  2. Crie uma nova fila e adicione suas frotas de vários locais como destinos de fila. A ordem dos destinos determina como o Amazon GameLift coloca as sessões de jogo. Neste exemplo, listamos a frota de instâncias spot primeiro e a frota de instâncias sob demanda em segundo lugar.

  3. Defina a ordem de prioridade de posicionamento de sessões de jogo da fila. Essa ordem determina onde a fila procura primeiro por um servidor de jogos disponível. Neste exemplo, usamos a ordem de prioridade padrão.

  4. Defina a ordem dos locais. Se você não definir a ordem dos locais, o Amazon GameLift usará os locais em ordem alfabética.

Um exemplo de tela no console configurando os locais e destinos de posicionamento das filas, conforme descrito no procedimento anterior.
Um exemplo de tela no console configurando a prioridade de posicionamento de sessões de jogo e a ordem dos locais, conforme descrito no procedimento anterior.

Priorize o posicionamento de sessões de jogo

O Amazon GameLift usa o algoritmo FleetIQ para determinar onde posicionar uma nova sessão de jogo com base em um conjunto ordenado de critérios. Você pode usar a ordem de prioridades padrão ou personalizá-la.

Ordem de prioridades padrão

Para solicitações de posicionamento que incluam dados de latência do jogador, o FleetIQ prioriza os critérios de posicionamento de sessões de jogo na seguinte ordem padrão:

  1. Latência: latência média mais baixa para todos os jogadores da solicitação.

  2. Custo: menor custo de hospedagem, se a latência for igual em vários locais. O custo de hospedagem é baseado, principalmente, em uma combinação do tipo e local da instância.

  3. Destino: ordem dos destinos, se a latência e o custo forem iguais em vários locais. O FleetIQ prioriza os destinos com base na ordem listada na configuração da fila.

  4. Local: ordem dos locais, se a latência, o custo e o destino forem iguais em vários locais. O FleetIQ prioriza os locais com base na ordem listada na configuração da fila.

Ordem de prioridades personalizada

Para personalizar a ordem de prioridades de uma fila no console Amazon GameLift, arraste o valor da prioridade até a posição em que você deseja que ela fique. Para personalizar a ordem de prioridades de uma fila usando o AWS Command Line Interface (AWS CLI), use o comando create-game-session-queue com a opção --priority-configuration. Você pode usar esse comando para criar uma nova fila ou atualizar uma fila existente.

O algoritmo FleetiQ anexa quaisquer critérios não explicitamente mencionados ao final da sua lista, com base na ordem padrão. Se incluir o critério de localização na sua configuração de prioridades, você também deverá fornecer uma lista ordenada de locais.

Crie várias filas conforme necessário

Dependendo do jogo e dos jogadores, talvez você queira criar mais de uma fila de sessões de jogo. Quando o serviço do cliente do jogo solicita uma nova sessão de jogo, ele especifica que fila da sessão de jogo usar. Para ajudá-lo a determinar se você deve usar várias filas, considere:

  • Variações do servidor de jogos. Você pode criar uma fila separada para cada variação do servidor de jogos. Todas as frotas de uma fila devem implantar servidores de jogos compatíveis. Isso ocorre porque os jogadores que usam a fila para entrar nos jogos devem poder jogar em qualquer um dos servidores de jogos da fila.

  • Grupos de jogadores diferentes. Você pode personalizar a forma como o Amazon GameLift coloca as sessões de jogo com base no grupo de jogadores. Por exemplo, você pode precisar de filas personalizadas para determinados modos de jogo que exigem um tipo especial de instância ou de configuração de runtime. Ou, talvez, você queira uma fila especial para gerenciar posicionamentos em um torneio ou outro evento.

  • Métricas da fila de sessões de jogo. Você pode configurar filas com base em como deseja coletar as métricas de posicionamento de sessões de jogo. Para obter mais informações, consulte Métricas do Amazon GameLift para filas.

Avaliar métricas de fila

Use métricas para avaliar o desempenho das suas filas. Você pode visualizar métricas relacionadas às filas no console do Amazon GameLift ou no Amazon CloudWatch. Para obter uma lista e descrições de métricas de fila, consulte Métricas do Amazon GameLift para filas.

As métricas de fila podem fornecer informações sobre o seguinte:

  • Desempenho geral da fila: as métricas da fila indicam com que sucesso uma fila responde às solicitações de posicionamento. Essas métricas também podem ajudá-lo a identificar quando e por que os posicionamentos falham. Para filas com frotas escaladas manualmente, as métricas AverageWaitTime e QueueDepth podem indicar quando você deve ajustar a capacidade de uma fila.

  • Desempenho do algoritmo FleetIQ: para solicitações de posicionamento usando o algoritmo FleetIQ, as métricas mostram com que frequência o algoritmo descobre o posicionamento ideal de sessões de jogo. O posicionamento pode priorizar o uso de recursos com a menor latência do jogador ou recursos com o menor custo. Também existem métricas de erro que identificam motivos comuns pelos quais o Amazon GameLift não consegue descobrir um posicionamento ideal. Para obter mais informações sobre métricas, consulte Monitorar o Amazon GameLift com o Amazon CloudWatch.

  • Posicionamentos específicos de locais: para filas de vários locais, as métricas mostram posicionamentos bem-sucedidos por local. Com filas que usam o algoritmo FleetIQ, esses dados fornecem informações úteis sobre onde a atividade do jogador ocorre.

Ao avaliar métricas de desempenho do algoritmo FleetIQ, considere as seguintes sugestões:

  • Para rastrear a taxa da fila de descobertas de um posicionamento ideal, use a métrica PlacementsSucceeded em combinação com as métricas do FleetiQ para obter a menor latência e o menor preço.

  • Para aumentar a taxa da fila de descobertas de um posicionamento ideal, analise as seguintes métricas de erro:

    • Se FirstChoiceOutOfCapacity for alto, ajuste o escalonamento da capacidade para as frotas da fila.

    • Se a métrica FirstChoiceNotViable de erro for alta, veja suas frotas de instâncias Spot. As frotas de instâncias spot são consideradas inviáveis quando a taxa de interrupção de um determinado tipo de instância é muito alta. Para resolver esse problema, altere a fila de modo que ela use as frotas de instâncias spot com diferentes tipos de instância. Recomendamos que você inclua frotas de instâncias spot com diferentes tipos de instância em cada local.