Crie uma GameLift Anywhere frota da Amazon - 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á.

Crie uma GameLift Anywhere frota da Amazon

Use GameLift a Amazon para integrar o hardware do seu ambiente à sua hospedagem de GameLift jogos na Amazon. A Amazon GameLift Anywhere registra seu hardware GameLift na Amazon em uma Anywhere frota. É possível integrar Anywhere e gerencie frotas EC2 em filas de marcador de jogos e sessões de jogos para gerenciar a marcação de jogos e o posicionamento de jogos.

Para obter mais informações sobre como testar seus servidores de jogos com a Amazon GameLift Anywhere, consulteTeste sua integração usando frotas Anywhere do Amazon GameLift.

Para começar, use a Suporte ao desenvolvimento com a Amazon GameLift versão 5 ou superior e analise os seguintes conceitos para usar uma GameLift Anywhere frota da Amazon.

Localizações personalizadas

GameLift AnywhereAs frotas da Amazon usam locais personalizados para representar os locais físicos da sua infraestrutura.

Criar uma política personalizada

Para que uma GameLift Anywhere frota da Amazon se comunique com seus recursos computacionais, primeiro registre seu dispositivo. Você pode concluir o registro do dispositivo a partir do Amazon GameLift AWS SDK usando a RegisterComputeoperação. Essa operação usa o endereço IP do dispositivo para associá-lo a uma localização da frota e se comunicar com a Amazon GameLift.

Tokens de autenticação

Quando você inicializa um servidor de jogos em seu computador, o Amazon GameLift Server SDK usa um token de autenticação para autenticar seu servidor de jogos na Amazon. GameLift É possível reutilizar o mesmo token de autenticação para todos os servidores de jogos no mesmo computador, até o prazo de expiração do token de autenticação. Para recuperar o token de autenticação, chame o comando get-compute-auth-token AWS Command Line Interface (AWS CLI). Passe o token para cada servidor do jogo conforme necessário.

Sessões de jogos

Cada sessão de jogo em um computador usa o mesmo token de autenticação criado ao registrar o computador em um local da frota.

O diagrama a seguir mostra uma fila de sessões de jogo que usa FlexMatch matchmaking e várias frotas. As frotas incluem uma frota EC2 com instâncias C5, uma frota Anywhere com um laptop de desenvolvimento e uma frota Anywhere com um rack de servidor hospedado pelo cliente.

Um diagrama de uma fila de sessões de jogo que usa uma frota EC2 gerenciada e duas frotas Anywhere.

Criar uma política personalizada

Para começar a hospedar jogos em seus recursos de computação, crie um local personalizado descrevendo onde o computador reside.

Console
Para criar uma política personalizada
  1. Abra o GameLift console da Amazon.

  2. No painel de navegação, em Hospedagem, escolha Locais.

  3. Na página Locais, selecione Criar local.

  4. Na caixa de diálogo Criar local, faça o seguinte:

    1. Insira um Nome de localização. Isso rotula a localização do seu hardware que a Amazon GameLift usa para executar seus jogos em Anywhere frotas. A Amazon GameLift acrescenta o nome do seu local personalizado com custom-.

    2. (Opcional) Adicione tags como pares de chave-valor à sua localização personalizada. Escolha Adicionar nova tag para cada tag a ser adicionada.

    3. Escolha Criar.

AWS CLI

Crie um local personalizado usando o comando create-location. Os location-name rótulos indicam a localização do seu hardware que a Amazon GameLift usa para executar seus jogos em Anywhere frotas. Ao criar o local personalizado, o nome do local deve começar com custom-.

aws gamelift create-location \ --location-name custom-location-1

Saída

{ "Location": { "LocationName": "custom-location-1", "LocationArn": "arn:aws:gamelift:us-east-1:111122223333:location/custom-location-1" } }

Criar uma frota

Use o GameLift console da Amazon ou o AWS CLI para criar uma Anywhere frota.

Depois de criar uma nova frota Anywhere, o status da frota passa de NEW para ACTIVE. Quando atinge o status é ACTIVE, a frota está pronta para hospedar sessões de jogo. Para obter ajuda com problemas de criação de frotas, consulte Depurar problemas com a frota do Amazon GameLift.

