Plugin para Unity: implante seu jogo em frotas EC2 gerenciadas - 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á.

Plugin para Unity: implante seu jogo em frotas EC2 gerenciadas

Nesse fluxo de trabalho, você usa o plug-in para preparar seu jogo para hospedagem em recursos computacionais baseados em nuvem que são gerenciados pela Amazon. GameLift Você adiciona o código do jogo do cliente e do servidor para a GameLift funcionalidade da Amazon e, em seguida, carrega a versão do seu servidor no GameLift serviço Amazon para hospedagem. Quando esse fluxo de trabalho estiver concluído, você terá servidores de jogos em execução na nuvem e um cliente de jogos funcional que poderá se conectar a eles.

Para iniciar o fluxo de trabalho do Amazon EC2 GameLift gerenciado pela Amazon:
  • No menu principal do editor Unity, escolha Amazon GameLift e selecione Host with Managed EC2. Esse fluxo de trabalho apresenta um processo de seis etapas para integrar, criar, implantar e iniciar os componentes do jogo.

Defina seu perfil

Escolha o perfil que você deseja usar ao seguir esse fluxo de trabalho. O perfil selecionado afeta todas as etapas do fluxo de trabalho. Todos os recursos que você cria estão associados à AWS conta do perfil e são colocados na AWS região padrão do perfil. As permissões do usuário do perfil determinam seu acesso aos AWS recursos e ações.

  1. Selecione um perfil na lista suspensa de perfis disponíveis. Se você ainda não tem um perfil ou deseja criar um novo, acesse o GameLift menu Amazon e escolha Definir perfis de AWS conta.

  2. Se o status do bootstrap não for “Ativo”, escolha o perfil do Bootstrap e espere que o status mude para “Ativo”.

Integre seu jogo com a Amazon GameLift

Para essa tarefa, você faz atualizações no código do cliente e do servidor em seu projeto de jogo.

  • Os servidores de jogos devem ser capazes de se comunicar com o GameLift serviço da Amazon para receber solicitações para iniciar uma sessão de jogo, fornecer informações de conexão da sessão de jogo e relatar o status.

  • Os clientes do jogo devem ser capazes de obter informações sobre sessões de jogo, entrar ou iniciar sessões de jogo e obter informações de conexão para entrar em um jogo.

nota

Se você importou o jogo de amostra, pode pular essa etapa. Os ativos do jogo de amostra já têm o código necessário do servidor e do cliente.

Integre o código do seu servidor

Ao usar seu próprio projeto de jogo com cenas personalizadas, use o código de amostra fornecido para adicionar o código de servidor necessário ao seu projeto de jogo. Se você integrou seu projeto de jogo para testes com uma frota Anywhere, você já concluiu as instruções nesta etapa.

  1. Nos arquivos do projeto do jogo, abra a Assets/Scripts/Server pasta. Se não existir, crie-o.

  2. Vá para o GitHub repositório aws/ amazon-gamelift-plugin-unity e abra o caminho. Samples~/SampleGame/Assets/Scripts/Server

  3. Localize o arquivo GameLiftServer.cs e copie-o para a Server pasta do seu projeto de jogo. Ao criar um executável de servidor, use esse arquivo como destino de compilação.

O código de amostra inclui esses elementos mínimos necessários, que usam o SDK do servidor Amazon GameLift C# (versão 5):

  • Inicializa um cliente de GameLift API da Amazon. A chamada initSDK () com parâmetros de servidor é necessária para uma frota do Amazon Anywhere. GameLift Essas configurações são definidas automaticamente para uso no plug-in.

  • Implementa as funções de retorno de chamada necessárias para responder às solicitações do GameLift serviço da Amazon, incluindo OnStartGameSessionOnProcessTerminate, e. onHealthCheck

  • Chamadas ProcessReady() com uma porta designada para notificar o GameLift serviço da Amazon quando o processo do servidor estiver pronto para hospedar sessões de jogo.

Se você quiser personalizar o código do servidor de amostra, consulte estes recursos:

Integre seu código de cliente

Para clientes de jogos que se conectam a servidores de jogos baseados em nuvem, é uma prática recomendada usar um serviço de back-end do lado do cliente para fazer chamadas para o serviço da Amazon GameLift , em vez de fazer as chamadas diretamente do cliente do jogo.

