Scirra 6 Dec, 2024 @ 8:18am
14
9
5
17
14
7
6
6
6
3
3
3
8
7
7
6
6
6
3
4
4
3
3
122
Support for in-game overlay for browser-based games
Currently, the in-game Steam Overlay does not support games built using browser technology on Windows, macOS and Linux. This includes tools/frameworks like:

  • Electron
  • NW.js
  • Chromium Embedded Framework (CEF)
  • Microsoft Edge WebView2
  • macOS WKWebView

The fundamental problem appears to be that browsers use a multi-process architecture. They use a separate GPU process for rendering, so no drawing is actually done in the main process, and the Steam Overlay seems to depend on drawing being done in the main process. A benefit of a multi-process architecture is that it can actually recover from a graphics driver crash, rather than leaving you on the desktop having lost progress.

Sometimes the limitation can be worked around (e.g. --in-process-gpu command-line flag, or adjusting rendering code), but sometimes not (e.g. Microsoft Edge WebView2, which always uses a separate process). Even where it can be worked around, often solutions are hacky: command-line flags are not officially supported, and sometimes have unexpected side-effects. In the case of Microsoft WebView2, we have gone to great lengths to try to try to support it, but due to various bugs/limitations we have concluded it is not feasible (see: https://www.construct.net/en/blogs/ashleys-blog-2/trying-show-steam-overlay-1861 ).

The Steam Overlay works fine on the Steam Deck. This appears to be because it draws over the game, rather than hooking into the game executable to intercept rendering and input, as the overlay appears to do on Windows/macOS/Linux. In an ideal world, the same approach would be used on Windows/macOS/Linux, and should remove the need to modify what the game executable does. Alternatively adding support for multi-process executables should then support browser-based games.

Web technology might not power the next Call of Duty title, but it is more than capable enough to handle a wide range of indie titles and 2D content like Stardew Valley. Construct ( https://www.construct.net ) is a popular game development tool that exclusively uses web technology, and games like Moonstone Island are made in Construct: https://store.steampowered.com/app/1658150/Moonstone_Island/
This issue with the overlay has come up as we are in the process of migrating from NW.js to Microsoft WebView2 for a variety of reasons (one of which is, ironically, better support for Steam integration with our own custom C++ integration - neither NW.js nor Electron make that easy).

People outside of web development often have impressions of it that are a decade out of date, so while I'm here I feel obliged to point out some of the strengths of modern web tech:

  • WebGPU supports modern high-performance GPU rendering and compute
  • WebAssembly supports multithreading, SIMD, GC and now 64-bit memory
  • JavaScript performance is extraordinary - to illustrate that, it far outperforms GameMaker Language (GML): https://www.construct.net/en/blogs/construct-official-blog-1/javascript-beats-gamemaker-1570
  • Excellent cross-platform compatibility, including for Linux, which the Steam Deck runs
  • Easy integration of custom HTML content (which some AAA titles use for their UIs)
  • Sophisticated, robust architecture - how many Steam games can survive a graphics driver crash?
  • Good enough to use in space - web tech powers the displays in the SpaceX Dragon

I'd be very happy to co-operate with anyone at Valve on the technical details of supporting the Steam Overlay. Feel free to contact me at ashley@scirra.com.

Thanks for your consideration!
Last edited by Scirra; 6 Dec, 2024 @ 8:24am
< >
Showing 1-15 of 58 comments
Yes please, we need someone from Valve to take a look at this.
Thank you :extralife:
Overboy 6 Dec, 2024 @ 9:03am 
2
+1

Indiedev working on a Steam Roguelike made using JS/HTML/CSS here,

Great Steam Overlay + Steamworks API support has always been difficult to handle for gamedev using webtechs (no matter the game engine/framework), while more and more great indie titles are relying on it.

The original Steam release of Vampire Survivor was made with Phaser (an other browser-based game engine): https://store.steampowered.com/app/1794680/Vampire_Survivors/

Some cool recent games made with Construct 3:
https://store.steampowered.com/app/1280930/Astral_Ascent/
https://store.steampowered.com/app/1568400/Sheepy_A_Short_Adventure/
https://store.steampowered.com/app/1658150/Moonstone_Island/
https://store.steampowered.com/app/2076580/Pepper_Grinder/
https://store.steampowered.com/app/2477090/Mosa_Lina/

Scirra/Construct3 has been working on better Steam integration for a long time, we now can directly access all Steamworks API from our games, but that Steam Overlay issue is the last big missing thing that would allow us to provide perfect Steam integration in our games.
Last edited by Overboy; 6 Dec, 2024 @ 10:41am
Shotgun Anaconda 6 Dec, 2024 @ 9:09am 
+1 Another construct developer here. The engine enables a lot of indie developers that cant rely on pure written code. Would be fantastic if we could get some Valve eyes on this because it really feels fixable.

I've previously released two games on Steam and know the importance of having functional Steam features for gamers.
Last edited by Shotgun Anaconda; 6 Dec, 2024 @ 9:17am
BrushFE 6 Dec, 2024 @ 9:26am 
+1 from an amateur developer as well! I don't know any code languages, so Construct lets people like me pursue game development. Getting a game on Steam is the ultimate dream, so I hope this gets resolved!
Salman_Shh 6 Dec, 2024 @ 9:29am 
+1
abho 6 Dec, 2024 @ 9:49am 
+1

Working on my first release, need a reliable steam export!
krr 6 Dec, 2024 @ 10:10am 
+1
keg 6 Dec, 2024 @ 10:30am 
I agree with Ashley's above. I also want to comment that this has an impact beyond only C3: other HTML5 games using macOS and electron, nwjs, etc. I have tried many different ways to get this to work and have not had any luck. There are also many git issues that point out this same issue, regardless of C3 or any other HTML5 engine used.

(steamworks.js report on macOS no overlay)
https://github.com/ceifa/steamworks.js/issues/160
(greenworks threads on macOS and overlay)
https://github.com/greenheartgames/greenworks/issues/272
https://github.com/greenheartgames/greenworks/issues/179
Everade 6 Dec, 2024 @ 10:35am 
More developers eager to support Steam Overlay, and more players enjoying an enhanced Steam experience... sounds like a win-win to me!
Foozle 6 Dec, 2024 @ 10:43am 
+1!
AmsterdamHeavy 6 Dec, 2024 @ 11:14am 
Quite the brigade and all so natural as well.
eram 6 Dec, 2024 @ 11:15am 
Originally posted by AmsterdamHeavy:
Quite the brigade and all so natural as well.
48 awards before the 1st reply.
Last edited by eram; 6 Dec, 2024 @ 11:16am
cSg|mc-Hotsauce 6 Dec, 2024 @ 11:19am 
You should probably suggest this in the Steamworks group forums instead.

:nkCool:
Biscuit 6 Dec, 2024 @ 11:43am 
Originally posted by cSg|mc-Hotsauce:
You should probably suggest this in the Steamworks group forums instead.

:nkCool:
Looks like that forum is hidden and restricted. Devs wanting to release a html5-based game on steam for the first time wouldn't be able to show support (and what dev wants to release a game with faulty steam overlay, and only then be able to chime in on the restricted forum).

Is bit over the top with awards but there's an air of desperation from the community, I think it's been ongoing for years at this point. Wonder how popular html5 games like Omori handle it and such.
eram 6 Dec, 2024 @ 11:54am 
Originally posted by Biscuit:
Originally posted by cSg|mc-Hotsauce:
You should probably suggest this in the Steamworks group forums instead.

:nkCool:
Looks like that forum is hidden and restricted. Devs wanting to release a html5-based game on steam for the first time wouldn't be able to show support (and what dev wants to release a game with faulty steam overlay, and only then be able to chime in on the restricted forum).

Is bit over the top with awards but there's an air of desperation from the community, I think it's been ongoing for years at this point. Wonder how popular html5 games like Omori handle it and such.
All steam devs have access to the steamworks hub. If their game is due to be on steam then they have access and Valve read and post in it regularly
Last edited by eram; 6 Dec, 2024 @ 11:57am
< >
Showing 1-15 of 58 comments
Per page: 1530 50