[Subtítulo para SEO]
Esta Orientação ajuda os desenvolvedores de jogos a criar jogos de mundos persistentes e a hospedar mundos virtuais na AWS usando o Amazon GameLift e componentes de back-end sem servidor. A arquitetura usa componentes gerenciados e sem servidor para reduzir o esforço operacional e a escala com base na demanda dos jogadores. Os desenvolvedores podem usar essa arquitetura para começar a desenvolver jogos de mundos virtuais no MacOS e no Windows. Esta Orientação inclui automação de infraestrutura como código (IaC), scripts de configuração para configurar dependências e um exemplo de implementação de cliente ou servidor Unity.
Diagrama de arquitetura
Observação: as etapas de A a C representam o back-end do sistema, e as etapas de 1 a 9 representam o front-end.
Etapa A
O Amazon Eventbridge aciona a função WorldManager do
AWS Lambda a cada minuto. A função verifica o status dos mundos existentes por meio da API do Amazon GameLift.
Etapa B
A função WorldManager do Lambda armazena o estado atual das sessões e dos mundos no Amazon DynamoDB para um acesso mais rápido ao back-end.
Etapa C
A função WorldManager consulta mundos configurados do DynamoDB e cria os mundos que não estão em execução chamando a API CreateGameSession do Amazon GameLift.
Etapa 1
O cliente do jogo solicita uma identidade e credenciais do banco de identidades do Amazon Cognito para assinar solicitações de API autorizadas.
Etapa 2
O cliente do jogo solicita a lista de mundos pelo Amazon API Gateway. O API Gateway aciona a função ListWorlds do Lambda que verifica as informações da sessão do jogo na região definida no DynamoDB.
Etapa 3
O cliente do jogo solicita entrar em um mundo específico em uma determinada região chamando a função JoinWorld do Lambda pelo API Gateway.
Etapa 4
A função do Lambda cria uma sessão de jogador para o jogador, aumenta a quantidade de jogadores desse mundo no DynamoDB e envia as informações de conexão para o cliente do jogo.
Etapa 5
O cliente se conecta à sessão do Amazon GameLift diretamente pelo protocolo de controle de transmissão (TCP) e envia o ID da sessão do jogador.
Etapa 6
A sessão do Amazon GameLift valida o ID da sessão do jogador com o kit de desenvolvimento de software (SDK) do servidor do Amazon GameLift.
Etapa 7
O Amazon GameLift verifica os dados de jogadores específicos do mundo e atualiza esses dados conforme necessário. Ele armazenará a localização mais recente do jogador após ele sair.
Etapa 8
A sessão do Amazon GameLift verifica o DynamoDB quanto ao encerramento programado e o encerra, se solicitado.
Etapa 9
O servidor do jogo envia logs e métricas para o Amazon CloudWatch usando o agente do CloudWatch.
Comece a usar
Implemente esta orientação
Pilares do Well-Architected
O AWS Well-Architected Framework ajuda a entender as vantagens e as desvantagens das decisões tomadas durante a criação de sistemas na nuvem. Os seis pilares do Framework permitem que você aprenda as melhores práticas de arquitetura, a fim de projetar e operar sistemas confiáveis, seguros, eficientes, econômicos e sustentáveis. Com a Ferramenta AWS Well-Architected, disponível gratuitamente no Console de Gerenciamento da AWS, você pode avaliar suas workloads em relação às práticas recomendadas ao responder a uma série de questões para cada pilar.
O diagrama de arquitetura acima exemplifica a criação de uma solução pautada nas melhores práticas do Well-Architected. Para ser totalmente Well-Architected, é preciso respeitar a maior quantidade possível das melhores práticas desse framework.
-
Excelência operacional
O AWS Cloud Development Kit (AWS CDK) gerencia implantações e atualizações usando o AWS CloudFormation para controlar as atualizações e reversões de recursos. Isso reduz os erros causados por alterações manuais na configuração.
Para atualizações da frota do Amazon GameLift, o CloudFormation criará uma frota de substituição. Ele aguardará que a substituição fique totalmente ativa para aceitar o tráfego antes de encerrar a frota antiga.
-
Segurança
O cliente do jogo usa o banco de identidades do Amazon Cognito para proteger o acesso aos serviços de back-end. Isso é feito ao assinar as solicitações com as credenciais do AWS Identity and Access Management (IAM) fornecidas pelo banco de identidades. Somente solicitações autenticadas são permitidas às APIs fornecidas hospedadas no API Gateway. Além disso, os clientes do jogo podem acessar somente os dados de sua própria conta.
-
Confiabilidade
Caso o servidor do jogo (e, consequentemente, o mundo do jogo) falhe, a arquitetura substituirá automaticamente o mundo por um novo, que terá acesso aos mesmos dados persistentes desse mundo específico.
-
Eficiência de performance
O Amazon GameLift permite a comunicação direta entre o cliente e o servidor para otimizar a performance quase em tempo real. A arquitetura permite que os desenvolvedores hospedem servidores de jogos em várias regiões da AWS, reduzindo a latência entre o servidor e o cliente do jogo.
-
Otimização de custos
A arquitetura utiliza componentes sem servidor, incluindo o API Gateway, o Lambda e o DynamoDB, que permitem reduzir os custos ao pagar pela quantidade exata de recursos com base no tráfego de jogadores. Além disso, o Amazon GameLift pode ser configurado para escalar com base na demanda, para que você sempre tenha um conjunto mínimo de recursos não utilizados em execução.
-
SustentabilidadeEssa arquitetura usa serviços gerenciados e sem servidor para executar somente os recursos necessários para a carga atual de jogadores, reduzindo seu impacto individual no meio ambiente.
Conteúdo relacionado
[Título]
Aviso de isenção de responsabilidade
O código de exemplo, as bibliotecas de software, as ferramentas de linha de comando, as provas de conceito, os modelos ou outra tecnologia relacionada (incluindo qualquer uma das anteriores fornecidas por nossa equipe) são fornecidos a você como Conteúdo da AWS nos termos do Contrato de Cliente da AWS ou o contrato por escrito pertinente entre você e a AWS (o que for aplicável). Você não deve usar esse Conteúdo da AWS em suas contas de produção, na produção ou em outros dados essenciais. Você é responsável por testar, proteger e otimizar o Conteúdo da AWS, como código de exemplo, conforme apropriado para uso em nível de produção com base em suas práticas e padrões específicos de controle de qualidade. A implantação de Conteúdo da AWS pode gerar cobranças da AWS para criar ou usar recursos cobráveis, como executar instâncias do Amazon EC2 ou usar armazenamento do Amazon S3.
As referências a serviços ou organizações terceirizadas nesta orientação não implicam em endosso, patrocínio ou afiliação entre a Amazon ou a AWS e terceiros. A orientação da AWS é um ponto de partida técnico, e você pode personalizar sua integração com serviços de terceiros ao implantar a arquitetura.