Netick 2, a free networking solution, uses the lowest amount of bandwidth, out-of-the-box

Hi guys.

An independent, unbiased person made a benchmark comparing various networking solutions for Unity. And Netick 2, my new networking solution, used the lowest average amount of bandwidth for all tests. For those unfamiliar, Netick 2 is a new networking solution that is completely engine-independent, built with unmanaged memory and unsafe code, achieving unseen performance and exceptional bandwidth usage.

Netick 2 excels at the most demanding test, the Move Wander test which replicates both position and rotation, while the rest are position only. Netick 2 is the only networking solution with two-digit averages for all tests. Coming at first position, averaging at 70 KB/s for all tests, then followed by Fusion (a subscription-based solution) at 77 KB/s.

Thanks a lot to Steak for taking the time to provide us with an independent and unbiased benchmark which will without doubt only increase the competition in this field to benefit all!

To get Netick 2, join my discord server as we are currently in beta-stage, so there is no release on the Asset Store yet.

Netick 2 Links:
Website
Docs

Links:
Benchmark Results
Benchmark Repo (to test results yourself)
Note: Netick 1 has been depreciated.

4 Likes

My notes on the results:

Some people say that such a benchmark is useless, I’d argue that’s not true.

The benchmark already has shown several issues with some of the networking solutions. Mirror and NGO don’t do any compression, which most definitely means the devs don’t care about saving bandwidth. I agree the lowest results solution doesn’t mean that it’s a silver bullet, but it means its devs have gone out of their way to make sure their system uses very little bandwidth. That must mean something.

It also shows that some systems send the entire changed position vector or rotation quaternion even when a single field has changed. That is another problem.

In Netick 2, we do everything. Only changed fields of structs are sent (for everything, not just position and rotation as some systems), varint-encoding, delta-encoding, area-of-interest, simulation-culling, dynamic update rates (with Spatial Adaptive Prioritization, which no other available system has something like it), quaternion optimizations, etc.

That is just about bandwidth optimizations, for other general networking systems, we do full-world client-side prediction, full-world interpolation, custom hit-detection for lag compensation, and a lot more. All with a very easy-to-use API.

The goal of Netick 2 is to solve networking for most games. And I think I might have gotten close to that goal.

Please keep the discussion civil.

2 Likes

One thing the benchmark does not show is how the solutions deal with bad networking conditions. Mirror and NGO use reliable sequenced transfer for their state changes. If there is packet loss there is a) a full RTT of delay causing a jitter spike and b) much higher bandwidth usage due to both resending the original packet through the reliability protocol and the current game state. Fusion handles this much better using eventual consistency as the transfer protocol. I don’t know what Mirage, Fishnet and Netick do, I’m not familiar with them.

It would be interesting if Steak could also do a benchmark with some simulated latency and packet loss.

Regarding Fusion 2, I have noticed an issue with its results which I discussed with Steak and I assume he contacted you about it. He fixed it by changing the default settings, which is against the rules, though it’s fine if you are going to make it the default in the future.

The problem is in regards to what the setting that he enabled does, as it seems the bandwidth usage between the Move Y and Move Wander tests does not seem much different, despite the former test only changing one axis and the latter changing both position and rotation. The Move Y successfully spawns and syncs 500 objects, while the Move Wander only 255, and uses almost the same bandwidth. (these are the results I observed when I checked his benchmark project for Fusion 2, on the previous default settings).

What I concluded is that setting causes the two sets of objects to replicate by continuously alternating between them, to ensure data sent per tick is fixed, which means each set is being synced at half the send rate, which would be 10HZ instead of 20HZ.

If that is true then I am not sure Fusion 2 can qualify to be in the benchmark as it fails to send at 20HZ for all objects, which is what the benchmark is all about.

Are they all synchronizing at the same tick rate?

NGO runs on FixedUpdate if I’m not mistaken, which makes it a 50 Hz tick. All other network solutions should be running the same tick rate to make the results comparable and fair. You mention 20 Hz which would explain the drastic difference, and I also recall that 20 Hz is what Fusion uses.

Yes, they are all configured to run at 20HZ.

We use unreliable with EC. Iffy connections aren’t an issue in FishNet.

Another problem with the benchmarks is they are forcing 20Hz but realistically you don’t need to send at 20Hz to achieve the same replication. I made a POC in FN that beats all the numbers in the benchmark without sacrificing any quality.

Don’t get me wrong, bandwidth matters, a lot. I think bandwidth being a concern for framework developers is indeed important.
However, for benchmarks, if anything we need realistic scenarios, not scrambling cubes. I did contact steak about these and offered assistance as well, they were not interested stating “out of scope”.

1 Like

Where to get netick 2 pro version? Or is it available yet.

Yes, it is available, but only for supporters, as of now. The release in the asset store will happen later. If you are interested, join our discord: Netick

Also, you probably want to give Netick a try before considering getting Pro. GitHub - NetickNetworking/NetickForUnity: Netick is a C# networking solution for Unity.

Despite being stable and feature complete, we still haven’t officially released it (put it in the asset store, for instance) since we have a sample project (Rocket Cars, a semi-clone of Rocket League) we want to release first, which is coming out soon.

1 Like