Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon ¿Puede proporcionar un ejemplo del uso de aceleradores de enrutamiento personalizados en una configuración de juego multijugador?


¿Puede proporcionar un ejemplo del uso de aceleradores de enrutamiento personalizados en una configuración de juego multijugador?


En una configuración de juego multijugador, se pueden usar aceleradores de enrutamiento personalizados para optimizar las conexiones de los jugadores enrutando el tráfico directamente a instancias específicas del servidor de juegos basados ​​en la lógica de la aplicación, como los resultados de emparejamiento. Este enfoque mejora la latencia, reduce la fluctuación y mejora la experiencia del jugador al aprovechar la red privada del Acelerador Global de AWS y las direcciones IP estáticas.

Ejemplo de uso de aceleradores de enrutamiento personalizados en juegos multijugador

1. Configuración de servidores y subredes de juegos
Supongamos que tienes una flota de servidores de juegos que se ejecutan en las instancias de Amazon EC2 dentro de una o más subredes VPC. Cada instancia alberga múltiples sesiones de juego, cada una escucha en diferentes puertos. Por ejemplo, dos instancias EC2 podrían estar ejecutándose en la misma subred con IPS privadas 10.1.1.1 y 10.1.1.2, cada una de las sesiones de juego en los puertos TCP 80, 81 y 82.

2. Cree un acelerador de enrutamiento personalizado
Cree un acelerador de enrutamiento personalizado en AWS Global Acelerator y agrega las subredes VPC relevantes como puntos finales. Defina un rango de puertos del oyente (por ejemplo, 1001 a 1050) en el acelerador y los asigna a la gama de puertos de destino (por ejemplo, 80 a 82) en sus instancias de EC2. Esta asignación permite el tráfico entrante en los puertos 1001-1050 que se enrutarán a combinaciones específicas de IP: puertos en los servidores de backend.

3. Mapeo de puertos y control de tráfico
El acelerador genera una tabla de mapeo de puerto que mapea estáticamente cada puerto del acelerador a una dirección IP y puerto de instancia EC2 específica. Por ejemplo, el puerto 1001 en el acelerador se mapea a 10.1.1.1:80, puerto 1002 a 10.1.1.1:81, y así sucesivamente. Puede permitir o negar el tráfico a instancias o puertos específicos, asegurando que solo los servidores de juegos activos reciban tráfico.

4. Lógica de emparejamiento y enrutamiento
Cuando un jugador se conecta, su servicio de emparejamiento determina qué sesión de juego (y, por lo tanto, qué instancia y puerto de EC2) debe unirse en función de criterios como ubicación, nivel de habilidad o disponibilidad de sesión. La lógica de emparejamiento consulta la API Global Acelerator para recuperar el puerto Acelerador que corresponde a la sesión de servidor de juegos seleccionada.

5. Conexión del jugador a través del acelerador
El reproductor recibe la dirección IP estática del acelerador y el puerto asignado (por ejemplo, puerto 1003). Cuando el reproductor se conecta, Global Acelerator enruta el tráfico a través de la red global de AWS a la instancia exacta de EC2 y el puerto que aloja la sesión del juego (por ejemplo, 10.1.1.1:82). Esto reduce la latencia evitando la Internet público y el uso de rutas de red optimizadas de AWS.

6. Beneficios
-Baja latencia y jitter reducido: el tráfico se enruta a través de la red de alta velocidad y sin congestión de AWS.
- Escalabilidad: puedes administrar miles de sesiones de juego en múltiples regiones con un solo acelerador.
- Tolerancia a fallas: si un punto final de servidor de juegos o subred se vuelve poco saludable, el tráfico se puede redirigir sin la interrupción del jugador.
- Flexibilidad del protocolo: admite TCP, UDP o ambos, acomodando diferentes requisitos de redes de juegos.

Resumen

Utilizando el enrutamiento personalizado de AWS Global Accelerator, un juego multijugador puede dirigir a los jugadores a instancias específicas del servidor de juegos mapeando puertos de acelerador a direcciones IP privadas y puertos de instancias EC2 en subredes VPC. El servicio de emparejamiento controla qué jugador se conecta dónde al asignar el puerto acelerador apropiado, habilitando el enrutamiento determinista de baja latencia sin requerir cambios en el cliente. Esta configuración es ideal para juegos multijugador globales a gran escala que necesitan un control de grano fino sobre las tareas de jugador a servidor y la optimización del rendimiento [2] [6] [7] [9].

Citas:
[1] https://docs.aws.amazon.com/global-accelerator/latest/dg/about-custom-routing-how-it-works.html
[2] https://aws.amazon.com/blogs/gametech/deploy-game-servers-with-amazon-gamelift-fleetiq-and-ingrate-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-pa/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-aceleration-for-multiplayer-games/
[11] https://aws.amazon.com/blogs/gametech/modernize-game-backend-services-with-aws-global-accelerator/