Gerencie como o Amazon GameLift lança servidores de jogos - 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á.

Gerencie como o Amazon GameLift lança servidores de jogos

Defina uma configuração de runtime de uma frota EC2 gerenciada para executar vários processos de servidor de jogos por instância. Isso usa os recursos de hospedagem com mais eficiência.

Como uma frota gerencia vários processos

O Amazon GameLift usa a configuração de runtime de uma frota para determinar o tipo e o número de processos a serem executados em cada instância. Uma configuração de runtime contém pelo menos uma configuração de processo do servidor que representa um executável do servidor de jogos. É possível definir configurações adicionais do processo do servidor para executar outros tipos de processos relacionados ao seu jogo. Cada configuração do processo do servidor contém as seguintes informações:

  • O nome do arquivo e o caminho de um executável na compilação do seu jogo.

  • (Opcional) Parâmetros a serem passados para o processo na inicialização

  • O número de processos a serem executados simultaneamente.

Quando uma instância na frota é ativada, ela inicia o conjunto de processos do servidor definido na configuração do runtime.​ Com vários processos, o Amazon GameLift escalona a inicialização de cada processo. Os processos do servidor têm uma vida útil limitada. Ao final, o Amazon GameLift lança inicia novos processos para manter o número e o tipo de processos do servidor definidos na configuração do runtime.

É possível alterar a configuração de runtime a qualquer momento adicionando, alterando ou removendo as configurações de processo do servidor. Cada instância verifica regularmente se há atualizações na configuração de runtime da frota, para implementar as alterações. Veja a seguir como o Amazon GameLift adota as alterações de configuração de runtime:

  1. A instância envia uma solicitação ao Amazon GameLift para obter a versão mais recente da configuração de runtime.

  2. A instância compara os processos ativos com a configuração de runtime mais recente e, em seguida, faz o seguinte:

    • Se a configuração atualizada do runtime remover um tipo de processo de servidor, os processos de servidor ativos desse tipo continuarão em execução até concluírem.​ A instância não substitui esses processos do servidor.

    • Se a configuração atualizada do runtime diminuir o número de processos simultâneos para um tipo de processo de servidor, os processos de servidor em excesso desse tipo continuarão em execução até terminarem. A instância não substitui esses processos excessivos do servidor.

    • Se a configuração atualizada do runtime adicionar um novo tipo de processo de servidor ou aumentar os processos simultâneos para um tipo existente, a instância iniciará novos processos de servidor, até o limite do Amazon GameLift Nesse caso, a instância inicia novos processos de servidor quando os processos existentes são concluídos.

Otimize uma frota para vários processos

Para usar vários processos em uma frota, faça o seguinte:

  • Crie uma compilação que contenha os executáveis do servidor de jogos a serem implantados em uma frota e, em seguida, carregue a compilação no Amazon GameLift. Todos os servidores de jogos em uma compilação devem ser executados na mesma plataforma e usar o Server SDK do Amazon GameLift.

  • Crie uma configuração de runtime com uma ou mais configurações de processo de servidor e vários processos simultâneos.

  • Integre clientes de jogos com a versão do SDK 2016-08-04 da AWS ou posterior.

Para otimizar o desempenho da frota, é recomendável fazer o seguinte:

  • Processe cenários de desligamento do processo de servidor para que o Amazon GameLift possa reciclar processos de maneira eficiente. Por exemplo:

    • Adicione um procedimento de encerramento ao código do servidor de jogos que chama a API de servidor de ProcessEnding().

    • Implemente a função de retorno de chamada OnProcessTerminate() no código do servidor de jogos para processar as solicitações de encerramento do Amazon GameLift.

  • Garanta que o Amazon GameLift desligue e reinicie processos de servidor não íntegros. Relate o status de integridade ao Amazon GameLift implementando a função de retorno de chamada OnHealthCheck() no código do servidor do jogo. O Amazon GameLift desliga automaticamente processos de servidor reconhecidamente não íntegros por três relatórios consecutivos. Se você não implementar OnHealthCheck(), o Amazon GameLift assumirá que um processo de servidor está íntegro, a menos que o processo não responda a uma comunicação.

Escolha o número de processos por instância

Ao decidir em relação ao número de processos simultâneos a serem executados em uma instância, lembre-se do seguinte:

  • O Amazon GameLift limita cada instância a um número máximo de processos simultâneos. A soma de todos os processos simultâneos das configurações de processos do servidor de uma frota não pode exceder essa cota.

  • Para manter níveis de desempenho aceitáveis, o tipo de instância do Amazon EC2 pode limitar o número de processos que podem ser executados simultaneamente. Teste diferentes configurações para o jogo a fim de encontrar o número certo de processos para o tipo de instância preferido.

  • O Amazon GameLift não executa mais processos simultâneos do que o número total configurado. Isso significa que a transição da configuração de runtime anterior para a nova configuração pode ocorrer gradualmente.