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 );
Nombre | Tipo | Descripción |
unIP | uint32 | Direcció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. |
usSteamPort | uint16 | Puerto local utilizado para comunicarse con los servidores de Steam. |
usGamePort | uint16 | Puerto al que se conectarán los clientes para jugar. |
usQueryPort | uint16 | Puerto que gestionará las tareas relacionadas con el explorador de servidores y los pings de información procedentes de los clientes. |
eServerMode | EServerMode | Establece el método de autenticación del servidor. |
pchVersionString | const 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_InitSteamGameServer_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_ReleaseCurrentThreadMemorySteamGameServer_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_RunCallbacksSteamGameServer_Shutdown
S_API void SteamGameServer_Shutdown();
Cierra la API GameServer de Steamworks, libera punteros y libera memoria.
Véase también: SteamAPI_ShutdownEnums
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.
Nombre | Valor | Descripción |
eServerModeInvalid | 0 | OBSOLETO - ¡NO LO USES! |
eServerModeNoAuthentication | 1 | No autentiques los inicios de sesión de los usuarios y no los incluyas en la lista de servidores. |
eServerModeAuthentication | 2 | Autentica a los usuarios, haz una lista en la lista de servidores, no ejecutes VAC en los clientes que se conectan. |
eServerModeAuthenticationAndSecure | 3 | Autentica a los usuarios, la lista en la lista de servidores y VAC protege a los clientes. |