Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

Showcase Updated! Free networking solution comparison chart.

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

  1. Punfish

    Punfish

    Joined:
    Dec 7, 2014
    Posts:
    389
    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
  2. CodeSmile

    CodeSmile

    Joined:
    Apr 10, 2014
    Posts:
    5,533
    @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.
     
  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:
    28
    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:
    3,062
    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:
    438
    May I know what part of the list is subjective?
     
  7. tobiass

    tobiass

    Joined:
    Apr 7, 2009
    Posts:
    3,062
    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:
    389
    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,732
    Disappointed to see that host migration is low priority and may eventually be excluded :(
     
  10. Punfish

    Punfish

    Joined:
    Dec 7, 2014
    Posts:
    389
    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:
    389
    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:
    5,533
    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:
    389
    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,732
    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:
    389
    That's client-to-client rpcs on the chart.
     
    Munchy2007 likes this.
  16. Munchy2007

    Munchy2007

    Joined:
    Jun 16, 2013
    Posts:
    1,732
    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:
    389
    Ah okay. Please use the FishNet thread for FN questions, or our Discord.
     
    Munchy2007 likes this.
  18. Punfish

    Punfish

    Joined:
    Dec 7, 2014
    Posts:
    389
    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:
    389
    Updated the chart to include feature Network Level of Detail.
     
  20. Punfish

    Punfish

    Joined:
    Dec 7, 2014
    Posts:
    389
    Updated chart.

    - Planned category removed since timelines and implementations have proven unreliable.
    - Mirror Nested NetworkBehaviours changed from unsupported to supported.
     
  21. FaithlessOne

    FaithlessOne

    Joined:
    Jun 19, 2017
    Posts:
    313
    Only to note: Netcode for Entities has been released together with ECS in Unity 2022.3 LTS a month ago. It is ready for production now.
     
  22. Punfish

    Punfish

    Joined:
    Dec 7, 2014
    Posts:
    389
    Thanks for the update, and sorry for the very long delay in acknowledging it.

    I can add Netcode for Entities if you're able to provide a list of features. I did browse the documentation but did not find much beyond the basics. I'll admit I didn't look very thoroughly given my time limitations, but I suppose what I am saying if you would like to see it listed I can make it happen if provided with a list of features.
     
  23. FaithlessOne

    FaithlessOne

    Joined:
    Jun 19, 2017
    Posts:
    313
    While I am using Netcode for Entities in my project, I personally don't have the expertise to provide a full feature list. Also I don't found a full feature list by googling or seraching the docs like you. The only thing I got was through asking ChatGPT, but we know the knowledge cutoff date is September 2021, so it may not be up to date:
    I can at least relate the stated key features by ChatGPT to Netcode for Entities. I don't have the insights to confirm the low-level features.
     
  24. Punfish

    Punfish

    Joined:
    Dec 7, 2014
    Posts:
    389
    ChatGPT has been horribly inaccurate since release for these sort of things. Don't think I'll be basing a sheet intended to be factual off it haha.
     
  25. FaithlessOne

    FaithlessOne

    Joined:
    Jun 19, 2017
    Posts:
    313
    Yep, sometimtes it is mixing up different versions of a software or even different ones, so I understand your concerns. Maybe at some time or another there will be a reliable feature list for it.
     
    Punfish likes this.
  26. xgecemx

    xgecemx

    Joined:
    Aug 19, 2023
    Posts:
    1
    This is a really helpful comparison chart for Unity developers looking into networking solutions! It's great to see all the options laid out side-by-side like this. The details on pricing, platforms supported, maximum players, etc. make it easy to see which solution might be the right fit for a particular project.

    I'm glad to see Photon Unity Networking (PUN) included in the list. PUN has been my go-to networking solution for a while now because of how easy it is to get started with and its solid feature set. The bolt-on model is nice since I don't have to rebuild my entire project around a new networking architecture. And I've been able to scale my multiplayer games up to 100+ concurrent users without too much trouble.

    The only suggestion I might make is to include a little info on each solution's community and support options. Since networking can get tricky, having active forums/Discord channels and responsive support can make a big difference. But overall this is an awesome, bookmark-worthy reference for any Unity developer looking to add networking capabilities to their games. Thanks for putting it together!
     
    Last edited: Aug 20, 2023
    vexstorm and CodeSmile like this.
  27. Punfish

    Punfish

    Joined:
    Dec 7, 2014
    Posts:
    389
    We do have links to each solutions page. I'm hesitant on rating or specifying support because that varies strongly on individuals experiences.

    Here's an example of what that might look like (from what I know)...

    FishNet:
    Free support Discord.
    Enterprise/Priority support available.

    Mirror:
    Free support Discord.
    Enterprise/Priority support available.

    Fusion:
    Free support Discord.
    Enterprise/Priority support available.

    These all look the same but they are not. The availability of free support will vary greatly on the solution, and the enterprise support is a black box of costs and experience. It's just too risky/impossible to evaluate fairly.
     
  28. Punfish

    Punfish

    Joined:
    Dec 7, 2014
    Posts:
    389
    NGO Area of Interest added as limited.
    limited status was decided because there are no pre-built systems within NGO to do this for the user. To implement area of interest within NGO users must create their own code to check conditions and apply area of interest.

    Limited status will be removed when components or classes are included to support a number of conditions.
     
  29. Punfish

    Punfish

    Joined:
    Dec 7, 2014
    Posts:
    389
    Many of the available networking solutions were out of order for last updated on the spreadsheet.
    To make maintaining the spreadsheet easier solutions are no longer listed by last update.

    Instead, they are now listed within last updated brackets. The current brackets are:
    - within 3 months.
    - between 3-12 months.
    - Product Not Maintained or Not Updated beyond 12 months

    https://docs.google.com/spreadsheets/d/1Bj5uLdnxZYlJykBg3Qd9BNOtvE8sp1ZQ4EgX1sI0RFA/
     
  30. qbvbsite

    qbvbsite

    Joined:
    Feb 19, 2013
    Posts:
    83
    Any reason you didn't include libraries like LiteNetLib? It's a nice light-weight networking library and works well with Unity and developing console-based servers.
     
  31. CodeSmile

    CodeSmile

    Joined:
    Apr 10, 2014
    Posts:
    5,533
    I compiled the original list. My goal was to get an overview of the most popular, actively maintained and supported open source solutions that were made specifically for Unity. I dismissed all "generic" solutions (like LiteNetLib).
     
  32. qbvbsite

    qbvbsite

    Joined:
    Feb 19, 2013
    Posts:
    83
    I think for users that are new to Unity it would be nice to know the generic options as well. In the example of LiteNetLib it meets all the requirements minus the specifically for Unity one.
     
  33. CodeSmile

    CodeSmile

    Joined:
    Apr 10, 2014
    Posts:
    5,533
    It does, and so do a dozen others. ;)

    I have gathered as many libraries as I could as the initial task. I ended up with about 50 or more, both paid and FOSS, of which maybe 20 seemed maintained. Some of the contenders still are in the list actually.

    I forgot to mention an exclusion condition: it must not merely be a low-level transport library that only handles RPC messaging but leaves the hardcore send, receive event handling and possibly even packet collation, compression, etc up to the user. If I'm not mistaken LiteNetLib is more or less such a transport layer. If low-level is what you need there's also Unity Transport available as a package, and Fish-Net also has several transports to choose from.
     
  34. qbvbsite

    qbvbsite

    Joined:
    Feb 19, 2013
    Posts:
    83
    Ahh gotcha, you would be correct it pretty much just a low-level transport library. Though programming the hard stuff is probably a good learning experience for people :).
     
  35. Punfish

    Punfish

    Joined:
    Dec 7, 2014
    Posts:
    389
    Chart updated.

    Network Solutions Tab
    * Added Coherence.
    * Normalized descriptions for Fish-Networking, Fusion, and Netcode for GameObjects.

    Feature Comparison Tab
    * Removed Reliable Order of Operations feature given difficulty to explain and treat feature fairly amongst libraries.
    * Time Architecture renamed to Timing Architecture.
    *
    FishNet Timing Architecture changed from 'Tick' to 'Tick or Variable'
     
  36. Kakr-98

    Kakr-98

    Joined:
    Apr 29, 2020
    Posts:
    21
    Hi,

    You included a networking solution that is not open source. Source available != Open Source. Would like to know why, I like to believe this was an unintended mistake.

    https://en.wikipedia.org/wiki/Source-available_software
     
  37. Kakr-98

    Kakr-98

    Joined:
    Apr 29, 2020
    Posts:
    21
    After looking more into it, it seems this chart is actually maintained by the source-available solution, which was made an exception to enter the comparison chart initially. This would render this comparison chart as being not useful at all as it's done by a biased entity. Not to mention many elements of it are blatantly biased toward that solution.

    One interesting thing I observed is that the [Free] category also includes systems that have paid features. Normally that should be a category of its own. However, they were (systems that are free but have paywalled features) included in the same [Free] category to, again, include that networking system, which shouldn't be included in the first place as it's not open source, per the words of the original author.
     
    Last edited: Dec 14, 2023
  38. Punfish

    Punfish

    Joined:
    Dec 7, 2014
    Posts:
    389
    I wouldn't fixate on the word 'open source' too much, the term is loosely used.

    There is a comparison chart and a networking solutions chart. The intent of the comparison chart is to show the differences between free solutions, specifically solutions which are source available. While the networking solutions chart is for networking solutions which have earned trust among the community, and are known to be active.

    Far as the paid features go, they are optional. Additionally, all of the solutions which offer paid features can fully function without them.

    Please keep in mind this is a community project and we do take recommendations from others, and use descretion to decline recommendations. I suspect very much you would like to have your solution up, and it was initially, but it did not meet guidelines. If you wish to have a talk about it please message CodeSmile and myself, and keep the thread clean.
     
    Last edited: Dec 14, 2023
  39. Punfish

    Punfish

    Joined:
    Dec 7, 2014
    Posts:
    389
    Updated wording on tabs to be more clear.

    * Feature Matrix Comparison tab title changed to Feature Comparison Chart (FREE).
    * Unity Networking Solutions (FREE) tab title changed to Unity Networking Solutions, as it's a solution master-list which also contains paid solutions.
     
    CiroContns and vexstorm like this.
  40. RevenantX

    RevenantX

    Joined:
    Jul 17, 2012
    Posts:
    148
    Sluggy likes this.
  41. Punfish

    Punfish

    Joined:
    Dec 7, 2014
    Posts:
    389
    Morning(here at least!),
    I wanted to let you know I saw your message and will get your project up there in the sometime near future. I'm personally a little occupied on a big update so it could take a week or so but I'll make it happen.

    PS: great work on LiteNetLib!
     
  42. Punfish

    Punfish

    Joined:
    Dec 7, 2014
    Posts:
    389
    Looking over the examples and not quite sure how to give your solution a description on the 'Unity Networking Solutions' tab. Do you have any suggestions? The description should be short, relatable, and not overselling to prevent bias. You can see others on there for reference.
     
  43. Punfish

    Punfish

    Joined:
    Dec 7, 2014
    Posts:
    389
    Last edited: Jan 8, 2024
  44. RevenantX

    RevenantX

    Joined:
    Jul 17, 2012
    Posts:
    148
    HighLevel API without Unity dependency
     
    Punfish likes this.
  45. Punfish

    Punfish

    Joined:
    Dec 7, 2014
    Posts:
    389
    Thanks, got you in there.

    Updated comparison sheet
    * Mirror Long Term Support changed from Paid to Unsupported due to the last update being a year ago, as well developers stating it likely will not be supported any longer.
    * Riptide Networking moved to 'Not Maintained' as developer has publicly stated they will not be providing any more updates.
    * Added LiteEntitySystem to available networking solutions.
     
  46. YousafGrewal

    YousafGrewal

    Joined:
    Jul 5, 2018
    Posts:
    28
    I want to create a Ludo multiplayer game. Can anyone please suggest an alternative solution that is available, aside from Photon or other managed solutions that can be expensive? I want to build it from scratch. I came across 'Colyseus' but don't have enough information. Is it a good solution for my published game? Please suggest a solution.
     
  47. YousafGrewal

    YousafGrewal

    Joined:
    Jul 5, 2018
    Posts:
    28
    I want to create a Ludo multiplayer game. Can anyone please suggest an alternative solution that is available, aside from Photon or other managed solutions that can be expensive? I want to build it from scratch. I came across 'Colyseus' but don't have enough information. Is it a good solution for my published game? Please suggest a solution.
     
  48. Punfish

    Punfish

    Joined:
    Dec 7, 2014
    Posts:
    389
    Hey! This thread is not here to make recommendations but rather to provide information to you so you can use it to help make your decision, and/or become aware of what options are available.
     
  49. YousafGrewal

    YousafGrewal

    Joined:
    Jul 5, 2018
    Posts:
    28
    please help me its difficult of finding shuch an active thread thats why i asked here please share details if you know?
     
  50. Punfish

    Punfish

    Joined:
    Dec 7, 2014
    Posts:
    389
    I'm the creator of Fish-Networking so my answer would be bias especially here. I recommend making a new thread.