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).

  • andyburke ( andyburke@fedia.io ) 
    link
    fedilink
    arrow-up
    149
    ·
    11 months 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 ( kbal@fedia.io ) 
      link
      fedilink
      arrow-up
      35
      ·
      11 months 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.

    • Frezik ( frezik@lemmy.blahaj.zone ) 
      link
      fedilink
      English
      arrow-up
      13
      ·
      11 months 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 ( frezik@lemmy.blahaj.zone ) 
          link
          fedilink
          arrow-up
          10
          ·
          11 months 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.

    • sus ( sus@programming.dev ) 
      link
      fedilink
      arrow-up
      6
      ·
      11 months 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 ( eleijeep@piefed.social ) 
        link
        fedilink
        English
        arrow-up
        20
        ·
        11 months 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 ( sus@programming.dev ) 
          link
          fedilink
          arrow-up
          6
          ·
          edit-2
          11 months 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 ( crazyminner@lemmy.ml ) 
            link
            fedilink
            arrow-up
            12
            ·
            11 months 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 ( sus@programming.dev ) 
              link
              fedilink
              arrow-up
              6
              ·
              11 months 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).

              • MrTolkinghoen ( MrTolkinghoen@lemmy.zip ) 
                link
                fedilink
                English
                arrow-up
                2
                ·
                11 months ago

                Right. Nice to find someone here who actually understands some of the problems that make kernel level anticheat important. In modern FPS, server authoiritative everything is just not feasible. No gamer is going to accept the latency that would cause. Or when you look and suddenly you momentarily desynced and now your camera jerks back because the sever decided you tried to look around too quickly? People are so willfully ignorant about this topic.

                maybe we could get away from needing it as badly if valve would provide a strong attestation that the kernel running is unmodified with a secure tpm solution, but they haven’t, so here we are.

    • stray ( stray@pawb.social ) 
      link
      fedilink
      arrow-up
      17
      ·
      11 months ago

      For that matter, don’t put any fish at all in a tiny bowl of water, especially without a filter or heater. The common goldfish is meant to be very long-lived and gets fucking enormous if you don’t torture it to death in a puddle of its own urine.

  • balsoft ( balsoft@lemmy.ml ) 
    link
    fedilink
    arrow-up
    13
    ·
    11 months 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.

    • teawrecks ( teawrecks@sopuli.xyz ) 
      link
      fedilink
      arrow-up
      4
      ·
      11 months ago

      Casuals stop playing games when cheaters prevent them having fun, and it’s the casuals they need to keep happy to keep their game alive.

      IMO the answer is to internally maintain a “fun to play with” metric. It would be specific to the game, but each player’s actions and interactions with other players would be evaluated to determine how “fun” they are to play with (might need to be multidimensional, since different players like having different types of interactions). It doesn’t matter if they’re cheating, or if they’re just really good, or if they use cheesy strategies, etc, if the person isn’t fun to play with, then match them with other people who are similarly unfun to play with.

      This would cover your point that, if there’s a cheater in the lobby, and their behavior somehow makes everyone have more fun, then who cares?

    • Switorik ( Switorik@lemmy.zip ) 
      link
      fedilink
      English
      arrow-up
      11
      ·
      11 months 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.

    • teawrecks ( teawrecks@sopuli.xyz ) 
      link
      fedilink
      arrow-up
      6
      ·
      11 months ago

      It’s an arms race, the arms just keep moving deeper into the stack system. Used to happen entirely in usermode, one process poking in and reading/writing memory of the game, so anti-cheat started keeping an eye out for malicious processes. Then at some point someone patched their kernel to cheat in a way the game couldn’t possibly detect from usermode, so someone made an anti-cheat that ran at the kernel level too.

      Modern KLA is basically a fully fledged rootkit, living in your system from boot, doing absolutely anything they can to try and make sure nothing has been tampered with. Validating signatures on bins, hooking memory mappings, watching for anything that might try to read/write the kernel or game’s memory space unexpectedly.

    • Lfrith ( Lfrith@lemmy.ca ) 
      link
      fedilink
      arrow-up
      2
      ·
      11 months ago

      Cheaters probably pay monthly get caught then spend money to buy the game again then pay for more cheats.

      So those cheaters seem to have moved onto some more sophisticated setup running something called a DMA device so their main PC has no cheats and is running on a separate machine.

  • stray ( stray@pawb.social ) 
    link
    fedilink
    arrow-up
    10
    ·
    11 months ago

    Oh man, I’d definitely install Linux if only there were kernel-level anti-cheat. That’s been the only thing preventing me from switching.

    • killabeezio ( killabeezio@lemmy.zip ) 
      link
      fedilink
      arrow-up
      7
      ·
      11 months ago

      I’m not sure that is what they are advocating for. They have VAC which doesn’t require kernel level access. If anything they will probably advocate this and that anti cheat can work without root level access.

      • infinitesunrise ( infinitesunrise@slrpnk.net ) 
        link
        fedilink
        English
        arrow-up
        4
        ·
        11 months ago

        Yeah that’s a good point, on second read I see that the only mention of kernel-level anticheat made in the article were by the author, and nothing from the Valve rep themselves. Maybe I reacted too soon, and Valve is just trying to get devs warmed up to the idea of using better and less-intrusive anticheat systems.

  • imetators ( imetators@lemmy.dbzer0.com ) 
    link
    fedilink
    English
    arrow-up
    1
    ·
    11 months ago

    I hope devs will pay attention cause I certainly fucking do now!

    I been playing Psychonauts 2 that is marked as “Playable” in Steam. And it is most certainly running better on Bazzite over Win11.

    I have also tested CS2 on Bazzite yesterday and got around 120 FPS on Train while Win11 on Train was 80 FPS. I really can’t believe this. With all the translation layers, Bazzite is really doing better than Windows.