Per-connection replication frequency

We are building a racing game which really only has a few replicated networked actors in it but the values that they would like to replicate change pretty much every frame.

We have been trying to reduce our server-to-client bandwidth as much as possible to avoid certain costs when we have to rent servers at launch.

One of the most effective measures that we have been able to do so far is to implement dynamic per-connection replication frequencies for our vehicle pawns. This allows us to have close vehicles update each other very frequently but reduce the replication frequency for pawns that are far apart to save bandwidth. We do this with a very simple implementation of `AActor::IsReplicationPausedForConnection`.

However, it appears that `AActor::IsReplicationPausedForConnection` has been marked for deprecation in Unreal 5.3. I can’t see any other way of doing what we want (partial dormancy doesn’t seem to work, I didn’t have a lot of luck with the replication graph, and we don’t want to touch relevancy since we don’t want to create and destroy client side objects as channels are opened and closed).

I guess that I’m requesting that `AActor::IsReplicationPausedForConnection` is not removed since it provides such a nice simple way of controlling replication per-connection. Is there another simple way of achieving what we want that I’m missing?

Steps to Reproduce
Use continuously varying replicated values on `AActor`s in a networked game.

Hi,

We deprecated the old replication pausing functionality in favor of using dormancy and the replication graph to achieve similar results. While it unfortunately is not as straight forward as using AActor::IsReplicationPausedForConnection, we do recommend using the replication graph, particularly the dynamic spatial frequency node, to achieve this kind of dynamic replication frequency based on distance from the connection’s view target.

Thanks,

Alex

Okay, thanks. I’ll have another go at getting Replication Graph working with our game. So long as I can get it to adjust replication frequencies per connection without closing channels, then we should be okay.

I was unsuccessful last time making it actually change the replication frequencies per connection but I was probably trying to rush and missed something.

I was also confused by the `DORM_DormantPartial` and `AActor::GetNetDormancy` which looked a bit like what we want but also seems to be on its way out (also once something went dormant, we’d have to wake it again which would flush the channel before we could get any more calls to `AActor::GetNetDormancy`).

It’s a shame that `AActor::IsReplicationPausedForConnection` is being removed since it really is very powerful and simple for game teams to implement this type of functionality.

Hi,

You are correct that partial dormancy is another feature that is planned for deprecation, and I’ll pass along your feedback on IsReplicationPausedForConnection.

Thanks,

Alex