• @huginn
    link
    32 months ago

    You constantly have to render people in when they can’t be seen but will soon be seen. Which also means instead of keeping track of just locations the server needs to render the scene in sufficient detail as to determine sightlines.

    Usually games just do this by sending info to clients of where everyone is and letting the clients render people in when the client determines that the sightline isn’t interrupted.

    Some games will just not send the positions until they’re within a certain range of each other, but I’m a realistic game like tark you’d need several kilometers of info in case someone scoped in.

    If you don’t do this correctly it leads to characters popping into existence from thin air

    • @ShortN0te@lemmy.ml
      link
      fedilink
      1
      edit-2
      2 months ago

      You could use things like ray tracing to determine if one player can be seen by another on the serverside and only send packages when they can see.

      But to resource heavy to do that.

      Edit: Thinking about it, you simply have to render the whole map with all players server side and based on that determine which players can see each other and based on that send the information to the clients.

      • @huginn
        link
        02 months ago

        You do see why that’s a serious issue right? Before the Server did nothing more than maintain a list of x,y,z coordinates of player positions. Now it’s rendering the entire game space and doing 3d calculations.

        That’s several orders of magnitude more complex and costly.

          • @huginn
            link
            02 months ago

            There’s no way in hell you’ll ever get a game company to agree to that. You’re talking 100x the expense of running a server at a minimum.