Steamworks-dokumentaatio
Steam Datagram Relay
Steam Datagram Relay (SDR) on Valven virtuaalinen, yksityinen peliverkko. Ohjelmointirajapintojamme käyttämällä voit siirtää peliliikenteen pelisisällölle dedikoidun Valven runkoverkon kautta sekä saada pääsyn välitysverkkoomme. Liikenteen välittäminen suojaa palvelimiasi ja pelaajiasi palvelunestohyökkäyksiltä, koska IP-osoitteita ei koskaan näytetä. Saamasi liikenne on autentikoitu ja salattu ja sen nopeutta on rajoitettu. Yllättävän monelle pelaajalle tarjoutuu lisäksi nopeampi reitti verkkomme kautta, mikä vähentää pelaajien kokemaa viivettä.

Tätä välitysverkkoa voidaan käyttää sekä vertaisverkkoliikenteeseen että dedikoituihin palvelimiin.

Yleiset vaatimukset ja vinkit olemassa olevan verkkokoodin siirtoon

Seuraavassa muutama sekä vertaisverkon että dedikoitujen palvelinten yhteyksiä koskeva huomio.

Kaikki paikat, joissa verkkoisännät identifioidaan julkisella IP-osoitteella, (koskee melkein aina pelipalvelimia) pitää vaihtaa käyttämään eri tunnistetta. Vaihtoehtoja on useita:
  • Steamin kirjautuviin asiakasohjelmiin ja pelipalvelimiin käytetään yleensä SteamID:tä.
  • Jos pelipalvelin ei kirjaudu Steamiin ja käytät tikettipohjaista todennusta, voit käyttää mitä tahansa muuta mielekästä tunnistetta. Katso SteamNetworkingIdentity.
  • Joissain koodikannoissa on perusolettamuksena se, että verkkoisännät ja pelipalvelimet identifioidaan IPv4-osoiteella. Tämän lähtökohdan muuttaminen on varsin työlästä. Steamworks-ohjelmointirajapinnoissa ISteamMatchmaking ja ISteamMatchmakingServers on tämä ominaisuus. Samoin jossain peleissä, kuten Team Fortress 2:ssa. Siinä tapauksessa voi käyttää Steamworksin FakeIP-järjestelmää. FakeIP on IP-osoite, joka näyttää useimpia tarkoituksia varten kelvolliselta IPv4-osoitteelta, mutta tulee varatusta osoiteavaruudesta, jota ei käytetä internetissä. FakeIP:n käytöstä huolimatta palvelimeen voi yhä ottaa yhteyttä IPv4-osoitteella ja melkein kaikki muu toimii. ISteamNetworkingSockets-ja ISteamMatchmakingServers-järjestelmät tunnistavat nämä IP-osoitteet ja toimivat sen mukaan. Ne eivät ole reititettävissä eivätkä sovellu yleiseen internetin käyttöön (eli niille ei voi tehdä ping-pyyntöä). Lue lisätietoja täältä:ISteamNetworkingSockets::BeginAsyncRequestFakeIP.

Lisäksi on muokattava alhaisen tason pistokekoodi käyttämään Steamworks-ohjelmointirajapintaa yhteyden vuoksi.
  • Jos mahdollista, voit käyttää yhteyspohjaista ohjelmointirajapinnan
    ISteamNetworkingSockets -käyttöliittymää, joka palauttaa HSteamNetConnectionin.
    (Huomaa, että tämä ohjelmointirajapinta tukee myös yksinkertaista UDP-siirtoa, joka on erittäin hyödyllinen testausta varten. Tästä on myös avoimen lähdekoodin versio.)
  • Jotkin koodikannat on kirjoitettu UDP:n tapaan, ja paketit voidaan lähettää tuosta vain milloin tahansa mille tahansa etäisännälle, eikä kaikkia viestejä lähetetä tunnetulle yhteydelle. Näissä tapauksissa hyötyä saattaa olla kahdesta Steamworks-toiminnosta.
    • ISteamNetworkingMessages käy kommunikointiin isäntien kanssa, jotka identifioidaan SteamNetworkingIdentity -tyypillä, kuten SteamID:llä.
    • ISteamNetworkingFakeUDPPort käy kommunikointiin isäntien kanssa, jotka identifioidaan FakeIP:llä.

