ValveSoftware / steam-for-linux

Issue tracking for the Steam for Linux beta client
4.22k stars 174 forks source link

Unable to use Steam Play for games with native ports #5638

Closed Lyle-Tafoya closed 5 years ago

Lyle-Tafoya commented 6 years ago

Your system information

Please describe your issue in as much detail as possible:

Some games have native Linux builds, but have various problems or are missing some features (ie. VR support, controller support, online play, etc...). For these and other reasons, it is sometimes desirable to play the Windows version of a game, even if a native build is provided. Currently, games with a native build are not able to be installed via Steam Play and can only installed and run natively. I propose that Steam Play functionality should also be unlocked for games with native builds. Ideally, users would be able to install both the native and steam play versions side by side. However, I'd settle for picking one or the other.

Steps for reproducing this issue:

  1. Find a game that supports both Linux and Windows and attempt to launch it via Steam Play
Despruk commented 6 years ago

Many good use cases mentioned in the Proton thread

https://github.com/ValveSoftware/Proton/issues/52

Gibbz commented 6 years ago

Yes id love to see something like this also. For example COH2 doesnt support cross platform play, so Id like to have access to both native version and windows version.

Ryujinra commented 6 years ago

Yes, there are also titles such as The Banner Saga, which advertise Linux support on the store page but do not actually have a functional Linux port and have officially discontinued support. The developers have noted the game does not even start for "most" people on Linux currently, but I expect it would at least launch in Proton.

lucius-martius commented 6 years ago

Two more examples:

Cloudwalk9 commented 6 years ago

An example: Garry's Mod is a sorry excuse for a Linux port which may or may not be the dev's fault. But Awesomium used to crash due to tickboxes, rendering the menu system unusable. The game crashes on most maps and servers with high graphics settings (probably OpenGL and 32 bit related).

Sanaki commented 6 years ago

So unfortunately Nidhogg has proven there's an easy way for devs to kill linux support if this isn't fixed. Nidhogg has a "linux version", but it just has the OST in it, with no actual game files. Steam won't provide the option to use proton because a linux version exists, and attempting to bring the windows version into linux steam manually (with the app manifest as well) causes steam to delete the windows files on "launch" before once again complaining that it can't find an executable.

EDIT: So apparently either the game's dev or a steam dev has noticed the issue and removed the empty "native" version for Nidhogg. Since the game dev said nothing about this, I assume it was someone at valve, which indicates they may actively attempt to prevent this from happening.

BobbyWibowo commented 6 years ago

HuniePop works better with Wine than its Linux version. It is as if the linux version was badly optimized. It could only be played smoothly after disabling desktop compositions

dkhalansky commented 6 years ago

I think there is a more general solution that would solve this issue as well as some others. And the solution is, allow a per-game setting of whether to use Steam Play--regardless of whether the game has a Linux port.

This way, one would be able not only to run Windows versions of Linux games but also avoid switching the "enable Steam Play for all titles" switch. An unfortunate consequence of using the switch is that one loses the ability to use filtering the list of games to only include SteamOS + Linux games to see which Windows games have been whitelisted.

dkhalansky commented 6 years ago

Also, BIT.TRIP RUNNER, Randal's Monday, and Blackguards 2 have files for Linux but without any executables and so can't be run.

John-Gee commented 6 years ago

I think we should be able to install both native and with Proton builds, that way it's easy to test which one behaves the best without having to redownload the game in case the first one tried was better, thus saving both ourselves and Valve bandwidth. Also, some games may behave better with their Linux build but lack multiplatform multiplayer and so having both builds may be useful.

A simple "Install Game" / "Install Game with Proton" in the right click menu and on the game page would do, though that might complicate things for new people so it might be better to hide that behind a setting.

mirh commented 6 years ago

And the solution is, allow a per-game setting of whether to use Steam Play--regardless of whether the game has a Linux port

You first have to download the relevant game files to use steam play or not. Any option would have to be upstream, as soon as you press install.

dkhalansky commented 6 years ago

You first have to download the relevant game files to use steam play or not.

Sure, but users can already control via settings the set of files that they download. It is already possible to choose the in-game language--which affects the set of files--as well as participation in beta builds. So I believe that a checkbox "Use Steam Play" in the Preferences window could work.

olaulau commented 6 years ago

it would be very great to be able to forceproton+windows version of a linux bad ported game. examples : ARK Survival Evolved, ARK Survival of the Fittest, Counter-Strike : Global Offensive

legluondunet commented 6 years ago

Another example: Enclave Linux port does not launch anymore for several months now.

johndoe7000 commented 6 years ago

