Dokumentacja Steamworks
Funkcje sieciowe Steam
Dysponujemy kilkoma rożnymi API sieciowymi, które mogą być używane do wysyłania komunikatów pomiędzy graczami.

Nasze najnowsze API domyślnie przekazują pakiety przez sieć Valve, co zapewnia bezpieczeństwo graczy i serwerów gry – tego typu sieć jest bardziej wydajna, zapewnia większą niezawodność oraz obsługuje zwykłą komunikację UDP. Wersja open source jest dostępna na GitHubie.
  • ISteamNetworkingSockets jest interfejsem wysokiego poziomu służącym do wysyłania komunikatów do dowolnych peerów. Jest on podobny do UDP w takim sensie, że nie są wykorzystywane uchwyty połączenia. Określasz odbiorcę komunikatu za każdym razem, gdy wysyłasz wiadomość – jest to podobne do funkcji gniazd sendto(). Nie musisz wybierać jednego peera jako „klienta” ani inicjować połączenia, a serwer nie musi „nasłuchiwać” w poszukiwaniu połączeń z klientami oraz ich „akceptować”. Dowolny z peerów może wysyłać komunikaty natychmiastowo. Z racji tego, że ten interfejs jest podobny do UDP, to może być najłatwiejszym API do przeportowania istniejącego kodu UDP. Natomiast w odróżnieniu od czystego UDP, API obsługuje komunikaty większe od pojedynczego pakietu oraz niezawodne dostarczanie komunikatów. Ruch sieciowy jest przekierowywany przez sieć szkieletową Valve, a połączenia bezpośrednie mogą zostać nawiązane, gdy jest to konieczne.
  • ISteamNetworkingSockets jest opartym na uchwytach połączenia interfejsem niskiego poziomu służącym do wysyłania i otrzymywania komunikatów.
  • ISteamNetworkingUtils posiada inne narzędzia, w tym te służące do szacowania czasów pingu między dowolnymi hostami internetowymi.
  • steamnetworkingtypes to plik nagłówkowy posiadający wiele pospolitych typów i narzędzi.
  • Steam Datagram Relay jest usługą przekierowywania ruchu sieciowego twojej gry przez sieć serwerów Valve. Zapobiega to ujawnieniu adresów IP, a w wielu przypadkach poprawia ping i jakość połączenia. Wszelkie połączenia P2P są automatycznie przekierowywane do sieci szkieletowej Valve, gdy ma to zastosowanie. Ten dokument opisuje, co musisz zrobić, jeżeli chcesz wykorzystać SDR do dedykowanych serwerów gry, zoptymalizować czasy pingu i zabezpieczyć serwery przed atakami DoS.

ISteamNetworking to starsze, przestarzałe API. Jeżeli z niego korzystasz, zastanów się nad migracją do nowszego API, gdyż możemy usunąć to API z SDK w przyszłym wydaniu.

To API działa najlepiej, jeśli jest użyte wraz z poczekalniami i wyszukiwaniem gier na Steam – w zależności od typu pakietów możesz trasować wszystko przez jednego gracza funkcjonującego jako host (zazwyczaj właściciel poczekalni), serwer gry lub przesłać pakiety bezpośrednio do każdego z graczy.

W internecie można znaleźć wiele artykułów na temat różnych architektur sieci. Oto kilka z nich:

Zobacz ten artykuł, w którym znajduje się przykład użycia ISteamNetworkingSockets dla komunikacji klient-serwer.