Documentazione di Steamworks
steam_gameserver.h
Fornisce le funzionalità chiave per inizializzare l'API dei server di gioco di Steamworks e accedervi.

Funzioni


Queste sono funzioni globali che non richiedono un'interfaccia per essere impostate. Puoi trovare maggiori informazioni su queste funzioni nella sezione Panoramica dell'API di Steamworks - Server di gioco di Steam.

SteamGameServer_Init

inline bool SteamGameServer_Init( uint32 unIP, uint16 usSteamPort, uint16 usGamePort, uint16 usQueryPort, EServerMode eServerMode, const char *pchVersionString );
NomeTipoDescrizione
unIPuint32L'indirizzo IP a cui effettuerai l'associazione. (Deve essere in ordine di host, ovvero 127.0.0.1 == 0x7f000001). Puoi utilizzare INADDR_ANY per associare a tutti gli indirizzi IPv4 locali.
usSteamPortuint16La porta locale utilizzata per comunicare con i server di Steam.
usGamePortuint16La porta a cui si collegheranno i client per giocare.
usQueryPortuint16La porta che gestirà i compiti correlati al browser dei server e i ping di informazioni dai client.
eServerModeEServerModeImposta il metodo di autenticazione del server.
pchVersionStringconst char *La stringa di versione assume generalmente la forma x.x.x.x e viene utilizzata dal master server per rilevare quando il server non è aggiornato (saranno elencati solo i server con l'ultima versione).

Inizializza l'oggetto interfaccia ISteamGameServer e imposta le proprietà del server che non possono essere cambiate.

Dopo avere chiamato questa funzione, devi impostare altri parametri aggiuntivi del server, quindi chiamare ISteamGameServer::LogOnAnonymous o ISteamGameServer::LogOn.

Se passi MASTERSERVERUPDATERPORT_USEGAMESOCKETSHARE in usQueryPort, il server di gioco userà la modalità GameSocketShare, il che significa che il gioco è responsabile dell'invio e del ricevimento dei pacchetti UDP per l'updater del master server.

Restituisce: bool


Vedi anche: SteamAPI_Init

SteamGameServer_ReleaseCurrentThreadMemory

inline void SteamGameServer_ReleaseCurrentThreadMemory();
Libera la memoria interna dell'API di Steamworks associata al thread che ha effettuato la chiamata.

La maggior parte delle funzioni dell'API di Steamworks riserva per i suoi parametri un piccolo ammontare di memoria dei thread locali. Questa chiamata libererà quella memoria. Questa funzione viene chiamata automaticamente da SteamGameServer_RunCallbacks, quindi un programma che accede all'API di Steamworks da un singolo processo non dovrà mai chiamarla esplicitamente.

Vedi anche: SteamAPI_ReleaseCurrentThreadMemory

SteamGameServer_RunCallbacks

S_API void SteamGameServer_RunCallbacks();
Invia le richiamate create con STEAM_GAMESERVER_CALLBACK e chiama i risultati a tutti gli ascoltatori registrati.

È meglio chiamarla a >10 Hz; maggiore è il tempo tra le chiamate, maggiore è la potenziale latenza tra il ricevimento degli eventi o dei risultati dell'API di Steamworks.
La maggior parte dei giochi la chiama una volta per ogni frame di rendering. Tutte le funzioni degli ascoltatori registrati saranno invocate durante questa chiamata nel contesto del thread dei caller.

SteamGameServer_RunCallbacks può essere chiamata in sicurezza da diversi thread contemporaneamente ma, se decidi di farlo, il codice di richiamata potrebbe essere eseguito su uno qualunque dei thread. In alternativa, puoi chiamare SteamGameServer_RunCallbacks solo dal thread principale e chiamare regolarmente SteamGameServer_ReleaseCurrentThreadMemory sugli altri thread.

Vedi anche: SteamGameServer_RunCallbacks

SteamGameServer_Shutdown

S_API void SteamGameServer_Shutdown();
Arresta l'API del server di gioco di Steamworks, rilascia i puntatori e libera la memoria.

Vedi anche: SteamAPI_Shutdown

Enumerazioni

Queste sono le enumerazioni definite per l'utilizzo con steam_gameserver.

EServerMode

Utilizzata per impostare l'autenticazione e lo stato VAC di un server di gioco durante l'inizializzazione con SteamGameServer_Init.

NomeTipoDescrizione
eServerModeInvalid0NON PIÙ IN USO - NON UTILIZZARE!
eServerModeNoAuthentication1Non autentica gli accessi degli utenti e non elenca sulla lista dei server.
eServerModeAuthentication2Autentica gli utenti, elenca sulla lista dei server, non esegue il VAC sui client collegati.
eServerModeAuthenticationAndSecure3Autentica gli utenti, elenca sulla lista dei server e protegge i client tramite VAC.