Em uma configuração de jogos multiplayer, os aceleradores de roteamento personalizados podem ser usados para otimizar as conexões do jogador, roteando o tráfego diretamente para instâncias específicas do servidor de jogo com base na lógica do aplicativo, como resultados de correspondência. Essa abordagem melhora a latência, reduz o jitter e aprimora a experiência do jogador, alavancando a rede privada do AWS Global Acelerator e os endereços IP estáticos.
Exemplo de usar aceleradores de roteamento personalizado em jogos multiplayer
1. Configuração de servidores de jogo e sub -redes
Suponha que você tenha uma frota de servidores de jogo em execução em instâncias do Amazon EC2 em uma ou mais sub -redes VPC. Cada instância hospeda várias sessões de jogo, cada uma ouvindo em diferentes portas. Por exemplo, duas instâncias do EC2 podem estar sendo executadas na mesma sub -rede com IPS 10.1.1.1 e 10.1.1 privadas, cada uma das sessões de jogo de servir nas portas TCP 80, 81 e 82.
2. Crie um acelerador de roteamento personalizado
Você cria um acelerador de roteamento personalizado no AWS Global Accelerator e adiciona as sub -redes VPC relevantes como pontos de extremidade. Você define um intervalo de portas do ouvinte (por exemplo, 1001 a 1050) no acelerador e mapeia -o para o intervalo de portas de destino (por exemplo, 80 a 82) em suas instâncias do EC2. Esse mapeamento permite que o tráfego de entrada nas portas 1001-1050 seja roteado para combinações específicas de IP: porta nos servidores de back-end.
3. Mapeamento de portas e controle de tráfego
O acelerador gera uma tabela de mapeamento de porta que mapeia estaticamente cada porta do acelerador para um endereço IP e porta específico da instância do EC2. Por exemplo, a porta 1001 no acelerador mapeia para 10.1.1.1:80, porta 1002 a 10.1.1.1:81, e assim por diante. Você pode permitir ou negar o tráfego a instâncias ou portas específicas, garantindo que apenas servidores de jogos ativos recebam tráfego.
4. Lógica de correspondência e roteamento
Quando um jogador se conecta, seu serviço de matchmaking determina qual sessão de jogo (e, portanto, qual instância e porta do EC2) o jogador deve entrar com base em critérios como localização, nível de habilidade ou disponibilidade de sessão. A lógica de correspondência consulta a API do Acelerador Global para recuperar a porta do acelerador que corresponde à sessão de servidor de jogo selecionada.
5. Conexão do jogador via acelerador
O jogador recebe o endereço IP estático do acelerador e a porta mapeada (por exemplo, porta 1003). Quando o jogador se conecta, o Global Accelerator direciona o tráfego sobre a rede global da AWS para a instância exata do EC2 e a porta que hospeda a sessão do jogo (por exemplo, 10.1.1.1:82). Isso reduz a latência, evitando a Internet pública e usando os caminhos de rede otimizados da AWS.
6. Benefícios
-Baixa latência e instabilidade reduzida: o tráfego é roteado na rede de alta velocidade e congestionamento da AWS.
- Escalabilidade: você pode gerenciar milhares de sessões de jogo em várias regiões com um único acelerador.
- Tolerância a falhas: se um servidor de jogo ou terminal de sub -rede se tornar prejudicial, o tráfego poderá ser redirecionado sem a interrupção do jogador.
- Flexibilidade do protocolo: suporta TCP, UDP ou ambos, acomodando diferentes requisitos de rede de jogos.
Resumo
Usando o roteamento personalizado do AWS Global Acelerator, um jogo multiplayer pode direcionar jogadores para instâncias específicas do servidor de jogo, mapeando portas do acelerador para endereços IP privados e portas de instâncias do EC2 nas sub -redes VPC. O serviço de correspondência controla qual jogador conecta onde atribuindo a porta acelerador apropriada, permitindo o roteamento determinístico e de baixa latência sem a necessidade de alterações do cliente. Essa configuração é ideal para jogos multiplayer globais em larga escala, que precisam de controle de granulação fina sobre atribuições de jogador para servidor e otimização de desempenho [2] [6] [7] [9].
Citações:
[1] https://docs.aws.amazon.com/global-accelerator/latest/dg/about-custom-ruting-how-it-works.html
[2] https://aws.amazon.com/blogs/gametech/deploy-game-shervers-with-amazon-gamelift-fleetiq-and-integrate-with-custom--routing-aws-global-accelerator/
[3] https://www.youtube.com/watch?v=yxqjyly80pc
[4] https://pages.awscloud.com/rs/112-tzm-766/images/2023_ott-od-0502-ngi_slide-deck.pdf
[5] https://coda.io/@kirtanc25/aws-r53-cf-ga/aws-global-accelerator-14
[6] https://pages.awscloud.com/rs/112-tzm-766/images/ptnr-aws-amd-gamelift-gameservers.pdf
[7] https://www.alibabacloud.com/help/en/ga/user-guide/how-custom--routing-listeners-work
[8] https://www.youtube.com/watch?v=qlaauf_zq4i
[9] https://aws.amazon.com/blogs/networking-and-content-delivery/introducing-aws-global-accelerator-custom--routing-accelerators/
[10] https://mas-bandwidth.com/the-case-for-network-cecelation-for-multiplayer-games/
[11] https://aws.amazon.com/blogs/gametech/modernize-game-backend-services-with-aws-global-accelerator/