Steamworks-dokumentation
steam_gameserver.h
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 );
NavnTypeBeskrivelse
unIPuint32Den 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.
usSteamPortuint16Den lokale port til kommunikation med Steam-serverne.
usGamePortuint16Den port, som klienter opretter forbindelse til for at spille.
usQueryPortuint16Porten, som skal håndtere serverbrowseropgaver og info-pings fra klienter.
eServerModeEServerModeAngiver serverens godkendelsesmetode.
pchVersionStringconst 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_Init

SteamGameServer_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_ReleaseCurrentThreadMemory

SteamGameServer_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_RunCallbacks

SteamGameServer_Shutdown

S_API void SteamGameServer_Shutdown();
Lukker Steamworks-spilserver-API'en ned og frigiver pointere og hukommelse.

Se også: SteamAPI_Shutdown

Enums

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.

NavnVærdiBeskrivelse
eServerModeInvalid0FORÆLDET – BØR IKKE ANVENDES!
eServerModeNoAuthentication1Godkend ikke brugerlogins, og lyt ikke til serverlisten.
eServerModeAuthentication2Godkend brugere, lyt til serverlisten, kør ikke VAC på klienter, der opretter forbindelse.
eServerModeAuthenticationAndSecure3Godkend brugere, lyt til serverlisten, og beskyt klienter med VAC.