I think this is a higher percentage than Windows 11 if you include 16-bit ones from the 90s and early 2000s. (What was wrong with NTVDM64, anyway?)
The only game I couldn’t get to run on Wine was NOLF 1. Everything works except the music, which relies on DirectPlay / DirectMusic.
Maybe try protontricks. You can add the libraries needed for directmusic to the game that way. Worked for me this way for gothic.
Okay, real talk.
I know there’s probably 100 videos on this, but I don’t have time to watch any of them right now…
How much performance is lost/gained from using Linux to play games via proton?
I’m certain any game with a native Linux version will work great, I’m mostly concerned with the ones that need some kind of emulation layer.
colloquially, I hear “5-10% overhead depending on the game and if you’re running mods”
On the other hand, some testing has found that running games on Linux with Proton is actually faster than with Windows on the same hardware, because Windows is such a resource hog.
The hardware in in this test being the Legion Go steamdeck rival.
Most stuff works outside of system anti-cheatl level multiplayer and some visual novels that can be tough to setup sometimes.
Which I’m sure is much higher than windows games working on windows. Proton is awesome for old games.
Switching to linux had me cold turkey league of legends im a healthier happier person now.
Same for me but I switched to dota; im not healthier
Dota 2 took 2k+ hours from my life. Loved every minute lol. Welcome aboard, it’s not healthier but I’d argue it’s better :D
10.000 in lol, 1.000 in dota, currently. I feel you. On the other hand, haven’t watched tv in 12 years
Honestly not missing much lol. There’s like 1000 hours of good TV content in total out there IMHO.
the real cold turkey was Riot killing linux support last year. Seems like there wasn’t enough linux players at the time for them to walk back that decision.
Funniest thing.: the Mac client also doesn’t support Kernel anti cheat, but it still works. Fuck riot, I’m glad I ditched it.
deleted by creator
The stereotype is of the haughty Linux user, but fuck me all I ever see in these discussions is Windows users being belittling assholes.
We tend to come off as haughty when Windows users show up demanding help and being insulting while having put in zero work on understanding their own problem.
Wen vr?
Unfortunately those pesky live service games that have the most player counts are disproportionately represented in that 10%.
They tend to require installing a rootkit on your own computer. I wouldn’t buy them even if they did support Linux.
I have a console for those, just never liked them on pc, feels wrong to install them when I have other options for mouse and keyboard play that I would avoid with a controller
Single player games are where I’m at so this really doesn’t affect me
you are a minority in this case
Wonder if they can build on top of eBPF? I think Windows is trying to implement it too
The correlation between people playing those games and not giving a fuck about digital privacy is probably huge.
For me its 100% of games, but sure, havent tried all games that exist…
Typically the competitive multiplayer ones fail because of kernel-level anticheat.
This keeps getting repeated as a blanket statement and it irks me a bit. More than half of the top ten most played games on steam on any given day work. There’s a small handful of games that don’t work that fit into the competitive multiplayer genre and an even smaller handful that are actually popular.
To be clear, I’m not irk’ed with you, just that this myth that gets passed around a lot hasn’t caught up to reality.
Top games by player count by daily players (numbers are peak in 24 hrs)(skipping anything that doesn’t qualify as competitive multiplayer):
- CS 2 - ✅ - 1.4 mil
- BF 6 - ❌ - 413k
- Dota 2 - ✅ - 761k
- Pubg - ❌ - 620k
- Arc Raiders - ✅ - 322k
- Apex Legends - ❌ - 155k
- War Thunder - ✅ - 78k
- Delta force - ❌ ✅ (work around exists) - 182k
- Marvel rivals - ✅ - 83k
- Dead by Daylight - ✅ - 66k
- Naraka: Bladepoint - ✅ - 120k
- Rust - ❌ (some servers do work though) - 130k
✅ Top 20 total - 2.83 mil ❌ Top 20 total - 1.5 mil (including Delta force)
Idk. Having just crunched the numbers I guess it’s fair to warn people about some borked Anti-Cheat games but I wish people would caveat by saying the majority of games people play even in the competitive multiplayer scene work. And it’s only going to get better i’d argue, although games like bf6 being a recent launch that didn’t work is a bummer. As the percentage of Linux users climb they’ll be increasingly incentivized to find a solution.
League isn’t on here, that would skew the numbers pro-windows.
The green tick may give the impression that the game runs just as well on Windows. In reality, there have been issues with CS2 on linux recently. Even though its officially supported, It may look like Valve doesn’t have good enough testing to actually ensure that. I tried it on Fedora KDE with wayland and nvidia and it crashed after one match (if not in the middle of it). Similar issues have been reported on the issue reporting repo. It may be an Nvidia+Wayland issue again (like there have been so many times before).
I was going off of protondb. I can’t vouch for each game on the list’s exact state on any given day, only that according to everyone who ranks on the website it’s native or gold.
Apex Legends worked on Linux every year except this one. League I’m told dropped support only recently (in the last couple of years). Like, idk man, there’s ups and downs to this data, but the point is not all competitive multiplayer games don’t work on Linux and seemingly the majority do based on steam and protondb data.
Yeah, and these are biggest ones, Fortnite, LoL, Valorant… They are in that 10% but they are the biggest, so at least people like me that don’t play them should just make the jump already.
Or games from the late '90s and early 2000s 'cause they’re just weird.
But those don’t work right on modern windows, either
Which means if they worked in Linux they’d be exclusive.
Out of curiosity, is this something that can be circumvented by playing in a Windows VM?
No, that was my setup for some time. KVM with PCI-e passthrough to pass the entire GPU to a windows VM. Worked great, until EAC started banning me for using a VM.
Thanks, good to know
100% of games worth playing work on Linux!
I actually enjoy Battlefield 1 + 5 very much, and they killed it with their anticheat shenanigans. I am still salty about this.
Fuck EA.
Oh, yeah? I have a super niche German adventure game from 2004 that I can’t get up and running. But then it also won’t work on at least Win7 and up (I tried). I can’t even get that running on an XP virtual machine. This game has become my nemesis.
See if you can trick Ross Scott into playing it. :) He has near infinite patience for forcing old games to run, and a skilled network to lean on.
What about an emulator like 86box or so? And which game is it?
Where’s my hype the time quest? I tried and it was a huge pain in the ass and I couldn’t fully get it working.
The only games I’ve struggled with are those with codecs that are not distributed with Proton. Installing GE-Proton solved it.
99.99% of games on Linux unlocked.
GE-proton what add to proton? Beside codecs
From their readme:
Things it contains that Valve’s Proton does not:
- Additional media foundation patches for better video playback support
- AMD FSR patches added directly to fullscreen hack that can be toggled with WINE_FULLSCREEN_FSR=1
- FSR Fake resolution patch details here
- Nvidia CUDA support for PhysX and NVAPI
- Raw input mouse support
- ‘protonfixes’ system – this is an automated system that applies per-game fixes (such as winetricks, envvars, EAC workarounds, overrides, etc).
- Various upstream WINE patches backported
- Various wine-staging patches applied as they become needed
- NTSync enablement if the kernel supports it.
protonfixes is huge, all of those weird little things you had to do like changing dll versions or installing .net are just stored in a script that is automatically run when it detects what game you’re playing.
Also, GE-proton updates more frequently and those updates include current versions of the underlying programs (dxvk, wine, etc) so any fixes that are made in these underlying systems will be available in GE-proton very quickly.
Thanks for the additional infos!
Here is the protonfixes repo for reference: https://github.com/Open-Wine-Components/umu-protonfixes
Someone might want to ping that .ml user, since I’m instance banned from there, they won’t be able to see my answer
e: @Axolotl_cpp@lemmy.ml - 👆
I meant @Axolotl_cpp@lemmy.ml
Good, but native would be better. At least they can’t kill Linux the way they did os/2
IBM killed OS/2, because they hate end users. IBM has a long history of making great end user products (awesome keyboards, great laptops, still good software) only to sell them to the highest bidder. All IBM execs can see are penguins with suitcases full of dollar bills. OS/2? End users loved it, but it didn’t run on mainframes. Killed. The Model M keyboard? End users loved it, but it was too durable, so it did not guarantee many sold units (because why would anyone buy a new Model M while the old one is still good?) -> rebranded as Unicomp and left to rot. (Typing this on a Unicomp PC122, but that’s a different story.) Thinkpads? Ah well, those are expensive. And they aren’t mainframes. Sold to the Chinese because ugh! End users! Lotus (SmartSuite, Notes)? Nice to have, but nope, too many end users. Ugh! End users!
To be fair, nobody loved Notes
I’ll take compatible.
Most people game on windows. It’s monolithic nature also means that they will mostly encounter the same bugs.
Linux has a wider base of functionality. A bug might only show up on Debian, not Ubuntu.
End result, they spend 60% of their effort solving bugs, for 2% of their base. That’s not cost viable.
Compatibility means they just have to focus on 1 base of code. All we ask is that they don’t actively break the compatibility. This is far less effort, and a lot easier to sell to the bean counters.
Once Linux has a decent share, we can work on better universal standards. We likely need at least 10% to even get a chance there.
“Perfect is the enemy of good.”
Ummmm sure?
I don’t want to start that extremely old flame war of native VS jit code but…
Proton is not an emulation, it is a translation to native code, and while it has some drawbacks (more memory usage, more time at start up to compile things) it can unlocks a lot of potential when the hw support new capabilities, this is the reason that some dx10 games run faster on Linux…
I might be wrong, but I don’t think proton is either? It’s running x86 instructions either way, wine just provides a way to load it from the windows executable and library formats, and together with proton they provide implementations of windows libraries for those executables to use.
I guess most of the process is just using a wrapper to translate the call to a Windows library to the equivalent call to a Linux library.
As far as I know for the new Vulkans layers and dx12 implementation there is a “translation layer” from the old dx implementation to the most updated one. This is the main reason why old games runs faster on Proton than in w7 for the same hw. Even if they were designed for w7 specifically.
Last time I checked this was done during the booting of the game, but i have to admit this was time ago and it could have been changed.
It is a translation layer, but the bit you added “to native code” sounds like you’re misunderstanding what translation layer means.
Games use a collection of APIs (DirectX is a set of APIs, but there’s others to handle offer operations like network access and such) to interact with OS functionality, and also receive communicarion back from the OS (the windows message loop). Proton and wine are implementations of those APIs that translate the API calls to their equivalent in linux, as well as setting up their own message loop that translates messages from the linux kernel and UI system into their windows equivalent before sending them to the registered windows messaging loop functions.
A simple example would be if a function header in windows looks like int32 SomeFuncWin( int64 index, char* name ), but looks like int32 SomeFuncLinux( std::string name, int64 index ), then the translation would be something like:
int32 SomeFuncWin( int64 index, char* name ) {
std:string TranslatedName( name );
return SomeFuncLinux( TranslatedName, index );
}So it doesn’t change/translate any of the code of the program itself, it just provides the environment that behaves exactly like a windows environment by translating the “hey could the OS do this for me?” requests from windows to linux. Note that not all translations are that simple, there might need to be more processing on the values, missing arguments might need to be filled in, irrelevant arguments ignored, sometimes data needs to be translated to another format, etc.
The speed ups can come from improved efficiency in the underlying implementations (which Vulkan has, as I understand even using a translation layer from DX to Vulkan in windows can result in better performance) or having fewer services running in the background.
You are partially right, I was fast and sloppy and I gave the impression all is jitted and it is not the reality.
The part of the translation is fine. However there are parts that are compiled beforehand (shaders for example and I can recall something about arm or other architectures, not sure now). And this is a crucial point of the extra performance, because some parts can be ported to more updated/efficient implementations, not because there are less services in the background.
I finally switched to Linux just a few days ago when upgrading my laptop’s SSD, and so far I have only opened minecraft to see how it runs - extremely smoothly, even though I could not figure out how to make use the Nvidia GPU. I’d say it runs noticeably better on Linux than it did on Windows.
Unless it has changed recently, I think most distros default to running on the Nvidia GPU all the time: Switching back and forth doesn’t always work. (Or at least, that’s how my laptop run with Manjaro)

