They should design their games such that the client is not trusted, and then the only possible cheats would be UI/AI assistants to the human players, which is not really cheating.
They should design their games such that the client is not trusted, and then the only possible cheats would be UI/AI assistants to the human players, which is not really cheating.
Gamestreaming (Stadia etc) shows that this absolutely is possible. It might not be feasible due to players on bad connections and hardware cost (in fact, the reason that games do so few checks serverside is hardware cost), but it's not something impossible anymore.
> I can't even think of a way that things like aimbots could be prevented server-side; it's hard enough just to detect them.
Pattern detection can, things like following enemy movements through walls or extreme precision. I agree that it's easier to check for running software on the client, but this is error prone as well and can also be defeated by a sophisticated enough hacker.
That's a fair point, and maybe we're closer than I think, but I don't think that fully-streamed games demonstrate that we're there yet. At the risk of sounding too elitist, those games aren't "hardcore". The things that streamed game players expect and will put up with are a far cry from the things that hardcore gamers expect.
A serious Counter-Strike player wants things to operate as close to the limits of human reaction time as possible. People can typically react (as in press a button) in response to visual stimuli in something like 150ms, and to audio stimuli in something like 50ms (I don't have good links for these, so don't hold me to the numbers; there are studies out there).
While this may seem like it's slow enough that processing and network delays don't matter too much, when you add those in, you're well into the territory of perceptable delays. Advanced/pro gamers (especially younger ones) are even faster. I don't know that it's possible for fully server-side systems to compensate for this. Anecdotally, I can't tell the difference between 20ms and 70ms latency while gaming (at least not now that I'm old), but I can tell the difference between 20ms and 120ms. If everything had to happen server side, I think it'd be noticeable.
I fully agree with you that game streaming platforms, as of now, are not usable for pro FPS players (or any players where tens of ms of latency are important). You're not elitist, that is the truth of it :-) But, if a developer would really want to, there would be options:
1. You could go for datacenters in all major cities. With this, you could probably get <10ms roundtrips for a lot of people. It would still be bad compared to local, but if you control the stack, you could easily get those ms back on other fronts. Bad keyboards and mice, for example, might add a lot of latency. Same for USB hubs and non-gaming monitors. If you supply your own optimized hardware you can easily save quite a few ms compared to a "normal" setup to counter out the network latency.
2. Stadia is the concept driven to its maximum - the client is just a video player, everything is done server-side. For cheat safety, this is actually not necessary - by just sending render instructions (i.e. which object is where), you can let the client do the actual rendering, with only culling being done server side. This would not only reduce the server hardware requirements, but also drastically reduce the required bandwidth (especially at 4K) and latency (since you can skip video en-/decoding and a bit of compression). If cheat safety is the only goal (instead of not requiring hardware, which game streaming optimizes for) this would probably be a superior solution.
Stadia (and NVidia Now and the other ones) prove that the technology is close enough that this would be doable, even though they themself optimize towards other things. However, the reality of it is that this would cost an insane amount of money and still not catch everyone [0]. Cheaters do cost games something, but as long as there are reasonably few (and they're kept out of tournaments), it's fine with developers. This is far cheaper to do with client side anti-cheat right now. So you are probably even right with the prediction that we won't see this for a long time - it's just not for a technological reason.
[0] You could do [Game Console of Choice] -> HDCP Stripper -> Cheat-PC w/ HDMI capture card -> Faked gaming mouse/keyboard via USB host -> [Game Console]. This setup works with everything available on the market right now and is virtually undetectable on the client and the server, at least without analyzing user behavior.
Aimhacking is still fully possible on Stadia. You have the problem here of even if the client only has visibility into what they strictly should, machine reaction time & precision is vastly superior to humans. So aimhacks will always be viable, regardless of how little the client is trusted.
That's why I specifically quoted the part about the server being able to specify what is rendered client-side - this part is possible via game streaming.
> So aimhacks will always be viable, regardless of how little the client is trusted.
Fully agreed. In the end, the platform can only do pattern detection, but this is really, really hard to do. LAN tournaments where the hardware is fully controlled is really the only option where one can be reasonably sure that no cheating is going on, but it has happened even in these circumstances.
You can't make the client untrusted to the point of "I don't trust that the human really pushed the button" or you don't have a useful multiplayer mode anymore. Cheaters are truly ruining everything, here.
Like so many seemingly intractable moderation problems maybe this is why we shouldn't scale to infinity. YouTube is literally too big to moderate. Maybe this is a feature of humanity. What's wrong with more, smaller communities that have a dang to keep everyone in line? Other than the unfortunate lack of dangs in the world.
Back in my day CS servers were mostly privately run. If you were caught cheating you got banned. If you appeared to be cheating (you were too good) you also got banned. From the perspective of the players on the server those are the same thing. Communities formed on servers with similar skill levels and recognized players. Cheating in that kind of environment becomes extremely risky from a social perspective. You could piss off your actual friends.
There wasn't a need for rank-based matchmaking or anti-cheat or anything like that, you just eventually found a place you fit in and could have fun. Valve tried to replace that with algorithms but maybe they should "crowd source" so to speak, like we did 20 years ago.
This is all a lot of words to say that there is a "right size" for a community to form and enable everyone to have a good time. When you get to the point that "technology can't help us" I think that's an indicator that your community is too big.
They're doing that too.
Fortunately, most cheaters don't know how or are not trying that hard to hide, and are identified by pattern recognition. It's not that big a problem in practice. It's still universally considered cheating.