Linux native "Divinity: Original Sin" also does not work anymore with mesa + divos-hack shim:(

miguev commented 6 years ago

System Shock 2 doesn't have a real Linux port, but is instead a WINE+game that doesn't even start. Right now 2nd-5th top threads in https://steamcommunity.com/app/238210/discussions/ are about this problem.

fredoche commented 6 years ago

Clusterpuck 99 linux port has a framerate of 1 fps. I have hope that the windows version with proton vill perform better.

rea987 commented 6 years ago

That can be a useful feature to play enable true cross-platform multiplayer for some game such as Dawn of War II and Worms Reloaded.

Sanaki commented 6 years ago

For those of you who don't use in-home streaming, you may not be aware a good mechanism to handle this option already exists:

playstream

Just add another option to that drop-down for installing/playing the steam play version. Unobtrusive and effective.

EDIT: And yes, the same options are presented in big picture mode as well.

mirh commented 6 years ago

A similar drop down menu for the "Install" button would be nice, indeed (and you wouldn't need to add anything fancy in the normal right click options for games, which are already plenty).

Now please.. I hope there's nothing left to discuss - so don't spam the thread with +1 examples.

Patola commented 6 years ago

@mirh I understand your concern about spam but I think it will not hurt to mention a couple other cases. It's important for public awareness.

I would like to extend the feature request with a few other cases:

1) All these games are winewrapped with g17_wine:

And they stopped working in Ubuntu 18.04. Most likely due to an incompatibility between g17_wine (which is a fork from wine 1.8.1) with freetype 2.8.1. And since these are old games, g17_wine will never be updated. They all do work via modern wine and although I haven't yet tested, I guess they run smoothly through proton too.

Not only that.

2) There are games like the Anomaly series (Anomaly 2, Anomaly Warzone Earth etc.) which have a native port for Linux BUT due to some change in glibc 2.20 go into an infinite loop right at the start and never get past the initial screen. And they also work perfectly under wine.

3) And there is another third type of case. Two Worlds II is a game where the developer seemingly configured a "linux build" entry for people which have the Call of Tenebrae DLC. This is a mistake from the developer but so far they've not fixed it. When you ask to install on Linux, it just installs about 3GB of data files withouy any executable. And of course it does not work. On the other hand, my wine-steam install runs it smoothly because it thinks it's Windows 7.

I have all these games and I am unable to play them without going through the hoops of a separated wine-steam installation. Adding the feature to force proton usage would fix all these issues instantly. It's not a "would be nice" feature. It's an essential feature.

felixactually commented 6 years ago

I echo Cpt-Derp: Garry's Mod has an awful Linux version. For some reason, it also doesn't work well with Wine either. Perhaps it would run well with Steam Play? I'm not sure, but it would definitely be a nice option to have, considering all the games mentioned so far. While most games with Linux support do work properly, it's nice to have a contingency plan in the form of "run this game with Steam Play instead of using the native version".

cor3ntin commented 6 years ago

