Skip to content

Conversation

@AdamTadeusz
Copy link
Contributor

@AdamTadeusz AdamTadeusz commented Jan 12, 2026

Description

No idea how much extra network strain this will cause, but it does improve the viewing experience from a birds eye view so I would like to test it. While the cost of this feature isn't yet known I've added a convar sv_neo_pvs_cull_roaming_observers for toggling it, but I think it would be better if this was either permanently on or removed down the line.

Toolchain

  • Windows MSVC VS2022
  • Linux GCC Distro Native [Specify distro + GCC version]
  • Linux GCC 10 Sniper 3.0

Linked Issues

@AdamTadeusz AdamTadeusz requested a review from a team January 13, 2026 11:38
sunzenshen
sunzenshen previously approved these changes Jan 18, 2026
@sunzenshen sunzenshen requested a review from a team January 18, 2026 06:20
@DESTROYGIRL
Copy link
Contributor

Can't say I'm gung ho about this idea, I guess its not so bad if its applied specifically to roaming spectators but even then it feels a bit heavy handed for the problem you're trying to solve I'd consider culling by distance in this state or limiting it to certain entity types that are gameplay critical. Could be worth consulting a source engine wizard on what the real impact would be

@AdamTadeusz
Copy link
Contributor Author

toggling the feature on and off or moving from a valid skybox area to outside a valid skybox area with it on shows a spike in the netgraph as all the entities that previously weren't being updated suddenly are, but that only happens during this transition, outside of which most of these entities don't seem to be generating any extra network traffic, unless they are being interacted with somehow, so I think the network bandwidth cost of this feature is very low, and any entities that are being interacted with that are generating extra network traffic we want to see as spectators anyway.

There is a non-insignificant fps cost associated with drawing all these extra entities, any entities that have a fade distance will fade out even if they are being transmitted. I could add a client side convar that's in the player string so the server can selectively network all these entities to players who opt in. I could also calculate the distance from each entity to the receiving player and have a "network fade distance" of sorts, but I don't know if that's a good idea.

@AdamTadeusz
Copy link
Contributor Author

image

Here is what the netgraph looks like, the first few spikes were from toggling the feature on and off and the next few spikes were from moving into any and out of all pvs'

@Agiel
Copy link
Contributor

Agiel commented Jan 21, 2026

In tournaments we've been using a plugin that does this to make for a better spectator experience. I think it's fine as long as it's limited to spectators. Maybe it can be limited to a certain distance in pubs, or when number of players goes above 16 or so.

@AdamTadeusz
Copy link
Contributor Author

AdamTadeusz commented Jan 24, 2026

I think the only issue is the framerate, the entities that weren't networked before and are networked now really don't seem to be generating any substantial extra network traffic, so I think a client side toggle for the effect should suffice.

If people think placing the client side convar in the server dll is iffy I can move it somewhere else, it does mean the server can see the convar too even if it doesn't do anything server side

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Entities such as grenade projectiles, dropped weapons should be visible when spectating and outside the pvs of those items

4 participants