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á.
Amazon GameLift ServersSinalizadores de ping UDP
Os beacons de ping UDP fornecem uma maneira de medir a latência da rede entre os dispositivos dos jogadores e os locais de hospedagem. Amazon GameLift Servers Com sinalizadores de ping, você pode coletar dados de latência precisos para tomar decisões informadas sobre o posicionamento do servidor do jogo e melhorar a combinação de jogadores com base nos requisitos de latência.
Como funcionam os sinalizadores de ping UDP
Amazon GameLift Serversfornece endpoints UDP fixos (beacons de ping) em cada local de hospedagem onde você pode implantar servidores de jogos. Como a maioria dos servidores de jogos se comunica usando UDP, medir a latência com beacons de ping UDP fornece resultados mais precisos do que usando pings ICMP. Os dispositivos de rede geralmente lidam com pacotes ICMP de forma diferente dos pacotes UDP, o que pode levar a medições de latência que não refletem o verdadeiro desempenho que seus jogadores experimentarão.
Com os beacons de ping UDP, seu cliente de jogo pode enviar mensagens UDP para esses endpoints e receber respostas assíncronas, fornecendo medidas de latência que representam melhor as condições reais de tráfego do jogo entre o dispositivo de um jogador e possíveis locais de hospedagem. Os endpoints são permanentes e permanecem disponíveis desde que ofereçam Amazon GameLift Servers suporte à hospedagem de jogos nesse local.
Casos de uso comuns para beacons de ping UDP
Você pode usar beacons de ping UDP de várias maneiras para otimizar a experiência de rede do seu jogo.
Escolhendo locais de hospedagem ideais
Colete dados de latência em diferentes regiões geográficas para identificar os melhores locais primários e de backup para hospedar servidores de jogos para sua base de jogadores.
Colocar sessões de jogo com base na latência do jogador
Inclua dados de latência do jogador ao solicitar novas sessões de jogo para ajudar a escolher locais que ofereçam a experiência de menor latência.
Otimizando o matchmaking com base na latência
Forneça dados de latência do jogador ao solicitar matchmaking para ajudar a combinar jogadores com perfis de latência semelhantes e colocar as sessões de jogo em locais ideais para jogadores pareados.
nota
Ao criar solicitações de matchmaking, você não deve fornecer informações de latência para locais onde você não tem frotas. Se você fizer isso, Amazon GameLift Servers pode tentar colocar a sessão do jogo em locais onde não há capacidade da frota, resultando em falhas na solicitação de matchmaking.
Obtendo endpoints de beacon
Para recuperar as informações do domínio e da porta do sinalizador de ping para Amazon GameLift Servers locais, use a operação da ListLocationsAPI. O conjunto de locais retornados por essa API depende do Região da AWS que você especifica ao chamá-la (ou da sua região padrão, se você não especificar uma). Quando você liga de:
-
Uma região de origem de uma frota que suporta vários locais: a API retorna informações de todos os locais de hospedagem
-
Uma região de origem de uma frota que suporta um único local: a API retorna informações desse local
Observe que, se você chamar essa API usando um local que só pode ser remoto em uma frota com vários locais, a API retornará um erro porque esse tipo de local não tem um ponto final de serviço.
Consulte a tabela de locais compatíveis AWS Localizações suportadas para identificar as regiões de origem que oferecem suporte a frotas de um ou vários locais.
Exemplo
aws gamelift list-locations --region ap-northeast-2
Isso Região da AWS suporta frotas com vários locais, portanto, vários locais serão devolvidos. Aqui está um exemplo de um dos valores de retorno:
[...]
{
"LocationName": "ap-northeast-1",
"PingBeacon": {
"UDPEndpoint": {
"Domain": "gamelift-ping.ap-northeast-1.api.aws",
"Port": 7770
}
}
}
Importante
Armazene em cache as informações do sinalizador de ping em vez de ligar ListLocations
antes de cada medição de latência. As informações do domínio e da porta são estáticas e a API não foi projetada para solicitações de alto volume.
Implementando medições de latência
Siga estas melhores práticas ao implementar medições de latência usando beacons de ping UDP:
-
Armazene as informações do sinalizador de ping usando uma das seguintes abordagens:
-
Codifique os endpoints em seu cliente de jogo.
-
Armazene as informações no back-end do seu jogo.
-
Implemente um mecanismo de atualização periódica (diária/semanal) para atualizar as informações.
-
-
Envie mensagens de ping UDP:
-
Coloque o que quiser no corpo da mensagem, desde que não esteja vazio, e você manterá as mensagens abaixo do tamanho máximo de 300 bytes.
-
Observe os seguintes limites de tarifa para cada local:
-
3 transações por segundo (TPS) por combinação exclusiva de endereço IP e porta do remetente
-
1000 TPS por endereço IP exclusivo do remetente
-
-
-
Calcule a latência:
-
Envie vários pings para cada local para calcular uma latência média.
-
Considere enviar pings simultâneos para vários locais para obter resultados mais rápidos.
-
Use a lógica de repetição conforme necessário para enviar novos pacotes para qualquer pacote que não tenha sido devolvido em pouco tempo (normalmente de 1 a 3 segundos), pois o UDP não tem entrega 100% garantida.
-
Calcule a diferença de tempo entre enviar uma mensagem e receber a resposta.
-
Se uma grande parte dos pings UDP para um local consistentemente não obtiverem uma resposta, calcule a latência usando pings ICMP para nossos terminais de Amazon GameLift Serversserviço padrão como alternativa.
-
dica
Recomendamos que você inclua a porta 7770 sempre que documentar a lista de portas que seus players devem ter abertas na rede local. Esse é outro motivo pelo qual você deve ter um substituto para medir a latência (usando ICMP, por exemplo) caso essa porta esteja bloqueada.
Exemplos de código
Aqui estão alguns exemplos simples que mostram como enviar pings UDP e calcular a latência.