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

Como o Amazon GameLift FlexMatch funciona

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

Você pode usar o FlexMatch com jogos que usam hospedagem gerenciada GameLift ou com jogos que usam outra solução de hospedagem. Jogos hospedados em servidores GameLift, incluindo Realtime Servers, usam o serviço GameLift integrado para localizar automaticamente os servidores de jogos disponíveis e iniciar sessões de jogo para as partidas. Os jogos que usam o FlexMatch como um serviço autônomo, incluindo o GameLift FleetIQ, devem se coordenar com o sistema de hospedagem existente para atribuir recursos de hospedagem e iniciar sessões de jogo para as partidas.

Para obter orientações detalhadas sobre como configurar o FlexMatch para seus jogos, consulteConceitos básicos do FlexMatch.

Componentes de marcação de jogos

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

Componentes do GameLift

Esses são recursos do GameLift que controlam como o serviço FlexMatch executa o pareamento para o seu jogo. Eles são criados e mantidos usando as ferramentas GameLift, incluindo o console e oAWSCLI ou, alternativamente, usando programaticamente oAWSSDK para GameLift.

  • Configuração de matchmaking FlexMatch (também chamada de matchmaker)— Um matchmaker é um conjunto de valores de configuração que personaliza o processo de matchmaking para o seu jogo. Um jogo pode ter vários marcadores de jogos, cada um configurado para diferentes modos de jogo ou experiências conforme necessário. Quando o jogo envia uma solicitação de matchmaking 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 jogadores para possíveis partidas e aprovar ou rejeitar. O conjunto de regras define a estrutura de equipe de uma partida, declara os atributos do jogador que são usados para avaliação e fornece regras que descrevem os critérios para uma partida aceitável. As regras podem ser aplicadas a jogadores individuais, a equipes ou a correspondência inteira. Por exemplo, uma regra pode exigir que todos os jogadores da correspondência escolham o mesmo mapa de jogo ou pode exigir que todas as equipes tenham uma média de habilidade de jogador semelhante.

  • Fila de sessão de jogos GameLift (somente para FlexMatch com hospedagem gerenciada GameLift)— Uma fila de sessão de jogo localiza os recursos de hospedagem disponíveis e inicia uma nova sessão de jogo para a correspondência. A configuração da fila determina onde o GameLift procura os recursos de hospedagem disponíveis e como selecionar o melhor host disponível para uma correspondência.

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 matchmaking— Esta interface permite que os jogadores participem de uma partida. No mínimo, ele inicia uma solicitação de pareamento por meio do componente de serviço de matchmaking do cliente e fornece dados específicos do jogador, como dados de nível de habilidade e latência, conforme necessário para o processo de matchmaking.

    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 de um cliente de jogo.

  • Serviço de marcação de jogos do cliente— Este serviço coloca as solicitações de ingresso do jogador a partir da interface do jogador, gera solicitações de pareamento e as envia para o serviço FlexMatch. Para solicitações em andamento, ele monitora eventos de matchmaking, rastreia o status do pareamento e toma medidas conforme necessário. Dependendo de como você gerencia a hospedagem de sessões de jogo em seu jogo, esse serviço pode retornar informações de conexão de sessão de jogo aos jogadores. Este componente usa oAWSSDK com a API GameLift para se comunicar com o serviço FlexMatch.

  • Serviço de posicionamento de correspondência (somente para FlexMatch como um serviço autônomo)— Este componente funciona com seu sistema de hospedagem de jogos existente para localizar recursos de hospedagem disponíveis e iniciar novas sessões de jogos para partidas. O componente deve obter os resultados do pareamento e extrair as informações necessárias para iniciar uma nova sessão de jogo, incluindo IDs de jogador, atributos e atribuições de equipe para todos os jogadores da partida.

Processo de marcar jogos do FlexMatch

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

Solicitar marcação de jogos para jogadores

Um jogador que usa o cliente do jogo clica em um botão “Entrar no jogo”. Essa ação faz com que o serviço de pareamento do cliente envie uma solicitação de pareamento para o FlexMatch. A solicitação identifica o matchmaker FlexMatch a ser usado ao atender a 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. Você pode fazer pedidos de matchmaking para um jogador ou vários jogadores.

Adicionar solicitações ao pool de matchmaking

Quando o FlexMatch recebe a solicitação de pareamento, ele gera um ticket de matchmaking e o adiciona ao pool de tickets do matchmaker. O tíquete permanece no grupo até que ele seja correspondido ou seja atingido um limite máximo de tempo. Seu serviço de matchmaking do cliente é notificado periodicamente sobre eventos de matchmaking, incluindo alterações no status do ticket.

Construa uma partida

Seu matchmaker FlexMatch executa continuamente o seguinte processo em todos os tickets em seu pool:

  1. O matchmaker classifica a piscina por idade do ingresso e começa a construir uma partida potencial começando com o ingresso mais antigo.

  2. O matchmaker adiciona um segundo ticket à possível correspondência e avalia o resultado em relação às suas regras de matchmaking personalizadas. Se a partida potencial passar na avaliação, os jogadores do ingresso serão atribuídos a uma equipe.

  3. O matchmaker adiciona o próximo ticket em sequência e repete o processo de avaliação. Quando todos os slots de jogadores tiverem sido preenchidos, a partida estará pronta.

O pareamento para partidas grandes (41 a 200 jogadores) usa uma versão modificada do processo descrito acima para que ele possa construir partidas em um período de tempo razoável. Em vez de avaliar cada tíquete individualmente, o matchmaker divide um pool de ingressos pré-classificado em partidas potenciais e, em seguida, equilibra cada partida com base em uma característica de jogador que você especificou. Por exemplo, um matchmaker pode pré-classificar os tickets com base em locais de baixa latência semelhantes e, em seguida, usar o balanceamento pós-partida para garantir que as equipes sejam uniformemente correspondidas pela habilidade do jogador.

Relate os resultados do marcação de jogos

Quando uma correspondência aceitável é encontrada, todos os ingressos correspondentes são atualizados e um evento de matchmaking bem-sucedido é gerado para cada ingresso correspondente.

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

  • FlexMatch com uma solução de hospedagem GameLift: Os resultados da correspondência são passados automaticamente para uma fila do GameLift para posicionamento da sessão do jogo. O matchmaker determina qual fila é usada para posicionamento da sessão do jogo.

Inicie uma sessão de jogo para a partida

Depois que uma partida proposta é formada com sucesso, uma nova sessão de jogo é iniciada. Seus servidores de jogo devem ser capazes de usar os dados do resultado do pareamento, incluindo IDs de jogadores e atribuições de equipe, ao configurar uma sessão de jogo para a partida.

  • O FlexMatch como um serviço independente: Seu serviço de posicionamento de correspondência personalizado obtém dados de resultados de correspondência de eventos bem-sucedidos de matchmaking e se conecta ao seu sistema de posicionamento de sessão de jogo existente para localizar um recurso de hospedagem disponível para a partida. Depois que um recurso de hospedagem é encontrado, o serviço de posicionamento de correspondência 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 GameLift: A fila de sessão de jogo localiza o melhor servidor de jogo disponível para a correspondência. Dependendo de como a fila está configurada, ela tenta colocar 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). Uma vez que a sessão do jogo é colocada com sucesso, o serviço GameLift solicita que o servidor do jogo inicie uma nova sessão de jogo, transmitindo os resultados da criação de partidas e outros dados opcionais do jogo.

Connect jogadores à partida

Depois que uma sessão de jogo é iniciada, os jogadores se conectam à sessão, reivindicam a atribuição da equipe e iniciam a jogabilidade.

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

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