Download

Hijacking ue4 network replication logic

First of all, I haven’t gone deep into the network part of ue4 code and how they do replication, so this is just gonna be merely a discussion of a possibility.

At the moment I’m writing my own network client side, which talks to server and does all the necessary logic ( Union Platform). Using existing replication logic shouldn’t be totally out of the question yet. Either way I’m gonna need to write my own (some sort of event based driven) or use existing one. Packet sent through my side or ue4 side shouldn’t make a difference, because after all it’s just data. The thing is, the game is pretty simple, not heavily bandwidth loaded and not a lot of replication is gonna be needed. The question is: would it be possible without a lot of rewriting logic to hijack and reroute replication through my side? This is probably aimed towards ue4 developers, anyone else is welcomed to share a thought or 2 also.

This depends on how you’re planning on running the server. If you’re going to be uploading a UE4 server executable to your host, then yes, you can definitely use the replication system. If communication with your server platform requires something other than standard BSD sockets, you might consider writing your own socket subsystem module that wraps the necessary calls to handle data from the server. This is probably the easiest way to integrate with the existing net driver and replication system.

On the other hand, if the server will be running some custom protocol that’s not UE4, I’m afraid replication on the client won’t work too well. The system relies on the server keeping track of state per client connection, in order to handle things like relevancy checks and properties that haven’t changed. Of course you can still use UE4 for your client, but you’ll probably have to write custom code to handle the server’s network protocol in this case.