Teste sua integração usando frotas Anywhere do Amazon GameLift - 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á.

Teste sua integração usando frotas Anywhere do Amazon GameLift

Você pode usar uma frota Anywhere do Amazon GameLift para criar e testar iterativamente sua integração de jogos com o Amazon GameLift. Configure seu próprio hardware como uma frota Anywhere com uma conexão com o serviço Amazon GameLift e, em seguida, instale e execute seu servidor de jogos nele. Use um aplicativo de teste para executar cenários como iniciar/interromper sessões de jogo, rastrear conexões de jogadores e processar alocações de marcação de jogos. Com uma frota Anywhere, você poderá atualizar a versão do servidor de jogos conforme necessário e ter visibilidade total da atividade de hospedagem.

Você poderá usar frotas Anywhere do Amazon GameLift com jogos integrados ao Server SDK do Amazon GameLift versão 5 ou superior.

Desenvolvimento inicial

Você desenvolveu seu jogo e o está integrando ao SDK de servidor do Amazon GameLift. Para testar sua integração, você pode fazer o upload de cada nova iteração do seu servidor de jogos para o Amazon GameLift e criar uma frota. Como alternativa, usar uma frota Anywhere com seu laptop de desenvolvimento oferece uma maneira mais eficiente de realizar desenvolvimento e testes iterativos.

Use os procedimentos a seguir para criar uma frota Anywhere e iniciar uma sessão de jogo em seu laptop usando o console do Amazon GameLift ou AWS Command Line Interface (AWS CLI).