SDR:n käyttö muilla alustoilla ja kauppapaikoilla

Verkko-ohjelmointirajapinta ja DDoS-ratkaisu monialustaiselle pelille on hyödytön, jos se toimii vain yhdellä alustalla. Muiden alustojen ja kauppojen pelaajat pääsevät useimmiten välitysverkkoon, jos peli täyttää tietyt perusehdot.
  • Pelistä on tarjolla versio Steamissä.
  • Sitoudut päivittämään peliä pyydettäessä kohtuullisella aikataululla (vaikka muutaman kuukauden välein), jos meidän pitää lähettää bugikorjaus- tai turvapäivitys.
  • Huomaa, ettemme ikävä kyllä voi luvata, että palvelu on aina muiden kuin Steamin pelaajien saatavilla. Jos palvelua jostain epätodennäköisestä syystä jouduttaisiin supistamaan, teemme parhaamme, jottei pelaajille koidu siitä häiriötä ja sinulle jää aikaa suunnitella rauhassa. SDK:ssa on sisäänrakennettuja mekanismeja, joiden avulla asiakasohjelmat voidaan opastaa siirtymään takaisin suoran UDP-yhteyden käyttöön tai yrittämään NAT-reititystä, mutta sinunkin kannattaa pitää se mahdollisuus mielessä.
  • Pelissä on jonkinlainen pelihakupalvelu (SDR viittaa siihen nimellä pelikoordinaattori), joka voi jaella tunnistusvaltuuksia. Sitä varten olemassa erillinen SDK. Lue lisää alta.

Ota meihin yhteyttä SDK-asioista ja ehtojen yksityiskohdista. Yritämme keksiä parasta keinoa jakaa koodia, joten emme ehkä voi vielä tarjota järjestelmäriippumatonta tukea yhteistyökumppaneille ja kaikille peleille.

Lue alta lisätietoja SDR:n käytöstä muilla alustoilla ja kaupoissa.

Jos et täytä yllä mainittuja ehtoja, voit käyttää ohjelmointirajapinnan avoimen lähdekoodin versiota. Huomaa, ettei avoin lähdekoodi tue pääsyä välitysverkkoon.

Vertaisverkon pelit

SDR:n hyödyntämiseen Steamin vertaisverkkoliikenteeseen sinun tulee käyttää vain seuraavan kaltaisia ohjelmointirajapintoja: ISteamNetworkingSockets::CreateListenSocketP2P ja ISteamNetworkingSockets::ConnectP2P. Steam huolehtii lopusta. Lue alta lisätietoja muiden alustojen ja kauppojen teknisistä vaatimuksista.

Dedikoidut palvelimet tunnetuissa palvelinkeskuksissa

Vertaisverkko-ohjelmointirajapinnat toimivat hyvin silloinkin, kun yksi vertaisverkon kone on dedikoitu palvelin. Huomaa kuitenkin: jos dedikoitu palvelimesi ei ole palvelinkeskuksemme lähellä, silloin reitti saattaa olla hitaampi kuin tavallinen IP-reitti, ja ainakin osa pelaajista törmää tämänhetkistä pidempään viiveeseen.

Parhaan mahdollisen dedikoidun palvelimen kokemuksen saamiseksi palvelimen pitäisi olla tunnetussa palvelinkeskuksessa, joka on osa SDR-verkkoa. Varmistamme, että välittimet ovat lähellä ja välitetty reitti ei ole koskaan paljon hitaampi kuin oletus-IP-reitti. Näissä tunnetuissa palvelinkeskuksissa olevat palvelimet ovat yhteydessä erityisen ohjelmointirajapinnan kautta. Tähän käyttötapaukseen on viitattu SDK:ssa isännöitynä dedikoituna palvelimena (Hosted Dedicated Server). Tämä ei välttämättä tarkoita, että Valve isännöi palvelimia tai välittimiä, vaan niitä saatetaan isännöidä kolmannen osapuolen yhteistyökumppaneiden palvelinkeskuksissa, jotka Steam Datagram Relay -järjestelmä tuntee.

