On the other hand, it seems naive (from my own naive perspective) to assume your own drivers won't be reversed and defeated, given you already know your opposition is this advanced. So why still go down that path? Most of what I've read has been pretty down on anti-cheat, so I'm quite interested to get the other perspective from someone who personally finds it worthwhile to work on it.
I take a fundamentally different, “zero trust” approach and built my anti-cheat with the assumption that it has already been fully reverse-engineered and figured out. I think if your software relies on security by obscurity you’ve already lost.
But if your interested, https://h6ntechnologies.com/.
Then how do you prevent it from being circumvented?
(1) often justified as necessity to reduce cost of running servers
But take a look at CS:GO. That has some of the best designed networking code from a security perspective. Your keyboard and mouse input is sent to the server, and it figures out where you move or if you shot another player, not the client. And yet there is still widespread cheating on that game.
I pay for ESEA, an external service, which installs a kernel mode anticheat. ESEA also got sued for running a bitcoin miner on users computer several years ago. But it’s the only way to get any semblance of real, high level, competitive play.
This is the context for Riots anticheat. They need to provide a solid AC from the start to pull over players and provide a competitive matchmaking system that isn’t a total joke like Valve MM. It sucks, but I know who I’d trust more between Riot and ESEA. I just run my games in a separate partition and bitlocker my primary OS install.
Another example, GTA online is practically unplayable on the PC whilst it's almost impossible to find cheaters on consoles.
No they're not. Not for cheating in a video game. The reason why cheat makers have advanced to shady rootkit level exploits is because game publishers started doing it first. Stopping cheating in your games is not more important than the security of my computer period. I don't care. Find better ways to manage your game or i'll play something else. I have no interest in your anti-cheat spyware being on my computer.
Pretty sure game companies don't care about the small minority who cares or even understands the implications of this.
But if you don’t want to have anti-cheat software installed, that’s OK! I’m a big proponent of informed-consent, and if you don’t consent, nobody is forcing you to. You just won’t be able to enjoy online multiplayer.
No, i'll be able to enjoy online multiplayer in one of the many, many games whose devs don't feel like they need to monitor and control my computer to provide a quality game.
cheating is very serious problem and there are no easy solutions
teams of skilled developers have been challenging it over decades and this is how it evolved
The market spoke. A few geeks with hangups about kernel drivers are irrelevant next to the masses of people who will happily buy entire dedicated gaming computers designed from the ground up to be physically tamperproof.
Game consoles are toys. Even if the game screwed up the game console, it wouldn't be very intrusive.
There is no such thing as implied consent. There is either explicit consent, or there is an absence of consent.
I honestly wish OS companies would grow a pair and start classifying these systems as malware and removing them.
If OS companies did that then competitive online multiplayer would effectively be dead. That may be fine to you but it's a very selfish opinion considering it would completely destroy the hobby of hundreds of millions of gamers.
So the flip-side of this feeling seems to be just as common.
There is a universal way to do so, and it is to provide whatever feature the "cheat" programs are offering directly in the official client (either with first-party code or by providing an API that third parties can use).
In general, the way a networked FPS works is by using the server as an authoritative source for information, but doing extrapolation on the client-side. This means that enemies which are not visible to a player must still be known by the client, since the camera and enemy may move into a position where the enemy is visible more quickly than the server can respond. So the client must know the location and velocity of some opponents which are otherwise not visible to the player (because they might become visible).
But, let’s suppose we solve latency problems, and don’t use client-side prediction.
You would need some perfect visibility algorithm for determining which opponents should be transmitted to each client. Those visibility algorithms make a tradeoff between accuracy and computational expense. They are conservative, because it is always an error to fail to draw something which is visible, but it is never an error to draw something which is occluded.
But, let’s suppose we solve visibility perfectly, and only transmit to clients the locations of models which are actually visible, and only the parts of those models which have pixels on-screen.
Consider an opponent hiding behind a wall, but with a small part of the opponent poking out. The game is going to need to draw that part poking out, but if you look inside the game’s memory, you can find that those textures and vertices belong to a model used by an opponent.
Beyond that—we are transmitting a video stream to the client. Basically, we can solve cheating if everyone uses Stadia.
Anyway, the “fancy advanced algorithms” are not really fancy or advanced. They are de rigueur in FPS games.
Every game should have instantaneous snapping of the crosshairs to the target and firing without player intervention? Doesn't sound very fun.
If the resulting game is too simplistic, slowing limitations can be added, such as limiting the maximum speed at which the crosshair can move, or making weapon fire deal little damage relative to health so the target can move out of range if near cover before they die.
Impede the gameplay however you want, in pure mechanical aspects a program will always have the benefit of perfect accuracy and near-zero reaction time (as opposed to the >200ms average of a human)
If people thought that way, nobody would ever play any real world sports. There's always somebody better out there. Yet here we are...
> "If the resulting game is too simplistic, slowing limitations can be added, such as limiting the maximum speed at which the crosshair can move, or making weapon fire deal little damage relative to health so the target can move out of range if near cover before they die."
Again, doesn't sound very fun.
It’s cheating to try and remove for yourself only that reflex-based competition from games that are built on it, and it’s draconian (and not fun) to suggest removing all reflex-based competition from all games.
this is a very reductive view of fps gameplay. in all but the twitchiest arena-style games, anticipating the opponents position is much more important than being able to do a 45 degree flick faster than the other person.
But people can and still make AI- or CV- cheat software that would still work in this situation. Any time there is any sort of user-input there is a way to exploit it for cheat purposes.
It is impossible to win by playing by the rules if your opponent is not playing by the rules.
An iOS model could help but not because it limits the legit app makers but because it limits what users can easily do, like a gaming console.
To address a nuance: You might here object that players in Diplomacy and Civilization have private state. Kind of? The agents that are playing the game do not have private state in the game, and they cannot submit actions which rely crucially on some special state of the game board which is only visible to them. They can, of course, do whatever they like outside the game, because actions taken outside the game cannot affect the effect of actions inside the game. This is the distinction between the game and the metagame [3], or the ludic and narrative perspectives [4].
So, then, when one plays a game like Hearthstone or League of Legends, one might hope that, because there is an adjudicating trusted server, and because submitted actions are limited to those possible within the game, one doesn't need to worry about cheating. The worst a cheater could do, again, is dishonestly choose the wrong action and get a suboptimal result which harms their position.
At this point, some folks might want to get irritated at the poor quality of some game servers. Sure, but there's something more important for games like Counter-Strike or Fortnite, which we cannot overlook: In free-for-all or battle-royale mode, all participants have the same goal. Thus, in the revealed game, all participants would submit identical agents. So, which agent should win? The one with the best randomly-generated starting position? That's no better than a lottery. Instead, we must realize that we are looking at these games as athletic contests.
And now the problem is obvious! You are asking athletes to compete at home and submit proxy scores. All of the spyware in the world won't fix this; the correct answer is to set up stadiums and officiate matches. Sure, it's expensive, but it's the better way to make a competitive spectacle out of measuring things like whose hands twitch faster or whose eyes track tiny dots more accurately. Speedrunners already figured this out, with more and more communities requiring hand-cams and complete splits, and with live runs at events being considered more attested than pre-recorded at-home runs.
Edit: "stadia" -> "stadiums" after reading neighbor comments. I mean that you need arenas, not that you need to purchase Google products. Like, the folks converting paintball and laser-tag rooms into VR rooms are onto something.
[0] https://en.wikipedia.org/wiki/Revelation_principle
[1] https://en.wikipedia.org/wiki/Diplomacy_(game)
[2] https://en.wikipedia.org/wiki/Civilization_(series)
[3] https://en.wikipedia.org/wiki/Metagaming
[4] https://en.wikipedia.org/wiki/Game_studies#%22Ludology%22_vs...