Search Unity

Question Fish-Net vs other Networking Solutions

Discussion in 'Multiplayer' started by BlackSabin, Mar 24, 2023.

  1. BlackSabin

    BlackSabin

    Joined:
    Feb 27, 2021
    Posts:
    75
    I've been working with Unity for a while now and I've only just recently started touching multiplayer. I've watched/read tutorials and read documentation and explanations on Mirror and Netcode for GameObjects. I have yet to touch any other networking solutions, and the one thing I've noticed in my own "playing around" is the seeming latency between movement on a server-authoritative structure like the aforementioned creates a huge gap between what I consider playable and what I have created. Clearly I've got more to learn on the subject, so I decided instead of going down the rabbit hole too far with either solution, I'd look into which networking solution would have the... "most"?... LTS. If I'm going to dedicated my time and effort to learning it and get enough understanding to make whatever parts of my games that I need, I want it to last and not decay into nothingness.

    So I happened across this little google doc. I noticed something rather bizarre... LTS.PNG
    NGO (at least according to this doc) is marked "No" for LTS. Moreover, looking down the list of features it's startlingly clear that Fish-Net has Mirror and NGO both beat in so many facets. Unsurprisingly they have some of the features that are unavailable (again, at least according to the doc) to the others marked behind a pay service. This leads me to all kinds of questions.

    1. Why is Netcode for GameObjects, which I understand to be Unity's official networking solution, not listed as Long-Term Support? Why would their "intended" native solution be marked on this doc as such?

    2. Fish-Net (as shown in the screen grab) is listed as having it's "Source Available". They even have the github links there, and while I didn't take the time to look closer and I probably already know the answer, I'll ask anyway: how might one have the source available despite reserving certain features behind a paywall?

    3. With the clear disparity between the other networking solutions compared on this doc, why would anyone not choose Fish-Net over the others? What is the draw?
     
  2. mgear

    mgear

    Joined:
    Aug 3, 2010
    Posts:
    9,408
    if you build comparison list yourself,
    then of course most of the parts are green for your product & specific terms,
    partially like i did on unity hub vs my own launcher comparison : D
    https://github.com/unitycoder/UnityLauncherPro/wiki/Launcher-Comparison

    if you find the original thread for the document, can see the discussion below..
    * original thread: https://forum.unity.com/threads/updated-free-networking-solution-comparison-chart.1359775/

    I would think Mirror has much more extensive showcase of released games using it..
     
    Last edited: Mar 24, 2023
  3. CodeSmile

    CodeSmile

    Joined:
    Apr 10, 2014
    Posts:
    5,882
    I actually started that comparison chart and am not affiliated with any of these solutions. Maintenance has since been moved over to the Fish-Net dev. I can say that there is naturally some bias now but FN has a lot going for it for sure. It was actually created out of disappointment working with Mirror. So while Mirror has more games to showcase, it has also been available a lot longer and suffers from technical debt, including some unusual design choices most notably the lack of locked timestep and as a consequence, no clientside prediction.

    I cannot comment on the LTS question, perhaps it is a pun on Unity having deprecated networking solutions twice in the past years (Unet, MLAPI) but even so it doesn‘t seem fair to forward-predict the same fate for NGO. In fact I expect NGO to stick around this time.
    FN has a few paid features and I would suppose that this is plugin code that you get when you pay. Personally, I find FN and NGO equally valid and it depends on what features and integrations (and freedom of choice) you need in the foreseeable future.
     
    Sir_Loin_of_Beef and BlackSabin like this.
  4. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    Unity, Photon, Mirage etc. all have 'vs. Mirror' comparisons where Mirror always loses.
    Mirror never made any comparisons, and never will.
     
    Last edited: Mar 28, 2023
  5. BlackSabin

    BlackSabin

    Joined:
    Feb 27, 2021
    Posts:
    75
    ..."never made any" what? And who is "we"?

    @CodeSmile Thank you for your detailed reply, this does clear up quite a bit for me. Have you personally used NGO and Fish-Net? What would you say are the 'key" differences, seeing as you consider both equally valid approaches?
     
  6. CodeSmile

    CodeSmile

    Joined:
    Apr 10, 2014
    Posts:
    5,882
    I used mainly NGO, tried a demo of Fish-Net and browsed through the code. That was enough to see that both are on equal terms and I found the code for both far less intricate than what I expected networking code to be (I’m probably biased by convoluted c++ net libraries from 20 years ago).

    Most notably the syntax respectively workflows between the two are nearly identical. With little abstraction I’m sure one could write a wrapper that supports both backends, however not with both of them active at the same time because they rely on same codebases (roslyn i think) but differing versions of it thus you cannot have both libs in the same project without getting duplicate etc conflicts.
     
    BlackSabin likes this.