ValveSoftware / Proton

Compatibility tool for Steam Play based on Wine and additional components
Other
23.96k stars 1.05k forks source link

[Feature request] Some way to distinguish "cheaters" and legit players using Proton. #1468

Open HonkingGoose opened 6 years ago

HonkingGoose commented 6 years ago

Feature Request

I confirm:

Description

Some way to prove to the automatic anti-cheat systems that Proton is not being used to cheat.

Or some kind of whitelist for Proton, so that the simple fact of using Proton is not enough to get you flagged as cheater.

Justification

The problem is that, currently, using any kind of emulation/compatibility layer can lead to getting hard-banned or soft banned. This leaves legit players out in the cold, they are not cheating, but might lose access to playing a game entirely (hard-ban), or are only allowed to play with other people labeled as cheaters (soft-ban).

Many online games have some kind of cheat-detection system, which triggers when using Proton/Wine/DXVK etc. So this problem is not in any way exclusive to Proton itself.

Enabling Linux users to safely play online without fear of getting banned will, I think, be helpful to improving Linux user-base on Steam. But how much the user-base would increase, I don't know.

Possible routes to getting a solution:

Now I have given this some thought, and have come up with two solutions.

First way:

Somehow convince stakeholders (game-developers/anti-cheat makers/publishers/moderators) to whitelist Proton use. Really simplified:

Honestly, our users are nice people, and they won't abuse Proton to cheat. So can you whitelist us?

This appeal, I think, has limited believably and sustainability. There will always be trolls, cheaters, etc. who will abuse Proton to cheat. Let's assume that the Proton whitelist will be granted, that the appeal works; people will still find a way to cheat. The well will be poisoned by those users, and we're back to square one: Proton users are banned on sight.

Way the second:

Implement some kind of technical proof that Proton is not used to cheat.

Maybe something like GPG-keys and SHA256SUMS can be used to prove that the Proton install is legit and wasn't tampered with. However we will also need to prove during run-time that nothing is hooking into Proton to cheat. This will likely prove to be a hard problem to solve.

The end-game here would probably be developing new anti-cheat measures for Proton or implementing existing anti-cheat solutions (such as Steam's VAC system) into Proton. I have a feeling that both of those will be out-of-scope for the Proton development team.

Risks

References

This issue affects games which are wholly online or have online components and use some form of anti-cheat system.

I've linked issues for games which seem to be affected by not having EAC, or other forms of anti-cheat integrated into Proton.

Conclusion

I'm fully aware that solving this problem might be out-of-scope for the Proton team itself. Any solution will also require buy-in from others, and this might cost a lot of time/effort/money.

HonkingGoose commented 6 years ago

@kisak-valve I hope this is the right place to post it. If not you may close the issue. I just wanted to put this out there, so that the issue can be tracked.

I have also just found from https://steamcommunity.com/games/221410/announcements/detail/1696055855739350561 that:

Q: Are there any games that will never work with Proton?

It's likely that some games using complex DRM or anti-cheat systems will be difficult, or even impossible to support.

I also saw that you closed issue #1446 as out-of-scope. So it might be that my issue is also out-of-scope... or otherwise be labeled as "won't fix".

gbdlin commented 6 years ago

This is possibly an suggestion for each different anti-cheat system, not for proton. If they'll contact proton supporters to include some proof for them that proton is not being used as a workaround for cheating or they will just respond when creating whitelist request that this is required for them, then we can have discussion here how and if we should provide that kind of proof. But it is still up to them to decide if proton should be whitelisted or not.

HonkingGoose commented 5 years ago

@gbdlin I filed this feature request here, so that the Proton developers might reach out to the anti-cheat developers. If we wait until the anti-cheat developers contact Proton, I have a feeling we will be waiting a long, long time: Linux market-share is way too small right now for them to even think about Linux users at all... So I feel some kind of outreach by Proton/Valve would probably be necessary to get anything done in this matter.

I do agree that actually working on something now is probably premature. Because we don't know yet what kind of technical measures would be needed to get approval from the anti-cheat developers.

So the roadmap, as I see it, would be:

  1. Decide if this is in or out of scope for Proton in the first place.
  2. Then talk to the anti-cheat developers.
  3. See if they are willing to work with Proton on this at all.
  4. If they are willing, ask what kind of "guarantees" would be needed.
  5. Decide if the work is do-able, and if its worth the time and money.
  6. Only then start work on the needed bits and bobs for Proton.
HonkingGoose commented 5 years ago

Hi @kisak-valve, I see my issue isn't yet labeled "feature request". Is this intended? Or did you forget to add the label? I'm not angry or anything, just curious. :+1:

kisak-valve commented 5 years ago

Hello @HonkingGoose, yes, we're waiting to hear from a Proton dev for this.

HonkingGoose commented 5 years ago

@kisak-valve Oh, I thought you just labeled issues with "feature request" as and when they come in. I had no idea that the label "feature request" needed to be approved by the Proton devs.

I'll wait then. :smile:

massatt212 commented 5 years ago

EAC is owned by epic they definitely not going to make this work on proton, so we all are screwed, we need to make petition to the devs to drop EAC and to use something just as good that works with proton

simonvanderveldt commented 5 years ago

Seems like this wine bug is/might be relevant https://bugs.winehq.org/show_bug.cgi?id=44235 and going by this comment (that person seems to be a Paladins dev) EAC does seem to support wine specific builds https://www.reddit.com/r/Paladins/comments/606g17/easyanticheat_wine/df4mgph/ (Looking at https://www.easy.ac/en-us/support/?next=contact it seems EAC is also used in multiple Counter-Strike games, so it should either be possible to run EAC on Linux or the Linux versions don't use EAC).

Now if EAC would properly support running windows applications via Proton and provide a wine version of EAC that works that might be a nice solution to this problem. Has anyone reached out to EAC to check/discuss if this is possible?

M-Reimer commented 4 years ago

About Counter Strike and EAC: The servers that require it also require you to install EAC on your Windows client to enter the server. Or in other words: Currently no access from Linux to such servers.

Actually CS:GO players don't have access to several services when playing on Linux:

Wasn't Valve in the process of getting EAC to work on Linux/Proton? As far as I remember the EAC developers said that there is a native EAC version for Linux. Wouldn't it be possible to install the native version and make the games in Proton access the native EAC to accept this as anti cheat? Does someone know any details? Where can the progress be monitored?