Документація Steamworks
Мережеві функції Steam
Ми маємо різні мережеві API для пересилання повідомлень між гравцями.

Наші найновіші API стандартно передають пакети через мережу Valve, що гарантує захист ігрових серверів і гравців. Вона має більшу швидкодію та вищий рівень надійності. Вона також підтримує звичайний UDP-зв’язок. Версія з відкритим кодом доступна на GitHub.
  • ISteamNetworkingMessages — це високорівневий інтерфейс для надсилання повідомлень довільним вузлам кешування. Це схоже на UDP в тому сенсі, що не використовується оброблення підключення. Ви вказуєте отримувача повідомлення кожного разу, коли надсилаєте повідомлення, що схоже на функцію сокета sendto(). Вам не потрібно вибирати один вузол кешування для ролі «клієнта» й ініціювання підключення, і сервер не повинен «слухати» клієнтські підключення чи «приймати» їх. Кожен вузол кешування може миттєво надсилати повідомлення. Через сильну схожість з UDP це може бути найпростіший API для портування наявного UDP-коду. Однак, на відміну від необроблених UDP, API підтримує більші за один пакет повідомлення, а також їхнє надійне доставлення. Мережевий трафік спрямовується через магістраль Valve, а за потреби може встановлюватися пряме підключення.
  • ISteamNetworkingSockets — це низькорівневий, зорієнтований на оброблення підключень інтерфейс, призначений для надсилання й отримання повідомлень.
  • ISteamNetworkingUtils має різні утиліти, включно з інструментами для визначення часу пінґу між довільними Інтернет-вузлами.
  • steamnetworkingtypes — це заголовок, що має багато звичайних типів і утиліт.
  • Ретрансляція датаграм Steam — служба для ретрансляції вашого ігрового трафіку за допомогою мережевої магістралі Valve. Вона не дозволяє розкривати IP-адреси й у багатьох випадках покращує час пінґу та якість підключення. Усі підключення «один до одного» автоматично спрямовуються магістраллю Valve, якщо це можливо. Цей документ описує, що вам потрібно, якщо ви хочете використовувати SDR для виділених ігрових серверів для оптимізації часу пінґу та захисту серверів від DoS-атак.

ISteamNetworking — старий API, що виводиться з ужитку. Якщо ви користуєтеся ним, то обміркуйте перехід на новий API, адже ми можемо вилучити цей API з SDK в одному з наступних випусків.

Цей API найкраще працює з пошуком матчів і залежить від типу пакетів, які направляються або через одного гравця, що діє як хост (зазвичай це власник лобі), або через ігровий сервер, або надсилаються безпосередньо кожному гравцю.

В Інтернеті можна знайти багато чудових статей стосовно роботи мереж. Деякі рекомендації від нас:

Перегляньте приклад використання ISteamNetworkingSockets для зв’язку «клієнт-сервер».