Tutorial: Configurar uma fila de sessão de jogo para instâncias spot - 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á.

Tutorial: Configurar uma fila de sessão de jogo para instâncias spot

Introdução

Este tutorial descreve como configurar o posicionamento de sessões de jogo para jogos implantados em frotas Spot de baixo custo. As frotas spot requerem etapas adicionais para manter a disponibilidade contínua do servidor de jogos para os jogadores.

Público-alvo

Este tutorial é para desenvolvedores de jogos que desejam usar frotas spot para hospedar servidores de jogos personalizados ou servidores em tempo real.

O que você aprenderá
  • Defina o grupo de jogadores que a fila de sessões de jogo atende.

  • Crie uma infraestrutura de frota para dar suporte ao escopo da fila de sessões de jogo.

  • Atribua um alias a cada frota para abstrair o ID da frota.

  • Crie uma fila, adicione frotas e priorize onde a GameLift Amazon coloca as sessões de jogo.

  • Adicione políticas de latência do jogador para ajudar a minimizar os problemas de latência.

Pré-requisitos

Antes de criar frotas e filas para o posicionamento das sessões de jogo, execute as seguintes tarefas:

Etapa 1: Definir o escopo da fila

Neste tutorial, criamos uma fila para um jogo que tem uma variação de compilação de servidor de jogos. No lançamento, lançaremos o jogo em dois locais: Ásia-Pacífico (Seul) e Ásia-Pacífico (Singapura). Como esses locais estão próximos um do outro, a latência não é um problema para nossos jogadores.

Neste exemplo, há um segmento de jogadores, o que significa que criamos uma fila. No futuro, quando lançarmos o jogo na América do Norte, poderemos criar uma segunda fila voltada para jogadores norte-americanos.

Para ter mais informações, consulte Defina o escopo da sua fila.

Etapa 2: Criar uma infraestrutura de frota spot

Crie frotas em locais e com compilações de servidores de jogos ou scripts que se encaixem no escopo que você definiu em Etapa 1: Definir o escopo da fila.

Neste tutorial, criamos uma infraestrutura de dois locais com, pelo menos, uma frota spot e uma frota sob demanda em cada local. Cada frota implanta a mesma versão de servidor de jogos. Além disso, prevemos que o tráfego de jogadores será mais intenso na localização de Seul e, portanto, adicionamos mais frotas spot lá.

O diagrama a seguir mostra o exemplo da infraestrutura da frota spot, com três frotas na localização ap-northeast-2 (Seul) e duas frotas na localização ap-southeast-1 (Singapura). Todas as instâncias em ambas as frotas estão usando a compilação MBG _Prod_v1. A frota em ap-northeast-2 contém as seguintes configurações de frota: frota 1234_spot_1 com um tipo de instância de c5.large, frota 1234_spot_2 com um tipo de instância de c5.xlarge e frota 1234_ondemand com um tipo de instância de c5.large. A frota em ap-southeast-1 contém as seguintes configurações de frota: frota 1234_spot_1 com um tipo de instância de c5.large e frota 1234_ondemand com um tipo de instância de c5.large.

Uma infraestrutura de frota spot com locais na Ásia-Pacífico (Seul) e Ásia-Pacífico (Singapura) com uma mistura de instâncias spot e sob demanda.

Etapa 3: Atribuir aliases para cada frota

Crie um novo alias para cada frota na sua infraestrutura. Os aliases abstraem as identidades da frota, tornando eficiente a substituição periódica da frota. Para obter mais informações sobre como criar aliases, consulte Adicionar um alias a uma frota da Amazon GameLift .

Nossa infraestrutura de frota tem cinco frotas e, portanto, criamos cinco aliases usando a estratégia de roteamento. Precisamos de três aliases no local Ásia-Pacífico (Seul) e dois aliases no local Ásia-Pacífico (Singapura).

O diagrama a seguir mostra a infraestrutura da frota spot descrita na etapa dois com aliases adicionados a cada frota. A frota 1234_spot_1 tem o alias _spot_1, a frota MBG 1234_spot_2 tem o alias _spot_2 e a frota 1234_ondemand tem o alias _ondemand. MBG MBG

O exemplo de infraestrutura de frota Spot descrito na etapa 2 com aliases apontando para cada frota.

Para ter mais informações, consulte Criar uma fila de vários locais.

Etapa 4: Criar uma fila com destinos

