Check out our Monthly Survey Page to see what our users are running.
We do often include affiliate links to earn us some pennies. See more here.

Tim Sweeney has a point about Fortnite EAC support

By - | Views: 63,435

One of the big topics of discourse in the Linux gaming sphere recently has been Tim Sweeney's statement on porting Fortnite to the Steam Deck, where Sweeney argues that Linux would be too difficult of a target and the market not big enough to warrant the amount of resources it would take to bring all of Fortnite on the platform.

The central crux of the issue, from Sweeney's point of view, is that making Easy Anti-Cheat, with all of its capabilities, run on Steam Deck (and thus on Linux) would be extremely difficult. He argues, that for a game of Fortnite's size this would open the flood-gates to significant influx of cheaters.

There have been some responses to this from the Linux side, with some accusing Sweeney of exaggerating the difficulty of such a port or that his statements are conflicting, because he simultaneously believes the Linux market is too small to be worthwhile but also would provide a way for too many cheaters. I will address some of these aspects a bit later, but for now let's focus on the main technical blocker, which is Easy Anti-Cheat.

Easy Anti-Cheat, or EAC, is an anti-cheat solution which apparently comes in a few configurations. We know that it can be run in a configuration where it is compatible with Linux/Proton apparently with just a relatively simple toggle. However, this mode of operation is seemingly a comparatively high-trust configuration, where only part of the anti-tampering protections of EAC are active. This may prevent some cheats but fail to detect others, which can be perfectly reasonable for games, where the number of cheaters and potential cheaters are fairly low or other systems complement the anti-cheat solution. There are plenty of games, even some popular free-to-play titles, which at best have this level of anti-tamper protection and they don't seem to have a major cheating epidemic, so clearly in many cases this should be enough. We also don't know the scope of cheats that are detected by EAC in this configuration, so this system by itself may already be fairly comprehensive.

EAC also contains a kernel-level component, which on Windows is installed as a kernel driver. This allows EAC code to run at a very privileged level and inspect essentially any and all parts of the system in order to detect tampering. This provides a very broad level of monitoring, which is also harder to bypass. Based on Sweeney's comments, this is the mode of operation used by Fortnite. It is also a mode of operation that is technically incompatible with the Linux way of doing things.

In Linux, the standard way of delivering drivers is by submitting the driver into the kernel source code tree, which naturally requires that the driver be open source. Most drivers are delivered this way, where the driver gets tightly integrated into the kernel and the drivers are updated when the kernel is updated. There are of course some notable exceptions to this rule, the largest of which is the Nvidia driver. The Nvidia driver is instead loaded as a separate kernel module, which allows Nvidia to keep its source code hidden, but also allows the driver to be updated separately from the kernel. So, EAC could surely use this approach as well, right?

The separate kernel module approach comes with some gotchas. Firstly, the kernel is licensed under GPLv2 and many of the parts in the kernel require the calling code to also be GPLv2 due to the "viral" quality of GPL. This means that, legally speaking, if Epic were to turn EAC into a kernel module and started poking around the kernel APIs, they'd have to open source EAC or they'd be in a legal grey area. The first approach is obviously not possible due to their business model and the second is at least not a great look.

Another problem with separate kernel modules is that the Linux kernel only guarantees a stable user-facing interface. This means that almost anything is allowed to change inside the kernel as long as user-level programs continue functioning. This is also the reason why sometimes the Nvidia driver stops working when you upgrade from one kernel to the next without installing an up-to-date Nvidia driver as well. So, when Sweeney is complaining about the multitude of kernel configurations, he's not wrong. EAC would need to maintain a compatibility shim similar to that of the Nvidia driver, which ensures that the EAC kernel module functions with each kernel version out there. Every time the kernel updates, an EAC engineer would need to go over the changes and update the compatibility shim every time there's a breaking change while still maintaining the compatibility with older kernel versions.

Theoretically you could overcome this problem somewhat by only targeting the Steam Deck and its SteamOS. This would give you a single kernel version to target, although Epic would need to negotiate with Valve in order to ensure their driver is somehow shipped with SteamOS.

But the problems don't end there. Since Linux is a fully open platform, there is technically nothing that would prevent a determined cheater from cracking open the Linux source code and making some tactical changes to how the kernel behaves, building the kernel and then making the EAC kernel module blind. On Windows the EAC developers can assume that the black box that is the NT kernel is at least somewhat difficult to modify by users. This means that in kernel-space they can assume some level of security through obscurity. On Linux this assumption does not hold. The only way for Epic to overcome that problem would be to negotiate with Valve to lock down the Steam Deck, which Valve has already decided not to do.

