Como o Amazon GameLift FlexMatch funciona - 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á.

Como o Amazon GameLift FlexMatch funciona

Este tópico fornece uma visão geral do serviço Amazon GameLift FlexMatch, incluindo os principais componentes de um sistema FlexMatch e como eles interagem.

É possível usar o FlexMatch com jogos que usam a hospedagem gerenciada do Amazon GameLift ou com jogos que usam outra solução de hospedagem. Os jogos hospedados nos servidores do Amazon GameLift, incluindo servidores em tempo real, usam o serviço Amazon GameLift integrado para localizar automaticamente servidores de jogos disponíveis e iniciar sessões de jogo para os jogos. Os jogos que usam o FlexMatch como serviço independente, incluindo o Amazon GameLift FleetIQ, devem se coordenar com o sistema de hospedagem existente para atribuir recursos de hospedagem e iniciar sessões de jogo para os jogos.

Para obter orientação detalhada sobre como configurar o FlexMatch para seus jogos, consulte Conceitos básicos do FlexMatch.

Componentes de criação de jogos

Um sistema de criação de jogos FlexMatch inclui alguns ou todos os seguintes componentes.

Componentes do Amazon GameLift

Esses são os recursos do Amazon GameLift que controlam como o serviço FlexMatch executa criação de jogos para seu jogo. Eles são criados e mantidos usando as ferramentas do Amazon GameLift, incluindo o console e a CLI da AWS ou, alternativamente, usando programaticamente o SDK da AWS para o Amazon GameLift.

  • Configuração de criação de jogos do FlexMatch (também chamado de matchmaker): um matchmaker é um conjunto de valores de configuração que personaliza o processo de criação de jogos do seu jogo. Um jogo pode ter vários matchmakers, cada um configurado para diferentes modos de jogo ou experiências, conforme necessário. Quando seu jogo envia uma solicitação de criação de jogos para o FlexMatch, ele especifica qual matchmaker usar.

  • Conjunto de regras de criação de jogos do FlexMatch: um conjunto de regras contém todas as informações necessárias para avaliar os jogadores em possíveis jogos e aprovar ou rejeitar. O conjunto de regras define a estrutura da equipe de um jogo, declara os atributos do jogador que são usados para avaliação e fornece regras que descrevem os critérios para um jogo aceitável. As regras podem ser aplicadas a jogadores individuais, equipes ou a todo o jogo. Por exemplo, uma regra pode exigir que todos os jogadores do jogo escolham o mesmo mapa do jogo, ou pode exigir que todas as equipes tenham uma média de habilidade de jogador semelhante.

  • Fila de sessões de jogos do Amazon GameLift (somente para FlexMatch com hospedagem gerenciada pelo Amazon GameLift): uma fila de sessões de jogo localiza os recursos de hospedagem disponíveis e inicia uma nova sessão de jogo para o jogo. A configuração da fila determina onde o Amazon GameLift procura os recursos de hospedagem disponíveis e como selecionar o melhor host disponível para um jogo.

Componentes personalizados

Os componentes a seguir abrangem a funcionalidade necessária para um sistema FlexMatch completo que você deve implementar com base na arquitetura do seu jogo.

  • Interface do jogador para criação de jogos: essa interface permite que os jogadores participem de um jogo. No mínimo, ele inicia uma solicitação de criação de jogos por meio do componente de serviço de criação de jogos do cliente e fornece dados específicos do jogador, como nível de habilidade e dados de latência, conforme necessário para o processo de criação de jogos.

    nota

    Como prática recomendada, a comunicação com o serviço FlexMatch deve ser feita por um serviço de back-end, não por um cliente de jogo.

  • Serviço de criação de jogos do cliente: Este serviço preenche as solicitações de junção do jogador a partir da interface do jogador, gera solicitações de criação de jogos, e as envia para o serviço FlexMatch. Para solicitações em andamento, ele monitora eventos de criação de jogos, rastreia o status de criação de jogos e age conforme necessário. Dependendo de como você gerencia a hospedagem da sessão de jogo no seu jogo, esse serviço pode devolver as informações de conexão da sessão de jogo aos jogadores. Esse componente usa o SDK da AWS com a API do Amazon GameLift para se comunicar com o serviço do FlexMatch.

  • Serviço de posicionamento de jogos (somente para o FlexMatch como serviço independente): esse componente funciona com seu sistema de hospedagem de jogos existente para localizar os recursos de hospedagem disponíveis e iniciar novas sessões de jogo para jogos. O componente deve obter os resultados do criação de jogos e extrair as informações necessárias para iniciar uma nova sessão de jogo, incluindo IDs de jogadores, atributos e atribuições de equipe para todos os jogadores no jogo.

Processo de criação de jogos FlexMatch

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

Solicitar marcação de jogos 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 jogos do seu cliente envie uma solicitação de criação de jogos para o FlexMatch. A solicitação identifica o matchmaker 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 jogos para um jogador ou vários jogadores.

Adicione solicitações ao pool de criação de jogos

Quando o FlexMatch recebe a solicitação de criação de jogos, ele gera um ticket de criação de jogos e o adiciona ao pool de ingressos do matchmaker. 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 jogos para clientes é notificado periodicamente sobre eventos de criação de jogos, incluindo mudanças no status do ticket.

Criar um jogo

O matchmaker 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 jogos. 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 jogos 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.

Relatar resultados de criação de jogos

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

  • FlexMatch como serviço independente: seu jogo recebe os resultados do jogo em um evento de criação de jogos 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: os resultados do jogo são automaticamente passados para uma fila do Amazon GameLift: para posicionamento na sessão do jogo. O matchmaker determina qual fila é usada para posicionamento de sessão de jogo.

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 jogos, 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 jogos 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.

  • FlexMatch com uma solução de hospedagem do Amazon GameLift: 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 solicita que o servidor do jogo inicie uma nova sessão de jogo, transmitindo os resultados do criação de jogos e outros dados opcionais do jogo.

Conectar jogadores à jogo

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.

  • FlexMatch com uma solução de hospedagem do Amazon GameLift: 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.