3 ms·
Ever considered that maybe you should design your game so that modifying the client provides no advantage to players? There is a universal way to do so, and it
by devit 6y ago
Ever considered that maybe you should design your game so that modifying the client provides no advantage to players?
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).
- klodolph 6y agoFor technical reasons this is infeasible for most modern games, especially action games like FPSs. 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.
- rasz 6y agoYou describe fancy advanced algorithms, meanwhile almost all mainstream FPS game servers happily accept client reporting arbitrary player position teleportation without the smallest of hitches. Not even the most basic server side validation.
- deleted 6y ago[deleted]
- klodolph 6y agoThat is irrelevant to the argument I was making. Anyway, the “fancy advanced algorithms” are not really fancy or advanced. They are de rigueur in FPS games.
- thu2111 6y agoI suspect that's because many games are targeted at consoles first, where the infrastructure prevents client modification or unauthenticated network connections, and see the PC platform as a second class citizen. They won't write tons of extra code to stop cheating when cheaters can't even log in to the game servers that matter for most of their players.
- fulafel 6y agoI think the GP suggested modifying the game design as seen by the players, not trying to implement the same games by doing (impossibly?) clever things under the hood.
- ThrowawayR2 6y ago> "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." Every game should have instantaneous snapping of the crosshairs to the target and firing without player intervention? Doesn't sound very fun.
- devit 6y agoProbably more fun that losing to someone just because he can move the mouse in response to a visual stimulus faster than you? 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.
- floatingatoll 6y agoThere’s a thriving market for turn-based games that do not depend on reflexes for competitiveness. I played one this weekend that was a top-down scroller shooter converted into turn-based. 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.
- SpicyLemonZest 6y agoSure, but this is fundamentally incompatible with the kind of high-twitch action game many people enjoy.
- danharaj 6y agoThat's a completely different game, then.
- sjustinas 6y agoAt this point you're just arguing for removing all mechanical skill from competitive games. 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)
- deleted 6y ago[deleted]
- deleted 6y ago[deleted]
- invokestatic 6y agoWhat you’re describing is basically impossible except maybe if the entire game, including rendering, was done in the “cloud” and simply streamed to the player. 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.
- vvillena 6y agoMaphacks, aimbots, and infinite resources cannot be options in competitive games, for obvious reasons. Of course, a game can be designed around these issues, hiding info not only from the player, but from the game client, but you still have to compete with the current games that take advantage of being able to offload logic to the clients. And in the end, the players simply don't care. The industry can't self-regulate regarding this. All competitive games will eventually end up taking complete control of the players' computers.