Plugin para Unity: configure testes locais com a Amazon GameLift Anywhere - 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: configure testes locais com a Amazon GameLift Anywhere

Nesse fluxo de trabalho, você adiciona código de jogo de cliente e servidor para a GameLift funcionalidade da Amazon e usa o plug-in para designar sua estação de trabalho local como host de servidor de jogos de teste. Depois de concluir as tarefas de integração, use o plug-in para criar seus componentes de cliente e servidor do jogo.

Para iniciar o fluxo de trabalho do Amazon GameLift Anywhere:
  • No menu principal do editor Unity, escolha Amazon GameLift e selecione Host with Anywhere. Essa ação abre a página do plugin para configurar seu jogo com um @Anywhere frota. A página apresenta um processo de cinco etapas para integrar, criar e lançar 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

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.

Nesta etapa do fluxo de trabalho, você atualiza o código do cliente e do servidor no 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.

Integre o código do seu servidor

Se você estiver usando 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:

  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 pasta Server 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 servidor Amazon GameLift C# SDK (versão 5):

  • Inicializa um GameLift API cliente da Amazon. A InitSDK() chamada com os parâmetros do servidor é necessária para uma frota do Amazon GameLift Anywhere. 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

Se você estiver usando seu próprio projeto de jogo com cenas personalizadas, precisará integrar a funcionalidade básica ao seu cliente de jogo. Você também precisa adicionar elementos de interface para que os jogadores possam entrar e participar de uma sessão de jogo. Use o GameLift serviço da Amazon APIs (no AWS SDK) para obter informações sobre a sessão do jogo, criar novas sessões de jogo ou participar de sessões de jogo existentes,

Ao criar um cliente para testes locais com uma frota Anywhere, você pode adicionar chamadas diretas ao GameLift serviço da Amazon. Ao desenvolver seu jogo para hospedagem na nuvem, ou se planeja usar frotas Anywhere para hospedagem de produção, você precisará criar um serviço de back-end do lado do cliente para lidar com toda a comunicação entre os clientes do jogo e o serviço da Amazon. GameLift

Para integrar a Amazon GameLift ao seu código de cliente, use os seguintes recursos como guia.

  • Integre o cliente com a GameLiftCoreApi classe no GitHub repositório amazon-gamelift-plugin-unity aws/. Essa classe fornece controles para autenticação do jogador e para recuperar informações da sessão do jogo.

  • Veja exemplos de integrações de jogos, disponíveis no GitHub repositório amazon-gamelift-plugin-unity aws/,. Samples~/SampleGame/Assets/Scripts/Client/GameLiftClient.cs

  • Siga as instruções em Adicionar Amazon GameLift ao seu cliente de jogo Unity.

Para clientes de jogos que se conectam a uma frota Anywhere, seu cliente de jogo precisa das seguintes informações. O plug-in atualiza automaticamente seu projeto de jogo para usar os recursos que você criou no plug-in.

  • FleetId - O identificador exclusivo da sua frota Anywhere.

  • FleetLocation - A localização personalizada da sua frota Anywhere.

  • AwsRegion - A AWS região onde sua frota Anywhere está hospedada. Essa é a região que você definiu no seu perfil de usuário.

  • ProfileName - Um perfil de AWS credenciais em sua máquina local que permite acesso ao formulário AWS SDK. GameLift O cliente do jogo usa essas credenciais para autenticar solicitações no serviço Amazon GameLift .

nota

O perfil de credenciais é gerado pelo plug-in e armazenado na máquina local. Como resultado, você deve executar o cliente na máquina local (ou em uma máquina com o mesmo perfil).

Conecte-se a uma frota em qualquer lugar

Nesta etapa, você designa uma frota do Anywhere para usar. Uma frota do Anywhere define uma coleção de recursos computacionais, que podem estar localizados em qualquer lugar, para hospedagem de servidores de jogos.

  • Se a AWS conta que você está usando atualmente tiver frotas Anywhere existentes, abra o campo suspenso Nome da frota e escolha uma frota. Essa lista suspensa mostra apenas as frotas de Anywhere na AWS região para o perfil de usuário atualmente ativo.

  • Se não houver frotas existentes, ou se você quiser criar uma nova, escolha Criar nova frota em qualquer lugar e forneça um nome para a frota.

Depois de escolher uma frota Anywhere para seu projeto, a Amazon GameLift verifica se o status da frota está ativo e exibe o ID da frota. Você pode acompanhar o progresso dessa solicitação no registro de saída do editor Unity.

Registrar um computador

Nesta etapa, você registra sua estação de trabalho local como um recurso computacional na nova frota do Anywhere.

  1. Insira um nome de computação para a sua máquina local. Se você adicionar mais de uma computação na frota, os nomes deverão ser exclusivos.

  2. Escolha Registrar computação. Você poderá acompanhar o progresso dessa solicitação no log de saída do editor do Unreal.

O plug-in registra sua estação de trabalho local com o endereço IP definido como localhost (127.0.0.1). Essa configuração pressupõe que você executará o cliente e o servidor do jogo na mesma máquina.

Em resposta a essa ação, a Amazon GameLift verifica se pode se conectar à computação e retorna informações sobre a computação recém-registrada.

Inicie o jogo

Nesta etapa, você constrói os componentes do jogo e os inicia para jogar. Complete as seguintes tarefas:

  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 Configurar cliente: aplicar configurações em qualquer lugar. Essa ação atualiza as configurações do cliente do jogo para usar a frota Anywhere que você acabou de configurar.

  2. Crie e execute seu cliente de jogo.

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

    2. Inicie uma ou mais instâncias do executável do cliente de jogo recém-criado.

  3. Inicie um servidor de jogos em sua frota Anywhere. Escolha Servidor: Inicie o servidor no editor. Essa tarefa inicia um servidor ativo ao qual seu cliente pode se conectar, desde que o editor Unity permaneça aberto.

  4. Inicie ou participe de uma sessão de jogo. Nas instâncias do seu cliente de jogo, use a interface do usuário para unir cada cliente a uma sessão de jogo. A forma como você faz isso depende de como você adicionou funcionalidade ao cliente.

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.

Inicie a partir de um servidor executável (opcional)

Você pode criar e iniciar o executável do seu servidor de jogos para testes em uma frota Anywhere.

  1. Crie um servidor executável usando o processo de compilação padrão do Unity. Em Arquivo, Configurações de compilação, mude a plataforma para Servidor dedicado e crie.

  2. Obtenha um token de autenticação de curto prazo chamando o AWS CLI comando get-compute-auth-tokencom seu ID de frota e AWS região do Anywhere. O ID da frota é exibido no Connect to an Anywhere Fleet quando você cria a frota. A AWS região é exibida em Defina seu perfil quando você seleciona seu perfil ativo.

    aws gamelift get-compute-auth-token --fleet-id [your anywhere fleet ID] --region [your AWS region]
  3. Inicie o executável do servidor de jogos recém-criado a partir de uma linha de comando e passe um token de autenticação válido.

    my_project.exe --authToken [token]