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 FlexMatch a um servidor GameLift de jogos hospedado pela Amazon
Este tópico descreve como adicionar suporte de FlexMatch matchmaking a servidores de jogos personalizados que estão usando hospedagem GameLift gerenciada da Amazon. Para saber mais sobre como adicionar FlexMatch aos seus jogos, consulte estes tópicos:
As informações neste tópico pressupõem que você integrou com êxito o Amazon GameLift Server SDK em seu projeto de servidor de jogos, conforme descrito em Adicionar Amazon GameLift ao seu servidor de jogos. Com essa tarefa concluída, você tem a maioria dos mecanismos de que precisa. As seções deste tópico abrangem o trabalho restante para lidar com jogos configurados com FlexMatch.
Configure seu servidor de jogo para matchmaking
Para configurar seu servidor para lidar com jogos correspondentes, conclua as tarefas a seguir.
-
Iniciar sessões de jogos criadas com a marcação de jogos. Para solicitar uma nova sessão de jogo, a Amazon GameLift envia uma
onStartGameSession()
solicitação ao seu servidor de jogo 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 Trabalhe com dados do matchmaker.
-
Gerenciar conexões de jogador. Ao se conectar a um jogo compatível, um cliente do jogo faz referência a 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.
-
Informar quando os jogadores deixam um jogo. Certifique-se de que seu servidor de jogo esteja chamando a API do servidor
RemovePlayerSession()
para denunciar a perda de jogadores (consulte Relatar o término de uma sessão de um jogador). Essa etapa é importante se você estiver usando o FlexMatch preenchimento para preencher espaços 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 como implementar o FlexMatch preenchimento emPreencha os jogos existentes com FlexMatch. -
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 Preencha os jogos existentes com FlexMatch.
Trabalhe com dados do matchmaker
Seu servidor de jogo deve ser capaz de reconhecer e usar as informações do jogo em um GameSessionobjeto. O GameLift serviço da Amazon passa esses objetos para seu servidor de jogo 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 jogo criadas usando FlexMatch, oGameSession
objeto também contém um conjunto de dados do matchmaker. 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 Matchmaker especificam o ARN completo da configuração de matchmaking, que identifica o nome da configuração,AWS conta, 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 de matchmaking é "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}} } }] }] }