So, from EAC's point of view the Linux platform can never be quite fully trusted, which is entirely fair, because from the user's point of view EAC can never be quite fully trusted.

But surely Epic could still somehow bring Fortnite to the Steam Deck, right? Surely they could ship a version of Fortnite without the kernel-level component, right?

That they could, which brings us to the points about market share and the viability of cheating. Sweeney argues that the Linux market is too small, which initially sounds a bit odd because he then goes on to worry about the large numbers of cheaters. The kicker is here that the small Linux market doesn't necessarily guarantee a low number of cheaters. If it turns out that certain cheats are possible via a Linux version of Fortnite, this will attract some cheaters to use the platform in order to bypass EAC. It won't be all of the cheaters, many casual cheaters would likely not bother to learn Linux in order to cheat in a video game, but there is no doubt a group of cheaters that would take the opportunity. So, Fortnite would see some increase in cheating, but without good data it is hard to determine how big that effect would be. However, considering the popularity and free-to-play nature of Fortnite, it could very well be that it would be an attractive enough target for cheaters to attack even if there is a slightly higher initial investment. Cheat makers on the other hand would probably eventually find ways to package their offerings in an accessible enough format, like boot-to-cheat USBs or pre-configured VM images.

Some solutions to this problem have been proposed. For example, they could silo Steam Deck/Linux users in such a way that they will never come into contact with the rest of the playerbase. This would contain cheating, but it's also a hard-handed measure that would likely be unpopular. It would also require some amount of work to accomplish and I think it's fair for Epic to discount options that would cause extra work on them.

So, what's the solution to the problem? Here's the thing: I don't think there is one. My personal opinion is that client-side anti-cheat is fundamentally limited and taking it into the kernel is a bandaid that comes with excessive cost and is simply incompatible with the Linux platform. So, as long as Epic insists on maintaining its current anti-cheat approach with Fortnite, I just don't think there's going to be Fortnite on Linux.

And that doesn't mean Tim Sweeney is wrong or lying about the difficulties of adapting that approach to Linux. It just means that a new or different approach is needed in the future.

Article taken from GamingOnLinux.com.
54 Likes
About the author -
author picture
I'm a Linux gamer from Finland. I like reading, long walks on the beach, dying repeatedly in roguelikes and ripping and tearing in FPS games. I also sometimes write code and sometimes that includes hobbyist game development.
See more from me
The comments on this article are closed.
148 comments
Page: «13/15»
  Go to:

Shmerl Feb 17, 2022
Quoting: RCLThis is a rather bold statement to make, without having the data or likely even an idea about the health of the game.

It is bold and based on a simple idea - messing up user's privacy and security becasue developers don't want to spend effort on proper solutions is unacceptable.

Quoting: RCLwhich poses a fundamental and philosophical issue - how to prevent bad behavior on a platform that trusts their users completely? People who are smarter than me are working on this and don't have a good (or economical at least) solution so far.

