Proj-Ascension / Client

Client repository for Project Ascension, an open source game launcher.
https://projectascension.io/
MIT License
212 stars 37 forks source link

Some Steam games crash if not launched via Steam #69

Open Holzhaus opened 9 years ago

Holzhaus commented 9 years ago

Some games (e.g. Verdun) seem to crash if they run directly instead of being launched via:

steam steam://rungameid/APPID
steam -applaunch APPID
Orochimarufan commented 9 years ago

I'm pretty sure that tmany affected games could be fixed by stubbing steam_api.so and LD_PRELOADing it into the game (Some things like the Steam Remote Storage (=Steam Cloud) would actually need a working implementation otherwise saving doesnt work in those games, but things like achievements and stats can just be stubbed out). Many of those crashes are because the games aren''t programmed to run with steam integration disabled. Doing so would obviously disable the steam features but I believe that giving the user the choice between running through steam and getting integration or running w/o steam and not getting it. However, this doesn't work for games that use Steam DRM as they're actually encrypted in some way in addition to using the steam API. I'm also not sure if it would legally be possible to circumvent the Steam DRM (it's copy protection after all)

elken commented 9 years ago

That might work for Linux, but it's not xplatform so it's mostly irrelevant. We will look into ways to circumvent it closer to beta, maybe post.

Sent from my Android device with K-9 Mail. Please excuse my brevity.

Holzhaus commented 9 years ago

Since steam is installed anyways, it also might be feasible to ask Valve about a new command line option that runs the steam client silently, launches the game and shuts down the steam client after the game exited.

That seems to be the easiest solution and should have no downsides (like missing archievements support, etc.) except that Valve might refuse to do that.

elken commented 9 years ago

We don't have a direct line to Valve, and I doubt it's in their best interest to implement something that would aid others to not use Steam, but it would certainly help. Uplay have at least accepted people hate it and would rather use other clients.

Orochimarufan commented 9 years ago

Actually, while LD_PRELOAD is what you'd do on Linux, there are different ways to inject DLLs into applications, in fact I have a prototype steam_api stub that I use to experiment with a windows-only game. I'm sure there's some kind of injection mechanism on OS X too.

elken commented 9 years ago

Feel free to look into it yourself then and send a PR if you can get it working.