View a markdown version of this page

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

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 Session-based jogos multijogador AWS ativada 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.