Jos käytät suuren luokan tarjoajan palvelimia ja haluat hyödyntää SDR:ää, ota meihin yhteyttä. Yritämme sopia isännöintiyrityksen kanssa välityspalvelun hoitamisesta palvelinkeskuksen kautta. Tämä on ihanteellinen ratkaisu, mutta vaikka se ei onnistuisi, saatamme pystyä lisäämään palvelinkeskuksen verkkomääritysjärjestelmään ja käyttämään läheisiä Valven välityspalveluja.

Jos edustat dedikoitujen palvelinten välitysyritystä ja haluat liittyä verkostoon, jotta asiakkaat pääsevät hyötymään SDR:stä, ota yhteyttä! Emme ole ottaneet vielä välityspalvelua käyttöön kolmannen osapuolen isännöintiyrityksissä, mutta olemme kiinnostuneita siitä vaihtoehdosta.

Yksinkertainen yhteydenmuodostus dedikoidulle palvelimelle ilman pelikoordinaattoria

Jos sinulla ei ole omaa keskitettyä pelihaku- tai kirjautumispalvelua (kutsumme tätä joskus pelikoordinaattoriksi), joka sijoittaa pelaajat palvelimille, tai jos haluat pitää asiat mahdollisimman yksinkertaisina, voit luoda yhteyden dedikoituun palvelimeen tunnetussa palvelinkeskuksessa käyttämällä näitä: ISteamNetworkingSockets::CreateListenSocketP2P ja ISteamNetworkingSockets::ConnectP2P. Tässä tapauksessa yhteys alkaa asiakasohjelmassa tavallisen vertaisverkkoyhteyden tapaan. Rendezvous-viestit lähetetään Steamin kautta, eli jos pelaaja tai palvelin menettää yhteyden Steamiin, yhteyttä ei voi muodostaa. Steam ei myöskään rajoita, kuka voi yrittää yhdistää palvelimeen. Se vain varmistaa, että pelaaja on kirjautunut Steamiin ja omistaa kyseisen pelin.

Tikettipohjainen palvelinyhteyden muodostus

Jos sinulla ei ole omaa pelikoordinaattoripalvelua, on suositeltavaa käyttää tikettipohjaista palvelinyhteyden muodostusta. Se vaatii yleensä vain hiukan enemmän töitä yksinkertaiseen vertaisverkon yhteydenmuodostukseen verrattuna ja tarjoaa kaksi merkittävää etua:
  • Tikettejä jaetaan vain pelaajille, joiden pitäisi saada yrittää ottaa yhteyttä, joten epätoivotut yhdistysyritykset eivät edes pääse palvelimelle asti.
  • Kun pelaajalla on tiketti, hän voi yhdistää palvelimeen, vaikka yhteys Steamiin katoaisi, palvelin kadottaisi yhteyden Steamiin tai pelaajan tietokone kaatuisi ja käynnistyisi uudelleen jne. On tärkeä tehdä pelipalvelimeen uudelleenyhdistämisestä vakaata, jotta vältetään tavalliset virheet eritoten peleissä, joissa pelaajia rangaistaan pelistä poistumisesta.

