View a markdown version of this page

GAMEPERF05-BP02 Mova tarefas de computação para fluxos de trabalho assíncronos non-latency-sensitive - Lente da indústria de jogos

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

GAMEPERF05-BP02 Mova tarefas de computação para fluxos de trabalho assíncronos non-latency-sensitive

Ao otimizar o desempenho do seu jogo, é importante ter em mente que somente algumas das interações entre o cliente e o back-end do jogo devem ser realizadas de forma síncrona. Você deve considerar cada recurso do ponto de vista da experiência do jogador e determinar se determinadas interações exigem comunicações síncronas, que são bloqueadoras e consomem muitos recursos, ou se esses recursos podem ser implementados de forma assíncrona. Ao implementar chamadas de rede, use uma abordagem assíncrona e sem bloqueio. Além disso, o back-end do jogo também deve ser configurado para realizar o trabalho de maneira eficiente, transferindo tarefas para filas e priorizando respostas rápidas aos clientes sempre que possível.

Nível de risco exposto se esta prática recomendada não for estabelecida: Alto

Orientação para implementação

Por exemplo, a atualização de uma tabela de classificação no final de uma sessão de jogadores pode ser implementada de forma assíncrona para que o cliente não precise esperar que a atualização da tabela de classificação seja concluída. Em vez disso, implemente isso de forma assíncrona no cliente do jogo e considere projetar seu serviço de back-end para colocar esses tipos de operações em filas, como o Amazon SQS. Com essa arquitetura, configure seu back-end para aceitar a solicitação, enfileirá-la no SQS, o que ajuda a armazenar mensagens de forma durável para processamento assíncrono e responder prontamente ao cliente. Quando a atualização da tabela de classificação for concluída, o back-end poderá enviar uma atualização ao cliente do jogo para que a visão do jogador sobre a tabela de classificação seja atualizada.

Como alternativa, o jogador pode simplesmente visitar a tela da tabela de classificação do seu jogo para recuperar os dados mais recentes, o que pode emitir uma solicitação da web ao seu back-end para recuperar os dados mais recentes do cache.

Etapas de implementação

  • Determine se as interações cliente-back-end exigem comunicação síncrona; implemente abordagens assíncronas e sem bloqueio sempre que possível para otimizar o uso de recursos.

  • Use o Amazon SQS para liberar tarefas não críticas, como atualizações na tabela de classificação.

  • Permita que o cliente busque dados atualizados de forma assíncrona, como recuperar os dados mais recentes da tabela de classificação sob demanda ou por meio de atualizações em segundo plano.

Recursos