Servidores de sessão de jogo autônomos com um backend de tecnologia sem servidor - Amazon GameLift Servers

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

Servidores de sessão de jogo autônomos com um backend de tecnologia sem servidor

Ao usar uma arquitetura de serviço ao cliente de tecnologia sem servidor, o backend pode visualizar o status dos tickets de criação de partidas em um banco de dados altamente escalável, em vez de acessar diretamente a API do Amazon GameLift Servers.

O diagrama a seguir mostra um back-end sem servidor criado com o Serviços da AWS qual os jogadores são colocados em jogos executados em frotas. Amazon GameLift Servers A lista a seguir fornece uma descrição para cada texto explicativo numerado no diagrama. Para experimentar este exemplo, consulte Hospedagem de jogos baseada em sessão multijogador ativada. AWS GitHub

Exemplo de arquitetura de tecnologia sem servidor que combina jogadores com jogos executados em frotas do Amazon GameLift Servers.
  1. O cliente do jogo solicita uma identidade de usuário do Amazon Cognito a partir de um banco de identidades do Amazon Cognito.

  2. O cliente do jogo recebe credenciais de acesso temporárias e solicita uma sessão de jogo por meio de uma API do Amazon API Gateway.

  3. O API Gateway invoca uma AWS Lambda função.

  4. A função do Lambda solicita dados do player de uma tabela NoSQL do Amazon DynamoDB. A função fornece a identidade do Amazon Cognito nos dados de contexto da solicitação.

  5. A função do Lambda solicita uma correspondência por meio de criação de partidas do Amazon GameLift Servers FlexMatch.

  6. FlexMatchcombina um grupo de jogadores com latência adequada e, em seguida, solicita a colocação da sessão de jogo por meio de uma Amazon GameLift Servers fila. A fila tem frotas com um ou mais Região da AWS locais nela.

  7. Após o Amazon GameLift Servers colocar a sessão em um dos locais da frota, o Amazon GameLift Servers envia uma notificação de evento a um tópico do Amazon Simple Notification Service (Amazon SNS).

  8. Uma função do Lambda recebe o evento do Amazon SNS e o processa.

  9. Se o ticket de criação de partidas for um evento de MatchmakingSucceeded, a função do Lambda grava o resultado, junto com a porta e o endereço IP do servidor do jogo, em uma tabela do DynamoDB.

  10. O cliente do jogo faz uma solicitação assinada ao API Gateway para visualizar o status do ticket de criação de partidas em um intervalo específico.

  11. O API Gateway usa uma função do Lambda que verifica o status do ticket de criação de partidas.

  12. A função do Lambda verifica a tabela do DynamoDB para visualizar se o ticket foi bem-sucedido. Se for bem-sucedida, a função envia a porta e o endereço IP do servidor do jogo, junto com o ID da sessão do jogador, de volta ao cliente. Se o ticket não for bem-sucedido, a função enviará uma resposta verificando se a partida ainda não está pronta.

  13. O cliente do jogo se conecta ao servidor do jogo usando TCP ou UDP usando a porta e o endereço IP fornecidos pelo serviço de backend. O cliente do jogo então envia o ID da sessão do jogador para o servidor do jogo, que então valida o ID usando o Server SDK do Amazon GameLift Servers.