Simple, message based, MMO Scale TCP networking in C#. And no magic.
We needed a library that is:
- Stable & Bug free: Telepathy uses only 400 lines of code. There is no magic.
- High performance: Telepathy can handle thousands of connections and packages.
- Concurrent: Telepathy uses one thread per connection. It can make heavy use of multi core processors.
- Simple: Telepathy takes care of everything. All you need to do is call Connect/GetNextMessage/Disconnect.
- Message based: if we send 10 and then 2 bytes, then the other end receives 10 and then 2 bytes, never 12 at once.
MMORPGs are insanely difficult to make and we created Telepathy so that we would never have to worry about low level Networking again.
- Async Sockets: didn't perform better in our benchmarks.
- ConcurrentQueue: .NET 3.5 compatibility is important for Unity. Wasn't faster than our SafeQueue anyway.
- UDP vs. TCP: Minecraft and World of Warcraft are two of the biggest multiplayer games of all time and they both use TCP networking. There is a reason for that.