Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.

Updated! Free networking solution comparison chart.

Discussion in 'Multiplayer' started by Punfish, Nov 10, 2022.

  1. Punfish

    Punfish

    Joined:
    Dec 7, 2014
    Posts:
    293
    CodeSmile and myself have been making efforts to create a comparison chart for the most mentioned free networking solutions. This chart also provides a list of all known networking solutions, free or paid. Eventually, benchmarks as well.

    There are several potential stages for a feature/category. They are color coded and can be found at the top of the comparison page. Eg: fully supported, not supported, limited. Further explained, all compared solutions support object pooling, but Mirror and Netcode require several dozen lines of code to use the feature. In result 'Object Pooling' is considered supported, but not 'Automatic Object Pooling'.

    Source: developers which have used one or more of the networking solutions were asked to help fact check this chart. The chart is accurate to the best of my knowledge. We found more difficulties in validating some NGO features, and we know NGO is still growing. If someone is familiar enough with NGO and is able to make corrections we'd really like your input!

    If something is incorrect, missing, or changed please contact myself or CodeSmile in a message
    so we may update the chart asap; please behave professionally!


    THE CHART: https://docs.google.com/spreadsheet...Qd9BNOtvE8sp1ZQ4EgX1sI0RFA/edit#gid=233715429
     
    Last edited: Dec 6, 2022
    bb8_1, hopeful, Cranom and 5 others like this.
  2. CodeSmile

    CodeSmile

    Joined:
    Apr 10, 2014
    Posts:
    2,112
    @Punfish Thanks for posting it! :)

    For users, please be sure to switch tabs (sheets) as this document contains multiple tables with a summary of networking libraries, feature matrix and benchmark results.
     
    Cranom, uberwiggett and HighKeys like this.
  3. amxxvi

    amxxvi

    Joined:
    Dec 23, 2017
    Posts:
    11
    This is a great effort from you two! And I appreciate this, and I am sure the whole community is thankful!

    Right now, the sheet just lists some of the solutions and some notes on them, right? It's not ranked from top-to-bottom in any way? I don't see any scores beside each solution.
     
  4. HighKeys

    HighKeys

    Joined:
    Jan 6, 2016
    Posts:
    24
    It has multiple tabs. Its not ordered as far as i know, first page just lists some networking solutions out there.

    2nd Tab is the comparison table between the 3 big ones (Free) Mirror, FishNet and NGO.

    Hope this answeres your question.
     
  5. tobiass

    tobiass

    Joined:
    Apr 7, 2009
    Posts:
    2,974
    This is a very subjective list while at the same time trying to give the impression it is based purely on facts.
    I appreciate the effort but have to point out it is not a good basis to make decisions. At least for professionals.
     
  6. zKici

    zKici

    Joined:
    Feb 12, 2014
    Posts:
    418
    May I know what part of the list is subjective?
     
  7. tobiass

    tobiass

    Joined:
    Apr 7, 2009
    Posts:
    2,974
    It aims to be factual for the solutions listed but it is subjective or at least not complete by excluding solutions for arbitrary reasons. If that makes sense.
     
  8. Punfish

    Punfish

    Joined:
    Dec 7, 2014
    Posts:
    293
    Solutions will not be ranked because that would be based on preference. The chart is aimed to provide facts of solutions, and each developer should make their own assessment on which to use.

    After your comment we talked in a DM (just bringing everyone else up to speed). You pointed out the chart did not include paid solutions. I edited my original post to clarify that CodeSmile and myself were focused on free solutions. I'll further edit the comparison chart to reflect that comparable paid options may be available as well.

    At least from my perspective, paid options were not included because it's difficult to compare paid options and there is very little information on most paid options. If enough information is gathered about a variety of paid options I imagine a new tab could be created. So to anyone reading, if you have experience with a paid solution and are knowledgeable of it's features please get back to us!

    Lastly, while this is in no way a comparison, I do recognize that Fusion is likely the most talked about paid option for Unity networking. As far as I know, it offers the most features of all paid solutions.
     
    Last edited: Nov 18, 2022
  9. Munchy2007

    Munchy2007

    Joined:
    Jun 16, 2013
    Posts:
    1,722
    Disappointed to see that host migration is low priority and may eventually be excluded :(
     
  10. Punfish

    Punfish

    Joined:
    Dec 7, 2014
    Posts:
    293
    If you are referring to FishNet send me a DM here or Discord to help keep this thread organized.
     
  11. Punfish

    Punfish

    Joined:
    Dec 7, 2014
    Posts:
    293
    Going to post changes at the end of every month for those interested in following this thread, instead of checking the chart regularly.

    Per usual if something is missing, or wrong, let myself or CodeSmile know via MESSAGE(to keep this thread clean). I've had a few recommendations not shown here which will make it up soon as well from some Redditors.

    Be sure to read colored bars on top explaining how the chart works.

    Changes made to the comparison chart since release to this day.
    NGO Broadcasts changed to supported.
    Mirror Broadcasts changed from unsupported to limited.
    Several notes updated for more detail.
    FishNet Network Profiler changed from unsupported to limited. See notes.
    Profiler/Monitor renamed to Network Profiler
    FishNet Addressables Support changed from supported to limited.
    Mirror Nullable-Type Variables changed from supported to limited since only a few types work.
    Added Limited status.
    API Design added.
    Scene Hotloading added.
    Lag Compensation moved to Utility.
    Projected Stability renamed to Update Stability for clarity.​
     
    CodeSmile likes this.
  12. CodeSmile

    CodeSmile

    Joined:
    Apr 10, 2014
    Posts:
    2,112
    Broadcast in the sense that server can send RPC to all clients? Or can a client now also broadcast an RPC to all other clients?

    That used to require a ServerRPC and the server then sending a ClientRPC in v1.0. Haven't checked v1.1 and couldn't find anything on the manual in quick scan.


    Also, I was looking for the support of "clients in different scenes" yesterday but couldn't find it. I think I found it, if I read the description correctly this is "Stacked Scenes" since it allows for "instanced dungeons" which implies not all clients being in the same scene. Is that correct?

    I feel it should be annotated as "Stacked Scenes (instances)" to make it clearer.
    Update: edited. I forgot I can just edit it myself. :D
     
  13. Punfish

    Punfish

    Joined:
    Dec 7, 2014
    Posts:
    293
    LOL

    Stacked scenes are the same scene loaded multiple times. Additive scenes is what it sounds like. FishNet can do both, or in combination. I don't think the other two have proper support for either but that could change.

    Broadcasts also go by the name Messages. This is sending messages from server or client that do not need to be bound to a networked object. In other words, you can register to listen for a message in any class without it needing to be networked. I looked through netcode and found it did have broadcasts so I added it in.

    RPCs, at least in terms of Unity solutions, generally means communicating from/to the same NETWORKED object.
     
  14. Munchy2007

    Munchy2007

    Joined:
    Jun 16, 2013
    Posts:
    1,722
    Will this work in the same way as in PUN2, in as much as any client can directly send messages to any specified selection of other connected clients?
     
    Last edited: Dec 5, 2022
  15. Punfish

    Punfish

    Joined:
    Dec 7, 2014
    Posts:
    293
    That's client-to-client rpcs on the chart.
     
    Munchy2007 likes this.
  16. Munchy2007

    Munchy2007

    Joined:
    Jun 16, 2013
    Posts:
    1,722
    Unless I'm mistaken, RPCs require a networked object as a receiver, whereas messages do not.

    What I'm looking for is to be able to send messages that do not require a networked object as a receiver, which I believe is what broadcast is for, but I also want to be able to filter which clients are broadcast to. It isn't clear to me if broadcast always sends to every connected client or if I can choose who to broadcast to.
     
  17. Punfish

    Punfish

    Joined:
    Dec 7, 2014
    Posts:
    293
    Ah okay. Please use the FishNet thread for FN questions, or our Discord.
     
    Munchy2007 likes this.
  18. Punfish

    Punfish

    Joined:
    Dec 7, 2014
    Posts:
    293
    Updated the chart to include new FishNet features!

    If anyone sees an update potential for the other compared solutions please myself or CodeSmile know!
     
  19. Punfish

    Punfish

    Joined:
    Dec 7, 2014
    Posts:
    293
    Updated the chart to include feature Network Level of Detail.