Visão geral do Game Servers

Game Servers é um serviço gerenciado de jogos criado para equipes de infraestrutura de jogos implantarem e gerenciarem as frotas globais de servidores dedicados de jogos. O Game Servers fornece gerenciamento de clusters de servidores de jogos usando o Kubernetes para orquestração de contêineres e Agones para orquestração da frota de servidores de jogos e gerenciamento de ciclo de vida. É possível conectar e desconectar clusters do gerenciamento pelo Game Servers a qualquer momento sem causar impacto em sessões de jogos existentes. Depois de desconectar um cluster, você pode continuar a executar uma instalação de código aberto do Agones.

Controle os clusters de servidores de jogos usando configurações globais do servidor de jogos, definindo regras para o local e o número de servidores a serem ativados e quais binários do servidor de jogos implantar. O Game Servers cria as frotas do Agones automaticamente com base nas implementações gerenciadas centralmente, garantindo que elas sejam implementadas de maneira automática e segura em todos os clusters gerenciados. Em particular, as sessões de jogo em andamento nunca são interrompidas porque um servidor de jogo em uso nunca é interrompido de modo repentino.

Recursos do Game Servers

Esta seção descreve os principais recursos com que você interage para gerenciar o Game Servers. A figura a seguir mostra como esses recursos são usados para implantar um projeto de jogo.

Uma amostra de implantação de projeto de jogo
Figura 1. Exemplo de implantação de projeto de jogo no Game Servers

Projeto do Game Servers

Um único ambiente, como produção ou teste, e é um projeto do Google Cloud com o Game Servers ativado. Para melhorar o isolamento e a segurança, normalmente você gerencia um único título de jogo usando vários projetos do Google Cloud, como My Game Production e My Game Testing.

Local

O local define o escopo de um recurso e o padrão é global, que fornece a maior disponibilidade e mostra onde os dados são redundantes em várias regiões do Google Cloud. É possível definir manualmente o local de um recurso como uma região do Google Cloud específica (nem todas as regiões são suportadas). Se você quiser controlar onde os dados são armazenados ou quais são seus domínios de failover, modifique a configuração padrão global por um dos seguintes locais suportados:

Locais suportados

  • asia-east1
  • asia-east2
  • asia-northeast1
  • asia-northeast2
  • asia-northeast3
  • asia-south1
  • asia-southeast1
  • asia-southeast2
  • australia-southeast1
  • europe-central2
  • europe-north1
  • europe-west1
  • europe-west2
  • europe-west3
  • europe-west4
  • europe-west6
  • global
  • northamerica-northeast1
  • southamerica-east1
  • us-central1
  • us-east1
  • us-east4
  • us-west1
  • us-west2

Realm

O Game Servers foi projetado para aceitar clusters do Kubernetes em execução no Google Kubernetes Engine. Para desenvolver os conceitos de regiões e zonas do Google Cloud, o Game Servers introduz o conceito de meta região de realms. O realm é um agrupamento de clusters de servidores de jogos definido pelo usuário com base nos requisitos de latência do jogo para inserções de jogadores. Os realms têm um fuso horário atribuído a eles que permite que as configurações de escalonamento baseadas em tempo sejam usadas em clusters dentro do realm. Realms existem dentro de um local.

Cluster do servidor de jogos

Um cluster de servidor de jogos é um sub-recurso de um recurso do realm. Cada cluster de servidor de jogo corresponde a um namespace em um cluster do Kubernetes executando Agones registrado em um realm. Os clusters de servidores de jogo em um realm precisam ser considerados equivalentes a partir da perspectiva da experiência do usuário, em relação a métricas como latência ou desempenho de computação. Para usar um namespace diferente de default, é necessário criar o namespace no Kubernetes e configurar o Agones para usá-lo.

Depois de criar um cluster do servidor de jogos, o Game Servers cria frotas do Agones e escalonadores automáticos, conforme necessário. O Game Servers não altera as frotas do Agones criadas manualmente.

Depois que você exclui um cluster de servidor de jogos, o Game Servers não exclui os recursos do cluster, incluindo as frotas e os escalonadores automáticos do Agones criados pelo Game Servers.

Implantação do servidor de jogos

A implantação do servidor de jogos é um registro global de uma versão do software do servidor que pode ser implantada em qualquer cluster de servidor de jogos do mundo. Uma implantação de servidor de jogos é o recurso pai dos recursos de configuração e implementação do servidor de jogos.

Como implantar diferentes configurações em diferentes realms
Figura 2. A versão 1.0 do Config foi lançada para os realms dos EUA, e a versão 1.1 foi lançada para os realms da Europa e do Japão.

Configuração do servidor de jogos

A configuração do servidor de jogos é um sub-recurso de um recurso de implantação do servidor de jogos que especifica a contagem, o buffer e a versão do servidor de jogos. Você define políticas de escalonamento na configuração do servidor de jogos. As políticas de escalonamento podem ser estáticas ou baseadas no tempo, conforme ilustrado pelos exemplos a seguir:

  • Durante as horas de pico, é necessário que haja servidores suficientes para aceitar N alocações por minuto. Nos períodos fora das horas de pico, M alocações por minuto.
  • Para eventos de jogos planejados, aumente a capacidade reservada em N% para um intervalo de data e hora.

Lançamento

A implementação é um sub-recurso de um recurso de implantação de servidor de jogos que mapeia as configurações do servidor de jogos para atingir realms. Por padrão, a implementação atribui uma configuração de servidor de jogos a todos os realms. Para teste A/B e canário, você pode modificar realms específicos para receber uma configuração de servidor de jogos alternativa.

Arquitetura

O Game Servers expõe uma API de plano de controle disponível globalmente, em que é possível controlar recursos que descrevem a implantação usando chamadas de API, o Console do Google Cloud ou a Google Cloud CLI, incluindo:

  • Como criar e modificar realms.
  • Como criar, registrar e modificar clusters de servidor de jogo em realms.
  • Como criar, implantar e atualizar implantações, configurações e lançamentos do servidor de jogos

Uma conta de serviço do Kubernetes precisa estar em vigor para que a Agones gerencie servidores de jogos no namespace que você passa para o Game Servers ao criar um cluster do Game Servers. Se você estiver usando um namespace diferente do padrão, crie a conta de serviço como parte da instalação do helm.

Uma conta de serviço do projeto do Google Cloud precisa estar em vigor para que o Game Servers se conecte aos clusters do Agones. Essa conta de serviço é criada automaticamente quando você cria um recurso, como um realm ou uma implantação.

Cada implantação de servidor de jogos descreve os parâmetros do servidor de jogos, equivalentes a um GameServerSpec do Agones, e especifica uma política para direcionar clusters de servidor de jogos em que as frotas de servidores de jogos que executam uma versão específica precisam ser criadas. Também é possível definir preferências individuais de escalonamento de cluster usando políticas.

A seguir