Console
  1. Abra o console do Amazon GameLift.

  2. No painel de navegação, em Hospedagem, escolha Localizações.

  3. Selecione a opção Criar local.

  4. Na caixa de diálogo Criar local, faça o seguinte:

    1. Insira um Nome de localização. Isso rotula a localização dos seus recursos computacionais que o Amazon GameLift usa para executar seus jogos em frotas Anywhere. Os nomes de locais personalizados devem começar com custom-.

    2. Selecione a opção Criar.

  5. Para criar uma frota Anywhere, você poderá fazer o seguinte:

    1. No painel de navegação, em Hospedagem, escolha Frotas.

    2. Na página Frotas, selecione Criar frota.

    3. Na etapa Escolher tipo de computação, escolha Anywhere e, em seguida, escolha Avançar.

    4. Na etapa Definir detalhes da frota, defina sua nova frota. Para obter mais informações, consulte Crie uma frota do Amazon GameLift.

    5. Na etapa Selecionar locais, selecione o local personalizado que você criou.

    6. Conclua as etapas restantes de criação da frota para criar sua frota Anywhere.

  6. Registre seu laptop como um recurso de computação na frota que você criou. Use o comando register-compute (ou a operação RegisterCompute da API). Inclua a fleet-id criado na etapa anterior e adicione um compute-name e o ip-address do seu laptop.

    aws gamelift register-compute \ --compute-name DevLaptop \ --fleet-id fleet-1234 \ --ip-address 10.1.2.3 \ --location custom-location-1

    Exemplos de resultado:

    Compute { FleetId = fleet-1234, ComputeName = DevLaptop, Status = ACTIVE, IpAddress = 10.1.2.3, GameLiftServiceSdkEndpoint = wss://12345678.execute-api.amazonaws.com/, Location = custom-location-1 }
  7. Inicie uma sessão de depuração do seu servidor de jogos.

    1. Obtenha o token de autorização para seu laptop na frota que você criou. Use o comando get-compute-auth-token (ou a operação GetComputeAuthToken da API).

      aws gamelift get-compute-auth-token \ --fleet-id fleet-1234 \ --compute-name DevLaptop

      Exemplos de resultado:

      ComputeAuthToken { FleetId = fleet-1234, ComputeName = DevLaptop, AuthToken = abcdefg123, ExpirationTime = 1897492857.11 }
    2. Execute uma instância de depuração do executável do seu servidor de jogos. Para executar a instância de depuração, seu servidor de jogo deve chamar InitSDK(). Depois que o processo estiver pronto para hospedar uma sessão de jogo, o servidor do jogo chama ProcessReady().

  8. Crie uma sessão de jogo para testar sua primeira integração com o Anywhere do Amazon GameLift. Use o comando create-game-session (ou a operação CreateGameSession da API). Especifique a localização personalizada da frota.

    aws gamelift create-game-session \ --fleet-id fleet-1234 \ --name DebugSession \ --maximum-player-session-count 2 \ --location custom-location-1

    Exemplos de resultado:

    GameSession { FleetId = fleet-1234, GameSessionId = 1111-1111, Name = DebugSession, IpAddress = 10.1.2.3, Port = 1024, ... }

    O Amazon GameLift envia uma mensagem onStartGameSession() para seu processo de servidor registrado. A mensagem contém o objeto GameSession da etapa anterior com propriedades do jogo, dados das sessões do jogo, dados do marcador de jogos e mais sobre a sessão do jogo.

  9. Adicione lógica ao seu servidor de jogo para que o processo do servidor responda à mensagem onStartGameSession() com ActivateGameSession(). A operação envia uma confirmação ao Amazon GameLift de que seu servidor recebeu e aceitou a mensagem de criação da sessão de jogo. Para obter mais informações, consulte, Referência do SDK do servidor do Amazon GameLift.

Seu servidor de jogo agora está executando uma sessão de jogo para você testar e usar para iteração. Para saber como iterar no servidor do jogo, siga para a próxima seção.

AWS CLI
  1. Crie um local personalizado usando o comando create-location (ou a operação CreateLocation da API). Um local personalizado identifica a localização do seu hardware que o Amazon GameLift usa para executar seus jogos em frotas Anywhere.

    aws gamelift create-location \ --location-name custom-location-1

    Exemplos de resultado:

    { Location { LocationName = custom-location-1 } }
  2. Crie uma frota Anywhere com sua localização personalizada usando o comando create-fleet (ou a operação CreateFleet da API). O Amazon GameLift cria a frota em sua região de origem e os locais personalizados que você fornece.

    aws gamelift create-fleet \ --name LaptopFleet \ --compute-type ANYWHERE \ --locations "location=custom-location-1"

    Exemplos de resultado:

    Fleet { Name = LaptopFleet, ComputeType = ANYWHERE, FleetId = fleet-1234, Status = ACTIVE ... }
  3. Registre seu laptop como um recurso computacional na frota que você criou. Use o comando register-compute (ou a operação RegisterCompute da API). Inclua o fleet-id criado na etapa anterior e adicione um compute-name e o ip-address público do seu laptop.

    aws gamelift register-compute \ --compute-name DevLaptop \ --fleet-id fleet-1234 \ --ip-address 10.1.2.3 \ --location custom-location-1

    Exemplos de resultado:

    Compute { FleetId = fleet-1234, ComputeName = DevLaptop, Status = ACTIVE, IpAddress = 10.1.2.3, GameLiftServiceSdkEndpoint = wss://12345678.execute-api.amazonaws.com/, Location = custom-location-1 }
  4. Inicie uma sessão de depuração do seu servidor de jogos.

    1. Obtenha o token de autorização para seu laptop na frota que você criou. Use o comando get-compute-auth-token (ou a operação GetComputeAuthToken da API).

      aws gamelift get-compute-auth-token \ --fleet-id fleet-1234 \ --compute-name DevLaptop

      Exemplos de resultado:

      ComputeAuthToken { FleetId = fleet-1234, ComputeName = DevLaptop, AuthToken = abcdefg123, ExpirationTime = 1897492857.11 }
    2. Execute uma instância de depuração do executável do seu servidor de jogos. Para executar a instância de depuração, seu servidor de jogo deve chamar InitSDK(). Depois que o processo estiver pronto para hospedar uma sessão de jogo, o servidor do jogo chama ProcessReady().

  5. Crie uma sessão de jogo para testar sua primeira integração com o Anywhere do Amazon GameLift. Use o comando create-game-session (ou a operação CreateGameSession a API).

    aws gamelift create-game-session \ --fleet-id fleet-1234 \ --name DebugSession \ --maximum-player-session-count 2

    Exemplos de resultado:

    GameSession { FleetId = fleet-1234, GameSessionId = 1111-1111, Name = DebugSession, IpAddress = 10.1.2.3, Port = 1024, ... }

    O Amazon GameLift envia uma mensagem onStartGameSession() para seu processo de servidor registrado. A mensagem contém o objeto GameSession da etapa anterior com propriedades do jogo, dados das sessões do jogo, dados do marcador de jogos e mais sobre a sessão do jogo.

  6. Adicione lógica ao seu servidor de jogo para que o processo do servidor responda à mensagem onStartGameSession() com ActivateGameSession(). A operação envia uma confirmação ao Amazon GameLift de que seu servidor recebeu e aceitou a mensagem de criação da sessão de jogo. Para obter mais informações, consulte, Referência do SDK do servidor do Amazon GameLift.

Seu servidor de jogo agora está executando uma sessão de jogo para você testar e usar para iteração. Para saber como iterar no servidor do jogo, siga para a próxima seção.

Faça iterações em seu servidor de jogos

Nesse caso de uso, considere um cenário em que você configurou e testou seu servidor de jogos e encontrou um bug. Com o Anywhere do Amazon GameLift, você pode iterar seu código e evitar a configuração pesada de usar um Amazon EC2 Fleet.

  1. Limpe a GameSession existente, se possível. Se o servidor do jogo travar ou não chamar ProcessEnding(), o Amazon GameLift limpa as GameSession depois que o servidor do jogo parar de enviar verificações de saúde.

  2. Faça as alterações no código do seu servidor de jogo, compile e prepare-se para o próximo teste.

  3. Sua frota Anywhere anterior ainda está ativa e seu laptop ainda está registrado como um recurso computacional na frota. Para começar a testar novamente, crie uma nova instância de depuração.

    1. Recupere o token de autorização do seu laptop na frota que você criou. Use o comando get-compute-auth-token (ou a operação GetComputeAuthToken da API).

      aws gamelift get-compute-auth-token \ --fleet-id fleet-1234 \ --compute-name DevLaptop

      Exemplos de resultado:

      ComputeAuthToken { FleetId = fleet-1234, ComputeName = DevLaptop, AuthToken = hijklmnop456, ExpirationTime = 1897492857.11 }
    2. Execute uma instância de depuração do executável do seu servidor de jogos. Para executar a instância de depuração, seu servidor de jogo deve chamar InitSDK(). Depois que o processo estiver pronto para hospedar uma sessão de jogo, o servidor do jogo chama ProcessReady().

  4. Sua frota agora tem um processo de servidor disponível. Crie sua sessão de jogo e realize seus próximos testes. Use o comando create-game-session (ou a operação CreateGameSession da API).

    aws gamelift create-game-session \ --fleet-id fleet-1234 \ --name SecondDebugSession \ --maximum-player-session-count 2

    O Amazon GameLift envia uma mensagem onStartGameSession() para seu processo de servidor registrado. A mensagem contém o objeto GameSession da etapa anterior com propriedades do jogo, dados da sessão do jogo, dados do marcador de jogos e mais sobre a sessão do jogo.

  5. Adicione lógica ao seu servidor de jogo para que o processo do servidor responda à mensagem onStartGameSession() com ActivateGameSession(). A operação envia uma confirmação ao Amazon GameLift de que seu servidor recebeu e aceitou a mensagem de criação da sessão de jogo. Para obter mais informações, consulte, Referência do SDK do servidor do Amazon GameLift.

Depois de terminar de testar seu servidor de jogos, você pode continuar usando o Amazon GameLift para gerenciar sua frota e servidores de jogos. Para obter mais informações, consulte Crie uma GameLift Anywhere frota da Amazon.