Linux people responses will be like: “ive never seen that, works fine on my machine. i’m curious tho what version of Wine, Proton are you using? …. oh? what’s your desktop environment? … oh KDE…? ah must be a Bazzite thing? i’ve never seen that before on Mint with GNOME on my Intel Graphics Card”
https://mastodon.gamedev.place/@SilbinaryWolf/115483449807384098
I played both HK and silksong on arch, and haven’t noticed any glaring problems like that.
I just installed bazzite and hk, no issues.
Interesting. I beat hollow knight on my Linux desktop years ago. And I’m currently playing through silksong on my steam deck. And you’re right. I’ve never seen this lol.
Really the thing that does not work for Linux gaming is when you have a high dpi display. So many games render the UI wrong.
I don’t know if they work correctly on Windows either.
What resolution is that?
4k?
I have a 5k monitor with 2x display scaling, so 5120x2880 scaled to 1440p
Skill issue
I played through and 100%'d Silksong entirely on Linux. The only issue I had was that the native Linux version had buggy controller support causing phantom inputs, and didn’t activate rumble at all (like the original Hollow Knight).
I normally play everything through Proton-GE by default and didn’t realize the game was initially installed as native. Forcing GE installed the Windows version and it was flawless all through the final boss.
(In short, definitely a skill issue)
Yeah, I can say that covers most of the “troubleshooting” I’ve had to do with games that don’t work. I usually go in thinking “uh oh, maybe it’s time for me to have to check a bunch of proton versions, this will be a pain” only to see that it’s trying to run it natively and switching to proton at all resolves any issues.
The only other thing that comes to mind is that I use dvorak and something about the way keyboard layouts are handled means it tries to “preserve” the bindings when I switch layouts in game, so it keeps the messed up QWERTY keys but dvorak layout even when I switch (and can tell it’s switched from typing things like in chat). Most games let me rebind the keys so I just need to go through the bindings, hitting the key currently bound each time as if I was using QWERTY and it rebinds. Though I suspect that due to the “preserve the layout” behaviour that keyboard input is handled specially by proton and maybe I can tweak settings to get the desired behaviour (ie, changing layouts in game means I want the bindings to change).
















