Skip to content

Latest commit

 

History

History
34 lines (25 loc) · 1.36 KB

README.md

File metadata and controls

34 lines (25 loc) · 1.36 KB

kcp2k

C# KCP based on the original C kcp.

Works with netcore and Unity.

Developed for Mirror Networking.

Questions & support on Mirror Networking Discord.

Features

  • Kcp.cs based on kcp.c v1.7, line-by-line translation to C#
  • Heavy test coverage
  • Fixed WND_RCV bug from original kcp
  • Optional high level C# code for client/server connection handling
  • Optional high level Unreliable channel added

Pull requests for bug fixes & tests welcome.

Unity

kcp2k works perfectly with Unity, see the Mirror repository's KcpTransport.

Allocations

The client is allocation free. The server's SendTo/ReceiveFrom still allocate.

Previously, where-allocation for a 25x reduction in server allocations. However:

  • It only worked with Unity's old Mono version.
  • It didn't work in Unity's IL2CPP builds, which are still faster than Mono + NonAlloc
  • It didn't work in regular C# projects.
  • Overall, the extra complexity is not worth it. Use IL2CPP instead.
  • Microsoft is considering to remove the allocation.

Remarks

  • Congestion Control should be left disabled. It seems to be broken in KCP.