Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Pouvez-vous fournir un exemple d'utilisation des accélérateurs de routage personnalisés dans une configuration de jeu multijoueur


Pouvez-vous fournir un exemple d'utilisation des accélérateurs de routage personnalisés dans une configuration de jeu multijoueur


Dans une configuration de jeu multijoueur, les accélérateurs de routage personnalisés peuvent être utilisés pour optimiser les connexions des joueurs en acheminant le trafic directement vers des instances de serveur de jeu spécifiques en fonction de la logique d'application, telles que les résultats de matchmaking. Cette approche améliore la latence, réduit la gigue et améliore l'expérience des joueurs en tirant parti du réseau privé AWS Global Accelerator et des adresses IP statiques.

Exemple d'utilisation des accélérateurs de routage personnalisés dans les jeux multijoueurs

1. Configuration des serveurs et sous-réseaux de jeu
Supposons que vous ayez une flotte de serveurs de jeux fonctionnant sur les instances Amazon EC2 dans un ou plusieurs sous-réseaux VPC. Chaque instance héberge plusieurs sessions de jeu, chacune écoutant sur différents ports. Par exemple, deux instances EC2 pourraient être exécutées dans le même sous-réseau avec les IPs privés 10.1.1.1 et 10.1.1.2, chacune de sessions de jeu sur les ports TCP 80, 81 et 82.

2. Créez un accélérateur de routage personnalisé
Vous créez un accélérateur de routage personnalisé dans AWS Global Accelerator et ajoutez les sous-réseaux VPC pertinents comme points de terminaison. Vous définissez une gamme de ports d'écoute (par exemple, 1001 à 1050) sur l'accélérateur et les mapper à la gamme de port de destination (par exemple, 80 à 82) sur vos instances EC2. Ce mappage permet un trafic entrant sur les ports 1001-1050 d'être acheminé vers des combinaisons de port IP spécifiques sur les serveurs backend.

3. Mappage des ports et contrôle du trafic
L'accélérateur génère une table de mappage de port qui mappe statiquement chaque port d'accélérateur sur une adresse IP et un port IP EC2 spécifiques. Par exemple, le port 1001 sur l'accélérateur mappe à 10.1.1.1:80, port 1002 à 10.1.1.1:81, etc. Vous pouvez autoriser ou refuser le trafic vers des instances ou des ports spécifiques, garantissant que seuls les serveurs de jeux actifs reçoivent du trafic.

4. Logique de matchmaking et de routage
Lorsqu'un joueur se connecte, votre service de matchmaking détermine la session de jeu (et donc quelle instance EC2 et le port) que le joueur doit rejoindre en fonction de critères comme l'emplacement, le niveau de compétence ou la disponibilité de session. La logique de matchmaking interroge l'API Global Accelerator pour récupérer le port d'accélérateur qui correspond à la session de serveur de jeu sélectionné.

5. Connexion du joueur via l'accélérateur
Le lecteur reçoit l'adresse IP statique de l'accélérateur et le port mappé (par exemple, port 1003). Lorsque le joueur se connecte, Global Accelerator achemine le trafic sur le réseau mondial AWS vers l'instance EC2 exacte et le port hébergeant la session de jeu (par exemple, 10.1.1.1:82). Cela réduit la latence en évitant Internet public et en utilisant des chemins de réseau optimisés d'AWS.

6. Avantages
- Faible latence et gigue réduite: le trafic est acheminé sur le réseau à grande vitesse et sans congestion d'Aws.
- Évolutivité: vous pouvez gérer des milliers de sessions de jeu dans plusieurs régions avec un seul accélérateur.
- Tolérance aux défauts: si un serveur de jeu ou un point de terminaison de sous-réseau devient malsain, le trafic peut être relâché sans perturbation du joueur.
- Flexibilité du protocole: prend en charge TCP, UDP ou les deux, pour répondre aux différentes exigences de réseautage de jeux.

Résumé

En utilisant le routage personnalisé AWS Global Accelerator, un jeu multijoueur peut diriger les joueurs vers des instances de serveur de jeu spécifiques en mappant des ports d'accélérateur vers des adresses IP privées et des ports des instances EC2 dans les sous-réseaux VPC. Le service de matchmaking contrôle le joueur connecté en attribuant le port d'accélérateur approprié, permettant un routage déterministe à faible latence sans nécessiter de modifications du client. Cette configuration est idéale pour les jeux multijoueurs globaux à grande échelle nécessitant un contrôle à grain fin sur les affectations du joueur-serveur et l'optimisation des performances [2] [6] [7] [9].

Citations:
[1] https://docs.aws.amazon.com/global-accelerator/latest/dg/about-stustom-routing-how-it-works.html
[2] https://aws.amazon.com/blogs/gametech/deploy-game-servers-with-amazon-gamelift-fleetiq-and-integrate-with-constom-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-obal-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-lolistenners-work
[8] https://www.youtube.com/watch?v=qlaauf_zq4i
[9] https://aws.amazon.com/blogs/networking-and-content-delivery/introducing-aws-global-accelerator-constom-routing-accelerators/
[10] https://mas-bandwidth.com/the-ase-for-network-acceleration-for-multiplayer-games/
[11] https://aws.amazon.com/blogs/gametech/modernize-game-backend-services-with-aws-global-accelerator/