Adicionar o FlexMatch a um servidor de jogos hospedado pelo Gamelift - Amazônia 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á.

Adicionar o FlexMatch a um servidor de jogos hospedado pelo Gamelift

Este tópico descreve como adicionar suporte à marcação de jogos FlexMatch a servidores de jogos personalizados que estão usando a hospedagem gerenciada do GameLift. Para saber mais sobre como adicionar o FlexMatch aos jogos, consulte os seguintes tópicos:

As informações neste tópico pressupõem que você integrou com sucesso o GameLift Server SDK ao seu projeto de servidor de jogos, como descrito emAdicionar o GameLift ao servidor de jogos. Com essa tarefa concluída, você tem a maioria dos mecanismos de que precisa. As seções neste tópico abrangem o trabalho restante para lidar com jogos configurados com o FlexMatch.

Configure o servidor para marcações de jogos

Para configurar seu servidor para lidar com jogos correspondentes, conclua as tarefas a seguir.

  1. Iniciar sessões de jogos criadas com a marcação de jogos. Para solicitar uma nova sessão de jogo, o GameLift envia umonStartGameSession()Solicitar o servidor de jogos com um objeto de sessão de jogo (consulteGameSession). Seu servidor de jogos usa as informações da sessão do jogo, incluindo dados personalizados do jogo, para iniciar a sessão solicitada. Para obter mais detalhes, consulte .Inicie uma sessão de jogo.

    Para jogos correspondentes, o objeto de sessão do jogo também contém um conjunto de dados do marcador de jogos. Os dados do marcador de jogos incluem informações de que o seu servidor de jogos precisa para iniciar uma nova sessão de jogo para a correspondência. Isso inclui a estrutura da equipe da correspondência, as atribuições da equipe e alguns atributos de jogador que podem ser relevantes para seu jogo. Por exemplo, seu jogo pode desbloquear determinados recursos ou níveis com base no nível de habilidade médio por jogador, ou escolher um mapa com base nas preferências dos jogadores. Saiba mais em Trabalhar com os dados do marcador de jogos.

  2. Gerenciar conexões de jogador. Ao se conectar a um jogo, um cliente de jogos consulta um ID de jogador e um ID de sessão do jogador (consulteValidar a um novo jogador). O servidor de jogos usa o ID do jogador para associar um jogador novo às informações do jogador nos dados do marcador. Os dados do marcador de jogos identificam a atribuição da equipe do jogador e podem fornecer outras informações para representar corretamente o jogador no jogo.

  3. Informar quando os jogadores deixam um jogo. Verifique se seu servidor de jogos está chamando a Server APIRemovePlayerSession()para denunciar jogadores descartados (consulteDenunciar o término da sessão). Essa etapa é importante se você estiver usando o FlexMatch para preencher slots vazios em jogos existentes. Ele é essencial se o jogo iniciar solicitações de alocação por meio de um serviço de jogo no lado do cliente. Saiba mais sobre a implementação da transferência do FlexMatch noEnchimento de jogos existentes com FlexMatch.

  4. Solicitar novos jogadores para sessões de jogo existentes correspondentes (opcional). Decida como você quer preencher seus jogos correspondentes. Se seus marcadores de jogos estiverem com o modo de alocação definido como "manual", é recomendável adicionar o suporte de alocação ao seu jogo. Se seus marcadores de jogos estiverem com o modo de alocação definido como "automático", é recomendável desativar essa função nas sessões de jogos individuais. Por exemplo, talvez você queira interromper uma sessão de alocação de jogo uma vez após determinado ponto do jogo ser atingido. Saiba mais sobre o gerenciamento de correspondência de alocação em Enchimento de jogos existentes com FlexMatch.

Trabalhar com os dados do marcador de jogos

Seu servidor de jogos deve ser capaz de reconhecer e usar as informações do jogo em um objeto GameSession. O serviço GameLift transmite esses objetos para seu servidor de jogos sempre que uma sessão de jogo é iniciada ou atualizada. As principais informações da sessão de jogo incluem ID e nome da sessão, número máximo de jogadores, informações sobre a conexão e dados personalizados do jogo (se fornecidos).

Para sessões de jogos que são criadas usando o FlexMatch, oGameSessionO objeto também contém um conjunto de dados do marcador de jogos. Além de um ID de correspondência exclusiva, ele identifica o marcador de jogos que criou a correspondência e descreve as equipes, as atribuições das equipes e os jogadores. Ele inclui os atributos de jogador da solicitação de marcação de jogos original (consulte o objeto Player). Ele não inclui a latência do jogador. Se você precisar dos dados de latência dos jogadores atuais, como, por exemplo, para alocação de correspondência, recomendamos obter dados atualizados.

nota

Os dados do marcador de jogos especificam o ARN completo da configuração de jogos, que identifica o nome da configuração,AWSconta e região. Ao solicitar a alocação de correspondência de um cliente serviço de jogos, somente o nome da configuração é necessário. É possível extrair o nome da configuração analisando a string subsequente a ":matchmakingconfiguration/". No exemplo mostrado, o nome da configuração da marcação de jogos é "MyMatchmakerConfig".

O JSON a seguir mostra um típico conjunto de dados do marcador de jogos. Este exemplo descreve um jogo de dois jogadores, no qual a correspondência dos jogadores é feita com base nas classificações de habilidades e nos maiores níveis alcançados. O marcador de jogos também considera o personagem e garante que os jogadores correspondentes têm pelo menos uma preferência de mapa em comum. Nesse cenário, o servidor de jogos deve ser capaz de determinar qual mapa é o preferido e usá-lo na sessão do jogo.

{ "matchId":"1111aaaa-22bb-33cc-44dd-5555eeee66ff", "matchmakingConfigurationArn":"arn:aws:gamelift:us-west-2:111122223333:matchmakingconfiguration/MyMatchmakerConfig", "teams":[ {"name":"attacker", "players":[ {"playerId":"4444dddd-55ee-66ff-77aa-8888bbbb99cc", "attributes":{ "skills":{ "attributeType":"STRING_DOUBLE_MAP", "valueAttribute":{"Body":10.0,"Mind":12.0,"Heart":15.0,"Soul":33.0}} } }] },{ "name":"defender", "players":[{ "playerId":"3333cccc-44dd-55ee-66ff-7777aaaa88bb", "attributes":{ "skills":{ "attributeType":"STRING_DOUBLE_MAP", "valueAttribute":{"Body":11.0,"Mind":12.0,"Heart":11.0,"Soul":40.0}} } }] }] }