RiptideNetworking / Riptide

Lightweight C# networking solution for multiplayer games.
https://riptide.tomweiland.net
MIT License
1.14k stars 144 forks source link

Kcp Transport #142

Closed coinsoundsbetter closed 3 months ago

coinsoundsbetter commented 4 months ago

This is a very good networking program. I don't know if this is presumptuous. Can I request the official team to provide the Transport implementation for Kcp?

tom-weiland commented 4 months ago

I am no longer actively working on Riptide as I have moved on to other things. It's in a pretty good spot feature-wise, and @xzippyzachx has been kind enough to fix a few bugs that popped up here and there. If you want a new transport, you will unfortunately have to implement that yourself.

Luckily, Riptide's transport system is not very complex (it's just 4 files), and creating a new one shouldn't be too difficult if you model it after the UDP, TCP, and Steam transports.

However, I'm not sure it actually makes sense to use KCP as a transport for Riptide, because they serve similar functions. I haven't used KCP but as I understand it, it sits on top of the TCP/UDP layer (like Riptide does) and implements a reliability mechanism (like Riptide does). As such, it seems to me that you would want to use KCP instead of Riptide, not in addition to Riptide. You could technically do it, particularly if you make your game exclusively use Riptide's unreliable send mode (which would be made reliable because it'd be using KCP), thereby avoiding the use of Riptide's reliability and the "stacking" of 2 different reliability mechanisms—I'm just not sure I see what the benefit is of combining Riptide and KCP.