Tikettipohjainen yhteys dedikoidulle palvelimelle SDR:n kautta toimii seuraavasti:
  • Kun pelipalvelimesi kirjautuu pelikoordinaattoriin, se lähettää APIn SteamDatagramHostedAddress eli isokokoisen binääritiedoston, joka sisältää fyysiset reititystiedot. (Lisätietoja löytyy täältä: ISteamNetworkingSockets::GetHostedDedicatedServerAddress). Huomaa, että tarjolla on hyödyllisiä työkaluja, jotka auttavat autentikoidussa sisäänkirjautumisessa pelikoordinaattoriin.
  • Palvelin alkaa kuunnella välitysliikennettä tämän avulla:ISteamNetworkingSockets::CreateHostedDedicatedServerListenSocket.
  • Jossain vaiheessa asiakasohjelmasi haluaa liittyä pelihakuun tai kytkeytyä palvelimeen.
  • Asiakasohjelma voi käyttää ISteamNetworkingUtils-käyttöliittymän metodeja saadakseen viiveajat palvelinkeskukseen ja testatakseen yhteyttä. Haluat todennäköisesti asiakasohjelman lähettävän tämän tiedon pelikoordinaattorillesi, jotta se voi päättää, miten jakaa pelaajia palvelinkeskuksiin.
  • Kun pelikoordinaattorisi on valmis myöntämään asiakasohjelman yhteyden palvelimelle, se luo SteamDatagramRelayAuthTicket -tiketin ja kuittaa sen salaisella avaimellasi. Tiketti antaa tietylle asiakasohjelmalle luvan viestiä tietyn pelipalvelimen kanssa rajoitetun ajan. Se sisältää myös salatun reititystiedon. Pelikoordinaattori lähettää tiketin asiakasohjelmalle.
  • Asiakasohjelma tallentaa tiketin paikalliseen välimuistiin. (Lisätietoja tämän metodin hyödyllisyydestä löytyy täältä: ISteamNetworkingSockets::ReceivedRelayAuthTicket)
  • Asiakasohjelma käyttää pyyntöä ISteamNetworkingSockets::ConnectToHostedDedicatedServer ottaakseen yhteyttä palvelimeen. Katso täältä lisätietoja ISteamNetworkingSockets, miten viestejä lähetetään ja vastaanotetaan.

Tikettipohjainen todennus ei ole tällä hetkellä käytettävissä FakeIP:n kanssa.

Pelikoordinaattori-SDK

"Pelikoordinaattori" on termi, jota käytämme palvelinpuolen/pelihaun palveluista. On olemassa erillinen, pieni SDK, jonka voit linkittää pelikoordinaattoriisi. Sitä voidaan käyttää seuraaviin toimintoihin:
  • Myönnä asiakasohjelmille tikettejä SDR:n sisällä isännöityihin pelipalvelimiin.
  • Jäsennä PingLocation_t-merkkijonot ja laske näiden objektien väliset viiveajat.
  • Myönnä identiteettivarmenteita pelaajille muilla alustoilla ja kauppapaikoilla.
  • Hyödynnä muutamia muita edistyneitä toimintoja.

SDK on saatavilla täällä

Autentikointi Pelikoordinaattori-SDK:lla

SDR käyttää kahta autentikointimekanismia:

  • Pelikoordinaattori myöntää isännöityjen palvelimien tikettejä ja antaa tietyn asiakasohjelman kommunikoida dedikoidun palvelimen kanssa jonkin aikaa. Välitystikettejä käytetään ainoastaan dedikoidun palvelimen käyttötapauksessa. Näytä SteamDatagramRelayAuthTicket.
  • Sertifikaatteja käytetään perinteisesti todennukseen ja D-H-avaintenvaihtoon salatun kanavan luomiseksi. Sertifikaatit ovat päästä päähän -konsepti, jota voidaan käyttää kaikissa SteamNetworkingSockets-kommunikaation muodoissa, kuten suorissa UDP-yhteyksissä tai vertaisverkoissa. Näytä pelikoordinaattori-SDK:n ja ISteamNetworkingSockets::GetCertificateRequest -pyynnön SteamDatagram_CreateCert.

