Steam Machine’s upcoming release means more people will be playing games on Linux, specifically SteamOS. The idea of ditching Windows for gaming is becoming more attractive, as the Steam Machine is first-party desktop-level hardware that’s optimized for Linux-based SteamOS. The biggest hurdle for Linux gamers right now is a lack of support for many anti-cheats – particular those that require kernel-level access. But with the release of the Machine, Valve hopes game devs take notice.

Steam Machine seems to getting the most attention out of Valve’s latest hardware launches. The Steam creators announced the new console-like mini PC alongside the Steam Frame VR headset and new Steam Controller. Even the Frame runs on SteamOS, which means Valve now has a trio of first-party hardware on Linux (including the Steam Deck handheld).

  • Blaster M@lemmy.world
    link
    fedilink
    English
    arrow-up
    49
    ·
    5 hours ago

    Kernel Level Anticheat needs to die. We have memory security, virtualization and antitampering features in operating systems now. All the games in Linux run in user space, none require system access because they are already sandboxed to an extent - every Wine/Proton game runs in a sandbox, since very older games often required admin permissions to run. Build your netcode with “never trust the client” as your first rule, E2E encrypt your network packets, learn to lag hide, and you’ll eliminate 90 percent of the haxors.

    • dreadbeef@lemmy.dbzer0.com
      link
      fedilink
      English
      arrow-up
      14
      ·
      4 hours ago

      Build your netcode with “never trust the client” as your first rule

      I wish this were more prevalent. Server side anti cheat is a problem that money can be thrown at and solved but its cheaper at face value to lease that labor from anti cheat service contracts.

  • andyburke@fedia.io
    link
    fedilink
    arrow-up
    100
    ·
    6 hours ago

    You can keep your kernel-level shit off my CPU.

    Spend money on servers. Verify your players. I don’t care how you do it, but you don’t get kernel-level access to my machine because some asshole script kiddies are aimbotting. You can never trust the client. This is basic shit that game devs will make up a whole host of bullshit to try to justify. (FWIW: I spent a solid decade as a professional game dev and I was as disappointed in this horseshit then as I am now. At least players are starting to figure it out now, too.)

    • kbal@fedia.io
      link
      fedilink
      arrow-up
      20
      ·
      6 hours ago

      People say “kernel level” anticheat as if that would be necessary for some reason, but I don’t really see it catching on in the linux world. Steam doesn’t even have root normally. Even if it did, not everyone runs exactly the same linux kernel and the only practical way to distribute a module that’s going to work for most people is through dkms, which means you build it from source, which means proprietary super-obfuscated shit is not going have its intended effect (assuming it ever does.)

      There’s nothing stopping them from doing all the same bullshit in userspace instead.

    • sus@programming.dev
      link
      fedilink
      arrow-up
      8
      arrow-down
      5
      ·
      edit-2
      6 hours ago

      “Never trust the client” renders entire genres of games inaccessible for a big corporation. But those genres have billions of dollars of potential profit in them. So they will go as far as they can to make the client almost trustable. The average player of a first-person shooter doesn’t really think about the implications of kernel-level anticheat at all so it’s not a hard choice for them. 95% of them are on windows after all and that already gives kenel access to their PC to some entity they really have no good reason to trust.

      • eleijeep@piefed.social
        link
        fedilink
        English
        arrow-up
        9
        ·
        4 hours ago

        “Never trust the client” renders entire genres of games inaccessible for a big corporation.

        No it doesn’t. It makes certain engine implementations inaccessible. You can make a game in any genre that doesn’t require trusting the client.

        • sus@programming.dev
          link
          fedilink
          arrow-up
          2
          arrow-down
          5
          ·
          edit-2
          3 hours ago

          Ultimately you either have basically google stadia (with all its technical problems) or you are trusting the client to render the game.

          Even if the client only has exactly the absolute minimum amount of information needed to draw all the things that are visible, that still allows a cheat to see the player coordinates and the coordinates of visible entities, which usually makes eg. an aimbot trivial to make.

          • Nora@lemmy.ml
            link
            fedilink
            arrow-up
            4
            ·
            2 hours ago

            Rendering is not what you are doing server side.

            Servers would just be checking to make sure a player can actually do something and if they can’t don’t let the client do it. Then any changes made client side would only affect the player making the changes.

            It boggles my mind Riot would rather use a hacky method like kernel level anti-cheat instead of just having the servers mirror the game logic and confirm everything. Its all about saving money at our expense.

            • sus@programming.dev
              link
              fedilink
              arrow-up
              1
              ·
              edit-2
              1 hour ago

              Rendering is not what you are doing server side.

              No shit sherlock. Rendering requires information about the game, and that information is enough to allow cheating. Aimbots don’t need to perform “invalid actions” in order to wreck a game. They just need to be faster and more accurate than most human players. Trying to heuristically detect aimbots is also commonly used alongside other anticheat methods, it just doesn’t work (unless you have people manually reviewing individual reported cheaters, but companies try to avoid that because it’s expensive and risks false positives).

    • Frezik@lemmy.blahaj.zone
      link
      fedilink
      English
      arrow-up
      4
      arrow-down
      4
      ·
      5 hours ago

      Microsoft even sees it as a big mistake. They’re creating APIs that won’t require anti-cheat to be in the kernel like that. There shouldn’t be any reason it needs to be in the Linux kernel.

      That said, “don’t trust the client” is a nice thing to say, but it’s basically impossible to make games work like that. There are certain protocol design considerations that are needed for fps games to work in multiplayer with somewhat laggy connections, and they’re not completely compatible with “don’t trust the client”. If we all had the fiber optic connections and IPv6 that we were promised in the 90s, things would be different. The wack-a-mole game against cheaters is the best that can be done otherwise.

        • Frezik@lemmy.blahaj.zone
          link
          fedilink
          arrow-up
          3
          ·
          2 hours ago

          It can be routed more efficiently and has generally lower latency. Though how much it matters in practice is debatable, and real world data has fluctuated.

          One thing it definitely enables is easier setup of home servers for games without NAT nonsense.

  • Corridor8031@lemmy.ml
    link
    fedilink
    arrow-up
    7
    ·
    6 hours ago

    is kernel level anti cheat even doing anything? or like can you still just go to some sketchy forum/ whatever and buy a cheat , or maybe even download one for free for these games

    • Switorik@lemmy.zip
      link
      fedilink
      English
      arrow-up
      4
      ·
      1 hour ago

      Gta added it to remove linux players thinking they were the cheaters. Cheaters got around it the same day.

      To answer your question, anti cheat is used to stop other operating systems from running their games, not cheaters.

    • who@feddit.org
      link
      fedilink
      English
      arrow-up
      6
      ·
      4 hours ago

      Kernel-level anti-cheat can indeed be bypassed. I don’t know which methods have been packaged up and made easy for just anyone to use, but when there’s a demand, that’s generally just a matter of time.

      You might find this interesting:

      https://www.youtube.com/watch?v=RwzIq04vd0M

  • balsoft@lemmy.ml
    link
    fedilink
    arrow-up
    8
    arrow-down
    1
    ·
    7 hours ago

    How about this:

    1. Add ability to make custom “servers” (which can be just rooms on your proprietary server) with no anti-cheat at all, just fool around with your friends and do whatever you want, mods/hacks/cheats/etc.
    2. At least for casual play modes, make protocols that are less reliant on clients to do the right thing and instead only tell the clients more or less what the player should know already. This might leave some room for sweaty tryhard cheaters to consistently beat other people, but in a casual game which is mostly just for fun this doesn’t really matter.

    There may be some places where a protocol-level solution is not feasible. In that case yeah, require your anti-cheat, but only for competitive game modes. I wouldn’t even be pissed if they didn’t allow it to run on Linux, Linux makes it easy to do whatever the fuck you want with your computer and so a determined cheater will find a way to cheat. It sucks, but I feel like a lot of people don’t really care that much about sweaty competitive game modes anyway. Just give me a way to fool around with friends, it’s not that serious FFS.