SomeGuyWithAnOpinion
Educated
- Joined
- Jan 5, 2021
- Messages
- 514
Proton is just Wine/Wine-staging + DXVK + VKD3D + etc prebundled. I'm using wine-staging with DXVK, VKD3D, etc manually installed (+a few codecs that Valve can't legally distribute) and i can run pretty much the same games as Proton. There is no game compatibility monopoly, everything Proton has is fully open source and already available to anyone who wants to spend a few minutes setting them up (personally i even wrote a small script to create my own "prefixes" with these). Proton via Steam is just convenience.
From a purely technical standpoint you are correct, but that's also not how the industry works. It really doesn't matter if it's possible to set up dxvk, wine etc manually. If you're publishing a game that you want people to play, and it doesn't run out of the box with Steams built in Proton compatibility options, you're not going to sell your game (at least not to Linux users).
Whether or not the software is open source, Steams market position gives them a virtual monopoly on the development of games on Linux. They make all the decisions regarding which libraries and programs are bundled with Proton, and that's what every developer that wants Linux compatibility is going to target.
Want your game to run on the average person's Steam Deck? Either target steamOS natively, or target a specific Proton version. They are your only real options.
Aside from a few incredibly rare exceptions, the overwhelming majority of game developers never cared much about Linux support. Many of those exceptions even farmed the ports to external companies, sometimes doing supbar ports (e.g. lesser visual fidelity). And a few years down the line making "native" Linux games to run properly becomes more of a chore with fiddling with ABI changes in the various .so files than trying to get the Windows version to run via wine-staging.
IME Proton has been nothing but positive for Linux. A good Linux native version by a developer who manages their dependencies properly can technically be a better choice, but those were always incredibly rare.
The thing is, native Linux support was slowly gaining traction in 2017-2018. Companies like Feral were being given more and more contracts to port more and more games, even AAA releases.
The Linux ecosystem was small but was getting healthier. Valve had created the Steam Runtime environment which added a lot of consistency and portability to Linux games as well. Obviously it sucked only being able to run a handful of games and it's much nicer now that a significant portion of my library works, but I feel this is worse for the overall long-term health of Linux.
Proton (and wine etc) is and always will be a middle-man between games and the operating system. Because of this it will always have issues with certain games, is always going to be one step behind because Microsoft can drop a new directx version at any time which needs to be supported, and overall trying to funnel windows programs through a compatibility layer will always be a crapshoot. Obviously being able to run games that don't have native Linux ports is superior to not being able to run them at all, but my fear is that "just run it through Proton" is going to become the defacto strategy for "porting" games to Linux for the foreseeable future. This is already happening, with far less games getting official ports because they just add Proton compatibility instead. I see this as a significant problem because of all the issues mentioned above, plus it disincentives distros to actually get their shit together and fix the stupid dynamic linking hell that makes porting to Linux such a pain in the first place.
I've noticed that the developers of games who actually care about real Linux support tend to have a different attitude to creating their game. They stick less to bloated libraries and tend to code more themselves, since big libraries tend to be very os dependant. This gives them several advantages, not just for Linux support (it also protects them against a new version of Windows that may release and doesn't enforce dependencies to libraries from companies that may collapse). By simply shunting everything through Proton I feel like a lot of developers are not learning this lesson, which of course makes games less likely to run through Proton overall because Proton may not support their particular shitty library yet. This is why everyone is using horrible rootkit-level anticheat and garbage DRM all the time. It was a total pain to get that stuff working in Proton and required multiple kernel-level hacks. That might work for now, but it's not a solution, and if we don't fight for proper ports, developers are going to continue to do this until it stops working all of a sudden for whatever reason.
Proton is a very useful piece of software, but it's not a solution. Even now there are games that worked fine 2 years ago that now require specific versions of Proton to work because of changes in newer versions. How bad is it going to be in 10 years? 20? Proton is never going to be as good as a proper native solution and it's so easy and convenient that it's become the default path for most developers to take, since they essentially get Linux support "for free" with little effort. Too bad it enforces the DirectX monopoly and generally results in less reliable software overall. But nobody cares. Linux users are selling out their future because it's nice to have more games working now.
Linux Gaming is never going to be healthy as long as Linux Gaming is just a poorly emulated version of Windows gaming. (yeah I know, wine is not an emulator, shut up). And as long as distros can continue to find excuses to not ensure their libraries are stable, Linux is never going to be a viable os, no matter how many different systems we add to work around this issue (steam Runtime, Proton, flatpack, etc. It's all the same garbage and it all needs to go). Windows has a very stable API to the point where software written 30 years ago can still boot up and run in a significant number of cases. The fact that Linux can't do this is embarrassing and unacceptable, and needs to be fixed, and throwing more compatibility layers at the problem isn't going to solve it. I'd argue Proton and other compatibility layers like it are taking attention away from the problem in a really bad way.
Last edited: