How are `Node.rpc()` calls guaranteed to arrive on peers?

:information_source: Attention Topic was automatically imported from the old Question2Answer platform.
:bust_in_silhouette: Asked By ichster

According to High Level Multiplayer, rpc() calls (rather than rpc_unreliable() calls) are stated to be guaranteed to arrive on peers. However, the NetworkedMultiplayerPeer being used in the example, NetworkedMultiplayerENet, only uses UDP. So I am confused as to how the RPC calls are guaranteed to arrive if the PacketPeer is not using TCP? Are they just resent until they arrive, and can I trust the arguments that arrive on the RPC function?

:bust_in_silhouette: Reply From: kelaia

The library behind (ENet) uses the same technique as TCP, keep sending until it reaches the other end of the “stream”. The cost to send a packet is basically the same as TCP, although ENet offers more features, such as different channels, unreliable and reliable etc…

Ok I see. ENet has Mr. Good Algorithm. Thanks for the answer!

ichster | 2022-02-15 17:00