Документация Steamworks
Сетевые функции Steam
Для отправки сообщений между игроками вы можете использовать наши сетевые API.

По умолчанию они передают пакеты через сеть Valve, что гарантирует защиту игроков и игровых серверов. Наша сеть крайне производительна и надёжна, а также она поддерживает протокол UDP. Версия с открытым исходным кодом доступна на GitHub.
  • ISteamNetworkingMessages: высокоуровневый интерфейс для отправки сообщений произвольным узлам соединения. Он похож на UDP тем, что в нём также не используются дескрипторы соединения. Получатель сообщения указывается каждый раз при его отправке, подобно функции сокета sendto(). Нет необходимости выбирать одну из сторон в качестве «клиента» и инициировать соединение, а серверу не требуется «слушать» соединения клиента или «принимать» их. Любая из сторон связи может моментально отправлять сообщения. Этот API, вследствие близкой схожести с UDP, может быть самым простым вариантом для переноса существующего UDP-кода. Однако в отличие от необработанного UDP, этот API поддерживает сообщения размером больше одного пакета и обеспечивает их надёжную доставку. Трафик передается по сетевой магистрали Valve, а при необходимости может быть установлено прямое соединение.
  • ISteamNetworkingSockets: низкоуровневый интерфейс для отправки и получения сообщений, ориентированный на дескрипторы соединений.
  • ISteamNetworkingUtils: включает в себя разнообразные вспомогательные инструменты — например, инструмент оценки пинга между произвольными интернет-узлами.
  • steamnetworkingtypes — это заголовок, включающий в себя многие распространённые типы и утилиты.
  • Steam Datagram Relay — это служба ретрансляции трафика вашей игры через сетевую магистраль Valve. Она не позволяет раскрывать IP-адреса и во многих случаях уменьшает пинг и улучшает качество соединения. Все P2P-соединения автоматически передаются через сетевую магистраль Valve, если это требуется. Этот документ описывает, как использовать SDR для игр на выделенных серверах, чтобы уменьшить пинг и защитить серверы от DoS-атак.

ISteamNetworking является устаревшей версией API. Если вы используете её, мы рекомендуем поскорее перейти на более новый API, так как в будущем мы можем удалить старый API из SDK.

Этот API лучше всего работает для подбора игр и лобби и зависит от типов пакетов, которые направляются либо напрямую каждому игроку, либо через одного игрока, выступающего в роли хоста (как правило, это лидер лобби) или игрового сервера.

В интернете можно найти множество статей о работе сетей. Несколько рекомендаций от нас:

См. Приложение-образец с API Steamworks (SpaceWar), чтобы найти пример использования ISteamNetworkingSockets для обмена данными между клиентом и сервером.