- PVSM.RU - https://www.pvsm.ru -
Последние несколько лет Valve работали над улучшением качества мультиплеера в Dota 2 и CS:GO при помощи ретрансляции трафика и его переноса на свою сетевую магистраль. Это позволяет защищать игры от DoS-атак, понижает пинг и повышает качество соединения. В SDK Steamworks версии 1.44 Valve выкатили новый API [1], предоставляющее доступ к этой службе всем партнёрам Steam.
Valve опубликовали специальный пост [2]. API включает в себя:
У Valve имеются узлы ретрансляции, развёрнутые в 30 сетевых точках подключения по всему миру с пропускной способности несколько терабит. Можно выделить, как минимум, несколько преимуществ сети.
Во-первых, ретрансляция трафика анонимна и защищает игровые серверы и пользователей от DoS-атак. Кроме того, поскольку решения о маршрутизации осуществляются клиентом динамично, если узел ретрансляции становится недоступным, клиент может переключиться на другой узел в течение нескольких секунд или, при необходимости, на другую точку подключения. Злоумышленник сможет нарушить игровой процесс, только если его атака способна перегрузить сразу несколько центров обработки данных.
Во-вторых, клиенты смогут выбирать маршрут, как можно скорее переводящий их с общедоступного интернет-соединения на выделенные. На своей сетевой магистрали Valve гарантирует оптимальную маршрутизацию, так как они сотрудничают с более чем 2500 интернет-провайдерами. Кроме того, чувствительный к задержкам игровой трафик имеет приоритет над загрузками контента по HTTP. Это возможно, поскольку доля игрового трафика в используемой пропускной способности относительно невелика. На сетевой магистрали внезапный всплеск трафика, не относящегося к играм, не повлияет на качество игры.
Вишенкой на торте является уменьшение пинга! Протокол Valve даёт клиенту возможность выбрать маршрут, по которому будут рутиться запросы. Клиент учитывает каждую точку подключения ретрансляции, определяет сквозную задержку на маршруте и затем выбирает маршрут с наименьшей задержкой.
Если разрешить клиентам выбирать маршрут, их соединение будет лучше дефолтного на удивление часто. Проанализировав 16 млн. подключений уникальных клиентских IP-адресов к выделенным серверам в центрах обработки данных Valve, они получили следующие результаты:
Объём улучшений по регионам различается.
Функции интерфейса ISteamNetworkingUtils
[3] включают инструменты для оценки пинга, основанные на сети ретрансляции. Измеряя время пинга до разных узлов ретрансляции, мы генерируем координаты, описывающие расположение хоста в интернете. С помощью двух таких наборов координат Valve может весьма точно оценить время пинга между двумя произвольными узлами без отправки пакетов. Эта функция чрезвычайно полезна при подборе игр и выборе узла одноранговой сети.
SteamNetworkingSockets
не только предоставляет доступ к функциям на основе сети ретрансляции Valve и к сетевой магистрали для партнёров Steam, но и является универсальной транспортной библиотекой для игр, предлагая следующие возможности:
Это первое из серии обновлений, направленных на улучшение работы игр по сети для партнёров Steam. Пока что Valve только улучшили работу одноранговых сетей, но помимо этого они планируют дать партнёрам доступ к наработкам, использующимся для их выделенных серверов.
Автор: Suvitruf
Источник [6]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/gamedev/311644
Ссылки в тексте:
[1] Valve выкатили новый API: https://partner.steamgames.com/doc/api/ISteamNetworkingSockets
[2] специальный пост: https://steamcommunity.com/groups/steamworks#announcements/detail/1791775741704351698
[3] ISteamNetworkingUtils
: https://partner.steamgames.com/doc/api/ISteamNetworkingUtils
[4] версии с открытым исходным кодом: https://github.com/ValveSoftware/GameNetworkingSockets
[5] API: https://suvitruf.ru/2019/03/14/4372/steam_devs_can_now_use_the_networking_apis_created_for_csgo_and_dota_2/
[6] Источник: https://habr.com/ru/post/443782/?utm_campaign=443782
Нажмите здесь для печати.