• 🇰 🌀 🇱 🇦 🇳 🇦 🇰 ℹ️@yiffit.net
    link
    fedilink
    English
    arrow-up
    3
    ·
    edit-2
    6 months ago

    The cheater thing just makes me think of Rocket League. Every action you can take is handled server side and the game is so unique, so you literally can’t cheat in ways that would matter. You technically could have wallhacks; but there are no walls. You technically could have aimbots; but there’s no point to it.

    I’ve never understood why any cheat detection can’t just be “this is the code we wrote, this is the code that all players must be running, and if any of it deviates from this, they’re cheating.” Is it just super hard to do? Is there a need for differences in the code to exist that could be used for something benign as well as cheating? But I also don’t necessarily know how the cheats work. Afaik, they are changing how the game runs as it’s running, which should be very noticable right? I mean obviously if it was that easy, someone would have done it so what’s really going on?

    • sebinspace@lemmy.world
      link
      fedilink
      arrow-up
      6
      ·
      6 months ago

      I can’t answer for Psionix, because… I don’t work for Psionix. But having worked on other projects, I can tell you that a fully-authoritative server (that’s the word you’re looking for, btw) is not the end-all-be-all of anticheat. Every game has different levels of mechanical complexity, logical complexity, and a myriad of other variables that factor into what type of architecture is used in online games, and that a fully-authoritative server not only isn’t feasible for all projects, but also isn’t a silver bullet against cheaters.

      • Now I’m curious what would still be possible to cheat in such an environment. Unless you are merely suggesting that the server itself could be hacked; I do understand that would end up being the target in this case.

        • sebinspace@lemmy.world
          link
          fedilink
          arrow-up
          5
          ·
          6 months ago

          So forgive me for not knowing the term, but there’s a type of attack that waits to send commands until after packets have been received whose data provides an advantage. For instance, a bot could simply wait until it receives the position of your opponent, calculate how far to turn the player to aim, then tell the server “I’ve moved the mouse in this vector”

          A bit like playing rock-paper-scissors, but waiting until you opponent shows what they’ve chosen before making your own decision.

    • ripcord@lemmy.world
      link
      fedilink
      arrow-up
      3
      ·
      6 months ago

      What’s going to tell if the client has been modified? The client, which has been modified…?

      • 🇰 🌀 🇱 🇦 🇳 🇦 🇰 ℹ️@yiffit.net
        link
        fedilink
        English
        arrow-up
        1
        ·
        edit-2
        6 months ago

        The server. Like how some games handle the hit detection client side (counter-strike) and others do it server side (battlefield). If everything was handled server side, the server should be able to detect modified clients and not permit them to even connect. This is basically how Blue Sentinel for Dark Souls 3 works. It’s a 3rd party anti-cheat that can detect modified clients and block them from connecting to you or vice versa if the client data doesn’t match up. This way you can only connect to vanilla clients if you’re playing vanilla or only to clients also running the mod you’re running.

        • ripcord@lemmy.world
          link
          fedilink
          arrow-up
          2
          arrow-down
          1
          ·
          6 months ago

          And who tells the server that the client hasn’t been modified…?

          But then you started to being in external solutions, which of course themselves could be modified, and you’re starting to answer your own question about why it’s pretty hard.

          • 🇰 🌀 🇱 🇦 🇳 🇦 🇰 ℹ️@yiffit.net
            link
            fedilink
            English
            arrow-up
            1
            ·
            edit-2
            6 months ago

            And who tells the server that the client hasn’t been modified

            The server itself checks against what is allowed and what isn’t. It knows what the clients should be doing, and if they do something else it’s flagged. External hacks still, afaik, hook into the client and change the code as it is executed but still before it’s sent to the server, so you could still be checking against what the client is actually doing.

            The external solution I mentioned in Blue Sentinel only exists because such a thing was not built into the game itself by FromSoftware, but there is no reason why it couldn’t be.

            • ripcord@lemmy.world
              link
              fedilink
              arrow-up
              1
              ·
              edit-2
              6 months ago

              You’re not a developer, I take it.

              Ironically, this is the kind of thing that sebinspace was complaining about, even if you’re saying more than just “it’s not hard!”

              But the server only knows what the clients tell it. It’s not psychic or magic. And if the client is compromised, there’s all kinds of things you can do. One of the main goals is often just making exploits/cheats as difficult as possible.

              On the client-side, some of the anticheat solutions are designed to help prevent the client being modified, or be able to detect if memory of running client has been modified, etc.

              Some are to do some kind of regular cryptographic hash of what’s in memory and send that home in a way that is difficult to hack. But that’s difficult too because all the info needed to generate and send this home are running client-side. Its one reason that having TPM chips and things are potential security benefit.

              But the point is that this is NOT simple.