• Olgratin_Magmatoe@slrpnk.net
    link
    fedilink
    English
    arrow-up
    13
    arrow-down
    9
    ·
    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
      20
      arrow-down
      1
      ·
      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
        11
        arrow-down
        4
        ·
        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
          4
          ·
          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

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

            I think there may be some general confusion between ‘ray tracing’ and ‘raycasting’.

            Thanks to Nvidia, ‘raytracing’ now means ‘doing an utterly absurd amount of raytraces all the time in order to have slightly more accurate relfections and light physics’.

            Whereas, at least the lingo I’m familiar with, ‘raycasting’ is just like… a single ray, maybe a couple to form a frustrum, or maybe one that follows some bouncing vector math rules, to do a fast simulation of a bullet trajectory, or maybe its just attached to the player to tell the rest of them game something like… the player is on the floor, the player is standing infront of a wall or a short stairstep or climable ledge, etc.