willardf / Hazel-Networking

Hazel Networking is a low level networking library for C# providing connection-oriented, message-based communication via RUDP.
MIT License
385 stars 60 forks source link

Hazel Networking is a low-level networking library for C# providing connection-oriented, message based communication via UDP and RUDP.

This was originally a fork of a project started by the Dark Rift Networking developer. I stripped that down with the aim of making a simple interface for ultra-fast connection-based UDP communication for games. After Among Us launched, the agreed to make this the primary fork. If you see mention of the original repo, know that it's just a tad out of date.


Features


This fork has been heavily modified from the original to reduce allocations, copies, and locking. It's pretty stable and Among Us uses it for all platforms, but still has the occasional issue.


There is currently no online documentation. I might get around to it someday. I have changed some interfaces in "unintuitive ways", it is my hope that this example repo will be able to help users get started.

If you want to make improvements, I am open to pull requests. If you find bugs, feel free raise issues.


Installing Hazel

For non unity projects, Hazel can be installed via the NuGet innersloth.Hazel-Networking package.

For Unity projects, you'll have to build Hazel first. I recommend just dropping the output DLLs somewhere in the Assets folder.


Building Hazel

To build Hazel open solution file using your favourite C# IDE (I use Visual Studio 2019) and then build as you would any other project.


Tips with this fork

Tips for using Hazel with Unity