Me käytämme omaa julkisten avainten hallintajärjestelmää (PKI) asiakasohjelmien ja palvelimien autentikoinnissa. Pelaajille annetaan yksilöllisiä, lyhytaikaisia sertifikaatteja, jotka on kytketty heidän pelaajaidentiteettiinsä. Steam huolehtii tästä kaikesta. Käytämme pelipalvelimille yleensä pitkäaikaisia sertifikaatteja, jotka myöntävät kokonaiselle palvelinkeskukselle pääsyn tietylle sovellustunnukselle (AppID). Sinä myönnät sertifikaatit.

Ennen kuin voit jakaa tikettejä ja sertifikaatteja, sinun pitää luoda avainpari ja lähettää meille julkinen avaimesi. Julkaisemme päävarmentaja-avaimen allekirjoittaman sertifikaatin, joka merkitsee avaimen sovellukselle luotettavaksi. Luot sen jälkeen offline-tilassa sertifikaattityökalullamme sertifikaatin jokaiselle palvelinkeskukselle, joissa haluat käyttää palvelimia, ja allekirjoitat ne yksityisellä avaimellasi. Jakelet sertifikaatit pelipalvelimillesi salatun kanavan kautta, josta ne siirtyvät ympäristösi palvelimelle (katso alla).

Käytät avainta tikettien luomiseen joka kerta, kun pelaaja luo yhteyden pelipalvelimeen.

Pidä sekä varmentajan että sertifikaattien yksityiset avaimet varmassa tallessa. Jos avaimesi päätyy vääriin käsiin ja joudutaan poistamaan ja korvaamaan, se saattaa johtaa häiriötilanteeseen.

Palvelinten käyttö tunnetuissa palvelinkeskuksissa


Muita alustoja ja kauppoja käyttävät asiakasohjelmat eivät kirjaudu Steamiin, joten joudut tarjoamaan niille tiettyjä palveluja, joita Steam tarjoaa käyttäjilleen.

Pelikoordinaattorin käyttöönotto

  • Pelihakupalvelun (pelikoordinaattorin) ja pelikoordinaattorin SDK:n tulee olla yhteydessä toisiinsa. Otsikkotiedostosta steamdatagram_gamecoordinator.h löytyy lisätietoja. Pelikoordinaattorin SDK käyttää C-kielellä kirjoitettua APIa, joten sen pitäisi integroitua helposti muiden kielten kanssa.
  • Lataa verkkomääritykset alustuksen yhteydessä ja tarkista päivitykset noin kerran tunnissa. (Tarkasta SteamDatagram_GameCoordinator_GetNetworkConfigURL ja SteamDatagram_GameCoordinator_SetNetworkConfig.) Verkon määritykset löytyvät pienestä JSON-tiedostosta, jonka koko tätä kirjoitettaessa on 26K (pakattuna 9K). Tämän URL-osoitteen pitäisi olla saatavilla, mutta voit halutessasi käyttää hiljattain ladattua versiota.
  • Tarvitset vahvistetun avainparin pelillesi. Lähetä meille julkinen avain ja alusta pelikoordinaattori-SDK yksityisellä avaimella. (Lisätietoja kohdassa SteamDatagram_SetPrivateKey_Ed25519).

Kirjautumispyynnöt

  • Asiakasohjelma lähettää pyynnön ISteamNetworkingSockets::GetCertificateRequest saadakseen blob-tiedoston, joka lähetetään kirjautumispyynnön mukana pelikoordinaattorille.
  • Kun pelikoordinaattori saa kirjautumispyynnön, luo sertifikaatti asiakasohjelmalle käyttämällä komentoa SteamDatagram_CreateCert.
  • Lähetä valmis sertifikaatti takaisin asiakasohjelmalle kirjautumisvastauksessa. Asiakasohjelma asentaa sertifikaatin ISteamNetworkingSockets::SetCertificate-pyynnöllä.
  • On erittäin suositeltavaa, että jaat samalla myös verkkomääritykset asiakasohjelmille. Asiakasohjelmat ottavat verkkomääritykset käyttöön SteamDatagram_SetNetworkConfig -komennolla.

