Giver kernefundamentet til at initialisere og tilgå Steamworks-spilserver-API'en.
Funktioner
Disse er globale funktioner, som ikke kræver en grænseflade. Du kan læse mere om funktionerne i
Oversigt over Steamworks-API – Steam-spilservere.
SteamGameServer_Init
inline bool SteamGameServer_Init( uint32 unIP, uint16 usSteamPort, uint16 usGamePort, uint16 usQueryPort, EServerMode eServerMode, const char *pchVersionString );
Navn | Type | Beskrivelse |
unIP | uint32 | Den IP-adresse, du vil tildele. (Det skal være i værtsrækkefølgen, dvs. 127.0.0.1 == 0x7f000001). Du kan bruge INADDR_ANY til at tildele alle lokale IPv4-adresser. |
usSteamPort | uint16 | Den lokale port til kommunikation med Steam-serverne. |
usGamePort | uint16 | Den port, som klienter opretter forbindelse til for at spille. |
usQueryPort | uint16 | Porten, som skal håndtere serverbrowseropgaver og info-pings fra klienter. |
eServerMode | EServerMode | Angiver serverens godkendelsesmetode. |
pchVersionString | const char * | Versionsstrengen er som regel i formatet x.x.x.x og bruges af masterserveren til at registrere, når serveren er forældet. (Kun servere med den seneste version vises). |
Initialiserer ISteamGameServer-grænsefladeobjektet og angiver serveregenskaberne, som ikke kan ændres.
Når denne funktion er blevet kaldt, skal du angive eventuelle andre serverparametre og derefter kalde
ISteamGameServer::LogOnAnonymous eller
ISteamGameServer::LogOn.
Hvis du sender
MASTERSERVERUPDATERPORT_USEGAMESOCKETSHARE til
usQueryPort
, vil spilserveren bruge GameSocketShare-tilstanden, hvilket betyder, at spillet er ansvarligt for at sende og modtage UDP-pakker for opdateringsfunktionen for masterserveren.
Returværdier: bool
Se også: SteamAPI_InitSteamGameServer_ReleaseCurrentThreadMemory
inline void SteamGameServer_ReleaseCurrentThreadMemory();
Frigiver den interne Steamworks-API-hukommelse, som er tilknyttet kaldetråden.
De fleste Steamworks-API-funktioner allokerer en lille mængde lokalt trådlager til lagring af parametre. Kald til denne vil frigive hukommelsen manuelt. Funktionen kaldes automatisk af
SteamGameServer_RunCallbacks, så et program, som kun tilgår Steamworks-API'en fra en enkelt tråd, behøver aldrig eksplicit at kalde denne funktion.
Se også: SteamAPI_ReleaseCurrentThreadMemorySteamGameServer_RunCallbacks
S_API void SteamGameServer_RunCallbacks();
Sender tilbagekald, som er oprettet med STEAM_GAMESERVER_CALLBACK, og kalder resultater til alle registrerede lyttere.
Det er bedst at kalde denne ved >10 Hz. Jo længere tid mellem kaldene, jo større potentiel forsinkelse mellem modtagehændelser eller resultater fra Steamworks-API'en.
De fleste spil kalder denne én gang pr. gengivelsesbillede. Alle registrerede lytterfunktioner kaldes under dette kald, i kalderens trådkontekst.
Man kan roligt kalde SteamGameServer_RunCallbacks fra flere tråde samtidigt, men hvis du gør dette, skal tilbagekaldskoden udføres på en anden tråd. Ét alternativ er at kalde SteamGameServer_RunCallbacks udelukkende fra hovedtråden og kalde
SteamGameServer_ReleaseCurrentThreadMemory med jævne mellemrum på andre tråde.
Se også: SteamGameServer_RunCallbacksSteamGameServer_Shutdown
S_API void SteamGameServer_Shutdown();
Lukker Steamworks-spilserver-API'en ned og frigiver pointere og hukommelse.
Se også: SteamAPI_ShutdownEnums
Disse er optællinger, som defineres til brug med steam_gameserver.
EServerMode
Bruges til at angive godkendelses- og VAC-status for en spilserver ved initialisering med
SteamGameServer_Init.
Navn | Værdi | Beskrivelse |
eServerModeInvalid | 0 | FORÆLDET – BØR IKKE ANVENDES! |
eServerModeNoAuthentication | 1 | Godkend ikke brugerlogins, og lyt ikke til serverlisten. |
eServerModeAuthentication | 2 | Godkend brugere, lyt til serverlisten, kør ikke VAC på klienter, der opretter forbindelse. |
eServerModeAuthenticationAndSecure | 3 | Godkend brugere, lyt til serverlisten, og beskyt klienter med VAC. |