Overzicht
De Steam-overlay is een onderdeel van de Steam-gebruikersinterface. Je kunt de overlay activeren in bijna ieder spel dat opgestart wordt via Steam. Hiermee heeft de gebruiker toegang tot de vriendenlijst, webbrowser, chat en DLC-aankopen in een spel.
De standaard toetsencombinatie waarmee een gebruiker de overlay tijdens een spel kan openen, is Shift+Tab. Deze combinatie kan echter worden gewijzigd in het dialoogvenster Instellingen > Steam.
Vereisten
In het spel hoeft niets speciaals te gebeuren om ervoor te zorgen dat de Steam-overlay het doet. De overlay is automatisch beschikbaar in elk spel dat via Steam wordt gestart! Tijdens de ontwikkeling van je spel kun je de overlay in een debugger laden door
SteamAPI_Init aan te roepen. Zorg er daarom voor dat je
SteamAPI_Init aanroept voordat je het OpenGL/D3D-apparaat initialiseert, om te voorkomen dat de apparaatinstelling niet kan worden gehookt.
De overlay ondersteunt spellen die DirectX 7-12, OpenGL, Metal en Vulkan gebruiken. De overlay is niet actief in spellen met software-rastering.
MacOS: Voor overlay-ondersteuning voor 10.15 (Catalina) dien je rechten aan je buildconfiguratie toe te voegen. Details hierover vind je op de pagina over
platforms.
Opmerking: De overlay is automatisch uitgeschakeld voor software-apps. Als het nodig is dat de overlay ingeschakeld wordt, kun je dat doen door:
- Ervoor te zorgen dat je Steam-account toestemming heeft om appmetadata te bewerken
- Van de startpagina van je app te navigeren naar Steamworks-instellingen bewerken > Installatie-tabblad > Algemene installatie
- Het vakje aan te vinken voor 'Steam-overlay inschakelen voor applicatie'
- Publiceren
Activatie van de overlay vanuit je app
Er zijn verschillende functies in de Steamworks-API die je directe toegang geven tot de activatie van de speloverlay.
Communicatie van de overlay naar je spel
Op basis van gebruikersacties in de overlay worden de volgende signalen (callbacks) van Steam naar je spel verzonden:
- GameOverlayActivated_t
Wordt verzonden wanneer de speloverlay wordt geactiveerd of gedeactiveerd. Het spel kan dit gebruiken om singleplayerspellen te pauzeren of hervatten.
- GameServerChangeRequested_t
Wordt verzonden wanneer de gebruiker ervoor kiest om aan het spel van een vriend deel te nemen. Bevat gegevens over de betreffende spelserver.
- GameLobbyJoinRequested_t
Wordt verzonden wanneer de gebruiker ervoor kiest om aan het spel van een vriend deel te nemen. Bevat gegevens over de betreffende lobby.
Veelgestelde vragen
Opmerking: Er staan meer antwoorden in het volgende artikel op de ondersteuningssite voor klanten:
Steam Community-overlay.
V. Waarom crasht de Steam-overlay mijn app?
A. De Steam-overlay wordt in duizenden spellen gebruikt en is daardoor erg grondig getest en zelden de oorzaak van een crash. Door de manier waarop deze zichzelf in het spel injecteert, komen er vaak geheugenlekken of -beschadigingen aan het licht bij het gebruik van je rendering-API die daarvoor mogelijk geen invloed op het spel hebben gehad.
Om overlaycrashes met bijvoorbeeld DirectX te diagnosticeren, kun je proberen na te gaan hoe D3D in een slechte staat terecht is gekomen door de D3D-debugruntime te gebruiken en daarbij alle uitvoer te activeren (info/waarschuwingen/fouten/meldingen). Dit kan hints naar 'verweesde' D3D-bronnen geven. Als je op deze manier niets vindt, dan kan dit duiden op een algemener probleem met geheugenbeschadigingen. Als dit altijd bij het afsluiten gebeurt, dan is er waarschijnlijk sprake van een probleem met de afsluitvolgorde waardoor het spel niet wordt opgeruimd tijdens het afsluiten.
Laat het ons weten in de
ontwikkelaarsgroep van Steamworks als de app na het debuggen nog steeds in de overlay crasht.
V. Waarom verschijnt de Steam-overlay niet in mijn app?
A. Controleer eerst of je aan bovenstaande
vereisten voldoet. Als dit het geval is en de overlay nog steeds niet verschijnt, zorg er dan voor dat je de app via de Steam-client opstart (rechtstreeks vanuit de lobby of snelstartlijst, of door
SteamAPI_RestartAppIfNecessary aan te roepen).
V. Mijn spel gebruikt D3D12 in Windows 7 en de Steam-overlay werkt niet. Waar ligt dat aan?
A. Raadpleeg dit
Microsoft-document over het toevoegen van ondersteuning voor de Steam-overlay.
V. Mijn spel draait in een browser. Werkt de overlay daar ook?
A. Voor het gebruik van de Steam-overlay moet een spel consistent beelden renderen. Het renderen mag niet worden gepauzeerd. Er kan ook niet slechts een deel van het scherm worden gerenderd op basis van zogenaamde 'dirty rectangles'. Helaas ondersteunen webbrowsers dit model niet. Een alternatieve oplossing voor webspellen is om een ingebouwde Chromium in een eigen applicatie te hosten, met een D3D-venster en invoer die wordt doorgestuurd naar de ingebouwde Chromium. Dat kan worden ingesteld om te renderen in de offscreen-modus (buiten het scherm). De resulterende Chromium-textuur rendert vervolgens elk beeld in de eigen app. Partners gebruiken vaak CEF om dit te doen; dit is echter geen gemakkelijke taak.