• @[email protected]
    link
    fedilink
    3
    edit-2
    7 months ago

    This is also the same for radar hacks. Or if you play a MoBa, screen alert hacks. All they do is boost player performance without being detectable. Most server side anti-cheat can only pick up on certain things, I don’t know Minecraft’s solution but I doubt it catches disguised cheating via code injection.

    The real question is: why does the client even know about players who aren’t visible to them?

    The solution with Minecraft PvP is simple: if you can’t see a player, the server won’t even tell you the player exists.

    If you use a wallhack you can see players walk behind a wall and then just disappear as if they had logged out, and suddenly reappear from behind the wall on the other side as if they had logged in.

    What Minecraft anticheat systems do is relatively simple:

    1. They only send information to clients if the players should have that information as well
    2. after every movement, action, etc they calculate whether the movement you did would have been possible by a real human given the information you should have had at that point, and if not, you’re banned
    3. all actions and movements are compared over minutes of gameplay and, if your actions are too different from all other players, sent to review by a human (and potentially banned)

    You don’t need to install anticheat on the player’s computers. The players can run all the mods and cheats they want, but cheaters can only see the same information as all other players, can only move the same way as all other players, and can’t shoot faster or more precise than any other player.

    So while some people may still be cheating, at that point you can’t tell the difference anymore.

    For comparison, this is btw how all other software outside of gaming is written. In all other parts of computer science you’d get fired if you did what game developers do.

    Imagine if reddit would send all DMs to all users and only make the DMs invisible on the client. That’d be an immediate lawsuit. Instead, the server validates who should be able to see what and only sends that information.

    Or imagine if banks allowed anyone to make any transaction they wanted, only the banking app verifying that you’ve actually got that much money. Utterly ridiculous. Of course the servers validate whether you should actually be allowed to do that.

    As result, writing third party apps for most websites is allowed, the EU even requires banks to support third party apps, but modded clients for videogames are considered a security risk. What the fuck.

    • @CleoTheWizard
      link
      37 months ago

      Ah I see your point and I’d be interested in what that implementation looks like. I think it would highly depend on the game so the type of thing you’re talking about is more applicable to Esports titles.

      The culling of players beyond eyesight or through walls is absolutely something that can be done to minimize cheats. If I remember right, CS has been doing this for a long time. However it has limits. Ping becomes very important as the culling will screw up interpolation.

      Then you start talking about cheaters moving and aiming like real players, that can get hard because you have to set acceptable limits on these things. I don’t think it solves the problem though.

      Even if someone using cheats is kept within the bounds of maximum human performance, well, they can still outperform most humans can’t they? And that doesn’t solve much of my issue. Like say we set cheating limits in actual sports at the best players capabilities, how do we even know what those are? And if someone normal dopes and can perform at that high level, it’s wrong. And it’s wrong at any skill level to do so. Because it undermines the sport or game.

      Now I think this can easily be better in most games. Most games don’t even ban people who are sliding around the map at inhuman speeds and getting 50 headshots a minute. CS doesn’t even do that and I have no idea why. The bar is in the floor for stopping cheaters honestly.