Tutorial: Integração rápida com o Amazon GameLift Servers invólucro - Amazon GameLift Servers

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á.

Tutorial: Integração rápida com o Amazon GameLift Servers invólucro

Bem-vindo ao tutorial de integração do. Amazon GameLift Servers Neste tutorial, você implanta rapidamente seu servidor de jogos para ser hospedado em uma frota de recursos computacionais baseados em nuvem. Use este tutorial para evitar o trabalho de integrar o SDK do servidor ao código do jogo e, Amazon GameLift Servers em vez disso, implante seu jogo com a funcionalidade mínima para se comunicar com o Amazon GameLift Servers serviço e executar sessões de jogo. Você configurará uma solução básica de hospedagem e a usará para experimentar toda a gama de recursos, como escalonamento automático e matchmaking. Também é uma ótima maneira de hospedar um protótipo do seu jogo como parte de uma demonstração ao vivo ou para testes.

Principais benefícios desse método de integração:

  • Implante rapidamente seu servidor de jogos para hospedagem rápida.

  • Nenhuma alteração no código do jogo e nenhuma modificação necessária.

  • Use esse método com qualquer executável de jogo, independentemente do motor de jogo.

  • Explore todas as ferramentas Amazon GameLift Servers de gerenciamento, incluindo o monitoramento da atividade da sessão de jogo e a integridade da hospedagem.

nota

O invólucro é destinado à avaliação e ao uso básico na produção. Recursos avançados, como gerenciamento detalhado da sessão do jogador, exigem uma integração completa do SDK do servidor.

Pré-requisitos

Antes de começar, verifique se você tem:

  • E Conta da AWS com as permissões apropriadas

  • AWS CLI instalado

  • Vá 1.18+

  • Um servidor de jogos multijogador executável

  • Faça (Linux/Mac)

  • Git instalado com uma conta ativa

Visão geral

Neste tutorial, você irá:

  1. Obtenha e construa o invólucro

  2. Prepare a versão do jogo

  3. Configurar o invólucro

  4. Faça o upload da versão do servidor do jogo

  5. Crie a EC2 frota gerenciada

  6. Crie e conecte-se a uma sessão de jogo

  7. Monitore e gerencie seus servidores de jogos

  8. Dimensione seus servidores de jogos

Etapa 1: Obtenha e construa o invólucro do servidor de jogos

Use os comandos a seguir para obter a fonte do wrapper do servidor de jogos e criar o wrapper. Esses comandos usam SSH, mas você também pode acessar diretamente o repositório do Github.

Windows

> git clone git@github.com:amazon-gamelift/amazon-gamelift-servers-game-server-wrapper.git > cd amazon-gamelift-servers-game-server-wrapper > powershell -file .\build.ps1

Mac e Linux

$ git clone git@github.com:amazon-gamelift/amazon-gamelift-servers-game-server-wrapper.git $ cd amazon-gamelift-servers-game-server-wrapper $ make

Em uma compilação bem-sucedida, um diretório “de saída” é adicionado aoamazon-gamelift-servers-game-server-wrapper. Nesse diretório, há três pastas, uma para cada opção de frota de hospedagem compatível, que contêm um conjunto de artefatos de construção. Neste tutorial, você está implantando em EC2 frotas gerenciadas, então você usará a pasta. gamelift-servers-managed-ec2

Etapa 2: Prepare a versão do seu servidor de jogo

Nesta etapa, você prepara os arquivos de compilação do servidor de jogos para serem enviados para o. Amazon GameLift Servers

Crie o diretório do jogo

Agora, prepare um diretório de jogo em sua máquina local. Esse diretório deve conter todos os arquivos que você precisa para executar seu servidor de jogosAmazon GameLift Servers. Isso inclui o wrapper do servidor do jogo, a compilação do servidor do jogo e o config.yaml que faz o wrapper funcionar com o servidor do jogo.