Console
Para criar uma frota Anywhere
  1. Abra o GameLift console da Amazon.

  2. No painel de navegação, em Hospedagem, selecione Frotas.

  3. Na página Frotas, selecione Criar frota.

  4. Na etapa Tipo de computação, selecione Anywhere e, em seguida, selecione Avançar.

  5. Na etapa Detalhes da frota, defina os detalhes e selecione Avançar.

  6. Na etapa Locais personalizados, selecione o local personalizado criado e selecione Avançar. A Amazon seleciona GameLift automaticamente a casa Região da AWS como a região em que você está criando a frota. Use a região de origem para acessar e usar seus recursos.

  7. Conclua as etapas restantes da criação da frota e selecione Enviar para criar sua frota Anywhere.

AWS CLI

Crie uma frota Anywhere usando o comando create-fleet. Inclua sua localização personalizada em locations. GameLift A Amazon cria a frota na sua região de origem e nos locais personalizados que você fornece. No exemplo a seguir, substitua FleetName e custom-location-1 por suas próprias informações. A variável custom-location-1 é o nome do local criado na etapa Criar uma política personalizada.

aws gamelift create-fleet \ --name FleetName \ --compute-type ANYWHERE \ --locations "Location=custom-location-1"

Exemplo de saída

{ "FleetAttributes": { "FleetId": "fleet-cebb4da2-52a8-4c27-9b85-587f945c6445", "FleetArn": "arn:aws:gamelift:us-east-1:111122223333:fleet/fleet-cebb4da2-52a8-4c27-9b85-587f945c6445", "Name": "HardwareAnywhere", "CreationTime": "2023-02-23T17:57:42.293000+00:00", "Status": "ACTIVE", "MetricGroups": [ "default" ], "CertificateConfiguration": { "CertificateType": "DISABLED" }, "ComputeType": "ANYWHERE" } }

Registrar seu computador

Para registrar seu recurso de computação na frota criada, use o comando register-compute. Substitua o fleet-id pelo fleet-id devolvido na etapa anterior ou pelo ARN da frota encontrado na página de detalhes da sua frota no console. Substitua o compute-name e ip-address pelo endereço IP do seu recurso de computação.

nota

Recomendamos chamar os get-compute-auth-token comandos register-compute e a partir de um script ou gerenciador de processos separado do servidor do jogo.

aws gamelift register-compute \ --compute-name HardwareAnywhere \ --fleet-id arn:aws:gamelift:us-east-1:111122223333:fleet/fleet-cebb4da2-52a8-4c27-9b85-587f945c6445 \ --ip-address 10.1.2.3 \ --location custom-location-1

Exemplo de saída

{ "Compute": { "FleetId": "fleet-cebb4da2-52a8-4c27-9b85-587f945c6445", "FleetArn": "arn:aws:gamelift:us-east-1:111122223333:fleet/fleet-cebb4da2-52a8-4c27-9b85-587f945c6445", "ComputeName": "HardwareAnywhere", "ComputeArn": "arn:aws:gamelift:us-east-1:111122223333:compute/HardwareAnywhere", "IpAddress": "10.1.2.3", "ComputeStatus": "Active", "Location": "custom-location-1", "CreationTime": "2023-02-23T18:09:26.727000+00:00", "GameLiftServiceSdkEndpoint": "wss://us-east-1.api.amazongamelift.com" } }

