Processo de combinação do FlexMatch - Amazon GameLift Servers

Processo de combinação do FlexMatch

Este tópico descreve a sequência de eventos em um cenário básico de criação de partidas e as interações entre os vários componentes do seu jogo e o serviço FlexMatch.

Etapa 1: Solicitar criação de partidas para jogadores

Um jogador usando seu cliente de jogo clica no botão “Entrar no jogo”. Essa ação faz com que o serviço de criação de partidas do seu cliente envie uma solicitação de criação de partidas para o FlexMatch. A solicitação identifica o criador de partidas do FlexMatch a ser usado ao atender à solicitação. A solicitação também inclui informações do jogador que seu matchmaker personalizado exige, como nível de habilidade, preferências de jogo ou dados de latência geográfica. É possível fazer solicitações de criação de partidas para um jogador ou vários jogadores.

Etapa 2: Adicione solicitações ao pool de criação de partidas

Quando o FlexMatch recebe a solicitação de criação de partidas, ele gera um ticket de criação de partidas e o adiciona ao pool de ingressos do criador de partidas. O ticket permanece no grupo até que seja combinado ou um tempo limite máximo seja alcançado. Seu serviço de criação de partidas para clientes é notificado periodicamente sobre eventos de criação de partidas, incluindo mudanças no status do ticket.

Etapa 3: definir uma partida

O criador de partidas do FlexMatch executa continuamente o seguinte processo em todos os tickets do pool:

  1. O matchmaker classifica o pool por idade do ingresso, então começa a construir uma possível jogo começando com o ingresso mais antigo.

  2. O matchmaker adiciona um segundo ticket ao possível jogo e avalia o resultado de acordo com suas regras personalizadas de criação de partidas. Se o possível jogo for aprovado na avaliação, os jogadores do ticket serão designados para uma equipe.

  3. O matchmaker adiciona o próximo ticket em sequência e repete o processo de avaliação. Quando todas as vagas dos jogadores estiverem preenchidas, o jogo estará pronto.

O criação de partidas para jogos grandes (41 a 200 jogadores) usa uma versão modificada do processo descrito acima para que possa criar jogos em um período de tempo razoável. Em vez de avaliar cada ticket individualmente, o matchmaker divide um pool de ingressos pré-classificado em possíveis jogos e, em seguida, equilibra cada jogo com base na característica do jogador que você especificou. Por exemplo, um matchmaker pode pré-classificar os tickets com base em locais semelhantes de baixa latência e, em seguida, usar o balanceamento pós-jogo para garantir que as equipes sejam igualadas de acordo com a habilidade do jogador.

Etapa 4: Relatar resultados de criação de partidas

Quando um jogo aceitável é encontrado, todos os tickets combinados são atualizados e um evento bem-sucedido de criação de partidas é gerado para cada ingresso combinado.

  • FlexMatch como serviço independente: seu jogo recebe os resultados do jogo em um evento de criação de partidas bem-sucedido. Os dados do resultado incluem uma lista de todos os jogadores combinados e suas atribuições de equipe. Se suas solicitações de jogo contiverem informações sobre a latência do jogador, os resultados também sugerem uma localização geográfica ideal para o jogo.

  • FlexMatch com solução de hospedagem do Amazon GameLift Servers: os resultados do jogo são automaticamente passados para uma fila do Amazon GameLift Servers: para posicionamento na sessão do jogo. O matchmaker determina qual fila é usada para posicionamento de sessão de jogo.

Etapa 5: Inicie uma sessão de jogo para o jogo

Depois que um jogo proposto é formado com sucesso, uma nova sessão de jogo é iniciada. Seus servidores de jogos devem ser capazes de usar os dados do resultado do criação de partidas, incluindo IDs de jogadores e designações de equipe, ao configurar uma sessão de jogo para o jogo.

  • FlexMatch como um serviço independente: o serviço personalizado de posicionamento de jogos obtém dados de resultados de jogos de eventos de criação de partidas bem-sucedidos e se conecta ao seu sistema de posicionamento de sessões de jogo existente para localizar um recurso de hospedagem disponível para o jogo. Depois que um recurso de hospedagem é encontrado, o serviço de posicionamento de jogos se coordena com seu sistema de hospedagem existente para iniciar uma nova sessão de jogo e adquirir informações de conexão.

  • O FlexMatch com uma solução de hospedagem do Amazon GameLift Servers: a fila de sessões de jogo localiza o melhor servidor de jogos disponível para o jogo. Dependendo de como a fila está configurada, ela tenta posicionar a sessão do jogo com os recursos de menor custo e onde os jogadores terão baixa latência (se os dados de latência do jogador forem fornecidos). Depois que a sessão de jogo for concluída com sucesso, o serviço do Amazon GameLift Servers solicita que o servidor do jogo inicie uma nova sessão de jogo, transmitindo os resultados do criação de partidas e outros dados opcionais do jogo.

Etapa 6: Conectar jogadores à partida

Depois que uma sessão de jogo é iniciada, os jogadores se conectam à sessão, reivindicam sua designação de equipe e começam a jogar.

  • FlexMatch como serviço independente: o jogo usa o sistema de gerenciamento de sessão de jogo existente para fornecer informações de conexão aos jogadores.

  • O FlexMatch com uma solução de hospedagem do Amazon GameLift Servers: em um posicionamento bem-sucedido da sessão de jogo, o FlexMatch atualiza todos os tickets correspondentes com informações de conexão da sessão de jogo e um ID da sessão do jogador.