Replication packet loss

Today I released an update that removed the need for players to port forward and instead just use steamsockets.

I’ve had a few reports that certain in-game items don’t show for clients, where they are present on the server. This indicates that there was some packet loss.

I know that the engine uses UDP for replication, so it would seem that there is no guarantee that data is received by the client. What are some ways of mitigating (or knowing) when packet loss has occurred?

I think it has something to do with reliability, which you can read about here https://wiki.beyondunreal.com/Everyt…k)#Reliability

I decided not to use UDK’s replication for multiplayer, so I can’t help you any further. There definitely is no way of knowing whether a player has received a packet or not unless they are set to reply to the server after receiving each packet with the packet’s timestamp/signature, with the server keeping track of packets that haven’t been confirmed in that way and resending them. This is what you do if you want to have UDP lockstep multiplayer.

Thanks for your reply @ciox.

another reason for ‘lost’ things can be a very big “first frame” chunk for replication. any joining client needs to have all non-static data (i.e. runtime spawned actors) sent over the network which can overflow the buffer.
if you can ask for a log from one of your players that encounters the issue, if the cause is what I’m mentioning you’d get some lines printed out into it already. you can probably just launch a client yourself and look at the log as well.

in any case you can also test locally while simulating packet loss, take a look here

Very nice @Chosker. I wasn’t aware of these networking debugging tools. Very useful. Thanks again!