В многопользовательской настройке игр могут использоваться пользовательские ускорители маршрутизации для оптимизации подключений игроков путем маршрутизации трафика непосредственно на конкретные экземпляры игрового сервера на основе логики приложения, таких как результаты совпадения. Этот подход улучшает задержку, уменьшает джиттер и улучшает опыт игрока, используя частную сеть AWS Global Accelerator и статические IP -адреса.
Пример использования пользовательских ускорителей маршрутизации в многопользовательских играх
1. Установка игровых серверов и подсети
Предположим, у вас есть парк игровых серверов, работающий на экземплярах Amazon EC2 в одной или нескольких подсетях VPC. В каждом экземпляре проводятся несколько игровых сессий, каждый из которых слушает в разных портах. Например, два экземпляра EC2 могут работать в одной и той же подсети с частными IPS 10.1.1.1 и 10.1.1.2, каждый из которых обслуживает игровые сеансы на портах TCP 80, 81 и 82.
2. Создайте пользовательский ускоритель маршрутизации
Вы создаете пользовательский ускоритель маршрутизации в AWS Global Accelerator и добавляете соответствующие подсети VPC в качестве конечных точек. Вы определяете диапазон портов слушателей (например, от 1001 до 1050) на ускорителе и сопоставляете их в диапазоне портов назначения (например, от 80 до 82) на экземплярах EC2. Это отображение позволяет маршрутизации входящего трафика в портах 1001-1050 для определенных комбинаций портов на серверах бэкэнд.
3. Картирование порта и управление трафиком
Ускоритель генерирует таблицу отображения портов, которая статически отображает каждый порт акселератора с определенным IP -адресом и портом экземпляра EC2. Например, порт 1001 на картах акселератора до 10.1.1.1:80, порт 1002 до 10.1.1.1:81 и так далее. Вы можете разрешить или отказать трафик в определенных экземплярах или портах, гарантируя, что только активные игровые серверы получают трафик.
4. Логика состава и маршрутизации
Когда игрок подключается, ваш сервис состава определяет, какой игровой сеанс (и, следовательно, какой экземпляр EC2 и порт) должен присоединиться к критериям, таким как местоположение, уровень мастерства или доступность сеанса. Логика состава запрашивает API Global Accelerator для извлечения порта акселератора, который соответствует выбранному сеансу игрового сервера.
5. Соединение игрока через ускоритель
Игроку дают статический IP -адрес акселератора и карту с картовым портом (например, порт 1003). Когда игрок подключается, Global Accelerator направляет трафик через глобальную сеть AWS к точным экземпляру EC2 и порту, разбираясь в игре (например, 10.1.1.1:82). Это уменьшает задержку, избегая общедоступного Интернета и используя оптимизированные сетевые пути AWS.
6. Преимущества
-Низкая задержка и уменьшение джиттера: трафик направляется по высокоскоростной сети без заторов.
- Масштабируемость: вы можете управлять тысячами игровых сессий в нескольких регионах с одним ускорителем.
- Устойчивость к ошибкам: если игровой сервер или конечная точка подсети становятся нездоровыми, трафик может быть перенаправлен без нарушения игрока.
- Гибкость протокола: поддерживает TCP, UDP или оба, выполняя различные требования к игровым сетям.
Краткое содержание
Используя пользовательскую маршрутизацию AWS Global Accelerator, многопользовательская игра может направлять игроков на конкретные экземпляры игрового сервера, отображая порты акселератора с частными IP -адресами и портами экземпляров EC2 в подсети VPC. Служба состава контролирует, какой игрок соединяется, где присвоив соответствующий порт акселератора, позволяя детерминированную маршрутизацию с низкой задержкой, не требуя изменений клиента. Эта установка идеально подходит для крупномасштабных глобальных многопользовательских игр, нуждающихся в мелкозернистом контроле над назначениями и оптимизацией производительности [2] [6] [7] [7] [9].
Цитаты:
[1] https://docs.aws.amazon.com/global-ccelerator/latest/dg/about-custom-routing-how-it-works.html
[2] https://aws.amazon.com/blogs/gametech/deploy-game-servers-with-amazon-gamelift-fleetiq-and-integrate-with-custom-rout-aws-global-ccelerator/
[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-ccelerator-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-ccelerator-custom-routing-ccelerators/
[10] https://mas-bandwidth.com/the-case-for-network-cceleration-for-multiplayer-games/
[11] https://aws.amazon.com/blogs/gametech/modernize-game-backend-services-with-aws-global-ccelerator/