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.

Showcase Fish-Networking: Unity Networking Evolved! (FREE!)

Discussion in 'Multiplayer' started by Punfish, Jun 19, 2022.

  1. Punfish

    Punfish

    Joined:
    Dec 7, 2014
    Posts:
    340
    Quick-Links
    Asset store: https://assetstore.unity.com/packages/tools/network/fish-net-networking-evolved-207815
    Discord: https://discord.gg/fishnetworking
    Documentation, Tutorials, Roadmap: https://fish-networking.gitbook.io/docs/


    About Fish-Networking

    Fish-Networking, sometimes referred to as FishNet, is a high performant, feature-rich networking solution for Unity3D.

    When compared against other free networking solutions users have experienced savings in server fees through the CPU and bandwidth efficiency of Fish-Networking. We have a benchmark comparison page on our documentation which lets you replicate our test, as well community posted results on our Discord!

    Stability is of great importance. Bugs get priority attention; potential show-stopping bugs are regularly resolved within a couple work days. We also pride ourselves on our "No-break Promise" which guarantees API will change no more frequent than every 6 months. In addition to this promise, we provide easy to use documentation on how to update between API changes!

    Features, we all like features! Upon our first release FishNet already had comparable, and quite a few extra features over several competitors. In the past 6 months we've added 114 new features and 93 improvements to existing features. We offer several advanced technologies commonly only found in paid solutions, such as client-side-prediction. As well some features which do not exist in any other networking solution, like sharding and a full networked scene manager for: single, additive, and even stacked scenes (if this changes please let me know).

    Fish-Networking is strongly community driven. In the past 30 days roughly 35 new features or enhancements have been added based entirely on community feedback. At the time of this posting, between our YouTube and Discord community we have over 10,000 members! Our Discord is entirely safe for work, and we do not tolerate inconsiderate behavior.


    Milestones
    Fish-Networking has been public for a little over 6 months now. In that time we have progressed at a tremendous rate. Here are some milestones, or achievements over that 6 month span.

    # At the time of this post, only one very minor bug is currently unresolved. On a project this large I'm sure you developers know the significance of that!

    # Over 10 asset developers, many of which are well known, have adopted Fish-Networking into their assets.

    # Several games have launched with Fish-Networking! The developer of Arcadius https://store.steampowered.com/app/1105130/Arcadius/ switched their existing game to FishNet in a matter of hours. After switching they saw roughly a 75% savings in server costs. Previously their servers would crash around 40 CCU, while on Fish-Networking they've achieved over 300 CCU without any disruption on the server or clients! It's also worth noting these metrics are from several months ago; FishNet has received several performance improvements since.

    # Jason Weimann https://www.youtube.com/c/Unity3dCollege , a professional game developer and popular content creator, featured Fish-Networking. Jason spoke well of FishNet, and even hosted an interview with us!


    About Me
    I'm a professional game developer with over 6 years of experience. After having difficulties finding a good networking fit for a multiplayer project I decided to create Fish-Networking. As the lead developer I can genuinely say I care about this product and it's users experiences.

    I hope for those that are new to multiplayer and looking for an option will consider giving us a shot; you really won't regret it.


    Misc
    It can be difficult to track questions on the forum. If you have a technical question your best chance at a quick response will be to ask on our Discord ( https://discord.com/invite/Ta9HgDh4Hj ). Please remember to be kind to community members both on and off the forum, thanks!
     
    Last edited: Jul 15, 2022
  2. hippocoder

    hippocoder

    Digital Ape Moderator

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    Only customers and genuine potential customers may reply here. No other discussion is permitted.
     
  3. r31o

    r31o

    Joined:
    Jul 29, 2021
    Posts:
    460
    I saw Network LOD in the roadmap. How it will work? Like the normal LOD?
     
  4. Punfish

    Punfish

    Joined:
    Dec 7, 2014
    Posts:
    340
    The roadmap on Trello is being removed. The official roadmap is on gitbook now. It's easier for everyone to have everything in one place.

    Far as network LOD, it was removed from planned a week or so ago. I may add it back under wishlist.

    I'm not decided if it's worth having the feature because feature would use more CPU over bandwidth. The bandwidth is optimized enough to the point where I'm not convinced it's worth wasting the CPU.

    ALTHOUGH, the NetworkTransform partially supports this with the interval feature. You can choose how quickly the NT updates, even at runtime. And transform updates usually do eat the most bandwidth so this can be vastly beneficial.
     
    Last edited: Jun 21, 2022
    r31o likes this.
  5. Punfish

    Punfish

    Joined:
    Dec 7, 2014
    Posts:
    340
    Addressables support with the Fish-Networking scene manager has been added, and is considered stable!
    Coming soon is advanced nested prefab support, and network object pooling with your own object pooler!
     
  6. toddkc

    toddkc

    Joined:
    Nov 20, 2016
    Posts:
    207
    Networked object pooling is a great feature.
     
  7. r31o

    r31o

    Joined:
    Jul 29, 2021
    Posts:
    460
    @Punfish when will be the EOS transport a reality?
    Im very impatient
     
  8. Punfish

    Punfish

    Joined:
    Dec 7, 2014
    Posts:
    340
    It will certainly be handy, and designed in a way that you can easily use your own pooler with virtually no extra lines of code.

    r31o, yes it's absolutely in the works. Someone else is creating the EOS transport but he also has other things to take care outside the transport. We are hoping around the end of July but that timeline could sway some.
     
    toddkc likes this.
  9. r31o

    r31o

    Joined:
    Jul 29, 2021
    Posts:
    460
    I guess that the transform is on beta.
    Can I test it?
     
  10. Punfish

    Punfish

    Joined:
    Dec 7, 2014
    Posts:
    340
    EOS? It's not ready. I'll make an announcement when it is.
     
    r31o likes this.
  11. neoangelique

    neoangelique

    Joined:
    Nov 19, 2014
    Posts:
    27
    Would like to add request for the EOS integration especially after they've recently fixed the garbage collection issue. It is becoming a viable option and the only free one that offers a relay server across platforms. This is much more versatile than steam which only works on PC. As soon as Fish networking has that, it will be an even more attractive choice.
     
    r31o likes this.
  12. r31o

    r31o

    Joined:
    Jul 29, 2021
    Posts:
    460
    You can use steamworks with app id 480 (space wars) i use it for testing, and I will use EOS when it is released
     
  13. neoangelique

    neoangelique

    Joined:
    Nov 19, 2014
    Posts:
    27
    The problem is that I will be developing some mobile games as well as PC games, I'm not sure but I think steamworks does not work on mobile platforms.

    I'm hoping that the fishnet team would be able to squeeze EOS implementation into their next release. Once they do that, we can go full throttle into it. Alternatively I'll try invest some time to see if I can implement EOS into Fishnet and roll with it, the chore would be reading through EOS's documentations as from what I'm seeing here, it's all over the place and there isn't a straight forward guide, doable but could have been quicker if the docs were better. Makes me somehow appreciate the tutorials and documentations on the Unity side from both third party and unity themselves.
     
  14. r31o

    r31o

    Joined:
    Jul 29, 2021
    Posts:
    460
    Yes, but you use Unity on PC, right?
    I think is just one guy, and there is other thap makes some transports
    I tried it, it was impossible.

    I dont really know what happens with EOS, is just perfect (Free relay), buuuut, the documentation is terrible, so Im just making the game with Tugboat/Steamworks, and when EOS transport gets released, I will use it
     
  15. Punfish

    Punfish

    Joined:
    Dec 7, 2014
    Posts:
    340
    There are community changes but when it comes to putting things directly into FishNet I take care of that to ensure the same pattern and what not. We also have a lot of addons, not just transports, by other developers.

    EOS isn't going to ever be released with FishNet, if will be released as an addon. Like other transports you would simply import it and configure.

    Another developer is currently working on the EOS transport. We are hoping it to be ready at the end of July but as mentioned before it could be a little bit after. I reached out to the developer today asking for an update. Please keep in mind this developer is doing it in their spare time, which means prioritizing life matters first. EOS is definitely on it's way, I merely do not want to give a false timeline on it.
     
    r31o likes this.
  16. r31o

    r31o

    Joined:
    Jul 29, 2021
    Posts:
    460
    I guess EOS transport will have some installation guide, since I have been looking in the docs and is not very intuitive
     
  17. Munchy2007

    Munchy2007

    Joined:
    Jun 16, 2013
    Posts:
    1,732
    Hi @Punfish

    does Fish Networking support automatic host migration or do you have plans to add it if not?

    Thanks.
     
  18. r31o

    r31o

    Joined:
    Jul 29, 2021
    Posts:
    460
    Im not firstgeargames (Kinda obvious), but Im sure it doesnt, when I disconnect the host, all client disconnect

    I dont know if is possible to code it
     
  19. Punfish

    Punfish

    Joined:
    Dec 7, 2014
    Posts:
    340
    Host mitigation is really only possible by either syncing all values to all clients at all times or by having a central server that manages data and host is nothing more than a client that reserved the server.

    So no mitigation built in. Makes more sense just to have a dedicated server.
     
    Last edited: Jul 21, 2022
  20. Munchy2007

    Munchy2007

    Joined:
    Jun 16, 2013
    Posts:
    1,732
    Hi, thanks for your reply

    Whilst dedicated servers make sense in certain circumstances, I want players to be able to be able to easily host their own games without reliance on dedicated servers, in which case host migration is a must, to avoid frustration if the host disconnects.

    What caught my eye and prompted my question was mention of EOS support and the associated free relay servers, which would make the Fish-Net/EOS combination a very attractive alternative to PUN/Fusion, but only if it also supported host migration.

    It's a shame, but it looks like I'll have to stick with PUN.
     
  21. Punfish

    Punfish

    Joined:
    Dec 7, 2014
    Posts:
    340
    PUN uses the central server approach. You aren't actually hosting anything. But I can completely understand the need for that, it's just not something on the table yet.
     
  22. Munchy2007

    Munchy2007

    Joined:
    Jun 16, 2013
    Posts:
    1,732
    I'll keep an eye on Fish-Net, and should there come a time where it becomes able to handle relaying via EOS and host migration in a similar way to PUN I will look at migrating my current game over to it.

    Thanks for taking the time to answer my questions :)
     
    Punfish likes this.
  23. Punfish

    Punfish

    Joined:
    Dec 7, 2014
    Posts:
    340
    NgCa and r31o like this.
  24. Punfish

    Punfish

    Joined:
    Dec 7, 2014
    Posts:
    340
  25. Punfish

    Punfish

    Joined:
    Dec 7, 2014
    Posts:
    340
    In 2.3.9 Fish-Networking now has full nested network object support!

    You may use nested network objects in your prefabs and scene objects.
    - Spawn or despawn children network objects at anytime.
    - Disable or enable child network objects before server spawning and those changes are automatically synchronized!
    - Give different nested network objects different owners; really useful for multiple players controlling scene objects.

    Learn more about the usage of this new feature here: https://fish-networking.gitbook.io/docs/manual/guides/spawning/nested-networkobjects
     
    Quast and Munchy2007 like this.
  26. Quast

    Quast

    Joined:
    Jul 5, 2015
    Posts:
    560
    Could you please add basic tutorials for how to use FN with UI?
     
  27. r31o

    r31o

    Joined:
    Jul 29, 2021
    Posts:
    460
    @WinterboltGames made one (I think the name of the video is "Multiplayer UI managment with fish-networking")
     
    Punfish likes this.
  28. Quast

    Quast

    Joined:
    Jul 5, 2015
    Posts:
    560
    Yes. I saw it before .... two buttons !!!
    Man, we as noobs need more basic things. For example create rooms/lobbies, number of players inside the room. Select a room/lobby to join. Thinks like that.
     
  29. zKici

    zKici

    Joined:
    Feb 12, 2014
    Posts:
    437
    There is a Lobby and Worlds project that have what you are asking for already, it does come with the pro tier however. It is very affordable and you can get lifetime updates with it. There are many other perks with the pro tier,
    You could skip all that and go with Steam's free lobby services etc.
     
    Quast likes this.
  30. Quast

    Quast

    Joined:
    Jul 5, 2015
    Posts:
    560
    Good to now this. I will try Steam Network to see how easy is it. Thank you, zKici.
     
  31. zKici

    zKici

    Joined:
    Feb 12, 2014
    Posts:
    437
  32. r31o

    r31o

    Joined:
    Jul 29, 2021
    Posts:
    460
    Steam transport is not a good idea because of:
    -It only works on Windows, Mac and Linux
    -You need to pay 100$ to get your own app id, if you dont pay you will need to use the spacewars app id (480), but this is used a lot, and in your lobby list there are going to appear strange lobbies, and your lobbies will appear on others lobby list, so they can join them, and bad things will happen.

    Im waiting for the EOS transport, since is cross-platform and free, which solves both problems.
     
  33. WinterboltGames

    WinterboltGames

    Joined:
    Jul 27, 2016
    Posts:
    257
  34. Punfish

    Punfish

    Joined:
    Dec 7, 2014
    Posts:
    340
    Perks of the steam transport is that it's really easy to setup and there's packages around it such as Heathens. If developing for Windows/Mac Steam is not a bad option.

    There is a one time fee from Steam to use it published but I think that also gets your game up on Steam, which you'd end up paying anyway.

    If you intend release for mobile then EOS would be an alternative.
     
  35. r31o

    r31o

    Joined:
    Jul 29, 2021
    Posts:
    460
    So, EOS transport is ready?
     
  36. zKici

    zKici

    Joined:
    Feb 12, 2014
    Posts:
    437
    Not yet @WinterboltGames is working on it, has been postponed for the time being.
     
    WinterboltGames likes this.
  37. Quast

    Quast

    Joined:
    Jul 5, 2015
    Posts:
    560
    Two points:
    - After installed Fish-Networking, I get errors from "MirrorUpgrade.cs"
    The type or namespace name 'Mirror' could not be found
    I deleted the folder and now is working. Is this fine?
    - The link on the asset page "Forum" is broken.
     
  38. SkullSameh

    SkullSameh

    Joined:
    Mar 29, 2020
    Posts:
    3
    where I can check for the announcement of EOS?
     
  39. r31o

    r31o

    Joined:
    Jul 29, 2021
    Posts:
    460
    If firstgeargames doesnt announce it here, it will be on the discord server (Link on the first post)
     
  40. Punfish

    Punfish

    Joined:
    Dec 7, 2014
    Posts:
    340
    Which link is broken?

    And that error occurs because you had mirror installed previously and didn't wipe the Mirror defines. There's a menu option to do this for you under Fish-Networking.
     
  41. Punfish

    Punfish

    Joined:
    Dec 7, 2014
    Posts:
    340
    EOS is still in development. We were hoping to release by early August but missed that deadline. When it is released there will definitely be an announcement here and on our discord as well.
     
    r31o likes this.
  42. Zilk

    Zilk

    Joined:
    May 10, 2014
    Posts:
    329
    We are in early pre-prod of a new title, 4 player online co-op game and have some questions. We are aiming at having a match making server and then have players host their own servers to avoid such high server costs.

    • Is there any solution for matchmaking?
    • Does it support all platforms (for punchthrough etc), Playstation, Xbox, Switch, PC?
     
  43. r31o

    r31o

    Joined:
    Jul 29, 2021
    Posts:
    460
    Fish Net has a lobby and worlds sample, but I think that it is pro only, and I think that there is also another lobby sample that works with all networking solutions, IDK if that is paid or not (Or if exists)

    The second answer depends on te transport you use. If you are interested on Xbox and PlayStation, I think the default transport works on consoles, but you will need dedicated servers. EOS transport is in development, and it will support consoles (since EOS itself supports consoles) if you chose EOS, you will also have matchmaking.
     
  44. Punfish

    Punfish

    Joined:
    Dec 7, 2014
    Posts:
    340
    There's a few options for match making. All platforms are supported.
     
  45. Punfish

    Punfish

    Joined:
    Dec 7, 2014
    Posts:
    340
    FishNet 2.4.1 had been released with an improved version of the PredictedObject component, as well several other improvements and features.

    A student has recently performed an independent performance benchmark which includes FishNet and several other networking solutions. Results can be found here
    https://github.com/hpcvis/MuVR/tree/benchmark/base
     
    WinterboltGames likes this.
  46. r31o

    r31o

    Joined:
    Jul 29, 2021
    Posts:
    460
    Can I have a project for the server and another project for the client with Fish-Net?
     
  47. Punfish

    Punfish

    Joined:
    Dec 7, 2014
    Posts:
    340
    Yes, but we do not generally recommend it because it makes development more challenging.
     
  48. r31o

    r31o

    Joined:
    Jul 29, 2021
    Posts:
    460
    And, how things like transforms will be synced? I need to have, for example, the player prefab exactly named on both projects? Can prefabs have different component or different child gameobjects?
    Would that work with Lobby and Worlds?
     
  49. Punfish

    Punfish

    Joined:
    Dec 7, 2014
    Posts:
    340
    Not exact, but near identical yes. The components can be different but they must be in the same order, as well the RPCs and SyncTypes within them.

    This is something we considered improving the work flow on but realized in the long run it's generally more beneficial for the developer to either use one project, or when using two projects stick to broadcast and manage objects themselves.
    We pulled our attention away from this topic when built-in code stripping was introduced to FN, since the reason most do separate projects is for security. Because of this, even though we do technically support dual projects, we pulled it from the features list since it's not recommended.
     
  50. Punfish

    Punfish

    Joined:
    Dec 7, 2014
    Posts:
    340
    Fish-Networking already uses 67-87% less bandwidth than it's closest competitor. In a future update we can bring that number to 95%+ less!

    Here are two gifs comparing FishNet now, and a proof of concept for the future.
    You are seeing 50 objects, and 1 client, with an update rate of 20Hz.
    Displayed values are the entire packet, header and information.

    Before: before.gif
    After: after.gif
    We look forward to continue providing you with the best free networking solution on the market!