// the find
RiptideNetworking/Riptide
Lightweight C# networking solution for multiplayer games.
Riptide is a UDP-based networking library for C# games, primarily targeting Unity but usable in any .NET environment. It handles connection management, reliable/unreliable message delivery, and leaves game logic entirely to you — no opinion on state synchronization or entity interpolation. Aimed at indie devs who want direct control over what goes over the wire without the overhead of Mirror or Netcode for GameObjects.
Transport abstraction is done right — UDP, TCP, and Steam transports are swappable behind a common interface, so you can prototype locally and ship on Steam without rewriting your message handlers. Message handler registration via attributes (`[MessageHandler]`) keeps networking code close to the game logic that owns it rather than in a central dispatch blob. The library runs fine in a plain console/server process with no Unity dependency, which matters if you want an authoritative dedicated server outside of Unity's runtime. Demos cover both dedicated server and player-hosted topologies, which is the actual decision most indie teams face.
No built-in state synchronization, interest management, or lag compensation — you get raw message delivery and that's it. For a first-person shooter or anything with physics, you're writing all of that yourself, which is a significant amount of work most teams underestimate. The last push was February 2026 but activity has been sparse for over a year before that; with a single maintainer and no organizational backing, bus-factor is real. No mention of encryption or authentication on the transport layer — if you're building anything beyond a LAN game or a game where cheating doesn't matter, you're on your own for securing the connection. The `ushort` message ID space (65535 max) is fine in practice but the lack of any namespacing means large projects will need their own convention to avoid ID collisions across systems.