Documentación de Steamworks
Interfaz de Steam

Introducción

La interfaz de Steam es una parte de la interfaz de usuario de Steam que puede activarse por encima de casi cualquier juego iniciado a través de Steam. Permite al usuario acceder a la lista de amigos, el navegador, el chat y la compra de DLC dentro del juego.

La combinación de teclas predeterminadas para que un usuario acceda a la interfaz durante una partida es MAYÚS + TAB, aunque lo puede cambiar en el cuadro de diálogo Steam -> Configuración.

Requisitos

Un juego no necesita hacer nada especial para que la interfaz funcione, ya que esta se adjunta automáticamente a cualquier juego que se inicia desde Steam. Durante el desarrollo y al ejecutar un juego como depurador, la interfaz se carga haciendo una llamada a SteamAPI_Init. En este caso, es necesario asegurarse de ejecutar la llamada a SteamAPI_Init antes de inicializar el dispositivo OpenGL/D3D o no podrá conectarse a la creación del dispositivo.

La interfaz es compatible con juegos que utilicen DirectX 7-12, OpenGL, Metal y Vulkan. La interfaz no estará activa en juegos rasterizados por software.

macOS: el soporte de superposición para 10.15 (Catalina) requiere agregar derechos a tu configuración de compilación. Se proporcionan detalles en la página platforms.
AVISO: La interfaz superpuesta se desactiva automáticamente para las aplicaciones del tipo "Software". Si necesitas la interfaz superpuesta habilitada, puedes hacerlo de la siguiente manera:
  • Asegúrate de que tu cuenta de Steam tiene el permiso "Editar metadatos de la aplicación".
  • Ve desde la página de inicio de la aplicación a Editar ajustes de Steamworks > Pestaña de instalación > Instalación general.
  • Marca la casilla de verificación para activar la interfaz superpuesta de Steam para la aplicación.
  • Publicar

Activación de la interfaz desde la aplicación

Existe un conjunto de funciones en la API de Steamworks que da acceso directo a la activación de la interfaz del juego.

Comunicación entre la interfaz y el juego

Las siguientes señales (funciones callback) se envían de Steam al juego en función de la acción del usuario en la interfaz:
  • GameOverlayActivated_t
    Se publica cuando la interfaz del juego se activa o desactiva. Al juego le sirve para poner en pausa o reanudar partidas de un solo usuario.
  • GameServerChangeRequested_t
    Se publica cuando el usuario selecciona una partida de amigos a la que unirse; contiene detalles acerca del servidor de juego al que unirse.
  • GameLobbyJoinRequested_t
    Se publica cuando el usuario selecciona una partida de amigos a la que unirse; contiene detalles acerca de la sala a la que unirse.

Preguntas frecuentes

NOTA: Se pueden encontrar respuestas adicionales en el sitio de asistencia de cara al cliente, como este tema: La interfaz de la Comunidad Steam no se activa.

P. ¿Por qué la interfaz de Steam bloquea mi aplicación?

R. La interfaz de Steam se emplea en miles de juegos y, por tanto, ha sido probada a conciencia y raramente es la causante de un bloqueo. Sin embargo, debido al modo en que se implementa en el juego, en ocasiones expone pérdidas o dañado de memoria en el uso de la API de representación que pueden no haber tenido efecto en el juego.

Por ejemplo, para diagnosticar bloqueos de la interfaz con DirectX, se puede intentar determinar cómo se produjo el mal estado de D3D empleando el tiempo de ejecución de depuración de d3d con todas las opciones de informes (información/aviso/error/notificación) activadas. Podrían incluso obtener pistas acerca de recursos d3d huérfanos. Si no se encuentra nada, puede existir un problema de dañado de memoria más general. Si siempre se producen durante el cierre, es probable que se deba a un problema de orden de cierre por el que el juego no realiza limpieza mientras se sale.

Si, tras la depuración, la aplicación sigue bloqueándose en la interfaz, rogamos se nos notifique en el grupo de desarrollo de Steamworks.

P. ¿Por qué la interfaz de Steam no aparece en mi aplicación?

R. Primero hay que comprobar que se cumplen los Requisitos anteriores. Si se cumplen, pero la interfaz sigue sin aparecer, hay que asegurarse de que se inicia la aplicación desde el cliente de Steam, no directamente desde la sala/lista de inicio rápido o mediante una llamada a SteamAPI_RestartAppIfNecessary.

P. Mi juego está usando D12onWin7, y la interfaz de Steam no funciona. ¿Por qué?

R. Por favor, consulta este documento de Microsoft sobre cómo agregar soporte en la interfaz de Steam.