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á.
Serverless-based arquitetura de back-end de jogos
Muitos desenvolvedores de jogos não querem gerenciar a infraestrutura e, em vez disso, preferem criar seus jogos usando tecnologias que lhes permitam se concentrar no software. Uma arquitetura sem servidor é recomendada nesse cenário porque permite criar e lançar recursos mais rapidamente e com menos sobrecarga operacional. As arquiteturas sem servidor são projetadas usando serviços em nuvem que podem ser escalados dinamicamente com base na demanda, sem a necessidade de configurar, gerenciar e escalar servidores. A arquitetura de referência a seguir ilustra como criar um jogo usando uma arquitetura sem servidor.
Serverless-based arquitetura de referência de back-end de jogos
Essa arquitetura de referência ilustra um jogo de perguntas e respostas baseado na web que oferece recursos para um jogador e vários jogadores.
-
Autenticação do jogador: os jogadores se autenticam usando o Amazon Cognito, que fornece autenticação segura com um diretório de usuários para gerenciamento da identidade do jogador.
-
Lógica de jogo como funções sem servidor: os recursos do jogo e a lógica de negócios de back-end são executados como AWS Lambda funções iniciadas em resposta a eventos, o que mantém os custos baixos porque você paga apenas quando a função é executada. O Lambda oferece a flexibilidade de escrever cada recurso do jogo como um microsserviço separado usando uma linguagem de programação de sua escolha. Por exemplo, você pode optar por desenvolver funções do.NET Lambda se tiver experiência no uso de C# para criar jogos Unity, ou pode optar por desenvolver funções Node.js Lambda se desejar programar um front-end e um back-end para um jogo baseado na web, ambos em. JavaScript
-
Armazenamento de dados NoSQL para dados de jogos e jogadores: use o DynamoDB para armazenar seus dados de jogadores e jogos, pois ele foi criado especificamente para armazenar grandes quantidades de dados de microsserviços. Conforme ilustrado nessa arquitetura, é uma prática recomendada usar armazenamentos de dados separados para as necessidades de armazenamento de dados de cada recurso do jogo, o que facilita o monitoramento e o gerenciamento dos recursos de forma independente. Isso também cria limites de separação se a propriedade de um recurso ou serviço mudar em sua equipe. Nessa arquitetura de referência, as tabelas do DynamoDB são usadas para armazenar dados como estado da conexão, detalhes do jogo, progresso do jogador e informações da tabela de classificação.
-
Jogabilidade para um jogador: os recursos para um jogador permitem que os jogadores realizem ações como selecionar e jogar um jogo e visualizar a tabela de classificação. Esses recursos são implementados como serviços de back-end RESTful hospedados com uma API HTTP do Amazon API Gateway que invoca a função Lambda apropriada para obter e definir dados nas tabelas do DynamoDB. Quando o jogo termina, o back-end também envia notificações aos tópicos do Amazon SNS que iniciam as funções do Lambda de forma assíncrona para armazenar o progresso e as estatísticas do jogador.
-
Jogabilidade multijogador: os recursos do jogo multijogador exigem que os jogadores possam interagir com o jogo para comunicação ponto a ponto, bem como transmitir e receber atualizações de outros jogadores conectados. Uma WebSockets implementação é adequada para comunicação ponto a ponto em um jogo leve, como trivialidades. Os jogadores podem estabelecer uma WebSockets conexão com o Amazon API Gateway WebSockets, que gerencia a conexão e invoca as funções do Lambda somente quando há mensagens para enviar ou receber para um jogador. Para casos de uso em que a comunicação um-para-muitos é necessária entre jogadores, AWS IoT Core fornece suporte para mensagens usando MQTT, WebSockets o que permite que os clientes se inscrevam em tópicos e ajam de acordo com as mensagens que recebem. Nessa arquitetura, WebSockets mais de MQTT são usados para oferecer suporte a casos de uso, como transmitir atualizações ao vivo no jogo e fazer perguntas aos jogadores conectados. Como alternativa AWS IoT, você pode escolher o Redis Pub/Sub para entrega de mensagens ou o Redis Streams se precisar de retenção de mensagens.
-
Use funções do VPC-enabled Lambda para acessar recursos em suas sub-redes privadas: configure as funções do VPC-enabled Lambda para acessar recursos nas sub-redes privadas da sua VPC, como a Amazon, que é usada para reduzir os tempos de consulta para conjuntos de dados de baixa latência ElastiCache, como tabelas de classificação ao vivo.
Para obter mais informações, consulte Orientações para hospedagem personalizada de back-end de jogos em AWS