Dying Light is also a rather broken Linux port (doesn't start with 18.04 + amd gpu). I, of course, would strongly prefer the game to be fixed, but the developer seems to have no intention to do so, and so Proton might be a workable alternative.

rea987 commented 6 years ago

@Sanaki

So, as you have mentioned in https://github.com/ValveSoftware/steam-for-linux/issues/5638#issuecomment-415886476, is that possible to co-exist both native and Proton version of the same game in the same Steam client via in-home streaming mechanism? Can you please elaborate adding Proton installation to in-home streaming preferences? Thank you!

Sanaki commented 6 years ago

Not exactly. In-home streaming allows you to stream games from a different computer entirely. I was saying that if the developers grant us this option, the menu to place the option in already exists in the client, and is explicitly for that sort of purpose. At the backend, they'll still need to figure out how they want to change the folder structure to support that decision, since currently proton and native versions install to the exact same location and directory name. Presumably it would be as simple as modifying the manifest for the game to indicate a secondary location, but I can't guarantee that would be the case. For all I know that would break something else hardcoded.

Either way, tl;dr: Right now no built-in method exists to run proton versions of games that have native versions available.

mirh commented 6 years ago

I would like to extend the feature request with a few other cases

Those are yet other examples of why this is sensible. But it's already a feat Valve can unilaterally wrap other publishers products, I don't see what they could do without directly tampering with game files. (and it's probably OT)

Sanaki commented 6 years ago

He's just saying what the rest of this issue is saying: Allow us to install proton despite "native" versions. He's not suggesting that steam replace the wine version in the "native" port with proton.

jplatte commented 6 years ago

Another example: Cossacks 3. The linux port is horrible, it doesn't work at all with mesa.

143mailliw commented 6 years ago

Tower Unite has no Linux Executable but works on wine, but I can't play it on steam play since it has linux support enabled for development reasons.

axredneck commented 6 years ago

Another use case is Windows-only mods for Half-Life series which don't work with native HL versions. I'm ready to replace native HLs with their Windows versions because they work under Wine not worse. p.s. Another game with broken Linux port is High Strangeness, and it works under Wine perfectly too.

LunarEclipse363 commented 6 years ago

Dying Light doesn't work natively at all for me, would be great to be able to run it with proton.

nstgc commented 6 years ago

I'd like to point out the Topware ports in general which use outdated version of Wine. Fortunately the scripts that are used to run them can be changed to use system wine instead but even then Proton does a better job (or easier) of passing controller input to games. I've read that The Witcher 2 and Shadow of Mordor both suffer terrible performance penalties in their Linux ports. Overlord has controller input issues Age of Wonders III has a memory leak and the Linux version lacks the creation tools. Divinity: Original Sin EE also lacks creation tools in the Linux version.

MaCroX95 commented 6 years ago

+1 for this, pretty please... some of the earlier linux ports are running worse on native versions than on the new Wine with esync and DXVK, Tomb raider 2013 for example!

gnanini commented 6 years ago

Radeon users sometimes have better performance on wine versions, specially with gallium nine and dxvk!

Saints Row IV is horrible on linux, plays nicely with dxvk

Chivalry Medieval Total war runs smoothly on wine with gallium nine. Linux version is missing some graphics details! (at least on mesa drivers)

Mad Max runs smoothly with dxvk

Shadow of Mordor could be better with dxvk

jvalrog commented 6 years ago

I think this feature would be useful to compare a linux port optimization. If the emulated version runs better, then the linux port is crap.

mirh commented 6 years ago

I think everybody has understood, agreed, concurred this is an important needed feature. Now please, stop with bumps.

martynhare commented 6 years ago

This is very necessary as a feature, as some developers have games that don't actually work at all on Linux with their so-called Linux-native ports.

BIT.TRIP Runner is a good example of this where there aren't even any game files downloading on the app I have on my Steam account. I am currently waiting on Valve support via Steam Support ticket to get a resolution for this game, yet if Steam Play allowed me to pick the Windows version despite Steam claiming there's a Linux-native version, I'd be sorted.

buenaventura01 commented 6 years ago

Hey, I have yet another case where this is useful: Sub Rosa ( https://store.steampowered.com/app/272230/Sub_Rosa/ ) has a native linux build that works well, BUT, I would like to play the windows only beta build. Letting me play the game via proton, even tho it has a native version, would solve this!

aenertia commented 6 years ago

Another example of a currently unusable Linux port - Civilization Beyond Earth. Native client segfaults on recent kernels due to changes in the Futex system ( see https://steamcommunity.com/app/65980/discussions/0/626329820749233064/?ctp=62 )

Cloudwalk9 commented 6 years ago

@aenertia So much for "don't break userspace" if the kernel is the cause.

JacobSvenningsen commented 6 years ago

I just started the game fine from Linux 4.20 compiled off the DRM-next tree, and have previously not have troubles with that particular game, except right after it was released due to missing OpenGL support in Radeonsi. It's definitely not a kernel problem

aenertia commented 6 years ago

Sure looks a lot like the old futex threads bug tho you have to admit.

What userspace are you using? I'm using 18.04 but with obiaf X updates for mesa and 396.54 Nvidia from the proprietary updates ppa.

I tried several different 32bit runtime envs (including a 16.04 chroot) all with the same result. Am open to suggestions. Also 4.20? I think you mean drm-next head with 'potentially' included 4.20 patchsets. Mainline is had only just gone to rc1 tag on 4.19. I run net-next on some things, and unless there are some '100%' commits you know are going into 4.20 tagged tree that's a little weird to call a next-tree for a release that isn't fully tagged yet.

On 1 September 2018 at 01:49, Hu notifications@github.com wrote:

I just started the game fine from Linux 4.20 compiled off the DRM-next tree, and have previously not have troubles with that particular game, except right after it was released due to missing OpenGL support in Radeonsi. It's definitely not a kernel problem

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/ValveSoftware/steam-for-linux/issues/5638#issuecomment-417670082, or mute the thread https://github.com/notifications/unsubscribe-auth/AARer7vPeN5hlTV4PP7fzwcIPoqoYAv_ks5uWT7wgaJpZM4WHiMi .

Cytomax55 commented 6 years ago

This would be nice for games that dont have cross platform support like company of heroes 2

ghost commented 6 years ago

I have created a workaround for this for the time being - https://github.com/Holston5/Native2Proton

nsrosenqvist commented 6 years ago

Another example game with bad Linux support that I'd prefer to be able to play through Proton instead: Move or Die

sofakng commented 6 years ago

More examples: JackBox Party Pack games

cassidyjames commented 6 years ago

Cortex Command is yet another game that says it supports Linux, but actually has an empty download. As it is, I'm unable to play the game even though it has a working Windows version that has a Gold rating with Wine.

wirosl commented 6 years ago

I want to second this feature.

On my end, its Shroud of the Avatar: Forsaken Virtue. Due to unresolved bugs in the Linux client, it never recieved the version upgrade in Unity that its Windows counterpart did, thus missing out on some of the performance fixes. In addition, someone made the thoughtful decision that after deciding to make and support the game for multiple operating systems, to go ahead and use Windows-only plugins for some in-game features like being able to use maps, and then just disabling those important features on the other platforms...

So yea... just because a game already has a Linux port doesn't mean it wouldn't heavily benefit from having the ability to use the Windows version on the Proton back-end.

genghisnico13 commented 6 years ago

I would like to have this feature too, Rocket League Linux port doesn't have controller vibration(rumble) implemented and if it wasn't implemented in the last 3 years I doubt it will ever be. Also maybe the workshop maps could work with proton, currently they don't work on linux.

pchome commented 6 years ago

... yet another game ...

Virtual Programming eON ports. Maybe some other third-party ports .

Or even all third-party ports could potentially benefit from Proton. I think no more examples needed.