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 );
Nome | Tipo | Descrizione |
unIP | uint32 | L'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. |
usSteamPort | uint16 | La porta locale utilizzata per comunicare con i server di Steam. |
usGamePort | uint16 | La porta a cui si collegheranno i client per giocare. |
usQueryPort | uint16 | La porta che gestirà i compiti correlati al browser dei server e i ping di informazioni dai client. |
eServerMode | EServerMode | Imposta il metodo di autenticazione del server. |
pchVersionString | const 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_InitSteamGameServer_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_ReleaseCurrentThreadMemorySteamGameServer_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_RunCallbacksSteamGameServer_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_ShutdownEnumerazioni
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.
Nome | Tipo | Descrizione |
eServerModeInvalid | 0 | NON PIÙ IN USO - NON UTILIZZARE! |
eServerModeNoAuthentication | 1 | Non autentica gli accessi degli utenti e non elenca sulla lista dei server. |
eServerModeAuthentication | 2 | Autentica gli utenti, elenca sulla lista dei server, non esegue il VAC sui client collegati. |
eServerModeAuthenticationAndSecure | 3 | Autentica gli utenti, elenca sulla lista dei server e protegge i client tramite VAC. |