Sertifikaateilla on umpeutumisaika. Suosittelemme asettamaan umpeutumisajaksi 48 tuntia. Jos asiakasohjelma on yhdistetty pidempään kuin 48 tuntia, sertifikaatti on uusittava ajoittain. Uuden sertifikaatin voi ottaa käyttöön milloin tahansa. Voit halutessasi myöntää sertifikaatteja useammin, kuten jokaisen ottelun alussa.

Jokaisella asiakasohjelmalla on oltava uniikki tunnus. Käytä alustakohtaisia tunnuksia, jos mahdollista. (Tämä on vaatimus Steam-asiakasohjelmille). Jos se ei ole mahdollista, voit käyttää geneeristä merkkijonotunnusta, joka sopii kyseiselle henkilölle. Katso SteamNetworkingIdentity.

Vertaisverkkopelit

P2P-yhteydet vaativat signalointipalvelun. Se on pienen kaistanleveyden viiveetön best-effort-toimituskanava, joka pystyy lähettämään satunnaisia reitityksen neuvotteluun käytettäviä rendezvous-viestejä edelleen. Asiakasohjelmilla tulee olla pysyvä yhteys pelihakupalveluun, jotta voit lähettää niille viestejä (esim. WebSocket tai TCP-yhteys). Se ei toimi, jos asiakasohjelmat kommunikoivat pelikoordinaattorille vain pyynnöillä ja vastauksilla, kuten http://llä. Sinulta vaaditaan ainoastaan best-effort-toimituskanava. Se tarkoittaa, että kirjasto hyväksyy viestien häviämisen tai toimittamisen useaan kertaan.

  • Luo yhteys pyynnöllä ISteamNetworkingSockets::ConnectP2PCustomSignaling. Sinun tulee suorittaa alaluokka kohteelle ISteamNetworkingConnectionSignaling. Kun SendSignal -pyyntö suoritetaan, asiakasohjelma lähettää viestin back endiin, josta back end pyrkii lähettämään viestin vertaisverkkoon yhdistäneelle käyttäjälle. Kun yhteys luodaan ensimmäistä kertaa, on tyypillistä vaihtaa 4–10 viestiä. Sen jälkeen saatat joutua lähettämään signaalin valmiille yhteyksille, jos reitittimen tila muuttuu.
  • Kun asiakasohjelma vastaanottaa signaalin, käytä ISteamNetworkingSockets::ReceivedP2PCustomSignal-pyyntöä. Kirjasto tulkitsee viestin. Olemassa olevan yhteyden signaali prosessoidaan sisäisesti. Uuden yhteyden signaalia varten käytetään ISteamNetworkingSignalingRecvContext::OnConnectRequest-pyyntöä.

Katso lisätietoja kohdasta steamnetworkingcustomsignaling.h.

Palvelinten käyttö tunnetuissa palvelinkeskuksissa

Tässä osiossa käsitellään yksityiskohtaisesti dedikoitujen palvelinten käyttöä tunnetuissa palvelinkeskuksissa.

Ympäristömuuttujat

