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á.
Roteiro de desenvolvimento para hospedagem com contêineres Amazon GameLift Servers gerenciados
Este roteiro orienta você sobre como desenvolver uma solução de hospedagem Amazon GameLift Servers gerenciada para seus servidores de jogos em contêineres. Os contêineres gerenciados são apenas uma solução de hospedagem oferecida pelaAmazon GameLift Servers. Para obter mais informações sobre as opções de hospedagem, consulteSoluções do Amazon GameLift Servers.
Uma solução de contêiner gerenciado Amazon GameLift Servers tem os seguintes componentes:
-
Uma ou mais frotas de contêineres, que usam instâncias do Amazon Elastic Compute Cloud EC2 (Amazon) otimizadas para hospedagem de jogos multijogador.
-
Uma imagem de contêiner com a criação do seu servidor de jogo, carregada no repositório privado do Amazon Elastic Container Registry (Amazon ECR). A versão do servidor de jogos é integrada ao SDK do servidor Amazon GameLift Servers e criada para ser executada no Linux.
-
Um serviço de back-end que interage com o Amazon GameLift Servers serviço em nome de seus clientes de jogos. O serviço de back-end usa a funcionalidade na API de serviço paraAmazon GameLift Servers, que faz parte do AWS SDK.
-
Uma fila de sessões de Amazon GameLift Servers jogo que processa solicitações de novas sessões de jogo, procura servidores de jogos disponíveis em todas as frotas e solicita que um servidor de jogos inicie uma sessão de jogo.
-
(Opcional) Um FlexMatch matchmaker para criar partidas multijogador e configurar sessões de jogo para elas.
Esse roteiro apresenta um caminho simplificado para colocar seus servidores de jogos em contêineres em funcionamento com sucesso com contêineres gerenciados. Amazon GameLift Servers Depois de configurar os componentes necessários, você pode continuar a iterar no desenvolvimento de jogos e personalizar a solução de hospedagem. À medida que você se aproxima do lançamento, consulte Preparando seu jogo para o lançamento com Amazon GameLift Servers hospedagem para obter ajuda na preparação da solução de hospedagem para uso em nível de produção.
Acelere a integração com essas ferramentas para contêineres gerenciados:
O kit inicial de contêineres
agiliza a integração e a configuração da frota. Ele adiciona recursos essenciais de gerenciamento de sessões de jogos ao seu servidor de jogos e usa modelos pré-configurados para criar uma frota de contêineres e um pipeline de implantação automatizado para seu servidor de jogos. Após a implantação, use o Amazon GameLift Servers console e as ferramentas de API para monitorar o desempenho da frota, gerenciar sessões de jogo e analisar métricas. Para desenvolvedores do Unreal Engine e Unity, use os Amazon GameLift Serversplug-ins
para integrar seu servidor de jogos e criar uma frota de contêineres de dentro do ambiente de desenvolvimento do seu mecanismo de jogo. Os fluxos de trabalho guiados do plug-in ajudam você a criar uma solução rápida e simples com hospedagem baseada em nuvem usando contêineres gerenciados. Você pode aproveitar essa base para criar uma solução de hospedagem personalizada para seu jogo.
Adicione funcionalidade ao seu servidor de jogos para que ele possa se comunicar com o Amazon GameLift Servers serviço quando for implantado para hospedagem.
-
Obtenha o SDK do servidor Amazon GameLift Servers (versão 5.2 ou superior) para seu projeto de jogo. O SDK do servidor está disponível em C++, C# e Go. Baixe o SDK do servidor para Amazon GameLift Servers
. O SDK do servidor está disponível em C++, C# e Go. -
Modifique o código do servidor de jogos para adicionar a funcionalidade do SDK do servidor. Para obter orientações, consulte Integre jogos com servidores de jogos personalizados. No mínimo, faça o seguinte:
-
Adicione código para inicializar o Amazon GameLift Servers SDK e estabelecer uma WebSocket conexão com o Amazon GameLift Servers serviço. Use a ação
InitSdk()
do SDK do servidor. -
Adicione código para reportar ao Amazon GameLift Servers serviço quando o processo do servidor estiver pronto para hospedar sessões de jogo. Use a ação
ProcessReady()
do SDK do servidor. -
Implemente as funções
OnStartGameSession()
de retorno de chamada necessárias e.OnProcessTerminate()
Com essas funções, os processos do servidor de jogos podem manter uma conexão com o Amazon GameLift Servers serviço, iniciar uma sessão de jogo quando solicitado e responder a uma solicitação para encerrar o processo do servidor de jogos. Amazon GameLift Servers -
Adicione código para reportar ao Amazon GameLift Servers serviço quando o processo do servidor estiver encerrando uma sessão de jogo. Use a ação
ProcessEnding()
do SDK do servidor.
-
-
Empacote a versão do servidor de jogos. Crie seu servidor de jogos para rodar no Linux. Prepare a compilação e outros arquivos necessários para executar o servidor do jogo. Se você estiver desenvolvendo no Windows, essa etapa pode envolver a configuração de um espaço de trabalho Linux separado ou o uso de uma ferramenta como o subsistema Windows para Linux (WSL). Você precisará de um ambiente Linux para testar a compilação do seu servidor de jogos e também para criar e testar suas imagens de contêiner.
-
Teste a integração do servidor de jogos. Verifique se o servidor de jogos integrado pode se conectar ao Amazon GameLift Servers serviço e responder às solicitações. Recomendamos configurar uma frota simples do Amazon GameLift Servers Anywhere com uma estação de trabalho local como host de teste, conforme descrito emConfigure testes locais com o Amazon GameLift Servers Anywhere. Instale sua versão de servidor de jogos no host de teste e inicie um processo no servidor. Use a AWS CLI para solicitar uma nova sessão de jogo e verifique se o Amazon GameLift Servers serviço solicita com êxito que o processo do servidor inicie uma sessão de jogo.
Crie uma forma do cliente de jogo solicitar a participação em uma sessão de jogo, obter informações de conexão e conectar-se diretamente a uma sessão de jogo hospedada. A abordagem mais comum é configurar a funcionalidade do serviço de back-end que serve como intermediária entre o cliente do jogo e o serviço. Amazon GameLift Servers Essa abordagem protege os recursos de hospedagem e oferece maior controle sobre como os jogadores são colocados nas sessões de jogo.
-
Crie uma funcionalidade de serviço de backend para hospedagem. O serviço de back-end se comunica com o Amazon GameLift Servers serviço e fornece informações de conexão a um cliente de jogo. Essa funcionalidade inclui iniciar sessões de jogo, colocar jogadores em jogos e recuperar informações da sessão de jogo. Para obter orientações, consulte Integre jogos com servidores de jogos personalizados. No mínimo, faça o seguinte:
-
Obtenha o AWS SDK Amazon GameLift Servers e adicione-o ao seu projeto de serviço de back-end. Veja os recursos Amazon GameLift Servers do SDK para serviços ao cliente.
-
Adicione código para inicializar um Amazon GameLift Servers cliente e armazenar as configurações da chave. Consulte Configurar Amazon GameLift Servers em um serviço de back-end.
-
Adicione funcionalidade para chamar a ação do AWS SDK
CreateGameSession()
e fornecer informações de conexão da sessão de jogo a um cliente de jogo. Consulte Criar uma sessão de jogo em uma frota específica.Ligar
CreateGameSession()
é um ponto de partida conveniente para solicitar novas sessões de jogo. Depois de instalar um sistema de posicionamento de sessões de jogo (consulte a Etapa 3), você substituirá esse código por uma chamada paraStartGameSessionPlacement()
(ouStartMatchmaking()
se estiver usandoFlexMatch).Para obter orientação sobre como projetar o serviço de backend, consulte Projete seu serviço de cliente de jogos.
-
-
Adicione a funcionalidade ao cliente de jogo que permite que os jogadores participem de uma sessão de jogo hospedada. O cliente do jogo faz solicitações para seu serviço de back-end, não diretamente para o. Amazon GameLift Servers Depois que o serviço de backend fornece as informações de conexão da sessão do jogo, o cliente de jogo se conecta diretamente à sessão do jogo para jogar.
-
Teste a integração do cliente de jogo. Você pode usar sua frota Amazon GameLift Servers Anywhere existente com uma estação de trabalho local para testes. Use o novo serviço de back-end para solicitar uma nova sessão de jogo e verifique se: (1) o Amazon GameLift Servers serviço solicita com êxito que o processo do servidor inicie uma sessão de jogo e (2) um cliente de jogo pode se conectar à sessão de jogo.
Personalize como você deseja Amazon GameLift Servers processar as solicitações de uma nova sessão de jogo e localize os servidores de jogos disponíveis para hospedá-las. Amazon GameLift Serversrastreia automaticamente a disponibilidade de todos os servidores de jogos em todas as frotas. Quando um cliente de jogo envia uma solicitação para participar de uma sessão de jogo, Amazon GameLift Servers procura o “melhor posicionamento possível” com base em um conjunto de prioridades definidas, como latência, custo e disponibilidade mínimos.
-
Crie uma fila de sessões de jogo para alocar uma nova sessão de jogo em servidores de jogos disponíveis. As filas são o principal mecanismo para posicionamento de sessões de jogo. Para obter orientações, consulte Criar uma fila de sessões de jogo.
-
No mínimo, adicione suas frotas Anywhere como destinos na fila. Todas as outras configurações são personalizações opcionais.
-
-
No código de serviço de backend, converta a chamada
CreateGameSession()
emStartGameSessionPlacement()
. Consulte Criar uma sessão de jogo em uma fila com vários locais. -
Crie um mecanismo para notificar um cliente de jogo quando uma sessão de jogo estiver pronta para ser iniciada. Durante o desenvolvimento, você pode pesquisar o status da sessão do jogo usando uma chamada para
DescribeGameSessionPlacement
. No entanto, antes de usar uma fila para processar grandes volumes, você precisará ativar as notificações de eventos. Consulte Configurar notificações de eventos para o posicionamento de sessões de jogo. -
Adicionar FlexMatch matchmaking (opcional). Crie um conjunto de regras de matchmaking e crie uma configuração de matchmaking para trabalhar com sua fila de sessões de jogo. Para obter orientação sobre como configurar um sistema de matchmaking, consulte o guia do Amazon GameLift ServersFlexMatch desenvolvedor.
-
Teste o sistema de posicionamento. Você pode usar sua frota Amazon GameLift Servers Anywhere existente com uma estação de trabalho local para testes. Use o serviço de back-end para solicitar uma nova sessão de jogo e verifique se o Amazon GameLift Servers serviço solicita com êxito que o processo do servidor inicie uma sessão de jogo.
Depois de integrar com sucesso o servidor de jogos, crie uma imagem de contêiner com o executável do servidor de jogos. Armazene-o em um repositório do Amazon Elastic Container Registry (Amazon ECR) para uso com. Amazon GameLift Servers Para obter instruções detalhadas, consulte Crie uma imagem de contêiner para Amazon GameLift Servers.
-
Obtenha o modelo Dockerfile para um contêiner de servidor de jogos (fornecido porAmazon GameLift Servers). Modifique o arquivo dos arquivos de compilação do seu servidor de jogos.
-
Crie uma imagem de contêiner de servidor de jogos. Trabalhando em um ambiente Linux, use a ferramenta Docker para criar sua imagem.
-
Envie sua imagem de contêiner para o Amazon ECR. Crie um repositório público ou privado no Amazon ECR, usando o mesmo Conta da AWS e Região da AWS onde você planeja implantar sua frota de contêineres. Empurre a imagem do contêiner para ela.
-
Teste suas imagens de contêiner usando sua frota Anywhere (opcional). Talvez você queira testar suas imagens de contêiner localmente antes de implantá-las em uma frota de contêineres hospedada na nuvem. Você pode usar sua frota Amazon GameLift Servers Anywhere existente com uma estação de trabalho local para testes. Instale e execute o contêiner do servidor do jogo e verifique se: (1) o Amazon GameLift Servers serviço solicita com êxito que o processo do servidor inicie uma sessão de jogo e (2) um cliente do jogo pode se conectar à sessão do jogo.
Até agora, você trabalhou com uma frota autogerenciada do Anywhere para testar e iterar os componentes do seu jogo. A parte final da sua solução é configurar os recursos de hospedagem baseados em nuvem que você precisará para um sistema de produção. Para começar a planejar e configurar a produção, você deve configurar uma frota Amazon GameLift Servers gerenciada de contêineres e personalizá-la para produção.
-
Crie definições de grupos de contêineres. As definições de grupos de contêineres descrevem a arquitetura de contêineres de uma frota e identificam quais imagens de contêiner devem ser implantadas. Consulte Crie uma definição de grupo de contêineres para uma frota de Amazon GameLift Servers contêineres. Crie sua definição de grupo de contêineres no mesmo Região da AWS local em que as imagens do contêiner são armazenadas. Para saber mais sobre como escolher a localização da frota, consulte Localização da frota. No mínimo, faça o seguinte:
-
Crie uma definição de grupo de contêineres de servidores de jogos.
-
Adicione uma definição de contêiner com uma imagem de contêiner na versão do seu servidor de jogo.
-
Configure um intervalo de portas para os processos do servidor de jogos do contêiner.
-
-
Crie uma frota de contêineres gerenciada. Quando você cria uma frota, começa Amazon GameLift Servers imediatamente a implantar sua versão de servidor de jogos para hospedagem. Você pode configurar vários aspectos de uma frota gerenciada. Para obter orientações, consulte Crie um Amazon GameLift Servers frota de contêineres gerenciada. No mínimo, faça o seguinte:
-
Configure uma função de serviço AWS Identity and Access Management (IAM) para a frota de contêineres. Consulte Configure uma função de serviço do IAM para Amazon GameLift Servers.
-
Especifique a definição do grupo de contêineres do servidor de jogos para implantar nas instâncias da frota.
-
Use valores padrão quando disponíveis para todos os outros parâmetros. Amazon GameLift Serverscalcula alguns parâmetros para uma configuração ideal.
-
-
Adicione as frotas de contêineres à sua fila. Em sua fila de sessões de jogo, substitua a frota de teste Anywhere pela sua frota de contêineres gerenciados.
-
Teste a hospedagem de jogos com suas frotas de contêineres. Neste ponto, você deve ser capaz de testar toda a solução. Inicie um cliente de jogo e solicite uma sessão de jogo por meio do serviço de back-end. Obtenha informações de conexão e conecte-se a uma sessão de jogo na frota de contêineres.
-
Repita as implantações de sua frota. Você pode atualizar as definições de grupos de contêineres e as configurações da frota e, em seguida, implantar atualizações nas frotas existentes.
Ao se preparar para o lançamento do jogo, você precisará ajustar seus recursos de hospedagem gerenciada. Algumas das decisões a serem consideradas incluem:
-
Otimize a configuração da sua frota de contêineres. Consulte Personalize uma frota de Amazon GameLift Servers contêineres.
Considere adicionar frotas spot para reduzir custos. Consulte Tutorial: Crie uma Amazon GameLift Servers fila com instâncias spot.
-
Se o servidor do jogo precisar comunicar outros AWS recursos, configure funções do IAM para gerenciar o acesso. Consulte Comunique-se com outros AWS recursos de suas frotas.
Determine onde você deseja posicionar geograficamente os servidores de jogo. Adicione locais remotos às suas frotas gerenciadas. Consulte Personalize seu Amazon GameLift Servers EC2 frotas gerenciadas.
Experimente as opções de posicionamento de sessões de jogo para frotas gerenciadas, incluindo a personalização das configurações de priorização. Consulte Personalize uma fila de sessões de jogo.
-
Configure o ajuste de escala automático da capacidade para atender à demanda esperada dos jogadores. Consulte Escalando a capacidade de hospedagem de jogos com Amazon GameLift Servers.
-
Crie frotas em outras Regiões da AWS e modifique as filas e o escalonamento automático para lidar com os failovers conforme necessário.
-
Configure ferramentas de observabilidade de hospedagem, incluindo análises e registros em log. Consulte Monitoramento Amazon GameLift Servers.
-
Automatize as implantações de sua frota usando a infraestrutura como código (IaC). Consulte Gerenciamento Amazon GameLift Servers recursos de hospedagem usando AWS CloudFormation.
Amazon GameLift Serverssuporta o uso de AWS CloudFormation modelos para qualquer configuração específica da implantação. Você também pode usar o AWS Cloud Development Kit (AWS CDK) para definir seus Amazon GameLift Servers recursos. Para obter mais informações sobre o AWS CDK, consulte o Guia do AWS Cloud Development Kit (AWS CDK) desenvolvedor.
Para gerenciar a implantação de suas AWS CloudFormation pilhas, recomendamos o uso de ferramentas e serviços de integração contínua e entrega contínua (CI/CD), como. AWS CodePipeline Essas ferramentas ajudam você a implantar automaticamente ou com aprovação sempre que você cria o binário do servidor de jogos. Com uma CI/CD ferramenta ou serviço, a implantação de recursos para uma nova versão do servidor de jogos pode ter a seguinte aparência:
-
Compile e teste o binário do servidor de jogos.
-
Faça o upload do binário paraAmazon GameLift Servers.
-
Implante novas frotas com a nova compilação.
-
Adicione as novas frotas à fila de sessões de jogo e remova as frotas com a versão de compilação anterior.
-
Quando as frotas com a versão anterior não estiverem mais hospedando sessões de jogo ativas, exclua as AWS CloudFormation pilhas dessas frotas.
-