Use as seguintes etapas:

  1. EC2 Frota gerenciada. Na pasta de saída do wrapper do servidor do jogo, encontre o artefato de construção para implantação em uma frota gerenciada. EC2 A compilação será gravada em um diretório de saída, conforme indicado aqui:out\linux\amd64\gamelift-servers-managed-ec2.

  2. Copie o executável do servidor do jogo e todos os arquivos associados necessários para execução na gamelift-servers-managed-ec2 pasta. Você pode ter diretórios aninhados conforme necessário.

Um exemplo de estrutura de diretórios terá a seguinte aparência:

gamelift-servers-managed-ec2 │-- config.yaml │-- amazon-gamelift-servers-game-server-wrapper │-- MyGame │ │-- server-executable.exe │ │-- my-game-settings │ │ ......

Etapa 3: configurar a embalagem para sua frota

Amazon GameLift Serversgerencia o ciclo de vida das instâncias computacionais de uma frota, criando novas instâncias com a criação do servidor instalada e reciclando instâncias conforme necessário. O serviço gerencia o ciclo de vida do processo do servidor de jogos que é executado em cada instância. Uma EC2 frota gerenciada pode ter instâncias em vários locais para oferecer suporte aos jogadores onde quer que estejam.

Edite o arquivo config.yaml para configurar o wrapper para registro, configuração de portas e inicialização do servidor.

  1. Defina as configurações de registro. O invólucro do servidor de jogos gera mensagens de registro para cada processo do servidor de jogos. Por padrão, o nível de registro é definido para depurar para obter a máxima verbosidade. Isso é muito útil durante a configuração e a solução de problemas e determina o quão detalhadas são as mensagens de log - nesse caso, as mais detalhadas. As opções incluem depuração, informações, aviso e erro (menos detalhado).

  2. Especifique o caminho para o diretório de log do servidor do jogo. O caminho padrão para os registros do servidor do jogo é./game-server-logs. Esse diretório contém todos os registros gerados pelo seu servidor de jogo e cada instância os tem. Os registros são enviados automaticamente para Amazon GameLift Servers onde são acessados na guia Eventos. Consulte a seção Solução de problemas para obter mais detalhes.

  3. Defina a configuração da porta de rede. Defina a porta do jogo para o que você preferir. Para este tutorial, especifique apenas uma porta, pois você criará uma frota que executa somente um processo de servidor de jogo simultâneo por instância. Se você decidir executar vários processos ao mesmo tempo, precisará configurar portas suficientes para cada processo simultâneo. O valor padrão é 37016, conforme mostrado no arquivo de configuração, mas, em geral, para frotas que usam compilações Linux, use as portas 22 e 1026-60000. Para frotas que usam versões do Windows, use as portas 1026-60000.

  4. Configure o caminho para o executável do servidor do jogo. Para ./MyGame/my-server-executable.exe personalizar o caminho para o executável do servidor de jogos com o nome e a localização reais do mesmo. Este é o ponto de entrada para iniciar seu servidor de jogos.

  5. Configure os argumentos do servidor do jogo. No mínimo, especifique um argumento -port e use o mesmo valor de porta do jogo que você definiu anteriormente. O valor “pos” 0 indica que esse é o primeiro argumento. Adicione outros argumentos conforme necessário. Esses argumentos são passados para o servidor do jogo quando ele é lançado, permitindo que você configure seu comportamento em tempo de execução.

    1. Argumento: "--port"

    2. Valor: "{{.port number here}}"

    3. Posição: 0 (Primeiro argumento na lista)

Exemplo de configuração:

log-config: wrapper-log-level: debug game-server-logs-dir: ./game-server-logs ports: gamePort: 37016 game-server-details: executable-file-path: ./MyGame/my-server-executable game-server-args: - arg: "--port" val: "{{.gameport}}" pos: 0

Etapa 4: faça o upload da versão do servidor do jogo

