Criar um ambiente de teste baseado em nuvem
nota
Este tópico aborda testes iterativos para jogos integrados ao SDK versão 5.x do servidor Amazon GameLift. Se o jogo usa o SDK do servidor versão 4.x ou anterior, consulte Teste sua integração usando o Amazon GameLift Local.
Use uma frota do Amazon GameLift Anywhere para compilar e testar iterativamente os componentes de jogos em um ambiente hospedado na nuvem. Crie uma frota do Anywhere com recursos de hospedagem e uma conexão com o serviço do Amazon GameLift, execute os servidores de jogos neles e teste as funcionalidades do jogo conforme necessário.
Implantar uma frota do Anywhere com o Amazon GameLift Agent
Se a versão do servidor de jogos estiver integrada ao SDK 5.x ou posterior do Amazon GameLift, você poderá implantá-la em uma frota do Anywhere baseada na nuvem com o Amazon GameLift Agent. O Agent é um processo em segundo plano que gerencia os ciclos de vida do servidor de jogos e outras tarefas em cada unidade de computação de uma frota. Essas tarefas incluem registrar a computação em uma frota do Anywhere, adquirir um token de autenticação e iniciar/interromper processos do servidor de jogos com base em um conjunto de instruções. O Agent é controlado pela configuração de tempo de execução de uma frota, que você pode atualizar a qualquer momento durante o ciclo de vida da frota. (O Agent é implantado automaticamente em frotas gerenciadas do EC2.) Para obter mais informações e fazer o download do Agent, consulte o repositório do Amazon GameLift no GitHub
Configurar testes iterativos com o Amazon EC2
Use o fluxo de trabalho guiado nesta solução do kit de ferramentas do Amazon GameLift
O repositório do GitHub fornece um conjunto de scripts que automatizam a maioria dos processos para configurar um ambiente de teste com o Amazon GameLift Anywhere e o Amazon GameLift Agent. Ele também fornece orientação para atualizar o ambiente sempre que você tiver uma nova versão do servidor de jogos para testar. Você pode executar um único script que implanta um ambiente de teste com um exemplo de compilação de servidor de jogos ou seguir cada etapa para configurá-lo com sua própria compilação de servidor de jogos.
Nesse fluxo de trabalho, você trabalhará inteiramente no AWS Management Console, usando o AWS CloudShell para executar scripts e concluir tarefas de linha de comandos.
nota
Para as tarefas deste tutorial, você precisa de um usuário da conta da AWS com permissões para os seguintes serviços: Amazon GameLift, AWS CloudShell, Amazon S3, AWS Systems Manager, Amazon EC2 e AWS Identity and Access Management. Os usuários com acesso administrativo à conta da AWS já têm as permissões necessárias.
O fluxo de trabalho abrange as seguintes tarefas:
-
Empacote uma compilação do servidor de jogos criada para o Amazon GameLift.O fluxo de trabalho fornece um script para compilar um exemplo de servidor de jogos C++, que já foi integrado ao SDK 5.x do servidor Amazon GameLift e está pronto para hospedagem. Como alternativa, você pode trabalhar com seu próprio projeto de jogo se tiver concluído a integração.
-
Configure um bucket do Amazon Simple Storage Service para armazenar compilações e dependências de servidores de jogos. Ao produzir novas versões das compilações de jogo, você pode armazená-las no S3 e usar os scripts para atualizar a frota do Anywhere para testes de jogo.
Obtenha e crie o Amazon GameLift Agent. O Agent gerencia os processos do servidor de jogos em um recurso de hospedagem com base na configuração. Ele usa a mesma lógica e se comporta de forma idêntica à hospedagem do EC2 gerenciada pelo Amazon GameLift.
Configure uma frota do Anywhere para os recursos de hospedagem. Com uma frota do Anywhere, você pode usar o serviço do Amazon GameLift para hospedar recursos que não são gerenciados pelo Amazon GameLift. Nesta etapa, você também definirá a configuração do tempo de execução, que instrui o Amazon GameLift Agent sobre quando e como iniciar os processos do servidor de jogos.
Configure uma instância do Amazon EC2. Esse é o seu ambiente de teste para testes iterativos. É muito mais rápido usar uma instância do EC2 padrão em vez de uma instância totalmente gerenciada do Amazon GameLift (que é otimizada para uso em nível de produção). Com uma instância do EC2 padrão, você pode atualizar o servidor do jogo de forma rápida e contínua conforme necessário.
-
Implante a compilação do servidor de jogos e o Amazon GameLift Agent na instância do Amazon EC2.O fluxo de trabalho fornece um script que obtém a versão mais recente da compilação do jogo e todas as dependências e a instala na instância do EC2. Nesse fluxo de trabalho, as dependências incluem o Amazon GameLift Agent e o CloudWatch Agent.
-
Inicie o Amazon GameLift Agent. Depois de instalado, o Agent inicia e começa a executar as instruções automaticamente. Isso inclui:
-
Registre a instância do EC2 como uma computação na frota do Amazon GameLift Anywhere.
-
Estabeleça uma conexão WebSocket com o serviço do Amazon GameLift e obtenha a configuração de tempo de execução mais recente.
-
Inicie os processos do servidor de jogos com base nas instruções na configuração do tempo de execução. Nesse fluxo de trabalho, o Agent é instruído a iniciar um único processo do executável do servidor de jogos.
-
-
Teste os cenários de jogo. Com o ambiente de teste configurado e a versão mais recente do servidor de jogos instalada, você pode começar os testes. O fluxo de trabalho percorre várias etapas de teste, incluindo o início de uma sessão de jogo. Acesse os registros do servidor de jogos do CloudWatch para acompanhar o progresso à medida que a sessão do jogo é iniciada e se prepara para aceitar jogadores.
Ao desenvolver os componentes do jogo, incluindo um cliente de jogo e um serviço de backend do lado do cliente, você pode incluí-los nos cenários de teste. Use um cliente de jogo para solicitar uma sessão de jogo, recuperar informações de conexão do serviço do Amazon GameLift e conectar-se diretamente à sessão do jogo.
Implante uma nova compilação de servidor de jogos e repita os testes. Ao desenvolver o jogo, você pode gerar novas compilações de servidores de jogos e, em seguida, implantá-las rapidamente no ambiente de teste do EC2 para testes. Faça upload delas para o bucket do Amazon S3 e use os scripts de fluxo de trabalho para atualizar o ambiente de teste.
Transição do jogo para as frotas gerenciadas do Amazon GameLift
Depois de concluir os testes de desenvolvimento e estar pronto para se preparar para o lançamento, este é um bom momento para migrar para as frotas gerenciadas do Amazon GameLift. Use frotas gerenciadas para ajustar e testar os recursos de hospedagem de jogos. Implemente a solução de posicionamento de sessões de jogo (filas e matchmakers), selecione o hardware de hospedagem ideal (incluindo frotas spot) e os locais e escolha uma estratégia para escalar a capacidade. Talvez você também queira começar a usar o AWS CloudFormation para gerenciar com mais eficiência os ciclos de vida de todos os recursos de hospedagem de jogos, incluindo frotas, filas e matchmakers.
É necessário um esforço mínimo para fazer a transição de uma frota de testes Anywhere baseada na nuvem para uma frota gerenciada pelo Amazon GameLift. Não é necessário alterar nenhum código de jogo, e você pode reutilizar as mesmas filas e matchmakers. Realize as seguintes tarefas:
-
Crie um recurso de compilação do Amazon GameLift. Com uma frota de testes do Anywhere, é necessário implantar manualmente a compilação e as dependências do servidor de jogos em cada computação da frota. Com uma frota gerenciada, faça upload do pacote de compilação de jogos para o Amazon GameLift, que o implanta automaticamente em todos os recursos de computação da frota. Consulte Implementar uma compilação de servidor personalizada para hospedagem do Amazon GameLift para obter detalhes sobre como empacotar os arquivos de compilação de jogos e criar um recurso de compilação com arquivos em um bucket do Amazon S3.
Crie uma frota gerenciada. Crie uma frota usando o console ou a AWS CLI, especificando uma frota do EC2 gerenciada. Esse tipo de frota exige configurações adicionais, incluindo a especificação do recurso de compilação e dos tipos de instância. Você pode usar a mesma configuração de tempo de execução para gerenciar o ciclo de vida do servidor de jogos em cada computação da frota. Consulte Criar uma frota EC2 gerenciada do Amazon GameLift para obter detalhes sobre como criar uma frota gerenciada.
Redirecione os aliases da frota (opcional). Se você configurar aliases para usar com as frotas do Anywhere, poderá reutilizar os mesmos aliases para as frotas gerenciadas. Consulte Criar um alias do Amazon GameLift para obter detalhes sobre como criar ou atualizar um alias.