Telepathy Transport

https://github.com/vis2k/Telepathy

Простой, основанный на сообщениях, MMO-масштабируемый TCP на C#. И никакой магии.

  • Telepathy в уме был спроектирован с KISS Principle.

  • Telepathy быстрый и очень стабильный, спроектирован для MMO масштабируемой сети.

  • Telepathy использует фрейминг, поэтому все отправленное будет получено таким же образом.

  • Telepathy написан на C# и также может быть использован в Unity3D.

  • Telepathy доступен на GitHub

Что делает Telepathy особенным?

Telepathy был спроектирован для uMMORPG после 3 лет в аду UDP.

Нам нужна была библиотека, которая была бы:

  • Стабильной и с отсутствием ошибок: Telepathy использовало только 400 строчек кода. Никакой магии.

  • С высокой производительностью: Telepathy может обрабатывать тысячи подключений и пакетов.

  • Конкурентноспособной: Telepathy использует один поток для каждого соединения. Он может интенсивно использовать многоядерные процессоры.

  • Простой: Telepathy сам заботится обо всём. Всё что нужно, так это вызвать Connect/GetNextMessage/Disconnect.

  • Основанная на сообщениях: если мы отправляем 10, а затем 2 байта, то другой конец получает 10, а затем 2 байта, но никогда не 12 сразу.

MMORPG безумно сложно создать, и мы создали Telepathy, чтобы нам больше никогда не пришлось беспокоиться о низкоуровневых сетях.

Что насчет...

  • Асинхронные сокеты: не показали лучших результатов в наших тестах.

  • ConcurrentQueue: совместимость с .NET 3.5 важна для Unity. В любом случае это было не быстрее нашего SafeQueue.

  • UDP vs. TCP: Minecraft и World of Warcraft - две крупнейшие многопользовательские игры всех времен, и обе они используют сеть TCP. На это есть причины.

Last updated