• four@lemmy.zip
    link
    fedilink
    English
    arrow-up
    0
    ·
    1 day ago

    It is actually hard. For example, if you’d only send enemy data for visible enemies, you’d have pop-in when they come out of the corner. And how do you determine if they’re visible? Do you take into account shadows, transparent objects, tiny gaps? Even if you somehow solve that, you’d still have to fight stuff like aimbots, which can work on just the information that the player should have. Do you add maximum aim velocity? Check for movement that is “too good”? If you never trust the clients, then people with higher latency would be at an even bigger disadvantage and have even worse experience.

    • Sanctus@anarchist.nexus
      link
      fedilink
      English
      arrow-up
      0
      ·
      19 hours ago

      The real answer is you either make the game only playable between friends or you have to hire moderators and generate report logs. None of this kernel shit is necessary people just dont want to pay people to work anymore. This is supposed to be entertainment, its not worth the spy network they’re building inside of it to “stop cheaters”.

    • Mika@piefed.ca
      link
      fedilink
      English
      arrow-up
      0
      ·
      1 day ago

      You know who is at disadvantage when higher latency kicks in? The one who abuse the latency compensation mechanisms worse.

      Ask Elden Ring players what they think about fighting in high latency and those who induce high latency on purpose running the builds that fare better in it.

    • Olgratin_Magmatoe@slrpnk.net
      link
      fedilink
      English
      arrow-up
      0
      ·
      1 day ago

      For example, if you’d only send enemy data for visible enemies, you’d have pop-in when they come out of the corner

      That is technically feasible, and only really needed for a specific genre of game, in which you are already set up to do the sort of ray tracing needed to make that happen.

      And how do you determine if they’re visible? Do you take into account shadows, transparent objects, tiny gaps?

      The answer to this is again ray tracing for the most part.

      Even if you somehow solve that, you’d still have to fight stuff like aimbots

      Not really. An ELO tracking method works just fine for a good chunk of that. If a 600 ELO player suddenly starts having stats of a 1400 ELO player overnight, they’re almost certainly cheating.

      then people with higher latency would be at an even bigger disadvantage and have even worse experience.

      How? This is for the server to handle, not the client. And for niche problems where it somehow would have a difference, artificial latency can be applied such as how the game Forts handles it.


      Pretty much everything you’ve listed is from a FPS shooter perspective, which is not the only competitive game out there. These problems are solvable without kernel level anti-cheat that all these companies love to go for.

      • SkaveRat@discuss.tchncs.de
        link
        fedilink
        English
        arrow-up
        0
        ·
        1 day ago

        Looks like it’s easy after all. All these engine developers must be idiots, not thinking of such easy solutions

        But seriously, it’s not that simple as you make it out to be. You can’t just raytrace your way into a reliable visibility check. Especially server side. and then also compensate for network lag

        Doesn’t matter which genre you want to apply it to

        • Olgratin_Magmatoe@slrpnk.net
          link
          fedilink
          English
          arrow-up
          0
          ·
          edit-2
          23 hours ago

          Looks like it’s easy after all. All these engine developers must be idiots, not thinking of such easy solutions

          I’ve been doing game development for over a decade. Game development isn’t easy, but doing server side control of the game isn’t any more hard than any other part of game development. If you have the skills to make a game, you have the skills to make cheating a non-issue.

          And that especially applies for the AAA game studies putting out the majority of the FPS games which are most hard to do server side authority.

          You can’t just raytrace your way into a reliable visibility check.

          You can’t just expect that a visibility check/complicated visibility check is needed in every game. Not every game is an FPS.

          Almost all RTS and 2D fighter games for instance would not need complicated visibility checks, as they tend to be played on a 2D plane, which makes it easy to figure out if something is in sight of another thing, if they need to do that at all.

          I’ve played Speed Runners quite a bit. Zero visibility checking is needed for that game despite it being highly competitive. All the server needs is your inputs, and it handles all the movement, hits, speed ups, etc all on it’s own. Or at leas they could if they programmed it right.

          Another example, Zomboid, an indie game, already has visibility built into the core of the game. It does everything I am talking about doing. They have zero need for any kind of anticheat.

          Rocket league: No need for any visibility checks. Everyone already can see everyone.

          League of legends: All visibility logic is already built into the core of the game.

          Super Smash Brothers: No visibility mechanics at all

          /u/Mika is talking about Elden Ring, and I’d guess that visibility is not a big part of that game if at all, given it’s all medieval combat. The server can consume player input and tell the clients what’s going on, no need for any complicated logic.

          Not all games are FPS

          Meanwhile on GTAOnline, cheaters can summon explosions on your position, teleport you around, spawn busses over your head, lock you in a prison cage, summon literal money bags, all because the server is for some stupid reason at a AAA production, not the authority.

          • DanWolfstone@leminal.space
            link
            fedilink
            English
            arrow-up
            0
            ·
            10 hours ago

            Also server side raytracing is not that computationally expensive considering all you’re doing is comparing positions of players and maybe simulating a bounce or two in 2D space.the only time it’d be that bad would be in games like fortnite/pubg where they want the massive sightlines. So instead just do the rt check in a radius from the player that coincides with fog/draw distance

            I agree with you, I think game dev isn’t easy but these solutions aren’t difficult either. It’s just, Why try and fix what ain’t broke and your company already likely has a contract with anti cheat providers like Denuvo.

            Server side anti cheat is a viable and smarter solution, we have more than enough computational power to run it. So lets stop making artificial walls between platforms and enjoy playing the game

    • 𝔼𝕩𝕦𝕤𝕚𝕒@lemmy.world
      link
      fedilink
      English
      arrow-up
      0
      ·
      1 day ago

      World of Tanks has had this since 2011.

      People hate the spotting system. We always have, but one issue Wargaming does NOT have an issue with is most forms of cheating. Most standard forms of “knowing” where the enemy is do not work - to the stage that as the game dies due to other reasons, the organized botting problem to get rewards has become more and more apparent. People run dozens of clients and then have to drive to specific places and then also be the player scoring the hits on their own “unspotted” account.

      • sp3ctr4l@lemmy.dbzer0.com
        link
        fedilink
        English
        arrow-up
        0
        ·
        1 day ago

        There are less dumb ways to do this than the WoT spotting system.

        WoT spotting system is an attempt to gamify the entire concept of spotting/situational awareness.

        Does your client actually know that the enemy tank is there, but just does not let you the player see it, untill certain conditions are satisfied?

        Presumably, the server knows where all players are at all times.

        Does the server send other player locations out to other players… at all times? When they’re in the view frustrum and view distance range of the player? That, but also only when the spotting system stats for your player tank/crew/profile says you are allowed to see them?

        To what extent is it the client or server that is making decisions realtime as to if you player X can see player Y? What do the stages of decisions look like?

        Like I am genuiely asking those questions. We can’t really know for sure without the source code, so… ?

        You can tweak a lot of how those kinds of systems work, and, you can make an enemy player view culling system work without an entire situstional awareness game mechanic.

        You can just make it part of how networking and rendering work, and have that be the same for everyone… and if you do that well, people will not even realize you are doing it.

        • 𝔼𝕩𝕦𝕤𝕚𝕒@lemmy.world
          link
          fedilink
          English
          arrow-up
          0
          ·
          1 day ago

          Clients are given only what the server says to tell it, it’s part of why I think the system has not been implemented elsewhere. As soon as you add this type of spotting system to anything with faster movement it would create issues. No client has all the information and every action is getting server-checked as the game plays out. It creates a bit of a funny with this because a tree will fall over, and you know a player did it, but the client is not told anything other than “put this tree in XYZ orientation now”

          There are no mods to force it to show enemy positions or change the maps. No injection cheats. No wallhacks. No invincible god-mode, flight, or becoming unspottable or flying into/out of the map. No turning a single shot into a laser of damage, or unlimited magazine. No recoil cancel. No getting kicked from session like GTA or mod-menus.

    • sp3ctr4l@lemmy.dbzer0.com
      link
      fedilink
      English
      arrow-up
      0
      ·
      1 day ago

      I figured this out as an 18 yo fucking around with GMod, making gamemodes that were designed to thwart exploits and hacks.

      If a professional gamedev can’t figure this out, that’s a skill issue, or a manager who won’t listen to the devs that do not have skill issues.

      Every problem you have listed has a solution in proper game architecture and optimization, and latency compensation.

      There are of course no 100% perfect solutions, but there are very, very good ones. You can’t stop somebody that’s gonna go to all the effort to set up a seperate box that does the aimbotting and hwid spoofs itself as not being there… oh well actually you can, overtime, with serverside analysis of games and gameplay.

      Literally everything you’ve listed is a solved problem… its just that most devs don’t think these will be problems untill they’re halfway through making the game, and then its too late to make low level changes without fucking up the dev cycle set by management.

      Basically, the answer to most of your questions is ‘yes’ or ‘cleverly’.

      There are publically available papers on all of this.

    • x00z@lemmy.world
      link
      fedilink
      English
      arrow-up
      0
      ·
      1 day ago

      Part of that is perfectly possible. In counterstrike some 3rd party matchmaking services do the visibility check already on the server side. iirc it’s literally a variable that can be changed. But Valve has no intersest in wasting those extra CPU cycles on their servers. Same goes for all other BS anticheats. It’s much cheaper to have the clients do all the work.

      • Noja@sopuli.xyz
        link
        fedilink
        English
        arrow-up
        0
        ·
        19 hours ago

        Do they really? Doesn’t that really mess up client side prediction?