I believe that while steam has public APIs for most stuff but there’s no way for a 3rd party client to provide DRM authentication, so the majority of games will not launch unless you also have the official steam client installed (note that steam does have a cli client)., rendering any 3rd party apps either simple wrappers for steam or severely limited.
OP is comparing to tools that download and install games, but the Steam emulators you’re thinking of don’t do that; they only emulate a minimal set of runtime services that Steam games expect to be present in order to run.
They don’t implement Steam’s online features, like registering achievements and making cloud backups of save data, and don’t have the extra features like input device remapping or video streaming. They are great for running games without network access, or for continuing to play games if Steam ever shuts down, but they’re not really replacements for the Steam client.
I don’t know whether Valve has opened the APIs for downloading games, registering achievements, etc. If they haven’t, then a full replacement for Steam might still be technically possible, but it would require some reverse engineering and be vulnerable to breakage whenever Valve changes something on their end.
Seems like a pretty big project to hook all of the different parts together.
Not what I would call huge, but big enough to be a real time investment, and nobody wants to spend that much of their life reverse engineering and building such a thing only to have it broken whenever Valve changes something.
That, I believe, is why we have no open source Steam clients.
I know of this largely abandoned project: https://github.com/dmadisetti/steam-tui
I believe that while steam has public APIs for most stuff but there’s no way for a 3rd party client to provide DRM authentication, so the majority of games will not launch unless you also have the official steam client installed (note that steam does have a cli client)., rendering any 3rd party apps either simple wrappers for steam or severely limited.
That project does its job by running steamcmd, which is an official Valve client, not by calling public APIs.
That could be a viable way to implement parts of a Steam client, but since it depends on a proprietary tool, it wouldn’t be all open-source.
Edit: I wonder if Valve would be receptive to publishing the SteamCMD source code. They already have a github presence.
There’s at least one stream emulator. So it’s technically possible.
OP is comparing to tools that download and install games, but the Steam emulators you’re thinking of don’t do that; they only emulate a minimal set of runtime services that Steam games expect to be present in order to run.
They don’t implement Steam’s online features, like registering achievements and making cloud backups of save data, and don’t have the extra features like input device remapping or video streaming. They are great for running games without network access, or for continuing to play games if Steam ever shuts down, but they’re not really replacements for the Steam client.
I don’t know whether Valve has opened the APIs for downloading games, registering achievements, etc. If they haven’t, then a full replacement for Steam might still be technically possible, but it would require some reverse engineering and be vulnerable to breakage whenever Valve changes something on their end.
Interesting, thank you for the details. I appreciate the info. Seems like a pretty big project to hook all of the different parts together.
Not what I would call huge, but big enough to be a real time investment, and nobody wants to spend that much of their life reverse engineering and building such a thing only to have it broken whenever Valve changes something.
That, I believe, is why we have no open source Steam clients.