Simple - you don't (do it on people's systems). Same as you don't put police cameras in people's homes (wouldn't it help preventing more crime?). Same reason there is the Fourth Amendment and such.

No matter how "serious" this problem is, current idea of preemptive user side anti-cheat is not a solution. Not any more than let's say the Watchbird is a solution to crime.

For those who want to better get the reference, see:

* https://www.gutenberg.org/ebooks/29579
* https://www.gutenberg.org/files/29579/29579-h/29579-h.htm


Last edited by Shmerl on 17 February 2022 at 3:35 am UTC
Cyba.Cowboy Feb 17, 2022
Your comments imply that you work for - or have some direct involvement with - Epic Games, @RCL...

So how then, is it that Fortnite: Battle Royale is available on Android-based operating systems - which are famously easy to "hack" (lock and unlock the bootloader; replace kernels; run custom code; replace ROMs and loads of other things) - yet it is not going to be coming to the Steam Deck?

Then there's the numbers.

Steam has approximately 25 million active users (the number varies, but it's around this figure) who are all playing games (i.e. every one of them is a potential Fortnite: Battle Royale player); Android-based operating systems have somewhere in the vicinity of 250-300 million active users, but only a portion of those will be actively playing games on their smartphones (most of which are so-called "casual games") and only a portion of that will be Fortnite: Battle Royale.

For comparison's sake, let's say half (about 150 million) are actively playing games on those smartphones on a regular basis and let's say a third of that are actively playing Fortnite: Battle Royale on their smartphone, instead of playing it on a console or computer.

That makes about 50 million users playing Fortnite: Battle Royale on their smartphones instead of a console... 50 Million users is not all that much more than 25 million, particularly if you consider that I'm being generous with my numbers, with a bias towards Fortnite: Battle Royale.

Of course, most of this is guesswork - but I'd be awfully surprised if it's much more than 25 million who prefer to play Fortnite: Battle Royale on a tiny smartphone over a console or a portable console.

In essence, the potential market for Fortnite: Battle Royale on mobile devices is probably about the same and the ability to cheat the game is probably easier on (some) mobile devices (remember, Fortnite: Battle Royale is also available on the Nintendo Switch and Sony PlayStation Vita via Remote Play)...

As I said above, I personally don't care because if Epic Games don't want to bring Fortnite: Battle Royale to the Steam Deck, it's only a matter of time until there's a viable alternative available... It's not a question of "if" an alternative will become available, but rather "when".

But I do struggle to wrap my head around the business decision, because people that know more about this stuff than I do seem to be able to easily discard most of Epic Games' arguments with ease.
RCL Feb 17, 2022
Quoting: ShmerlIt is bold and based on a simple idea - messing up user's privacy and security becasue developers don't want to spend effort on proper solutions is unacceptable.

Arguing from this position (that Linux shouldn't have any kind of DRM) would make any non-DRM-free game distribution platforms on Linux a non-starter, would it not? I though it is a commonly accepted position here on GOL that _some_ DRM is acceptable as a trade-off, otherwise why we're even discussing Steam Decks which aren't DRM-free.

Abstracting away from that, there's a deeper philosophical issue here. Freedom of one user ends where the other's freedom begins. In a multiplayer game, be it commercial or not, there exists a shared trust that needs to be enforced. You are trusted to obey by game's rules, and the others need a way to enforce or at least confirm that. There's no good solution for that (as far as I know) in a FOSS OS, except, as you said - "doing everything on the server". Which, if you try to actually implement that, will result in either a _very_ thin client (like a video player to replay the stream rendered on the server), or an extremely unresponsive, unplayable except on the LAN, game. You seem to maintain that there's the "proper" solution that avoids both of those downsides and yet doesn't limit the user's freedom. I am afraid that if that solution truly existed, it would have been found by the industry already... So far all anti-cheating solutions in current practice involve a compromise, i.e. some form of the DRM on the client. Respectful of the users' privacy and not overstepping what's not needed to protect the game, but limiting some of their freedoms nevertheless.


Last edited by RCL on 17 February 2022 at 3:46 am UTC
RCL Feb 17, 2022
Quoting: Cyba.CowboyYour comments imply that you work for - or have some direct involvement with - Epic Games, @RCL...

Yes, I do work there, not on the anti-cheat though. And here I'm privately, as just another Linux user.

Quoting: Cyba.CowboySo how then, is it that Fortnite: Battle Royale is available on Android-based operating systems

I don't run the numbers, nor if I were I could disclose them, but my hunch is that Android is still a much more locked down platform than a regular desktop Linux. Or at least the proportion of the players on that platform who are willing to seriously mod their systems for cheating is low enough. Again, I trust the judgment of the anti-cheat people who are experts in their area.
Shmerl Feb 17, 2022
Quoting: RCLYou seem to maintain that there's the "proper" solution that avoids both of those downsides and yet doesn't limit the user's freedom.

There is. Develop an AI that will analyze user behavior while running server side and will detect patterns that will be deemed as "illegal" by the game. Same as police would monitor people's behavior in the street, but wouldn't sit in people's homes because they "need to suspect everyone to maintain the level of trust".

How you define those patterns is totally up to developers. The more sophisticated ways they'll come up with and the more they train it, the better the AI will be detecting what they define as "cheating". I don't see any unsolvable problem there.

It's not a perfect solution, but it can be a sufficient solution for the level of trust you need. Same as policing in real life is. Point is - there is no perfect solution for it. But there can be good enough ones.

Basically, I don't see any huge philosophical problem here, it's the same old privacy vs policing idea that's been handled for a long time in some acceptable fashions that don't cross important boundaries.


Last edited by Shmerl on 17 February 2022 at 4:20 am UTC
RCL Feb 17, 2022
Quoting: ShmerlThere is. Develop an AI that will analyze user behavior while running server side and will detect patterns that will be deemed as "illegal" by the game.

This is indeed an open area of research and work. However, as far as I am aware - and I'm not an anti-cheat specialist - there isn't enough robustness as of now yet, to avoid false positives or missing the cheaters, and more importantly, the current solutions have a fairly long lead time, which cheaters can beat by recycling the accounts faster (in a free-to-play game at least). So while a promising area, this is far from a solution that can be enabled "right here, right now" to combat today's cheaters, unfortunately.


Last edited by RCL on 17 February 2022 at 4:05 am UTC
Shmerl Feb 17, 2022
Quoting: RCLThis is indeed an open area of research and work. However, as far as I am aware - and I'm not an anti-cheat specialist - there isn't enough robustness as of now yet, to avoid false positives or missing the cheaters, and more importantly, the current solutions have a fairly long lead time, which cheaters can beat by recycling the accounts faster (in a free-to-play game at least). So while a promising area, this is far from a solution that can be enabled "right here, right now" to combat today's cheaters, unfortunately.

I don't see it as an excuse to resort to unacceptable solutions. Rather it should be an incentive to invest more into such AI.

Also, the way this works is a slippery slope. Once these companies manage to portray this as "acceptable" and people start ignoring the issue, it becomes very hard to get rid of it even if there are better solutions. Because they don't want to give up power and control.

Same thing with other areas with similar issues.

I recommend reading the above Watchbird, it's very on point.


Last edited by Shmerl on 17 February 2022 at 4:19 am UTC
Cyba.Cowboy Feb 17, 2022
Quoting: RCL
Quoting: Cyba.CowboyYour comments imply that you work for - or have some direct involvement with - Epic Games, @RCL...

Yes, I do work there, not on the anti-cheat though. And here I'm privately, as just another Linux user.

Well it's nice to have you here, even in an unofficial capacity... The Linux Community can still indirectly benefit from your presence, because of things like your ability to (privately) provide feedback the your superiors based on "the feeling on the ground".

Far too many senior executives mis-read their customer base; so any feedback, even indirect feedback, is always a good thing in my opinion.

---

I don't follow along enough to know how much Epic Games make off Fortnite: Battle Royale, but you would think that if they were making the sort of money others are making with in-app purchases - and I know some of the companies out there are making huge amounts of money off in-app purchases (only recently I read an article about how just one of EA's sports games was effectively paying for most of their expenses via its in-app purchases!) - that paying for the AI tech to enable server-side anti-cheat solutions would be entirely affordable...

Anybody know how much Epic Games make off Fortnite: Battle Royale (and can actually disclose said information)?
RCL Feb 17, 2022
Thanks! I have been around for a while here, mostly lurking though.

The problem with AI isn't insufficient investment IMO. While I'm not an AI expert either, I assume that it might be similar to the situation with self-driving cars - the whole industry pours tons of money on that problem yet no reliable solution is coming out. It's not like it's a new problem, it's at least as old as multiplayer games, and server-side solutions have been brought up years ago, but I am not aware of any breakthroughs there. Whereas current games need reasonable protections to be enjoyable for the masses right now, because otherwise it's just too easy for a minority of toxic players to spoil them for everyone, even with the anti-cheat measures in place it is a constant battle on platforms like PC. So it is what it is...
Shmerl Feb 17, 2022
Quoting: RCLbut I am not aware of any breakthroughs there.

I agree that making such solution is harder than it sounds, I don't doubt that. But I just don't see lack of current solution as a reason to erode users' privacy. Same as let's say lack of good self-driving AI isn't a reason to use some other poor solution that will endanger people's lives becasue self-driving itself is considered "cool" and someone says it has to be enjoyable already today.

This is actually a good comparison, because most people take such kind of security seriously and understand the implications of using inappropriate solutions. When it comes to information security - it's more abstract. And people more easily ignore issues with it like the above anti-cheat rootkits.


Last edited by Shmerl on 17 February 2022 at 6:03 am UTC
While you're here, please consider supporting GamingOnLinux on:

Reward Tiers: Patreon. Plain Donations: PayPal.

This ensures all of our main content remains totally free for everyone! Patreon supporters can also remove all adverts and sponsors! Supporting us helps bring good, fresh content. Without your continued support, we simply could not continue!

You can find even more ways to support us on this dedicated page any time. If you already are, thank you!
The comments on this article are closed.