Steamworks dokumentáció
Steam hálózatkezelés
Van néhány különböző hálózati API-nk, amelyek használhatók üzenetek küldésére játékosok között.

Legújabb API-jaink alapesetben a Valve hálózaton keresztül továbbítanak csomagokat, ami biztosítja a játékosok és a játékszerverek védelmét. Nagyobb teljesítményű, és magasabb minőségű megbízhatósági réteget használ. Támogatja a szokványos UDP-kapcsolatot is. Egy nyílt forráskódú változat a github-on érhető el.
  • Az ISteamNetworkingMessages egy magas szintű interfész üzenetek küldésére tetszőleges végpontoknak. Olyan, mint az UDP, abban az értelemben, hogy nem használ kapcsolatleírókat. Valahányszor üzenetet küldesz, a sendto() socketfüggvényhez hasonlóan megadod az üzenetcímzettet. Nem kell kiválasztanod, hogy az egyik végpont a „kliens” lesz és inicializálni a kapcsolatot, a szervernek pedig nem kell klienskapcsolatokra „figyelnie”, sem „elfogadni” azokat. Bármelyik végpont azonnal tud üzeneteket küldeni. Mivel nagyon hasonlít az UDP-hez, ez lehet a legegyszerűbb API a meglévő UDP-kód portolására. A nyers UDP-vel ellentétben azonban az API támogatja az egyetlen csomagnál nagyobb üzeneteket és a megbízható üzenetküldést. A forgalom a Valve gerinchálózatán továbbítódik, vagy adott esetben létesíthető közvetlen kapcsolat.
  • Az ISteamNetworkingSockets egy alacsonyabb szintű, kapcsolatleíró-orientált interfész üzenetek küldéséhez és fogadásához.
  • Az ISteamNetworkingUtils kiegészítő segédprogramokat tartalmaz, köztük eszközöket ping-idők megbecsülésére tetszőleges internetes végpontok között.
  • A steamnetworkingtypes olyan fejléc, amely sok gyakori típust és segédprogramot tartalmaz.
  • A Steam Datagram Relay egy szolgáltatás a játékforgalmad továbbítására a Valve gerinchálózaton keresztül. Ez megakadályozza az IP-címek felfedését, és sok esetben javítja a ping-időket és a kapcsolat minőségét. Megfelelő esetben minden P2P kapcsolat automatikusan a Valve gerinchálózaton keresztül kerül továbbításra. Ez a dokumentáció leírja, hogy mit kell tenned, ha az SDR-t akarod használni dedikált szerveres játékokhoz, optimalizálni akarod a ping-időket és meg akarod védeni a szervereket a DoS támadásoktól.

Az ISteamNetworking egy régebbi, elavult API. Ha használod, fontold meg a mihamarabbi áttérést egy újabb API-ra, mivel egy jövőbeli kiadásban eltávolíthatjuk ezt az API-t az SDK-ból.

Ez az API a Meccskereséssel használva működik a legjobban, és a csomagtípusoktól függően vagy mindent egy házigazdaként működő játékoson (jellemzően a várótulajdonoson) keresztül tudsz továbbítani, vagy egy játékszerveren keresztül, vagy mindent közvetlenül kiküldesz mindegyik játékosnak.

Az interneten sok nagyszerű cikk található különféle hálózatkezelési témákban. Néhány javaslat tőlünk:

Egy példáért az ISteamNetworkingSockets használatáról kliens-szerver kommunikációhoz nézd meg a Steamworks API Example Application (SpaceWar) dokumentációt.