Adicione o FlexMatch a um servidor de jogos hospedado no Amazon Gamelift - 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 o FlexMatch a um servidor de jogos hospedado no Amazon Gamelift

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

As informações neste tópico pressupõem que você integrou com sucesso o servidor do SDK do Amazon GameLift ao seu projeto de servidor de jogos, como descrito em Adicionar o Amazon GameLift ao seu 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 necessário para lidar com jogos configurados com o FlexMatch.

Configurar seu servidor de jogos para marcação 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 iniciar uma nova sessão de jogo, o Amazon GameLift envia uma solicitação onStartGameSession() para seu servidor de jogos com um objeto de sessão de jogo (consulte GameSession). 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 Iniciar 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 (consulte Validar 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 API do servidor RemovePlayerSession() para informar os jogadores que deixaram o jogo (consulte Informar sessões de jogadores finalizadas). Essa etapa é importante se você estiver usando o FlexMatch para alocar 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 alocação do FlexMatch em Preencher jogos existentes com o 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 Preencher jogos existentes com o 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 do Amazon 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 as sessões de jogos criadas com o FlexMatch, o objeto GameSession 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 marcação de jogos, que identifica o nome da configuração, a conta e a região da AWS. 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}} } }] }] }