Visão geral do Game Servers

Game Servers é um serviço gerenciado de jogos criado para equipes de infraestrutura de jogos implantarem e gerenciarem facilmente 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, continue 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.

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 para uma região específica do Google Cloud. Se você quiser controlar onde os dados são armazenados ou quais são os domínios de failover, modifique a configuração padrão global.

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 de realm. Cada cluster de servidor de jogos corresponde a um namespace em um cluster do Kubernetes que executa o Agones registrado em um realm. Os clusters de servidor de jogos em um realm precisam ser considerados equivalentes a partir da perspectiva da experiência do usuário, em relação a medidas 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.

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 do 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.

Implementação

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 segmentar realms. Por padrão, a implementação atribui uma configuração de servidor de jogos a todos os realms. Para testes 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, por meio da qual é possível controlar recursos que descrevem a implantação usando chamadas de API ou a ferramenta de linha de comando gcloud, incluindo:

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

Para permitir que o Game Servers gerencie recursos, crie uma conta de serviço do Kubernetes com acesso limitado apenas aos clusters do Agones. O Game Servers usa essa conta para enviar alterações de configuração para clusters do Kubernetes globalmente.

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