When should one set reliability to false?

Options
I was just thinking why reliability is an option when It can send your data properly. Can anyone explain please?

Comments

  • Kaiserludi
    Kaiserludi admin
    edited October 2017
    Options
    Hi @AnkitKushwah.

    A classic example would be position updates in a realtime game. Those might get send as often as 10 or 20 times per second or even more often than that. Now when a reliable event gets lost on it's way, the sender needs to repeat it (that's the whole point of the reliability). To actually know that a reliable event got received the sender needs to wait for the receiver to acknowledge the receive. So, when the sender did not receive such an ack for a certain event inside a certain timeframe after sending it, it knows that the event most likely got lost and needs to be repeated. However at the point in time when the sender would know that a position update likely got lost (it has waited so long for the ack already that with the given latency it does not consider it likely to arrive anymore), it will already have sent multiple other more up to date updates of the player position already, so that when the repeat would arrive at the receiver, it would only contain outdated data and would get thrown away anyway. Furthermore the repeat would mean that the receiver could not actually process any other events that were sent later than the original event, but already got through before the repeat, as those may depend on that lost event already having been processed (if processing that lost event would not be critical for processing later events, then why send it reliable after all?), so the repeat would postpone later events which in the case of position updates isn't what we want.

    Another classic example are voice and video chat: In case of network loss the quality of the transmission as felt by the user is a lot higher with some hear able / visible loss, than when the transmission hangs waiting for a repeat every second or so.

    Turn-data in a turn-based game like the results of throwing a dice in your ludo game of course should be sent reliably.
  • Hi @Kaiserludi ,

    Thank you very much to explaining this to me.