Agora você concluiu todos os elementos necessários da compilação do servidor de jogos (wrapper do servidor de jogos, config.yaml e arquivos do servidor de jogos) e está pronto para fazer o upload da compilação do jogo para hospedagem. Amazon GameLift Servers A maneira mais rápida de fazer o upload da versão do seu jogo é usando o AWS CLI comandoupload-build, conforme mostrado no exemplo a seguir.

Fazendo o upload de uma versão de jogo com o Windows:

aws gamelift upload-build \ --name gamelift-test-2025-03-11-1 \ --build-version gamelift-test-2025-03-11-1 \ --build-root out/windows/amd64/gamelift-servers-managed-ec2 \ --operating-system WINDOWS_2016 \ --server-sdk-version 5.3.0 \ --region us-west-2
nota

Para versões Mac e Linux, use --operating-system AMAZON_LINUX_2023

Ao criar a compilação, registre a ID da compilação da resposta da API para usá-la na criação da frota.

Etapa 5: criar a EC2 frota gerenciada

As etapas a seguir descrevem uma configuração mínima da frota, para que você possa começar a trabalhar o mais rápido possível.

Para criar sua frota:

  1. Faça login no AWS Management Console e navegue atéAmazon GameLift Servers.

  2. Na barra de menu na parte superior da janela do console, verifique em qual região sua compilação está. Anote isso porque sua frota precisa estar na mesma região ou você não conseguirá encontrar ou escolher sua construção.

  3. No painel de navegação na EC2 seção Gerenciado, escolha Construções.

  4. Selecione a compilação que você enviou anteriormente para exibir a página de detalhes da compilação.

  5. Na seção Frotas, escolha Criar frota, que exibe a página Definir detalhes da EC2 frota gerenciada, na qual você pode rastrear o status da sua frota, bem como visualizar os eventos de criação da frota na guia Eventos.

  6. Preencha o nome e a descrição e escolha Avançar.

  7. Na página Definir detalhes da instância, a região da compilação é mostrada por padrão. Escolha qualquer região adicional que você queira adicionar.

  8. Para Tipo de frota, escolha On-Demand.

  9. Em Tipos de instância, escolha c5.large e selecione Avançar.

  10. Em Configuração de tempo de execução, como sua versão de jogo carregada usa o wrapper, você precisa apontar para o executável do wrapper. Para servidores de jogos Windows, isso éC:\game\amazon-gamelift-servers-game-server-wrapper.exe. Para servidores de jogos Linux, isso é/local/game/amazon-gamelift-servers-game-server-wrapper.

    Por exemplo: LaunchPath": "/local/game/amazon-gamelift-servers-game-server-wrapper", "ConcurrentExecutions": 1, "Parameters": "—port 37016

    Além disso, configure os valores da porta do jogo com um intervalo que permita a porta que foi definida nos parâmetros de inicialização da configuração config.yaml e do tempo de execução. A porta de entrada config.yaml não precisa corresponder à especificada na configuração de tempo de execução da frota, mas em tempo de execução, se a configuração especificar uma porta diferente, esse valor substituirá o que está no. config.yaml Os parâmetros de inicialização inseridos na configuração do tempo de execução também substituem o que está no. config.yaml

  11. Na página Revisar e criar, verifique novamente todas as configurações e escolha Enviar para criar sua frota. O status da frota mudará à medida que aumenta a capacidade de hospedar o servidor do jogo e, em breve, mostrará o status de Ativo. Quando a ativação estiver concluída e a frota implantada, o serviço inicia o invólucro que está pronto para receber uma solicitação de sessão de jogo.

Etapa 6: criar e conectar-se a uma sessão de jogo

Quando o status da sua frota mostra Ativo, isso significa que os servidores do jogo estão prontos e aguardando para hospedar uma sessão de jogo. Para iniciar uma sessão de jogo, faça uma solicitação de sessão de jogo ao Amazon GameLift Servers serviço. Aqui, você usará o AWS CLI para fazer essa solicitação.

