Search Unity

  1. Unity 6 Preview is now available. To find out what's new, have a look at our Unity 6 Preview blog post.
    Dismiss Notice
  2. Unity is excited to announce that we will be collaborating with TheXPlace for a summer game jam from June 13 - June 19. Learn more.
    Dismiss Notice
  3. Dismiss Notice

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

Discussion in 'Multiplayer' started by Kakr-98, Dec 12, 2023.

  1. Kakr-98

    Kakr-98

    Joined:
    Apr 29, 2020
    Posts:
    36
    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.
     
    Sluggy, mgear and JesOb like this.
  2. Kakr-98

    Kakr-98

    Joined:
    Apr 29, 2020
    Posts:
    36
    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.
     
    Last edited: Dec 12, 2023
    JesOb likes this.
  3. Lukeesta

    Lukeesta

    Joined:
    Jan 7, 2016
    Posts:
    83
    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.
     
  4. Kakr-98

    Kakr-98

    Joined:
    Apr 29, 2020
    Posts:
    36
    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.
     
  5. CodeSmile

    CodeSmile

    Joined:
    Apr 10, 2014
    Posts:
    6,943
    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.
     
  6. Kakr-98

    Kakr-98

    Joined:
    Apr 29, 2020
    Posts:
    36
    Yes, they are all configured to run at 20HZ.
     
  7. Punfish

    Punfish

    Joined:
    Dec 7, 2014
    Posts:
    424
    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".