← Back to context

Comment by pjmlp

7 hours ago

And yet they failed to get game devs to natively target SteamOS.

As long as they depend on Proton, they haven't fully solved their problem.

I'm not sure how they could have failed that if that was never their goal in the first place. The entire point of Proton is that the Win32 API is infinitely more stable and worthwhile to target than anything Linux distros offer, and that the financial incentives aren't there for developers to 5x their platform distribution effort to reach 1% more users. An approach that relies on developers doing that would never work, and fortunately for Valve that isn't their approach.

  • You're thinking of now. Proton didn't exist yet the first time they tried Steam OS.

    To be fair to Valve though, back then, there was a lot of movement in direct ports for Linux games. Humble Bundle (before they were bought) was spending real money on it and companies like Feral sprang up to help with titles like Mordor. It looked like there was going to be some real change.

    But for various reasons the momentum waned. One of those reasons might be the existence of Proton itself. Some people were very against it because they thought it might lead to less native ports.

What's the purpose of a native build if the windows build runs just as good, or even better?

They ensured that the devs need not worry about another build target that requires extensive QA. Maybe in the distant future we will get ubiquitous native builds, but honestly and again, who cares?

Proton and Wine means there is a single target now, instead of the fragmented mess that is Desktop Linux today.

Tbh, why bother?

kernel32+user32+gdi32+d3d[11|12]+dxgi is a pretty great API abstraction for game development. And unlike Linux desktop APIs the Win32 APIs are actually stable, so those games will also work in 5 years, and most importantly, performance is the same or better than on Windows. It's unlikely that game devs directly targeting Vulkan would do any better, and when using a high level engine, any layering overhead in Proton is negligible anyway. And don't even get me started about the state of audio APIs on Linux ;)

Also don't underestimate the amount of workarounds and tweaks that (most likely) go into Proton for games that make poor system API use. Without Proton those game-specific hacks would need to go into MESA, Wayland, X11 or various system audio libraries. At least Proton is one central place to accumulate all the game-specific warts in some dusty corner of their code base.

TL;DR: just think of Proton as an extremely low level and slim cross-platform API for games (not all that different than SDL), and suddenly it makes a lot of sense. And I bet that in 5..10 years Windows will have regressed so much that it might actually be better to run games through a Proton-like shim even on Windows (assuming Windows hasn't become 'yet another Linux distro' by then anyway) ;)

  • > run games through a Proton-like shim even on Windows

    Already happening, to an extent. Specifically, modern Intel GPUs do not support DirectX 9 in hardware, yet legacy apps run fine. The readme.txt they ship with the drivers contains a paragraph which starts with the following text: “SOFTWARE: dxvk The zlib/libpng License” DXVK is a library which implements Direct3D on top of Vulkan, and an important component of SteamOS.

  • With game studios using Windows + Visual Studio, what a win!

    • VS2026 is actually quite decent again (surprising tbh), but the good thing today is that a lot more UI apps support Linux than 20 years ago. E.g. I would just give my artists a Linux desktop running Blender, and generally test on a connected min-spec PC (also for the devs even if they are working on a high-end Windows PC in VStudio). E.g. similar to console-development, the low-end PC is essentially the devkit. Also has the advantage that there will be no performance surprises on release when most gamers try to run the game on their laptop or RTX2060 ;)

      One thing I would definitely do is to replace MSVC with Clang, MSVC is just too far behind and it almost looks like MS abandondend it.

  • Try running a directx 5 game and let me know how it goes.

    • 29 years is a lot more than the 5.. years time window I'm talking about. 3 decades is basically "I will need an emulator for that" ;)

      But I think even a lot of D3D9 games should still work, and that's 2002 stuff. Also try running a 1997 Linux game binary on a modern Linux distro without recompiling, I doubt that's works all that well...

> As long as they depend on Proton, they haven't fully solved their problem.

Maybe not, but they fully solved my problem with games, which was that I could not play on Linux. I started playing again just because of the SteamDeck, I think it's a pretty big achievement :-).