nota

Lembre-se de que criar uma sessão de jogo usando o AWS CLI é útil para testar e se familiarizar com o processo. Em algum momento, você adicionará chamadas programáticas de AWS SDK ao serviço de back-end do jogo como parte do sistema de matchmaking ou posicionamento de sessões de jogo do seu jogo.

Use o seguinte para criar uma sessão de jogo:

aws gamelift create-game-session \ --fleet-id <FLEET_ID> \ --game-properties '[{"Key": "exampleProperty", "Value": "exampleValue"}]' \ --maximum-player-session-count 3 \ --region us-west-2

Você também pode passar propriedades personalizadas do jogo para o executável do servidor. Consulte os argumentos do servidor de jogo no README para obter detalhes. Ao receber a create-game-session chamada, eles Amazon GameLift Servers informam o wrapper para iniciar o executável do servidor do jogo e iniciar uma sessão de jogo. O que está nele config.yaml afeta a configuração do servidor do jogo e os parâmetros de inicialização definidos no console determinam a configuração da sessão de jogo em si.

Exemplo de formato para adicionar propriedades do jogo:

defaultArgs: - arg: "--port" val: "{{.GamePort}}" pos: 0 - arg: "--ipAddress" val: "{{.IpAddress}}" pos: 1 - arg: "--gameSessionId" val: "{{.GameSessionId}}" pos: 2

Etapa 7: Gerencie e monitore sua frota

Agora que sua frota de servidores de jogos está configurada e uma sessão de jogo foi iniciada, você pode gerenciá-la e monitorá-la no Amazon GameLift Servers console. A melhor maneira de fazer isso é na página de detalhes da frota, onde você pode editar os detalhes da frota ou alterar o dimensionamento e a capacidade da frota na guia Escalonamento. Consulte a seção a seguir sobre como escalar seus servidores de jogos.

Escolha a guia Métricas para visualizar gráficos que descrevem o monitoramento das métricas de atividade e hardware. Para obter detalhes sobre os gráficos de métricas, escolha o link Informações ao lado do ID da sua frota. Além disso, embora você possa monitorar de perto seus servidores de jogos na guia Métricas, você também pode adicionar alarmes a essas métricas no CloudWatch painel.

Para navegar até o CloudWatch painel a partir do console:

  1. Digite "CloudWatch" na barra de pesquisa e escolha-a na lista de resultados da pesquisa para exibir a CloudWatch Visão geral.

  2. Role para baixo e escolha Exibir GameLift painel para ver gráficos com base nas principais métricas de suas frotas e sessões de jogo.

Etapa 8: escale seus servidores de jogos

Para a próxima etapa, você configura o escalonamento automático. Com o escalonamento automático, você escala dinamicamente a capacidade da sua frota em resposta à atividade do servidor do jogo. Conforme os jogadores chegam e iniciam as sessões de jogo, o escalonamento automático adiciona mais instâncias e, à medida que a demanda dos jogadores diminui, o escalonamento automático libera instâncias não utilizadas. Essa é uma forma eficaz de minimizar seus recursos e custos de hospedagem e, ao mesmo tempo, proporcionar uma experiência de jogador tranquila e rápida.

Ao se preparar para o lançamento do jogo, você deve configurar o escalonamento automático para suas frotas. O escalonamento automático é recomendado como uma forma eficaz de minimizar seus recursos e custos de hospedagem e, ao mesmo tempo, proporcionar uma experiência de jogador tranquila e rápida.

Para configurar manualmente a capacidade da frota

Para configurar manualmente a capacidade da frota

  1. Acesse a guia Escalonamento na página de detalhes da sua frota.

  2. Selecione um local e escolha Editar.

  3. Altere o valor das instâncias desejadas e altere as configurações de tamanho mínimo e máximo para escalar além dos valores atuais.