No fluxo de trabalho do plug-in para hospedagem em uma frota EC2 gerenciada, cada cenário de implantação inclui um serviço de back-end pré-criado que inclui os seguintes componentes:

  • Um conjunto de funções do Lambda e tabelas do DynamoDB que são usadas para solicitar sessões de jogo e recuperar informações da sessão de jogo. Esses componentes usam um gateway de API como proxy.

  • Um grupo de usuários do Amazon Cognito que gera IDs de jogadores exclusivos e autentica conexões de jogadores.

Para usar esses componentes, seu cliente de jogo precisa da funcionalidade de enviar solicitações ao serviço de back-end para fazer o seguinte:

  • Crie um usuário jogador no grupo de usuários do AWS Cognito e autentique-o.

  • Participe de uma sessão de jogo e receba informações de conexão.

  • Entre em um jogo usando matchmaking.

Use os recursos a seguir como guia.

Selecione o cenário de implantação

Nesta etapa, você escolhe a solução de hospedagem de jogos que deseja implantar no momento. Você poderá ter várias implantações do seu jogo, usando qualquer um dos cenários.

  • Frota de região única: implanta seu servidor de jogo em uma única frota de recursos de hospedagem na região padrão AWS do perfil ativo. Esse cenário é um bom ponto de partida para testar a integração do servidor AWS e a configuração de compilação do servidor. Ele implanta os seguintes recursos:

    • frota (sob demanda) da AWS com a versão do seu servidor de jogos instalada e em execução.

    • Grupo de usuários e cliente do Amazon Cognito para permitir que os jogadores se autentiquem e iniciem um jogo.

    • Autorizador de gateway de API que vincula o grupo de usuários às APIs.

    • WebACL para controle de utilização excessiva de jogadores para o gateway da API.

    • Gateway de API + função do Lambda para os jogadores solicitarem um slot de jogo. Essa função é chamada CreateGameSession() se nenhuma estiver disponível.

    • Gateway de API + função do Lambda para que os jogadores obtenham informações de conexão para sua solicitação de jogo.

  • FlexMatch frota: implanta seu servidor de jogo em um conjunto de frotas e configura um FlexMatch matchmaker com regras para criar partidas de jogadores. Esse cenário usa hospedagem spot de baixo custo com uma estrutura de várias frotas e vários locais para uma disponibilidade durável. Essa abordagem é útil quando você está pronto para começar a projetar um componente matchmaker para sua solução de hospedagem. Nesse cenário, você criará os recursos básicos para essa solução, que poderão ser personalizados posteriormente, conforme necessário. Ele implanta os seguintes recursos:

    • FlexMatch configuração de matchmaking e regras de matchmaking definidas para aceitar solicitações de jogadores e formar partidas.

    • Três frotas da AWS com sua versão de servidor de jogo instalada e funcionando em vários locais. Inclui duas frotas spot e uma frota sob demanda como backup.

    • Fila de posicionamento de sessões de jogo da AWS que atende às solicitações de partidas propostas, encontrando o melhor recurso de hospedagem possível (com base na viabilidade, custo, latência do jogador etc.) e iniciando uma sessão de jogo.

    • Grupo de usuários e cliente do Amazon Cognito para permitir que os jogadores se autentiquem e iniciem um jogo.

    • Autorizador de gateway de API que vincula o grupo de usuários às APIs.

    • WebACL para controle de utilização excessiva de jogadores para o gateway da API.

    • Gateway de API + função do Lambda para os jogadores solicitarem um slot de jogo. Esta função chama StartMatchmaking().

    • Gateway de API + função do Lambda para que os jogadores obtenham informações de conexão para sua solicitação de jogo.

    • Tabelas do Amazon DynamoDB para armazenar ingressos de marcação de jogos para jogadores e informações da sessão do jogo.

    • Tópico do SNS + Função Lambda para GameSessionQueue lidar com eventos.

Defina os parâmetros do jogo

