Nov 26, 2024 5 min read

Valve's anti-cheat problem

The bad news for Steam Deck players has been piling up recently

Valve's anti-cheat problem

The bad news for Steam Deck players has been piling up recently

ℹ️
A version of this article was first shared with overkill premium subscribers. Join them to get exclusive content, ad-free reading, and more.

First, Battlefield 1 received an update that broke Steam Deck compatibility. Later Rockstar followed suit and added BattlEye anti-cheat to GTA Online without enabling Linux support. Then EA nuked Steam Deck compatibility for Apex Legends. The culprit was again, you guessed it, anti-cheat. Add to this list games that have never worked on Steam Deck before like Fortnite, Rainbox Six Siege, or Destiny 2.

Right now, I'd argue this to be one of the biggest (software) problems Valve, and other Linux developers, have to face. If they want their respective operating systems — SteamOS in the case of Valve — to become serious Windows alternatives for a majority of players (and not just remain a niche product), something needs to happen.

Currently, these changes are coming from the publishers and developers of the games as they are hesitant to support Linux because it's too much work to support a small user base. EA/Respawn said as much in their post announcing the changes. They wrote:

The openness of the Linux operating systems makes it an attractive one for cheaters and cheat developers. Linux cheats are indeed harder to detect and the data shows that they are growing at a rate that requires an outsized level of focus and attention from the team for a relatively small platform. [...] We had to weigh the decision on the number of players who were legitimately playing on Linux/the Steam Deck versus the greater health of the population of players for Apex. While the population of Linux users is small, their impact infected a fair amount of players’ games. This ultimately brought us to our decision today.

The way kernel-level anti-cheat works is by operating at the deepest layer of Windows (the OS kernel). This layer is responsible for essential system functions like memory management, process scheduling, and more. Think of it as the middleman enabling the OS to interact with the CPU, memory, and connected devices.

By hooking into the kernel, anti-cheat software gains access to processes normally hidden from user-level applications (like games, browsers or office software).

Anti-Cheat Compatibility List for Steam Deck and Linux | GamingOnLinux
GamingOnLinux Anti-Cheat Compatibility List for Steam Deck and Linux

This way, anti-cheat can identify hidden processes that some cheats use to avoid detection. For example, some cheats like wallhacks or aimbots inject code or alter memory values to alter gameplay. But since anti-cheat sees all processes all the time (normally, anti-cheat runs in the background constantly even if you don't run the game), they can monitor for unauthorised changes and shut down the game and/or ban the player.

96% of Steam users are on Windows, 2% on Linux.

All of this is developed with Windows primarily in mind. It's the most popular OS after all, and going by the recent Steam User survey, it's first by a mile (96.6% of Steam users are on Wind0ws).

So, the chances of seeing anti-cheat developers work on Linux support are minuscule. It's in the hands of Valve.

But the question is: how much can Valve actually do to fix this issue?

To enable anti-cheat the way it runs on Windows, Valve would need to support Windows kernel operations and potentially emulate kernel-level interactions. Right now, Linux lacks the same kernel hooks or APIs used by anti-cheat.

It also goes against Linux's core principles of open-source and modularity. Anti-cheat usually operates as a kind of "black box": anti-cheat and cheat developers are in a constant cat-and-mouse game, so it's in the interest of anti-cheat devs to not divulge how their systems work.

So while updating Proton this way might be technically feasible, it sure sounds extremely challenging (and I'm no developer, so I might be completely wrong here; maybe it isn't doable at all). They could also start baking their own custom kernel modules into the Linux kernel, but that would require constant updates to keep pace with Windows and anti-cheat advances.

Valve now lists what anti-cheat software a game uses.

The other solution would be for Valve to collaborate with anti-cheat devs, as they did in the past with EAC and BattlEye. But going by the fact that GTA Online uses BattlEye, and it's still incompatible with the Steam Deck, it either means there's still some work needed on Linux, or Rockstar just has been too lazy to enable support.

So, the real solution might probably be a mix of both. Valve needs to work on Proton to make it as easy as possible for anti-cheat developers to add compatibility, all the while enticing said devs to work on that software in the first place, despite a comparatively tiny user base.

Or maybe, we all just need to accept that SteamOS, Bazzite, and other Linux-based operating systems will never fully replace Windows, if we want access to all games, ever.

Great! You’ve successfully signed up.
Welcome back! You've successfully signed in.
You've successfully subscribed to overkill.
Your link has expired.
Success! Check your email for magic link to sign-in.
Success! Your billing info has been updated.
Your billing was not updated.