Dedikoidut palvelimet saavat määrityksensä ympäristömuuttujilta. Huomaa, että Valven palvelinkeskuksissa kaikki nämä arvot määritetään sinulle automaattisesti.
  • SDR_LISTEN_PORT: UDP-portti, johon palvelin vastaanottaa välittäjien liikenteen. Dedikoitu palvelin käyttää vain yksittäistä pistoketta. (Sinulla voi olla useampi kuin yksi looginen "kuuntelupistoke", kun käytät "virtuaaliportteja". Lisätietoja: ISteamNetworkingSockets::CreateHostedDedicatedServerListenSocket.) Palvelinkeskuksissa on käytössä yleensä 30xxx-alue.
  • SDR_IP: Palvelimesi tarvitsee julkisen IP-osoitteen, jotta se voi vastaanottaa "pyytämätöntä" liikennettä välittimiltä. Jos palvelimella on vain yksi käyttöliittymä, jossa on julkinen IP, niin sitä käytetään. Muuten pelipalvelimelle on ilmoitettava, mitä IP-osoitetta käytetään. SDR-pistoke sidotaan kohteeseen INADDR_ANY, mutta tätä tietoa tarvitaan palvelimen SteamDatagramHostedAddress -tiedon täyttämiseen. Huomioi erityisesti, että tämä pitää usein määrittää kehitysympäristössä, jonka palvelin on yrityksen palomuurin takana. (Katso alla.) Voit myös yksilöidä portin, jos julkinen portti eroaa seuraavasta: SDR_LISTEN_PORT.
  • SDR_POPID: 3- tai 4-kirjaiminen aakkosnumeerinen palvelinkeskuksen koodi (SteamNetworkingPOPID), tuotantoympäristössä. Kehitysympäristössä tämä tulee jättää tyhjäksi.
  • SDR_PRIVATE_KEY: Sertifikaattisi yksityinen avain. Tämä on OpenSSH PEM -lohko, joka alkaa seuraavasti: "-----BEGIN OPENSSH PRIVATE KEY-----".
  • SDR_CERT: Allekirjoitettu sertifikaattisi. Tämä on suljetussa muodossa PEM-tyyppisessä lohkossa, ja se alkaa seuraavasti: "-----BEGIN STEAMDATAGRAM CERT----".
  • SDR_NETWORK_CONFIG: Koko polku sovelluksesi paikalliseen, viimeaikaiseen SDR-verkon määritystiedostoon. Jos tätä muuttujaa ei ole asetettu, palvelimen tulee verkon määrityksen saadakseen noutaa kopio käyttämällä HTTP:tä uudelleenkäynnistyksen yhteydessä. Parhaan suorituskyvyn takaamiseksi voit ladata ajoittain (esim. kerran tunnissa) viimeisimmät määritykset ja tallentaa ne paikallisesti, jotta verkon satunnaiset pikkuongelmat eivät aiheuta häiriöitä. Valven palvelimet on määritetty näin.

Kehitysympäristössä pyörittäminen

Koska ISteamNetworkingSockets tukee UDP-yhteyttä, on yleensä paras aloittaa siten, että saat koodisi toimimaan käyttöliittymän läpi UDP:n kautta. Näin sinun ei tarvitse huolehtia välityksestä.

Suosittelemme, että palvelimesi koodi käyttää SDR_LISTEN_PORT-ympäristömuuttujaa päättääkseen, pitäisikö palvelimen kuunnella SDR:ää. Voit käyttää arvon hakemiseen ISteamNetworkingSockets::GetHostedDedicatedServerPort -pyyntöä.

Kehitysympäristössä voit jättää kohdan SDR_POPID tyhjäksi. Kun SDR_LISTEN_PORT ja SDR_POPID ovat tyhjiä, POPID määritetään erityisellä 3-merkkisellä koodilla: "dev".

Yleisesti autentikointi on otettu pois päältä "dev"-ympäristön palvelimilta. (Asiakasohjelmat ja välittäjät mahdollistavat molemmat yhteydet "dev"-palvelimiin ilman allekirjoitettua sertifikaattia, kunhan niillä on allekirjoitettu tiketti.) Tarvitset toisen autentikointitavan pelikoordinaattorillesi. Pelikoordinaattorisi pitää olla varovainen, kun se myöntää tikettejä mille tahansa palvelimelle ja sanoo olevansa "dev".

Palvelimesi pitää pystyä vastaanottamaan "pyytämätöntä" julkista liikennettä. Jos sillä ei ole julkista IP-osoitetta, sinun tulee määrittää palomuuriisi tarvittava portti. Sinun tulee myös todennäköisesti määrittää kohteeseen SDR_IP kunnollinen julkinen IP-osoite (sekä portti, jos se eroaa seuraavasta: SDR_LISTEN_PORT).