There are open source clients for Epic Games Store and GOG.COM, why not for Steam too?
Probably because Valve provides a native Linux client
And the client is actually good, too.
This is at least a main part of the reason. I use an open source client for GOG on Linux, the only reason why is because they don’t natively support Linux.
Even disregarding the native Linux port… The Steam client is actually pretty decent. Any client would have to implement things like library navigation, storage management, Steam input support, the overlay, cloud sync and so on. And honestly, I don’t think anyone can reach the amount of features that Steam has.
Its probably why most people don’t actually use things like Lutris or Gnome Games to launch Steam games.
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.
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.
This just in: Steam is actually a form of DRM.
Valve offers an optional DRM system that has “steam” in its name, and Steam imposes some (easily circumvented) inconveniences that are also imposed by DRM, but no, Steam itself is not a form of DRM.
Right, their DRM is minimally invasive, which is right in line with their argument that piracy is a service problem. If they offer a service where you can pay for games, have them licensed to a user account, and make the experience flow without interruption, people will accept it.
I was really mostly joking and what you’re saying is accurate.
They say in their EULA that you understand your don’t own your game you purchased
Even the small print on a physical disk’s packaging said that.
You can also move the installed folders anywhere you’d like and they can’t do anything about it. Or just change one character in the folders name.
There used to be a couple… Back when the default skin for Steam was just that ugly green shit? There was a couple different 3rd party clients that offered customizing the look before they added that function officially.
The only one I think might still be relevant is the one centered around filtering shovelware from the store. And I don’t know if you download that, or if it’s just a web client, since it is focused on the store and not much else (I also never used it personally).