nota

Use a configuração máxima de instâncias como uma brecha para evitar custos e escalabilidade excessivos.

  1. Escolha Confirmar.

Para usar o escalonamento automático baseado em metas

Para usar o escalonamento automático baseado em metas

O escalonamento automático baseado em metas (rastreamento de metas) vincula o escalonamento da frota à porcentagem de sessões de jogo disponíveis. À medida que os jogadores começam a jogar seu jogo e as sessões de jogo disponíveis diminuem, ele responde adicionando automaticamente mais instâncias à frota.

  1. Em Política de escalonamento automático baseada em metas, escolha Adicionar política e defina a capacidade da frota de mudar automaticamente quando atingir o limite da porcentagem de sessões de jogo disponíveis que você definiu. Um buffer maior pode lidar melhor com surtos, fazendo com que novos jogadores entrem nos jogos rapidamente, mas também pode aumentar os custos de hospedagem.

  2. Escolha Confirmar para aceitar as alterações.

O escalonamento automático baseado em regras oferece um controle mais granular, como a capacidade de vincular o escalonamento a outras métricas da frota e definir limites personalizados e respostas de escalabilidade. Ele oferece opções poderosas, mas também requer o uso da CLI e testes significativos para entender como as regras personalizadas se comportam em ação. Este tutorial se concentra em primeiro configurar a abordagem baseada em metas.

Solução de problemas comuns

A seguir estão os problemas comuns que você pode encontrar ao executar seus servidores e sessões de jogo. Quando o servidor ou a sessão do jogo não estão funcionando corretamente, a primeira etapa é verificar os registros, o que pode revelar um dos problemas descritos abaixo para novas implantações ou jogos em produção.

O seguinte geralmente é revelado nos registros:

  • O processo do servidor do jogo não pode ser iniciado. Isso pode ser um erro na configuração do wrapper. Verifique se o arquivo tem o caminho de inicialização correto e os parâmetros e argumentos de inicialização corretos.

  • A compilação do servidor de jogos não pode ser executada. Provavelmente é um erro no código do jogo.

  • Os jogadores não conseguem se conectar às sessões de jogo. Provavelmente é um erro de configuração da porta.

  • Conexões atrasadas ou lentas. Analise as políticas e os limites de escalabilidade.

  • Sem conexão. Verifique as regras e a configuração portuária da sua frota.

Para ver os registros de eventos da sua Amazon GameLift Servers frota

Para ver os registros de eventos da sua Amazon GameLift Servers frota

  1. Abra o console do Amazon GameLift Servers.

  2. Na página Detalhes da frota, escolha a guia Eventos e baixe o registro. Você também pode monitorar métricas de atividade e hardware para a integridade do servidor de jogos e ativações de sessões de jogos na guia Métricas.

Para ver os registros da sessão do jogo

Para ver os registros da sessão do jogo

  1. No console, abra sua frota e abra a guia Sessões do jogo.

  2. Escolha um ID de sessão de jogo na lista para exibir a página de visão geral.

  3. Escolha Baixar registros para baixar um arquivo de log localmente.

Para ver os registros da sessão do jogo com a CLI, use a GetGameSessionLogURL API. Amazon GameLift Serversarmazena automaticamente os registros por 14 dias.

Você também pode configurar CloudWatch os registros da Amazon para sua frota. Isso fornece recursos adicionais de registro e integração com outros serviços AWS de monitoramento.

Para acesso aos registros em tempo real ou períodos de retenção estendidos por meio de CloudWatch:

  1. Na parte superior do painel do Amazon GameLift Servers console, digite "CloudWatch" na barra de pesquisa e escolha-a no menu suspenso de resultados.

  2. Acesse os grupos de CloudWatch registros e pesquise sessões específicas. O método mais fácil é clicar em Pesquisar tudo e filtrar usando gameSessionId nosso ClientID.

Próximas etapas