Introducción
La interfaz superpuesta de Steam es una parte de la interfaz de usuario de Steam que puede activarse por encima de casi cualquier juego que se inicie a través de Steam. Permite al usuario acceder a la lista de amigos, al navegador y al chat, así como comprar DLC dentro del juego.
La combinación de teclas predeterminada para que un usuario acceda a la interfaz superpuesta durante una partida es MAYÚS + TAB, aunque la puede cambiar dirigiéndose a «Steam» -> «Parámetros».
Requisitos
Un juego no necesita hacer nada especial para que la interfaz superpuesta funcione, ya que esta se adjunta automáticamente a cualquier juego que se inicia desde Steam. Durante el desarrollo y al ejecutar un juego en un depurador, la interfaz superpuesta 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á adjuntarse a la creación del dispositivo.
La interfaz superpuesta es compatible con juegos que utilicen DirectX 7-12, OpenGL, Metal y Vulkan. No estará activa en juegos rasterizados por software.
La compatibilidad de la interfaz superpuesta con macOS 10.15 (Catalina) requiere añadir derechos a la configuración de tu compilación. Encontrarás más información en la página
Plataformas.
NOTA: La interfaz superpuesta se desactiva automáticamente para las aplicaciones del tipo «software». Si necesitas que la interfaz superpuesta esté activada, puedes hacerlo de la siguiente manera:
- Asegúrate de que tu cuenta de Steam tiene el permiso «Editar metadatos de la aplicación».
- Desde la página de administración de la aplicación, ve a «Editar ajustes de Steamworks» > Pestaña «Instalación» > «Instalación general».
- Marca la casilla de verificación para activar la interfaz superpuesta de Steam para la aplicación.
- Publica los cambios.
Activar la interfaz superpuesta 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 superpuesta en el juego.
Comunicación entre la interfaz superpuesta 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 superpuesta:
- GameOverlayActivated_t
Se envía cuando la interfaz superpuesta se activa o desactiva. Al juego le sirve para poner en pausa o reanudar partidas de un solo jugador.
- GameServerChangeRequested_t
Se envía cuando el usuario selecciona una partida de un amigo a la que unirse; contiene detalles acerca del servidor de juego al que se quiere unir.
- GameLobbyJoinRequested_t
Se envía cuando el usuario selecciona una partida de un amigo a la que unirse; contiene detalles acerca de la sala de espera a la que se quiere unir.
Preguntas frecuentes
NOTA: Puedes encontrar respuestas adicionales en el sitio del Soporte de Steam para los clientes, como este tema:
La interfaz superpuesta no se abre.
P. ¿Por qué la interfaz superpuesta de Steam bloquea mi aplicación?
R. La interfaz superpuesta 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ía incluso dar algunas pistas sobre los recursos de d3d huérfanos. Si no se encuentra nada, puede existir un problema de dañado de memoria más general. Si esto ocurre siempre al cerrar, es probable que se trate de un problema al ordenar el cierre, impidiendo salir del juego correctamente.
Si, tras la depuración, la aplicación sigue bloqueándose en la interfaz superpuesta, puedes avisarnos sobre ello en el
grupo de desarrollo de Steamworks.
P. ¿Por qué la interfaz superpuesta de Steam no aparece en mi aplicación?
R. Primero hay que comprobar que se cumplen los
Requisitos anteriores. Si se cumplen y sigue sin aparecer, asegúrate de iniciar la aplicación a través del cliente de Steam, ya sea directamente desde la lista de salas o de inicio rápido, o llamando a
steamapi_restartAppIfNecessary.
P. Mi juego usa D3D12 en Windows 7, y la interfaz superpuesta de Steam no funciona. ¿Por qué?
R. Consulta este
documento de Microsoft sobre cómo añadir compatibilidad con la interfaz superpuesta de Steam.
P. Mi juego funciona en un navegador. ¿Es compatible con la interfaz superpuesta?
R. La interfaz superpuesta de Steam requiere que los juegos rendericen los fotogramas consistentemente, sin pausar el renderizado ni renderizar solo parte de la pantalla basándose en lo que se conoce como rectángulos sucios. Por desgracia, los navegadores no son compatibles con este modelo. Como solución alternativa, los juegos que se ejecutan en un navegador pueden albergar un navegador Chromium incrustado en una aplicación nativa, con una ventana D3D y reenvío de entradas al navegador Chromium. Esta configuración se puede ajustar para que renderice fuera de la pantalla y después renderizar la textura resultante de Chromium en cada fotograma de la aplicación nativa. Los asociados suelen utilizar CEF para hacerlo, pero no es fácil.