Configurar testes locais com o Amazon GameLift Servers Anywhere
nota
Este tópico aborda testes locais para jogos integrados ao SDK versão 5.x do servidor Amazon GameLift Servers. Se o jogo usa o SDK do servidor versão 4.x ou anterior, consulte Teste a integração usando o Local do Amazon GameLift Servers.
Use uma frota Amazon GameLift Servers Anywhere e seu próprio hardware para criar e testar iterativamente os componentes do jogo em um ambiente hospedado simulado. Configure uma frota Anywhere e registre um dispositivo local para estabelecer uma conexão com o serviço do Amazon GameLift Servers. Instale a compilação do servidor de jogos no dispositivo, inicie um processo de servidor de jogos e teste a funcionalidade do jogo conforme necessário. Você pode atualizar a compilação do servidor de jogos sempre que necessário para testar cada nova iteração de compilação.
Com uma frota Anywhere, você pode testar usando a AWS CLI ou com scripts de teste. Se você integrou um cliente de jogo ao Amazon GameLift Servers, é possível executar o cliente no mesmo dispositivo local ou em um dispositivo diferente.
Testar localmente com uma frota Anywhere é particularmente útil para testar a integração do servidor de jogos com o Amazon GameLift Servers. Você tem visibilidade total de todas as atividades de hospedagem na máquina local, bem como de eventos e dados de registro em log.
nota
Você está usando o plug-in do Amazon GameLift Servers para Unreal Engine ou Unity? Essas ferramentas incluem fluxos de trabalho guiados para configurar testes locais com uma frota Anywhere. Siga a documentação para Plug-in para Unity: configurar testes locais com o Amazon GameLift Servers Anywhere ou Plugin para Unreal: Hospede seu jogo localmente com Amazon GameLift Servers Anywhere.
Tópicos
Configurar uma frota Anywhere local
Siga estas etapas para criar uma frota Anywhere para a estação de trabalho local. Para obter instruções detalhadas usando a AWS CLI ou o Console de gerenciamento da AWS para o Amazon GameLift Servers, consulte Criar uma frota Amazon GameLift Servers Anywhere.
Para criar a frota Anywhere
Crie um local personalizado para a estação de trabalho local. (AWS CLI ou console). Um local personalizado é simplesmente um rótulo para o recurso de computação que você planeja incluir na frota Anywhere. Os nomes de locais personalizados devem começar com
custom-. Por exemplo:custom-my_laptop. Consulte Criar uma política personalizada.Crie uma frota Anywhere (AWS CLI ou console). Nesta etapa, crie o recurso de frota com o local personalizado para a estação de trabalho local. Consulte Criar uma frota Anywhere.
Anote o valor do ID ou ARN da nova frota. Você precisará desse valor na próxima etapa.
Registre a estação de trabalho local como uma computação de frota (somente a AWS CLI). Uma frota Anywhere precisa ter pelo menos um recurso de computação para hospedar os servidores de jogos. Consulte Adicionar um recurso de computação à frota. Para adicionar uma computação à frota, você precisa das seguintes informações:
-
Um nome de recurso de computação. Cada recurso de computação em uma frota deve ter um nome exclusivo.
-
O identificador da frota Anywhere. Você pode usar o
FleetIDou oFleetArn. -
As informações de conexão do recurso de computação. Especifique um
IpAddressouDnsName. É assim que o Amazon GameLift Servers e os clientes de jogos se conectarão aos servidores de jogos. -
Um local personalizado na frota Anywhere.
Anote o valor de retorno do
GameLiftServiceSdkEndpoint. Você precisará desse valor ao atualizar o servidor de jogos para funcionar em uma frota Anywhere.-
Atualizar e instalar o servidor de jogos
Essa tarefa pressupõe que você já tenha integrado uma compilação de servidor de jogos com o SDK 5.x do servidor Amazon GameLift Servers. O processo de integração envolve adicionar o código ao servidor de jogos para que ele possa interagir com o serviço do Amazon GameLift Servers para iniciar e gerenciar sessões de jogo.
Para uma frota Anywhere, é necessário definir manualmente determinadas configurações do servidor de jogos. Em uma frota gerenciada do Amazon GameLift Servers, essas configurações são definidas automaticamente.
Como preparar o servidor de jogos para uma frota Anywhere
Obtenha um token de autenticação. O servidor de jogos deve incluir um token de autenticação em cada comunicação com o serviço do Amazon GameLift Servers. Os tokens de autenticação do Amazon GameLift Servers têm curta duração e devem ser atualizados regularmente.
Como prática recomendada, crie um script para concluir as seguintes tarefas:
Chame a ação
get-compute-auth-tokenda AWS CLI.Armazene o valor do token retornado onde os processos do servidor de jogos possam recuperá-lo, como em uma variável de ambiente na computação local.
Instale o script com o servidor de jogos no recurso de computação. Defina o script para ser executado antes de iniciar o primeiro processo do servidor de jogos. Enquanto os processos do servidor de jogos estiverem ativos, execute o script regularmente para manter um token de autenticação válido. Todos os processos do servidor de jogos no recurso de computação podem usar o mesmo token de autenticação.
Atualize seu código de servidor de jogos de Amazon GameLift Servers. Ao integrar o código do servidor de jogos ao SDK do servidor para o Amazon GameLift Servers, você adicionou uma chamada à ação
InitSdk(). Quando o servidor de jogos é executado em uma frota Anywhere, essa chamada requer parâmetros adicionais do servidor. Para obter mais informações, consulte Inicializar o processo do servidor e SDK 5.x do servidor para Amazon GameLift Servers para a linguagem de desenvolvimento. Os parâmetros do servidor são:-
webSocketUrl: defina esse parâmetro para o valorGameLiftServiceSdkEndpoint, que é retornado quando você registra uma computação na frota. -
hostId: defina esse parâmetro com o nome da computação especificada ao registrar uma computação na frota do Anywhere. -
fleetId: defina esse parâmetro para o ID da frota Anywhere. -
authToken: defina esse parâmetro como o token, que é retornado em resposta a uma solicitação para recuperar um token de autenticação para uma computação. -
processId: defina esse parâmetro para identificar um processo do servidor de jogos que está sendo executado na computação local. Cada processo simultâneo do servidor de jogos deve ter um ID de processo exclusivo.
Os valores dos parâmetros do servidor que cada processo do servidor de jogos usa precisam ser específicos para a computação da frota do Anywhere em que o processo está sendo executado. Para obter detalhes sobre como obter os valores apropriados para um cálculo, consulte Adicionar um recurso de computação à frota. Como prática recomendada, defina
webSocketUrl,hostId,fleetIdeauthTokencomo variáveis de ambiente na computação local. Todos os processos do servidor executados na computação usarão esses valores.-
Instale a versão do servidor de jogos na computação local. Inclua todas as dependências necessárias para executar o servidor de jogos.
Inicie um ou mais processos do servidor de jogos em execução na computação local. Quando o processo do servidor de jogos chama a ação
ProcessReady()do SDK do servidor, o processo está pronto para hospedar uma sessão de jogo.
Testar atividades de sessões de jogo
Teste a integração do servidor de jogos trabalhando com sessões de jogo. Se você não tiver um cliente de jogo integrado à funcionalidade do Amazon GameLift Servers, poderá usar a AWS CLI para iniciar sessões de jogo. Teste os seguintes cenários:
Crie uma sessão de jogo. Chame o comando create-game-session
(ou a operação CreateGameSession de API). Especifique o ID e a localização personalizada da frota Anywhere. Essa chamada retorna um identificador exclusivo para a nova sessão de jogo. Verifique o status da sessão do jogo.Chame o comando describe-game-sessions
(ou a ação DescribeGameSessions da API). Especifique o ID da sessão do jogo. Essa chamada retorna informações detalhadas da sessão do jogo, incluindo seu status. As sessões de jogo no status Ativo estão prontas para os jogadores se conectarem. Para obter uma lista de todas as sessões de jogo da frota, chame o comando list-game-sessions (ou a ação ListGameSessions da API). -
Conecte-se à sessão do jogo. Se o cliente tiver a capacidade de entrar em uma sessão de jogo, use as informações de conexão incluídas nas informações da sessão do jogo.
Faça iterações em seu servidor de jogos
Você pode usar a mesma frota Anywhere e a mesma computação para testar outras versões da versão do servidor de jogos.
-
Apague a
GameSessionexistente. Se o processo do servidor de jogos travar ou não chamarProcessEnding(), o Amazon GameLift Servers apagará aGameSessiondepois que o servidor de jogos parar de enviar verificações de integridade. -
Gere uma nova compilação de servidor de jogos. Faça alterações no servidor de jogos e empacote uma versão revisada.
-
Atualize a compilação do servidor de jogos na computação local. Sua frota Anywhere anterior ainda está ativa e seu laptop ainda está registrado como um recurso computacional na frota.
-
Obtenha um token de autorização atualizado. Chame o comando get-compute-auth-token
da CLI e armazene o token na computação local. -
Inicie um ou mais processos do servidor de jogos em execução na computação local. Quando o processo do servidor de jogos chama
ProcessReady(), ele está pronto para ser usado para testes.
Transição do jogo para as frotas gerenciadas do Amazon GameLift Servers
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 Servers. 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.
Você precisa fazer algumas pequenas modificações para fazer a transição de uma frota de testes local do Anywhere para uma frota gerenciada pelo Amazon GameLift Servers. Você pode reutilizar as mesmas filas e matchmakers. Realize as seguintes tarefas:
-
Altere a chamada de código do servidor de jogos para
InitSdk(). Remova os parâmetros do servidor. Para uma frota gerenciada, o Amazon GameLift Servers acompanha automaticamente essas informações. -
Criar um recurso de construção do Amazon GameLift Servers. 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, você cria e carrega o pacote de compilação de jogos no Amazon GameLift Servers, que o implanta automaticamente em todas as computações da frota. Consulte Criar uma compilação personalizada do servidor de jogos para o Amazon GameLift Servers 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. Não inclua scripts que registrem uma computação e obtenham um token de autenticação, pois o Amazon GameLift Servers gerencia automaticamente essas tarefas com frotas gerenciadas.
-
Crie uma frota gerenciada. Crie uma frota usando o console ou a AWS CLI, especificando uma frota 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ê também precisa definir uma 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 pelo Amazon GameLift Servers 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 da Amazon GameLift Servers para obter detalhes sobre como criar ou atualizar um alias.