Hi everyone, I just finished writing a guide on everything you need to know in order to game on Linux. It covers Proton (Steam play), using Heroic Launcher (with Wine-GE), and all sorts of tidbits and tips I wish people had told me earlier. I hope this can be useful to someone out there!
Archive link: https://web.archive.org/web/20230816141640/https://popcar.bearblog.dev/everything-linux-gaming/
I really like this post. While I’m a self-proclaimed tinkerer, running window managers, Arch and NixOS, I never really understood gaming on Linux: it jusy went over my head, with all the Heroic, Bottles, Lutris, launching through Steam, etc. It feels like I should have understood it months ago. It’s so simple once you see someone describe it simply and properly. Thank you so much for that. I can’t describe how much I appreciate it.
Thank you for the kind words :)
I only just realised you were the person who wrote this as well. I should be the one thanking you! Thank you, thank you very much, for making Linux Gaming accessible and easy to understand.
I like that you even talked about the issues with NTFS as well!
Nice article. Thought about putting it on github /gitlab? It would be interesting to hear your thoughts on non flatpak for steam and flatpak for heroic.
Thought about putting it on github /gitlab?
I’m not opposed to it, but is there demand for it to be on GitHub?
It would be interesting to hear your thoughts on non flatpak for steam and flatpak for heroic.
Steam’s Flatpak version has some issues, the way it’s sandboxed causes things to not work as it should. I’ve seen people complain about controllers not being detected via Steam Input, confusion around permissions, minor bugs among other things. There’s really no reason to use that instead of your package manager.
On the other hand, Heroic actually recommends the Flatpak by default since it’s stable, has no issues, isn’t distro-dependent, etc. There’s no reason not to use it instead of your package manager.
I’m not opposed to it, but is there demand for it to be on GitHub?
There is! These sort of guides are best suited to be hosted at Github/lab because of their dynamic nature. Any recommendations and “best practice” today might easily become outdated tomorrow in this fast-moving Linux world! Plus you can have contributors too submitting corrections and updates (if you wish to merge 'em), so you’re not left alone doing all the work.
Here’s an example of one such guide I’ve used in the past that’s still being updated:
Well alright, here you go:
I think a dedicated wiki makes more sense for what is, essentially, documentation.
Yes, in theory. In practice, Github has become a hub for such living documents, especially in the Linux/OSS world, so it isn’t strange for people to look there for guides and recommendations.
As someone who recently worked on a Github wiki…it leaves much to be desired. The first being that I couldn’t actually push with git! I needed collaborator access for that. I also find Github’s markdown flavor to be limiting; you can do a lot more with a dedicated Wiki like MediaWiki. It was okay for viewing, though. And having the docs in an actual repository is much harder to navigate for users who aren’t developers.
So while it’s something you see a lot, I think they would be easier to collaborate on and view on a dedicated wiki.
This is a solid guide to help people who are not familiar with all the tools we use. I have some suggestions for you to perhaps improve (these are small details that, in my case, have been helpful to me):
- You say this about compatibility layers: “Expect a minor performance hit as a result of running them through a compatibility layer.” According to what I’ve read about and experienced, using compatibility layers such as Wine and Proton can give you a wide variety of results, depending on the game. Sometimes you get a performance boost. Sometimes you get the same performance. If the compatibility layer is missing something the game might need - like a specific dll file - you can have a performance issue. Anyway, the benefit of using a compatibility layer over an emulator is that yes, indeed, sometimes the software works better in the compatibility layer.
- Maybe make people a little less fearful of using Proton in Heroic Games Launcher? I would recommend, based on my experience, to give Proton a try before using a Wine prefix. I’ve had so much success with Proton in Heroic Games Launcher, especially using the Proton Experimental branch. You can always try Proton and see what happens (the Proton DB has user experiences from using Heroic Games Launcher, not just Steam). If it sucks, you can try something else. Also, there are ways to use Proton in Lutris and Bottles. There are plenty of instructions out there on how to do it. It’s actually very helpful to have this option. My point: make it clear to people that they have options. There is more than one way to make a Windows game work which is a good thing. Different Wine versions, different Proton versions, different ways to set them up for each individual game. If one way doesn’t get you the desired results, you can try a different method. There’s always hope and there are plenty of people online that might be able to help you if you can’t get something to work.
- There are distros designed for gaming that come with lots of stuff already packaged with the installation. These include Garuda and Nobara. I’ve recently switched from Fedora to Nobara (which is essentially Fedora with modifications) and I’m very happy. I honestly believe these distros are very friendly to gamers who are not too familiar with Linux. For example, when I installed Nobara, there was nothing for me to do after. No installing launchers, etc. I did have to enable Proton on Steam, but that was about it. It’s really amazing how user-friendly Linux has become in some distros. Anyway, I also enjoy Arch Linux and I like having control over everything, doing things myself. Maybe you could change your text to explain that there are different distros to make a variety of people happy? If you like to tinker a lot, you can choose Arch. If you want an “out of the box” approach you can use a distro targeted at gamers. Maybe you’d prefer something in between, like Fedora, which needs some tinkering after installation.
- Maybe add something about Steam and its offerings of native Linux games. People would be surprised if they payed more attention. Quite a few games that people usually play on their Windows machines are also available for Linux, which means those games don’t need Proton at all to run. You could get lucky, do you know what I mean? If your Steam library already has games in it for which there’s a native Linux version, you can assess whether or not you need a dual boot system at all. I’m one of the lucky ones. I no longer need to run Windows (recent development, I’m so happy). All my games work in a Linux environment now. It feels friggin’ great to get rid of Windows completely.
Anyway, sorry for the huge comment. Although I’m making suggestions for improvement, please know that my comment is this long because I’m very enthusiastic about your guide. A nice overview of everything a gamer needs to learn about is all there in your guide and this is something that people need if they’re migrating from Windows. You are very generous in taking the time to write this and I’m sure you’re going to help a lot of people who feel lost or don’t know where to start. Great job and thank you!
According to what I’ve read about and experienced, using compatibility layers such as Wine and Proton can give you a wide variety of results, depending on the game.
I agree with this but I generally find that performance is a bit worse, so I’m just setting expectations. One thing Proton does offer is pre-caching shaders which can help games not stutter compared to Windows, so you might get way less stutters even if your FPS is a bit worse than Windows.
I’ve had so much success with Proton in Heroic Games Launcher
You definitely can use Proton with Heroic but you generally shouldn’t need to. Wine-GE’s performance is very comparable to Proton and usually Proton can cause issues when ran outside of Steam, which is why it isn’t recommended to do so and why all these launchers prefer Wine-GE. I tried to make the guide as simple as possible, so I decide to list the best option rather than a list of options.
There are distros designed for gaming that come with lots of stuff already packaged with the installation.
Definitely. I actually do use Nobara which you might tell from one of the screenshots’ background. I might do another post on distro choice but I felt like it’s a big topic that can get too opinionated, especially with recent Fedora controversies. I didn’t want to recommend Nobara only to have a lot of “Well, actually…” comments.
Maybe add something about Steam and its offerings of native Linux games.
I thought about it but didn’t feel like it warranted talking about. If there’s a native Linux version, you’d hit install and it should work. It didn’t really need elaborating so I decided to focus on the things people can need help with.
Great job and thank you!
And thank you for the feedback!
What fedora controversy?
Someone from Fedora’s development team has proposed to add some user-habit telemetry, this has triggered an immediate reaction of the community, in majority against such a feature.
Well, with regard to the whole “Proton outside of Steam” controversy, it’s not hard to do it safely outside of Steam to avoid breaking things. As far as WineGE goes, I have a couple of games in Heroic that will not work with it, but they’ll run really well with Proton. So, there’s some little difference between them that is haunting my games library. Anyway, my point was to emphasize more the fact that there are options, which is the beauty of using Linux. You have a whole bunch of ways to do something. If you look up stuff, you can even figure out how to do things you’re not supposed to do safely. It’s your guide, and it’s darn good as it stands. I think my way of lowering expectations is different from yours, it’s all about life experience. I’m more like, “lower people’s expectations letting them know that they might have to try different things and spend time on it, things might not work on the first try with the first method they use.” I recall, a few years ago, fighting with a windows game for weeks to get it to work in Linux. Things have improved remarkably since then. If, in general, you’re noticing you have lower performance on your games, you can probably fix those issues. My system has zero performance problems with windows games, they all work the same or better than on Windows. I have old games, new games, brand-new games, and middle-aged games. They’re all smooth sailing or a little better. So, keep learning and keep up the good work on your blog! It’s a never-ending learning experience with this stuff. I’ve learned that I’m never going to buy a game from Epic ever again. I have four games on Heroic. That’s enough hassle for me! I don’t think I even want to bother with the free ones anymore.
I tried Lutris and Bottles, but I didn’t give Heroic much of a shot. Personally, I think Bottles is the nicest one, though I’m still using Lutris. Although, for my use case (Japanese language visual novels), Lutris makes it easier to select Japanese Locale for specific games, and hopefully with the next release, it will let you choose Locale when installing games: https://github.com/lutris/lutris/issues/493
I think the Lutris Installer is generally less finicky than Heroic and Bottles as it automatically detects the game executable after installation. It isn’t always successful, but it usually is.
Does the Heroic Flatpak bundle a runtime similar to the Lutris Runtime? It seems to imply that it bundles Wine versions, but what about all the other usual dependencies, like DXVK, Faudio, etc.? There doesn’t seem to be much information on that.
I’ll share the one thing that made my life much easier: Gamescope. So many visual novels don’t fullscreen properly, and Gamescope is a great workaround for that. The upscaling stuff is nice too.
@popcar2 yes, the ntfs problem hit me as well, as I previously commented on other occasions. Also, I didn’t think that intel mobile integrated gpu’s wouldn’t be recognised by opengl or vulkan, but that’s how it goes apparently
A very neat article!
Great article. Interesting you went with Heroic, as a relatively new Linux gamer I do find Lutris easier to work with since most of the settings have toggles. But I have both installed anyway haha
I actually did use Lutris but while doing some research for this people told me to give Heroic another shot, many saying that it replaced Lutris for them. I tried it for a bit and I agree, Heroic provides a simpler experience I think most people will appreciate.
Aside from having better QoL like automatically downloading game images and first-class support for Epic Games and GOG, it’s less confusing when adding drm-free games. Lutris scripts are also a bit of a sore spot for me because I found that they’re often outdated and can cause more issues than they fix when you’re trying to run something.
Obviously it’s all preference but I think Heroic won me over and I’ll stick with it unless I specifically need the wall of options Lutris provides.
“Note: I don’t recommend installing the Flatpak version of Steam. It has some issues specific to Flatpak, and makes your Steam files difficult to reach which can be annoying. Use your package manager instead.”
What issues? I’ve been usin the Flatpak for more than a year without issues, both on Silverblue and on Arch. On the other side I had games not running with the version on the repos with Arch and Nobara.
And difficult to reach files how? Just add a shortcut on Files or Dolphin to the Steam folder for easy navigation.
Edit: saying not to use the Flatpak version is like saying not to use the Steam runtime.
I’m sure there will be a lot of people where it works just fine but I’ve seen really common complaints regarding it. Issues like steam input not working, confusion over file system permissions, the flatpak version using its own drivers which may be outdated, etc… It can be a hassle, and there’s no real benefit to it compared to just using your package manager.
Input not working comes from people not installing the steam-devices package, it doesn’t matter if you are using the Flatpak or the repo version (for example the magnificent ublue distro comes with that rules added by default). For using steam you don’t need to change any permissions on the Flatpak. And about the drivers, you can use the Mesa beta channel Flatpak if you want to have the latest.
Also, the Flatpak works perfectly with mangohud, vkbasalt, gamescope plus everything is containerised and doesn’t litter your home folder.
Immutable distros are the future now, and practically excluding them from your guide doesn’t makes sense to me.
Then write your own guide, show them wrong?