ValveSoftware / Proton

Compatibility tool for Steam Play based on Wine and additional components
Other
23.92k stars 1.04k forks source link

Provide binary downloads on GitHub for Proton releases #5042

Open madewokherd opened 3 years ago

madewokherd commented 3 years ago

Feature Request

I confirm:

Description

Provide binary downloads of Proton releases through GitHub that do not require distribution through Steam.

Justification

This would encourage adoption of Proton by non-Steam clients, such as the itch.io client, which abandoned the effort after having trouble getting it to build (https://github.com/itchio/itch/issues/433#issuecomment-426320887).

aeikum commented 3 years ago

This is a bigger project than it sounds. Proton (currently) isn't meant to be used outside of the Steam client. Our binary packages depend on the Steam runtime, and the proton script depends on the Steam client setting a bunch of stuff like the compatdata path among other things. If the itch client is planning to ship the Steam runtime and provide all of the other stuff needed to run Proton, it seems like they can probably figure out how to build Proton as part of that.

aeikum commented 3 years ago

Other distributions that incorporate Proton's hacks (tkg, lutris, ge) might be a better target for integration with itch than upstream Proton.

GloriousEggroll commented 3 years ago

I also have this noted and pinned in my discord:

RUNNING NON-STEAM GAMES WITH PROTON IS NOT SUPPORTED. DO NOT ASK FOR HELP WITH THIS.

proton runs in a container, which uses a runtime environment and libraries specifically built for use within that container. Not running it as intended results in the container and therefore its runtime not being used, and severely breaks library compatibility. It causes wine to search for libraries on your system instead of those it was built with/intended for within proton. It may work, if enough libraries match, but it is not correct and not supportable due to library differences across distros.

It should additionally be noted several steam games have specific game fixes that are only triggered by using their steam game ID, which non-steam games do not have.

I've also started releasing wine-ge-custom builds outside of proton for use with lutris:

https://github.com/GloriousEggroll/wine-ge-custom

Not trying to advertise here, more so trying to back aeikum's answer up. Heroic also picks up lutris builds and can utilize them. Lutris isn't perfect but it gets the job done in terms of having one place that has wine + dxvk + vkd3d available and gstreamer + faudio incorporated into the build.

arrowgent commented 3 years ago

adding a non-steam game using proton creates a unique PFX id

example: BF1942 creates a PFX named 2561958586

example: American Mcgee's Alice creates a PFX named 4030375285

using your own custom script this can be run outside of steam ie: BF1942.sh even if steam is not running this doesnt particularly matter if its a steam proton or proton-ge also possible to redirect the main wine binary from ex: ~/.wine/ to use the PFX that steam created

overall, suggestion to release proton packages is irrelevant to if an external application can use it

BETLOG commented 2 years ago

Proton (currently) isn't meant to be used outside of the Steam client.

I'm sure that's important to developers, and in the spirit of the OP. But equally important to far more people (players) who are less inclined to want to wrangle docker/compiler issues, are only using steam, and may just want to isolate a problem to a particular version before posting an issue: a compatibilitytools.d drop-in-package would be a big improvement. Please.

trymeouteh commented 2 years ago

Would like to download the proton builds that work for my games and be able to add them to my compatibilitytools.d folder manually.