Nesta etapa, você descreve seu jogo para o qual fazer AWS o upload.

  • Nome do jogo: forneça um nome significativo para seu projeto de jogo. Esse nome é usado dentro do plug-in.

  • Nome da frota: forneça um nome significativo para sua frota EC2 gerenciada. A Amazon GameLift usa esse nome (junto com o ID da frota) ao listar recursos no AWS console.

  • Nome da compilação: forneça um nome significativo para a compilação do seu servidor. AWS usa esse nome para se referir à cópia da versão do seu servidor que é enviada para a Amazon GameLift e usada para implantações.

  • Parâmetros de inicialização: insira instruções opcionais para execução ao iniciar o executável do servidor em uma instância de frota EC2 gerenciada. O tamanho máximo é de 1024 caracteres.

  • Pasta do servidor do jogo: forneça o caminho para uma pasta local contendo a compilação do seu servidor.

  • Arquivo do servidor do jogo: especifique o nome do arquivo executável do servidor.

Cenário de implantação

Nesta etapa, você implanta seu jogo em uma solução de hospedagem em nuvem com base no cenário de implantação escolhido. Esse processo pode levar vários minutos para AWS validar a criação do servidor, provisionar recursos de hospedagem, instalar o servidor de jogos, iniciar processos do servidor e prepará-los para hospedar sessões de jogo.

Para iniciar a implantação, escolha Implantar CloudFormation. É possível acompanhar o status de sua hospedagem de jogos aqui. Para obter informações mais detalhadas, você pode entrar no console AWS de gerenciamento AWS e visualizar notificações de eventos. Certifique-se de fazer login usando a mesma conta, usuário e AWS região do perfil de usuário ativo no plug-in.

Quando a implantação estiver concluída, você terá seu servidor de jogos instalado em uma instância do EC2 da AWS . Pelo menos um processo do servidor está em execução e pronto para iniciar uma sessão de jogo.

Inicie o cliente do jogo

Quando sua frota é implantada com sucesso, agora você tem servidores de jogos em execução e disponíveis para hospedar sessões de jogo. Agora você pode criar seu cliente, iniciá-lo, conectar-se para participar da sessão do jogo.

  1. Configure seu cliente de jogo. Nesta etapa, você solicita que o plug-in atualize um GameLiftClientSettings ativo para seu projeto de jogo. O plug-in usa esse recurso para armazenar determinadas informações que seu cliente de jogo precisa para se conectar ao GameLift serviço da Amazon.

    1. Se você não importou e inicializou o jogo de amostra, crie um novo GameLiftClientSettings ativo. No menu principal do editor Unity, escolha Assets, Create GameLift, Client Settings. Se você criar várias cópias GameLiftClientSettings em seu projeto, o plug-in detectará isso automaticamente e notificará qual ativo o plug-in atualizará.

    2. Em Launch Game, escolha Configure Client: Apply Managed EC2 Settings. Essa ação atualiza as configurações do seu cliente de jogo para usar a frota EC2 gerenciada que você acabou de implantar.

  2. Crie seu cliente de jogo. Crie um executável de cliente usando o processo de compilação padrão do Unity. Em Arquivo, Configurações de compilação, mude a plataforma para Windows, Mac, Linux. Se você importou o jogo de amostra e inicializou as configurações, a lista de compilações e o destino da compilação serão atualizados automaticamente.

  3. Inicie o executável do cliente de jogo recém-criado. Para começar a jogar, inicie de duas a quatro instâncias do cliente e use a interface de usuário em cada uma para participar de uma sessão de jogo.

Se você estiver usando o cliente de jogo de amostra, ele tem as seguintes características:

  • Um componente de login do jogador. Ao se conectar a um servidor de jogo em uma frota Anywhere, não há validação do jogador. Você pode inserir qualquer valor para entrar na sessão do jogo.

  • Uma interface de usuário simples para entrar no jogo. Quando um cliente tenta entrar em um jogo, ele procura automaticamente por uma sessão de jogo ativa com um espaço de jogador disponível. Se nenhuma sessão de jogo estiver disponível, o cliente solicitará uma nova sessão de jogo. Se uma sessão de jogo estiver disponível, o cliente solicitará entrar na sessão de jogo disponível. Ao testar seu jogo com vários clientes simultâneos, o primeiro cliente inicia a sessão do jogo e os clientes restantes ingressam automaticamente na sessão de jogo existente.

  • Sessões de jogo com slots para quatro jogadores. Você pode iniciar até quatro instâncias de clientes de jogos simultaneamente e elas entrarão na mesma sessão de jogo.