Adicione GameLift a Amazon ao seu cliente de jogos - 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á.

Adicione GameLift a Amazon ao seu cliente de jogos

Integre a Amazon GameLift aos componentes do jogo que precisam de informações sobre a sessão do jogo, crie novas sessões de jogo e adicione jogadores aos jogos. Dependendo da arquitetura do jogo, essa funcionalidade está serviços de back-end que processam tarefas como autenticação do jogador, marcação de jogos ou colocação da sessão de jogo.

nota

Para obter informações detalhadas sobre como configurar matchmaking para seu jogo GameLift hospedado na Amazon, consulte o Guia do GameLift FlexMatch Desenvolvedor da Amazon.

Configure a Amazon GameLift em um serviço de back-end

Adicione código para inicializar um GameLift cliente Amazon e armazenar as configurações da chave. Esse código deve ser executado antes de qualquer código dependente da Amazon GameLift.

  1. Defina uma configuração de cliente. Use a configuração padrão do cliente ou crie um objeto de configuração do cliente personalizado. Para obter mais informações, consulte AWS::Client::ClientConfiguration(C++) ou AmazonGameLiftConfig(C#).

    A configuração do cliente especifica uma região de destino e um endpoint a serem usados ao entrar em contato com a Amazon. GameLift A região identifica o conjunto de recursos implantados (frotas, filas e marcador de jogos) a serem usados. A configuração do cliente padrão define a localização na região Leste dos EUA (Norte da Virgínia). Para usar qualquer outra Região, crie uma configuração personalizada.

  2. Inicialize um GameLift cliente da Amazon. Use Aws::GameLift:: GameLiftClient () (C++) ou AmazonGameLiftClient() (C#) com uma configuração de cliente padrão ou uma configuração de cliente personalizada.

  3. Adicione um mecanismo para gerar um identificador exclusivo para cada jogador. Para ter mais informações, consulte Gerar IDs de jogador.

  4. Colete e armazene informações a seguir:

    • Frota alvo — Muitas solicitações de GameLift API da Amazon devem especificar uma frota. Para fazer isso, use um ID de frota ou alias que aponte para a frota de destino. Como melhor prática, use os aliases de frota para poder trocar jogadores de uma frota para outra sem precisar atualizar os serviços de back-end.

    • Fila de destino – Para jogos que usam filas de várias frotas para colocar novas sessões de jogo, especifique o nome da fila a ser usada.

    • AWS credenciais — Todas as chamadas para a Amazon GameLift devem fornecer credenciais para quem hospeda Conta da AWS o jogo. Você adquire essas credenciais criando um usuário jogador, conforme descrito em Configurar o acesso programático para o jogo. Dependendo de como você gerencia o acesso do usuário player, faça o seguinte:

      • Se você usa uma função para gerenciar as permissões de usuário do jogador, adicione um código para assumir a função antes de chamar uma GameLift API da Amazon. A solicitação para assumir a função retorna um conjunto de credenciais de segurança temporárias. Para obter mais informações, consulte Mudar para uma função do IAM (AWS API) no Guia do usuário do IAM.

      • Caso tenha credenciais de segurança de longo prazo, configure seu código para localizar e use as credenciais armazenadas. Consulte Autenticar usando credenciais de longo prazo no Guia de Referência de Ferramentas e SDKs da AWS . Para obter informações sobre como armazenar credenciais, consulte as referências de AWS API para (C++) e (.NET).

      • Caso tenha credenciais de segurança temporárias, adicione código para atualizar regularmente as credenciais usando o AWS Security Token Service (AWS STS), conforme descrito em Usar credenciais de segurança temporárias com os SDKs da AWS no Guia do usuário do IAM. O código deve solicitar novas credenciais antes que as antigas expirem.

Obter sessões de jogos

Adicione o código para descobrir as sessões de jogos disponíveis e gerenciar as configurações de sessões de jogos e metadados.

Procure sessões de jogos ativas

Use SearchGameSessionspara obter informações sobre uma sessão de jogo específica, todas as sessões ativas ou sessões que atendem a um conjunto de critérios de pesquisa. Essa chamada retorna um GameSessionobjeto para cada sessão de jogo ativa que corresponde à sua solicitação de pesquisa.

Use critérios de pesquisa para obter uma lista filtrada de sessões de jogos ativas para jogadores ingressarem. Por exemplo, você pode filtrar sessões da seguinte maneira:

  • Exclua sessões de jogos que sejam completas: CurrentPlayerSessionCount = MaximumPlayerSessionCount.

  • Escolha sessões de jogos no tempo em que a sessão esteve em execução: avalie CreationTime.

  • Encontre sessões de jogos baseadas em uma propriedade personalizada do jogo: gameSessionProperties.gameMode = "brawl".

Gerencie sessões de jogos

Use qualquer uma das operações a seguir para recuperar ou atualizar as informações sobre a sessão do jogo.

Criar sessões de jogos

Adicione um código para iniciar novas sessões de jogos nas frotas implantadas e disponibilizá-las para jogadores. Há duas opções para criar sessões de jogo, dependendo se você está implantando seu jogo em várias regiões Regiões da AWS ou em uma única região.

Crie uma sessão de jogo em uma fila com vários locais

Use StartGameSessionPlacementpara fazer uma solicitação para uma nova sessão de jogo em uma fila. Para usar essa operação, crie uma fila. Isso determina onde a Amazon GameLift coloca a nova sessão de jogo. Para obter informações mais sobre filas e como usá-las, consulte Configurar filas do Amazon GameLift para o posicionamento de sessões de jogo .

Ao criar uma colocação de sessão do jogo, especifique o nome da fila a ser usada, um nome da sessão do jogo, um número máximo de jogadores simultâneos e um conjunto opcional de propriedades do jogo. Opcionalmente, também é possível fornecer uma lista de jogadores para ingressar automaticamente na sessão do jogo. Se você incluir dados de latência do jogador para regiões relevantes, a Amazon GameLift usará essas informações para colocar a nova sessão de jogo em uma frota que fornece a experiência de jogo ideal para os jogadores.

A colocação da sessão do jogo é um processo assíncrono. Após ter feito uma solicitação, você poderá deixar que ela seja bem-sucedida ou expire. Você também pode cancelar a solicitação a qualquer momento usando StopGameSessionPlacement. Para verificar o status da sua solicitação de colocação, ligue DescribeGameSessionPlacement.

Crie uma sessão do jogo em uma frota específica

Use CreateGameSessionpara criar uma nova sessão em uma frota especificada. Essa operação síncrona pode ser bem-sucedida ou falhar, dependendo dos recursos que a frota tem à disposição para hospedar uma nova sessão do jogo. Depois que a Amazon GameLift criar a nova sessão de jogo e devolver um GameSessionobjeto, você poderá juntar jogadores a ela.

Ao usar esta operação, forneça um ID de frota ou alias, um nome de sessão e um número máximo de jogadores simultâneos para o jogo. Você também pode incluir um conjunto de propriedades do jogo. As propriedades do jogo são definidas em uma matriz de pares de chave-valor.

Se você usar o GameLift recurso de proteção de recursos da Amazon para limitar o número de sessões de jogo que um jogador pode criar, forneça o ID de jogador do criador da sessão de jogo.

Adicionar um jogador a uma sessão de jogo

Adicione código para reservar um slot de jogador em uma sessão de jogo ativa e conecte clientes de jogos a sessões de jogos.

  1. Reserve um slot de jogador em uma sessão de jogo

    Para reservar um slot de jogador, crie uma nova sessão de jogador para a sessão de jogo. Para obter mais informações sobre sessões de jogadores, consulte Como os jogadores se conectam aos jogos.

    Há duas maneiras de criar novas sessões de jogador:

    A Amazon GameLift primeiro verifica se a sessão do jogo está aceitando novos jogadores e tem vagas disponíveis para jogadores. Se for bem-sucedido, a Amazon GameLift reserva um espaço para o jogador, cria a nova sessão de jogador e retorna um PlayerSessionobjeto. Esse objeto contém o nome DNS, o endereço IP e a porta que um cliente de jogo precisa para se conectar à sessão do jogo.

    Uma solicitação de sessão de jogador deve incluir um ID exclusivo para cada jogador. Para ter mais informações, consulte Gerar IDs de jogador.

    Uma sessão de jogador pode incluir um conjunto de dados de jogador personalizado. Esses dados são armazenados no objeto de sessão do player recém-criado, que você pode recuperar chamando DescribePlayerSessions(). A Amazon GameLift também passa esse objeto para o servidor do jogo quando o jogador se conecta diretamente à sessão do jogo. Ao solicitar várias sessões de jogadores, forneça uma sequência de dados do jogador para cada jogador mapeado para o ID do jogador na solicitação.

  2. Conecte-se a uma sessão do jogo

    Adicione código ao cliente do jogo para recuperar o objeto de PlayerSession, que contém as informações de conexão da sessão do jogo. Use essas informações para estabelecer uma conexão direta com o servidor.

    • Conecte-se usando a porta especificada e o nome DNS ou endereço IP atribuído ao processo do servidor.

    • Se a geração de certificados TLS estiver habilitada para suas frotas, deverá se conectar usando o nome DNS e a porta.

    • Se o seu servidor de jogo valida as conexões de entrada dos jogadores, faça referência ao ID da sessão do jogador.

    Depois de fazer a conexão, o processo do cliente e do servidor do jogo se comunicam diretamente sem envolver a Amazon GameLift. O servidor mantém comunicação com GameLift a Amazon para relatar o status da conexão do jogador, o status de saúde e muito mais. Se o servidor do jogo valida os novos jogadores, ele verifica se o ID da sessão do jogador corresponde a um espaço reservado na sessão do jogo e aceita ou nega a conexão do jogador. Quando o jogador se desconectar, o processo do servidor informará a conexão desfeita.

Use as propriedades da sessão do jogo

Seu cliente de jogo pode passar dados para uma sessão de jogo usando uma propriedade do jogo. As propriedades do jogo são pares de valores-chave que seu servidor de jogo pode adicionar, ler, listar e alterar. Você pode transmitir uma propriedade do jogo ao criar uma nova sessão de jogo ou posteriormente quando a sessão do jogo estiver ativa. Uma sessão de jogo pode conter até 16 propriedades do jogo. Você não pode excluir as propriedades do jogo.

Por exemplo, seu jogo oferece os seguintes níveis de dificuldade: Novice EasyIntermediate,, Expert e. Um jogador escolhe eEasy, em seguida, começa o jogo. Seu cliente de jogo solicita uma nova sessão de jogo da Amazon GameLift usando uma StartGameSessionPlacement ou CreateGameSession conforme explicado nas seções anteriores. Na solicitação, o cliente passa isso:{"Key": "Difficulty", "Value":"Easy"}.

Em resposta à solicitação, a Amazon GameLift cria um GameSession objeto que contém a propriedade do jogo especificada. A Amazon GameLift então instrui um servidor de jogo disponível a iniciar a nova sessão de jogo e passar o GameSession objeto. O servidor do jogo inicia uma sessão de jogo com um Difficulty deEasy.

Saiba mais