Executar um processo de servidor

  1. Obtenha o token de autenticação para o recurso de computação da frota criada.

    Seu servidor de jogo usa o token de autenticação para se autenticar na Amazon GameLift. Cada token de autenticação tem um prazo de validade. Para continuar usando o recurso de computação para hospedar o servidor de jogos, recupere um novo token de autenticação antes da expiração.

    nota

    GameLift A Amazon recomenda chamar os get-compute-auth-token comandos register-compute e a partir de um script ou gerenciador de processos separado do seu servidor de jogo.

    No exemplo a seguir, substitua fleet-id o pelo ARN ou ID da frota criada nas etapas anteriores. Substitua o compute-name pelo nome da computação criada usando o comando register-compute em uma etapa anterior.

    aws gamelift get-compute-auth-token \ --fleet-id arn:aws:gamelift:us-east-1:111122223333:fleet/fleet-cebb4da2-52a8-4c27-9b85-587f945c6445 \ --compute-name HardwareAnywhere

    Resultado do exemplo:

    { "FleetId": "fleet-cebb4da2-52a8-4c27-9b85-587f945c6445", "FleetArn": "arn:aws:gamelift:us-east-1:111122223333:fleet/fleet-cebb4da2-52a8-4c27-9b85-587f945c6445", "ComputeName": "HardwareAnywhere", "ComputeArn": "arn:aws:gamelift:us-east-1:111122223333:compute/HardwareAnywhere", "AuthToken": "0c728041-3e84-4aaa-b927-a0fb202684c0", "ExpirationTimestamp": "2023-02-23T18:47:54+00:00" }
  2. Execute uma instância do executável do servidor de jogos.

    Para executar o servidor de jogos, inicialize seu servidor de jogos chamando InitSDK() e transmitindo seus parâmetros de servidor. Para ter mais informações, consulte Parâmetros do servidor.

    Entrada do SDK do servidor:

    //Define the server parameters ServerParameters serverParameters = new ServerParameters( webSocketUrl=wss://us-east-1.api.amazongamelift.com, processId=PID1234, hostId=HardwareAnywhere, fleetId=arn:aws:gamelift:us-east-1:111122223333:fleet/fleet-cebb4da2-52a8-4c27-9b85-587f945c6445, authToken=0c728041-3e84-4aaa-b927-a0fb202684c0); //InitSDK establishes a connection with GameLift's websocket server for communication. var initSDKOutcome = GameLiftServerAPI.InitSDK(serverParameters);
  3. Depois que o processo do servidor estiver pronto para hospedar uma sessão de jogo, ligue ProcessReady() do seu servidor de jogos para a Amazon GameLift. Para obter mais informações sobre parâmetros de processo, consulte ProcessParameters

    // Set parameters and call ProcessReady var processParams = new ProcessParameters( this.OnStartGameSession, this.OnProcessTerminate, this.OnHealthCheck, this.OnUpdateGameSession, port=1024, new LogParameters(new List<string>() // Examples of log and error files written by the game server { "C:\\game\\logs", "C:\\game\\error" }) ); var processReadyOutcome = GameLiftServerAPI.ProcessReady(processParams);

Criar sessões de jogos

  1. Adicione lógica ao servidor de jogo para que o processo do servidor responda à mensagem onStartGameSession() com ActivateGameSession(). Essa operação não tem parâmetros, mas envia uma confirmação à Amazon de GameLift que seu servidor recebeu e aceitou a mensagem de criação da sessão de jogo.

    void OnStartGameSession(GameSession gameSession) { // game-specific tasks when starting a new game session, such as loading map // When ready to receive players var activateGameSessionOutcome = GameLiftServerAPI.ActivateGameSession(); }
  2. No serviço de back-end do seu cliente de jogo, inicie sua sessão de jogo usando o comando start-matchmaking, start-game-session-placement ou create-game-session.

    aws gamelift create-game-session \ --fleet-id arn:aws:gamelift:us-east-1:682428703967:fleet/fleet-cebb4da2-52a8-4c27-9b85-587f945c6445 \ --name GameSession1 \ --maximum-player-session-count 2 \ --location custom-location-1

    Resultado do exemplo:

    GameSession { FleetId = arn:aws:gamelift:us-east-1:682428703967:fleet/fleet-cebb4da2-52a8-4c27-9b85-587f945c6445, GameSessionId = 4444-4444, Name = GameSession1, Location = custom-location-1, IpAddress = 10.2.3.4, Port = 1024, ... }

    GameLift A Amazon envia uma onStartGameSession() mensagem para seu processo de servidor registrado. A mensagem contém o objeto GameSession da etapa anterior com propriedades do jogo, dados das sessões do jogo, dados do marcador de jogos e mais sobre a sessão do jogo.

  3. Quando a sessão do jogo estiver concluída, finalize o processo do servidor do jogo.

    Entrada do SDK do servidor:

    var processEndingOutcome = GameLiftServerAPI.ProcessEnding(); if (processReadyOutcome.Success) Environment.Exit(0); // otherwise, exit with error code Environment.Exit(errorCode);
  4. Inicie outro processo do servidor de jogos ao chamar ProcessReady(processParams).

Migre para o EC2 gerenciado

Depois de desenvolver seu servidor de jogos e estar pronto para se preparar para a produção, você pode fazer com que a Amazon GameLift gerencie seu hardware. Para migrar para uma frota EC2 gerenciada, faça o upload da sua compilação para a Amazon GameLift e crie uma frota EC2 gerenciada. Para obter mais informações sobre como fazer o upload de sua compilação e configurar uma frota, consulte Fazer upload de uma compilação de servidor personalizada para o Amazon GameLift e Criar uma frota gerenciada pelo Amazon GameLift.