Documentación de Steamworks
steam_gameserver.h
Proporciona la base principal para inicializar y acceder a la API GameServer de Steamworks.

Funciones


Estas son funciones globales que no requieren de interfaz para su uso. Puedes leer más sobre estas funciones en Descripción general de la API de Steamworks - Servidores de juegos de Steam.

SteamGameServer_Init

inline bool SteamGameServer_Init( uint32 unIP, uint16 usSteamPort, uint16 usGamePort, uint16 usQueryPort, EServerMode eServerMode, const char *pchVersionString );
NombreTipoDescripción
unIPuint32Dirección IP a la que se va a realizar el enlace. (Debería ser conforme al orden del host, es decir, 127.0.0.1 == 0x7f000001). Puedes usar INADDR_ANY para enlazar a todas las direcciones IPv4 locales.
usSteamPortuint16Puerto local utilizado para comunicarse con los servidores de Steam.
usGamePortuint16Puerto al que se conectarán los clientes para jugar.
usQueryPortuint16Puerto que gestionará las tareas relacionadas con el explorador de servidores y los pings de información procedentes de los clientes.
eServerModeEServerModeEstablece el método de autenticación del servidor.
pchVersionStringconst char *La cadena de versión suele tener la forma x.x.x.x y el servidor maestro la usa para detectar cuándo el servidor está desactualizado. (solo se mostrarán los servidores con la versión más reciente).

Inicializa el objeto de interfaz ISteamGameServer y establece propiedades del servidor que no pueden cambiar.

Después de llamar a esta función, debes establecer cualquier parámetro de servidor adicional y luego llamar a ISteamGameServer::LogOnAnonymous o ISteamGameServer::LogOn.

Si pasas el MASTERSERVERUPDATERPORT_USEGAMESOCKETSHARE a usQueryPort, entonces el servidor del juego usará el modo GameSocketShare, lo que significa que el juego es responsable de enviar y recibir paquetes UDP para el actualizador del servidor maestro.

Devuelve: bool


Véase también: SteamAPI_Init

SteamGameServer_ReleaseCurrentThreadMemory

inline void SteamGameServer_ReleaseCurrentThreadMemory();
Libera la memoria interna de la API de Steamworks asociada con el subproceso de llamada.

La mayoría de las funciones de la API de Steamworks reservan una pequeña cantidad de memoria local en el subproceso para almacenar parámetros; llamar a esta función liberará manualmente esa memoria. Se llama a esta función automáticamente mediante SteamGameServer_RunCallbacks, de forma que un programa que solo acceda a la API de Steamworks desde un único subproceso nunca necesita llamar a esta función expresamente.

Véase también: SteamAPI_ReleaseCurrentThreadMemory

SteamGameServer_RunCallbacks

S_API void SteamGameServer_RunCallbacks();
Envía funciones callback creadas con STEAM_GAMESERVER_CALLBACK y resultados de llamada a todas las escuchas registradas.

Es mejor llamar a esto a >10Hz, cuanto más tiempo haya entre llamadas, mayor será la latencia potencial entre recibir eventos o los resultados de la API de Steamworks.
La mayoría de los juegos lo llaman una vez por marco renderizado. Se invocará a todas las funciones de escucha registradas durante esta llamada, en el contexto del subproceso del origen de la llamada.

SteamGameServer_RunCallbacks es seguro llamar desde múltiples subprocesos simultáneamente, pero si eliges hacer esto, el código de función callback podría ejecutarse en cualquier subproceso. Una alternativa es llamar a SteamGameServer_RunCallbacks solo desde el subproceso principal, y llamar a una alternativa es llamar a SteamGameServer_RunCallbacks solo desde el subproceso principal, y llamar a SteamGameServer_ReleaseCurrentThreadMemory regularmente en otros subprocesos.

Véase también: SteamGameServer_RunCallbacks

SteamGameServer_Shutdown

S_API void SteamGameServer_Shutdown();
Cierra la API GameServer de Steamworks, libera punteros y libera memoria.

Véase también: SteamAPI_Shutdown

Enums

Estas son enumeraciones que están definidas para usar con steam_gameserver.

EServerMode

Se usa para establecer la autenticación y el estado de VAC de un servidor de juegos al inicializar con SteamGameServer_Init.

NombreValorDescripción
eServerModeInvalid0OBSOLETO - ¡NO LO USES!
eServerModeNoAuthentication1No autentiques los inicios de sesión de los usuarios y no los incluyas en la lista de servidores.
eServerModeAuthentication2Autentica a los usuarios, haz una lista en la lista de servidores, no ejecutes VAC en los clientes que se conectan.
eServerModeAuthenticationAndSecure3Autentica a los usuarios, la lista en la lista de servidores y VAC protege a los clientes.