Comment by Sammi
5 months ago
Why are players who aren't on screen even in the client memory? The server shouldn't be sharing sensitive information.
5 months ago
Why are players who aren't on screen even in the client memory? The server shouldn't be sharing sensitive information.
Although that looks like an obvious solution on first glance it's not really technically feasible. Things like gunshots or footstep sounds are not visible to the player, but still need to be relayed to the client.
As far as I see the only way around not sharing anything that's outside of the immediate perception of a player is to have the audio and graphics be entirely rendered server-side.
You can minimize that to some degree (Valorant does this), but due to movement prediction/network latency you do have to overshare a little bit.
I imagine that most game devs just look at the incredible amount of work this takes to implement and complexity it adds, and decide to not bother. Valorant can do it because the game itself is low complexity, the developer has deep pockets, and also the added competitive integrity is valuable.
Game servers are complicated and have a lot to manage.
It's infeasible for the server to keep track of each player and do frustum and raycasting to every other player to check who can see who every frame.
Culling out of view entities also has the problematic effect of when a player spins around you now have to stream in several big chunks of world state in the few milliseconds before the user clicks to get that 180 no-scope.
How else would the game render the enemy player's sound around corners and in adjacent rooms without knowing their location for instance?