Linux gaming has grown insanely quickly over the last couple of years, primarily led by three simple things! People trying to get better performance in games, people trying to get away from AI Slop in Windows and of course avoiding data collection. And since tools like Proton make running Windows games fairly easy, now's a good time to try switching from Windows to Linux. However, anti cheat systems are still the biggest obstacle for gaming on Linux, as most multiplayer games rely on anti cheat software. But since anti-cheat and Linux don't typically get along things can be a little complicated so this guide will explain a few of the basics to get you started.
Takeaways:
- How different anti cheat systems affect Linux compatibility and why some run in user space while others require kernel access.
- Which games fully support Linux, which are semi compatible, and which don't work at all?
- Step by step to Linux gaming with anti-cheat using Proton, Steam Deck, or Epic Online.
Table of Contents
How to Check If a Multiplayer Game Will Work on Linux
Most multiplayer games include an anti cheat system of some kind to stop cheating and these systems vary widely, with each one having different levels of Linux support. Some of the most common include Easy Anti Cheat, BattlEye, VAC, Vanguard, Ricochet, and EA Javelin. Since each and everyone of these behaves differently on Linux, the first part of the process is figuring out which one the game you want to play is using.
Anti cheats like Easy Anti Cheat, BattlEye, VAC, and Warden typically run in user space on Linux. This means they can work through compatibility layers like Proton. Which is great because most of the time, these games will run without any real issues if support is enabled.
However! Some anti cheat systems work differently. Nexon Game Security works for some titles but not others. XIGNCODE3 supports certain games while others remain broken. This means you need to check each game individually which is rather annoying.
Kernel level anti cheat: The Main Issue on Linux
Here's where the biggest issues with multiplayer games on Linux starts... Systems like Vanguard, Ricochet, and EA Javelin all run in kernel space on Windows. Which is not supported on Linux and will block the game entirely. If a game uses kernel level anti cheat, it will not work on Linux. Sadly more and more games are starting to use this method of anti-cheat, which is annoying because it still doesn't really prevent cheating in games. There are already plenty of bypasses for it. So games are being block with very little gain...
How to Check If Linux Support Is Enabled?
Even if an anti cheat system supports Linux, the game developer must enable that support. For example, Easy Anti Cheat and BattlEye can work on Linux, but only if the developer activates compatibility. Some games using supported anti cheats still block Linux. Apex Legends previously worked but later blocked Linux players. Destiny 2 and Rainbow Six Siege also do not enable support despite using compatible systems. This is a ridiculous way of doing things, as people who have paid for games suddenly lose access because of a random unforeseen change after the initial purchase...
What About Steam Deck and Proton?
Some anti cheats only support Steam Deck or SteamOS, which can create confusion. In most cases, this is a developer choice rather than a technical limitation. Steam Deck and SteamOS a in a bit of a weird area so if you are planning on playing certain games on the Deck, check out some forums for the particular game working on Steam Deck first, it's the most reliable way to get info. Stream reviews are also pretty accurate in this regard.
How to Check When a Game Is Blocked?
Many games are blocked on purpose rather than being technically incompatible. Developers may cite security concerns or lack of resources. Examples include Fortnite, Call of Duty titles using Ricochet, and Riot Games titles using Vanguard.
If a game uses kernel level anti cheat or the developer has not enabled support, it will not work on Linux regardless of workarounds.