What you're emulating is irrelevant. What matters is which provides a better experience to you, the end user. One choice is actively being worked on, while the other (despite under-the-hood perf. improvements IIRC) seems to garner more loathing and disdain with each release.
OS/2 says hello.
It is the AAA games from other publishers that matter, those that even publish to Android, while ignoring GNU/Linux.
Years ago I was optimistic that fixed shared library runtimes, such as the ones offered by Steam, would be enough to make native game development for Linux viable. But even with these, so many things simply break in places they should NEVER break, and can only be fixed by recompiling them (thanks glibc), so I no longer feel this way.
While my heart bleeds for open source, video games are fundamentally more art than function, so the expectation that the user (or the upstream maintainer, Steam) needs to be capable of recompiling them is simply unrealistic when considering the licensing & support required for this. Video games need a stable API, perhaps even more than most other types of software. A game built 10 years ago should continue to work when run today.
When considering all of this, along with the fact that Valve is the only large organization with the resources and incentive to fix this situation. The only real path forward Valve has here is to create their own custom desktop application API for Linux that goes beyond just a set of shared libraries and is fully integrated, meaning third-party game developers don't need get involved in the often messy inter-library politics the Linux community is accustomed too.
But if Valve really needs to go that far, why invent a whole new API for it? Why not just copy win32? That's the most popular API among game developers after all. In fact there is already a Linux runtime that not only supports win32, but actually treats desktop stability as a core priority: WINE. Why not just throw resources at that instead of making something new?
While I'm mostly speculating here, I suspect that this line of reasoning is what gave birth to Proton. It has also led to interesting situations, consider this: Elden Ring on release had/has a problem with micro-stuttering, this issue was patched in Proton very quickly, within the first week of release, but remains an issue on Windows to this day. This means that right now, Linux is the best platform to play Elden Ring on if you want the best performance and graphics. Much like video drivers are updated to fix bugs for individual games, Proton now fills this role as well, but with an even faster development cycle.
This highlights one of the key benefits of Proton: it scopes an entire Win32 runtime (wineprefix) to each game. A hasty hotfix for one game will not break another, each game needs to only pin the runtime that works, and no further tweaking is necessary. You simply cannot do this on Windows, Microsoft does not have this kind of flexibility.
A future where Proton outlives Windows, one where Proton expands the win32 API to include more features never supported by Windows, while I can't say it will happen, it certainly can happen, and I'm excited to see where this goes.
This is my cynical side, but I'm sure they don't mind the opportunity to get their store in front of people, both with the deck and by how closely knit steam is to providing gaming to non-windows PCs. In my view PC gaming is in a weird spot right now if you try defining "what is the platform?" Is it windows, is it steam (and all the other features it has), is it x86, how much can/should a game be 'portable' from one ecosystem or enclave of PC. There's also been issues with games like Starfield not working with the intel Arc GPUs until a few days ago that have me wondering (from a fairly naive point of view) how closely that aspect is tied to assuming nvidia/AMD are the only possibilities versus how well it was written to the abstraction layer, assuming intel were compliant.
Of course, MS might also start changing the behaviour of lots of APIs, deprecating them left and right, effectively trying to kill Proton. But that means they'll also kill their own backwards compatibility.
If, again, Proton becomes "popular enough", I don't see how MS can stop it short of finding some way of preventing developers from using old APIs in new applications (which would very likely be anti-competitive behaviour).
I've been a macOS user for 11 years now, but I hope that, however unlikely, Proton wins out :)
Ubuntu's extended support even pushes that out to 10 years, and I imagine Valve could also do its own patching (or just ignore security concerns).
Nice thing w/ Valve is they allow you to use your distro's libraries or switch to the runtime, depending on how much performance you are trying to eke out of a game.
Odds are anything written a decade ago doesn't need cutting edge performance though.
For evidence of this, look no further than Ubuntu, the basis of the steam runtime, dropping 32bit support and breaking all software (video games) that depend on it. Sure you can still use it for older stuff, but there is no future here.
Oddly enough, it ran fine in Wine in virtualbox in a small ubuntu instance, so they ended up just using that in seamless mode.
So, at least from past experience that legacy compat is not 100% and I'm guessing games might be even more finicky than accounting software.
I can think of at least two reasons:
Legal - APIs might be copyrightable in the future.
Control over changes - Not having to play ketchup every time Microsoft changes or updates an API. Windows APIs do still change and break applications they have compensated for this with application specific shims.
That being said I can't imagine what Valve would come up with. Maybe they could base something around Vulkan, Musl and Wayland.
I never thought about it that way, but I can see this as a possibility based on how you framed it. Have an upvote.
Developers might be more interested in developing for it if it is more than a footnote of an OS, possibly creating a positive feedback loop. Especially with companies such as Valve invested into it.
A man can at least dream, no?
An emulator will generally try to provide an abstracted set of hardware and other features
I guess this falls under "other features" but it's pretty common to emulate systems behavior via a re-implementation, or thunking calls to a copy of the original libraries, etc.
Oracle uses the verb "emulate" to describe branded zones, which function similarly, as well. I think it's semantically fine to call this emulation, it's just high-level emulation.
Linux is a better OS than Windows in mostly every way, and what held a lot of people from making the switch was the inability to run their game library there.
Nowadays, I can run the vast majority of my game library on Linux without any issues. In fact, older games are often better supported by WINE/Proton than by Windows itself. And the situation seems to only improve as time passes.