Sorry for the obscure title.
After a match is made and players are all connected to the RT session, they start exchanging unreliable RTpackets between each other, but sometimes(rarely) those packets are never received for some(or one) of the players, yet the others are receiving packets from them.
The other thing is that Reliable packets are received without a problem, so
it looks like the Unreliable connection isn't established between two players for some reasons.
I've also noticed that this happens more often when two players disconnect from a match, then they both connect to another match, one of them won't receive packets from the other.
Because they're unreliable I think that's expected behaviour but I see your point, I will investigate.
Cheers for bringing it up,
Hello Omar, thanks for your response.
Yeah I have thought about that too, they're unreliable after all, but I think that there can be some checks done with Reliable messages(TCP) to make sure the UDP connection is established between players and the relay server.
Any news on the subject? I know you're busy with the forums, but I hope you can check this problem when you can.
And when you do, please make sure to test it with two players, connecting to a match(real-time session) then they both disconnect from it, then creating another match and connecting to it, because this problem happened mostly when I did that.
yes I'm testing a whole slew of RT stuff right now. One of them is your issue. I will update you soon.
How are your investigations going? I hope that you found something useful.
Also, I'm facing another problem with the RT in unity,
which is that during a real-time session and when a network lag spike happen, where the connection gets terminated for a few seconds, then gets connected again, some packets will have been sent from the players or the server to the current player during the disconnection period, and when it connects again, all those packets might be delivered at once, which will cause a large spike and lag in unity, that can take up to a few seconds, and the script causing this spike is "GameSparksRTUnity.Update".
So what do you think about that? can the packets be delivered by a buffer or something? and I don't think that I can implement such a buffer myself because the packets are delivered automatically by game sparks API.
Sorry for the long post, and thanks.
I've just added a comment, but it looks like it hasn't been posted?
Why my comments aren't published? Are old topic closed automatically?
It seems like my comments two weeks ago weren't published too.
Im sorry about this, as I said before:
When there's no connection GameSparks queues up the packets and sends them when the connection has been re-established. Also, we've pushed a fix for the RT servers to do with connection issues faced. I hope this has fixed issues you were having before?
Hello Omar, thanks for your response.
For the first problem, I'm going to do some checks and reply soon.
For the second one, I meant the packets received from other players(or server), not the packets sent from the current player.
So when your connection gets terminated for a few seconds, a lag spike will happen as soon as you connect again.I've attached a file with a screenshot of the profiler at the time the lag happened.
I think this may be because a bunch of packets gets received at the same timer.
When the player disconnects for a few seconds, the packets that are meant for them get queued.
When they reconnect they will receive all the packets meant for them (Failed to reach them because they're disconnected) as well as start receiving new packets at the same time. Which explains the spike. Does the game lag for a whole 24 seconds?
I'm not sure as I don't remember exactly, I don't think it lagged for a whole 24 seconds, maybe Unity's profiler isn't that accurate( it may have incorporated the previous frames or something)
But still, the lag is noticeable and it definitely lagged for a few seconds.
Thanks for your response.
Are there any news on my last problem? about the network lag causing spikes in the game.