Crie a fila da sessão de jogo e adicione os destinos da frota. Para obter mais informações sobre como criar uma fila, consulte Criar uma fila de sessões de jogo.

Ao criar sua fila:

  • O valor do tempo limite padrão é 10 minutos. Posteriormente, é possível testar como o tempo limite da fila afeta o tempo de espera dos jogadores para entrar nos jogos.

  • Por enquanto, pule a seção sobre políticas de latência do jogador. Abordaremos isso na próxima etapa.

  • Priorize as frotas na sua fila. Ao trabalhar com frotas spot, recomendamos uma das seguintes abordagens:

    • Se sua infraestrutura usa um local principal com frotas em um segundo local para backup, priorize as frotas primeiro por local e, depois, por tipo de frota.

    • Se sua infraestrutura usa vários locais igualmente, priorize as frotas por tipo de frota, colocando as frotas spot no topo da fila.

Neste tutorial, criamos uma nova fila com o nome MBG_spot_queue e adicionamos os aliases das nossas cinco frotas. Em seguida, priorizamos os posicionamentos primeiro por local e, depois, por tipo de frota.

Com base nessa configuração, essa fila sempre tenta posicionar novas sessões de jogo em uma frota spot em Seul. Quando essas frotas estão cheias, a fila usa a capacidade disponível na frota sob demanda de Seul como reserva. Se as três frotas de Seul não estiverem disponíveis, a Amazon GameLift colocará sessões de jogos nas frotas de Cingapura.

O diagrama a seguir mostra uma fila com um tempo limite de 300 segundos e destinos priorizados. Os destinos estão na seguinte ordem: 1234_spot_1 em ap-northeast-2, 1234_spot_2 em ap-northeast-2, 1234_ondemand em ap-northeast-2, 1234_spot_1 em ap-southeast-1 e 1234_ondemand em ap-southeast-1.

Um exemplo de fila spot com várias frotas spot e frotas sob demanda de backup.

Etapa 5: Adicionar limites de latência à fila

Nosso jogo inclui informações de latência nas solicitações de posicionamento da sessão de jogo. Também temos um atributo de festa de jogadores que cria uma sessão de jogo para um grupo de jogadores. Podemos fazer com que os jogadores esperem um pouco mais para entrar nos jogos com a experiência de jogo ideal. Nossos testes de jogos mostram as seguintes observações:

  • Uma latência abaixo de 50 milissegundos é ideal.

  • O jogo não pode ser jogado em latências superiores a 250 milissegundos.

  • Os jogadores ficam impacientes por volta de um minuto.

Para nossa fila, com um tempo limite de 300 segundos, adicionamos declarações de política que limitam a latência permitida. As declarações de política permitem gradualmente maiores valores de latência de até 250 milissegundos.

Com essa política, nossa fila procura posicionamentos com latência ideal (menos de 50 milissegundos) no primeiro minuto e, depois, relaxa o limite. A fila não faz posicionamentos em que a latência do jogador seja de 250 milissegundos ou mais.

O diagrama a seguir mostra a fila da etapa quatro com as políticas de latência do jogador adicionadas. As políticas de latência do jogador estabelecem o seguinte: imposição do limite de 50 ms por 60 s, imposição do limite de 125 ms por 30 s e imposição do limite de 250 ms até o tempo limite.

A fila de exemplo da etapa quatro com políticas de latência do jogador adicionadas. As políticas de latência do jogador estabelecem o seguinte: imposição do limite de 50 ms por 60, imposição do limite de 125 ms por 30 s e imposição do limite de 250 ms até o tempo limite.

Resumo

Parabéns! Aqui estão as coisas que você realizou:

  • Você tem uma fila de sessões de jogo com escopo definido para um segmento da sua população de jogadores.

  • Sua fila usa frotas spot de forma eficaz e é resiliente quando ocorrem interrupções do spot.

  • Sua fila prioriza as frotas para uma melhor experiência do jogador.

  • A fila tem limites de latência para proteger os jogadores de experiências de jogo ruins.

Agora você pode usar a fila para colocar sessões de jogo para os jogadores que ela atende. Ao fazer solicitações de posicionamento de sessão de jogo para esses jogadores, faça referência ao nome dessa fila de sessões de jogo na solicitação. Para obter mais informações sobre como fazer solicitações de posicionamento de sessão de jogo, consulte Criar sessões de jogos ou Integrar um cliente do jogo para servidores em tempo real.

Próximas etapas: