Esta Orientação ajuda os desenvolvedores a testar, visualizar e otimizar seus jogos multijogador usando o Amazon GameLift Testing Toolkit. Com o kit de ferramentas, os desenvolvedores podem solucionar problemas, depurar e ajustar sua infraestrutura do Amazon GameLift. Esta Orientação oferece um recurso opcional de usar jogadores virtuais que executam o mesmo código que jogadores reais para que os desenvolvedores possam testar o sucesso do jogo antes de iniciá-lo na produção.
Diagrama de arquitetura
Etapa 1
O Amazon CloudFront fornece acesso ao console web do kit de ferramentas, que é armazenado no Amazon Simple Storage Service (Amazon S3). Os usuários do console do kit de ferramentas se autenticam com grupos de usuários do Amazon Cognito.
Etapa 2
O console web se conecta a uma API WebSocket do Amazon API Gateway, que chama uma função do AWS Lambda para processar solicitações e armazenar dados no Amazon DynamoDB.
Etapa 3
A função do Lambda pode consultar e atualizar diretamente a infraestrutura do Amazon GameLift.
Etapa 4
O receptor do jogo recebe eventos do GameLift pelo Amazon EventBridge e usa o AWS Step Functions para pesquisar e receber atualizações de infraestrutura do GameLift e do Amazon CloudWatch.
Etapa 5
O receptor do jogo envia dados agregados de eventos por meio de um barramento de eventos personalizado do EventBridge. Os eventos são recebidos por uma função do Lambda que armazena dados no DynamoDB e chama o API Gateway para enviar dados aos usuários conectados do console web para exibição.
Etapa 6
O usuário do console web também pode iniciar tarefas de jogadores virtuais no AWS Fargate para simular clientes de jogos reais.
Etapa 7
Cada tarefa do jogador virtual solicita uma identidade de convidado do Amazon Cognito e se conecta ao API Gateway de serviços do cliente do jogo para solicitar matchmaking.
Etapa 8
As funções do Lambda chamam o GameLift FlexMatch para iniciar o processo de matchmaking e realizar matches bem-sucedidos em uma frota usando filas de sessões de jogo.
Etapa 9
As tarefas do jogador virtual se conectam às instâncias da frota do GameLift para iniciar suas sessões de jogo.
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 melhores práticas 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
Tanto o kit de ferramentas quanto o jogo de exemplo são totalmente implantados com uma infraestrutura como código, o que reduz os erros causados por processos manuais e o esforço para implantar mudanças.
-
Segurança
A API do console web sem servidor no API Gateway é protegida com uma autenticação baseada no AWS Identity and Access Management (IAM) de um grupo de usuários do Amazon Cognito.
O back-end do jogo de exemplo sem servidor no API Gateway é protegido com uma autenticação baseada no IAM para validação segura da identidade de convidado do jogador.
Os servidores de jogos no GameLift só permitem acesso às portas usadas para a comunicação cliente-servidor. As funções de back-end do Lambda só têm acesso aos serviços de que precisam.
-
Confiabilidade
Os dados são armazenados em tabelas do DynamoDB, utilizando a alocação de capacidade sob demanda para escalar automaticamente com base nas mudanças na demanda.
Os serviços de soluções de back-end usam o Lambda, que escala as instâncias automaticamente.
O back-end do jogo de exemplo é compatível com o escalonamento automático baseado em metas no GameLift para lidar com as mudanças na demanda.
-
Eficiência de performance
Ao utilizar tecnologias gerenciadas e sem servidor, como o API Gateway, o Lambda, o DynamoDB e o Fargate, você paga apenas pelos recursos que usa e reduz o esforço operacional necessário para manter a solução.
A solução pode ser implantada em uma região de sua escolha e utiliza o CloudFront para reduzir a latência para o usuário final do console web.
-
Otimização de custos
As tarefas do Virtual Player podem ser iniciadas com o Fargate Spot para reduzir o custo dos testes.
Os back-ends do console web e de jogos de exemplo utilizam tecnologias sem servidor para que você pague apenas pelos recursos que usa.
O back-end do console web utiliza os recursos de escalabilidade nativos do Lambda e do API Gateway, com tabelas do DynamoDB usando alocação de capacidade sob demanda para garantir que os recursos atendam à demanda.
O back-end do jogo de exemplo é compatível com o escalonamento automático baseado em metas no GameLift para minimizar os recursos necessários.
-
Sustentabilidade
A orientação usa extensivamente serviços gerenciados, o que transfere a responsabilidade pela manutenção de uma utilização média alta para a AWS.
O back-end do jogo de exemplo é compatível com o escalonamento automático baseado em metas no GameLift para minimizar os recursos necessários. Ao agrupar as sessões de jogos em um número mínimo de instâncias do servidor, a utilização de recursos é mantida consistentemente alta.
Ao utilizar amplamente os serviços gerenciados, a orientação reduz seu impacto individual no meio ambiente.
Você pode reduzir ainda mais o impacto de sustentabilidade dos recursos não utilizados lançando servidores de jogos nas frotas Spot e tarefas do Virtual Player no Fargate Spot.
Recursos de implementação
O código de exemplo é um ponto de partida. Ele é validado para o setor, é prescritivo, mas não definitivo, e mostra o que há por trás de tudo para ajudar você a começar.
Conteúdo relacionado
Título
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.