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.
  2. Dismiss Notice

What are uNet's advantages over Photon/Forge/others?

Discussion in 'UNet' started by UnbreakableOne, Nov 4, 2015.

  1. UnbreakableOne

    UnbreakableOne

    Joined:
    Nov 16, 2013
    Posts:
    168
    Hi,

    Lack of documentation and proper examples is driving me nuts. I know network code is hard but I don't believe it should be this hard. I'm trying to add real time multiplayer to my game and every simple step is a big headache and caused a lot of burnout recently.

    So I'm considering to move to more stable and well-documented solutions like Photon.

    So I was wondering, what are the advantages of uNet, beside obvious ones like native out-of-the-box support, over 3rd party solutions like Photon.

    Thanks.
     
  2. Ashkan_gc

    Ashkan_gc

    Joined:
    Aug 12, 2009
    Posts:
    1,102
    There are many actually. Type safe RPCs, Potentially better performance over time (we did not do any performance testing yet however)
    - smart state synchronization
    - Support for host migration
    - support for instantiating prefabs outside of resources folder.
    - over Photon it has support for unity based servers however PUN can do that partially, I'm not sure on how many platforms PUN is supported.
    - More advanced prioritization/culling by providing easier to use callbacks (this is subjective a little)

    Also uNet programmers are progressing so fast however Photon server as server technology did not change that much after release of Photon 3. They are a good and stable solution specially if you don't want to use PUN because PUN lacks many features of uNET, It's RPCs are harder, doesn't support easy client and server separation, has less quality of service channels and ...
     
  3. UnbreakableOne

    UnbreakableOne

    Joined:
    Nov 16, 2013
    Posts:
    168
    Thanks Ashkan,

    What would you say potentially about Forge (and other solutions like uLink) ?

    Also, what tech would you recommend for a fast paced game?

    Honestly speaking, uNet is giving me all kinds of troubles and seeing people having problem with more advances questions makes me worried that if it's a good choice at it's current state for a production game and maybe more stable and well-documented ones would do better.
     
  4. Ashkan_gc

    Ashkan_gc

    Joined:
    Aug 12, 2009
    Posts:
    1,102
    IMHO
    Well I don't know about Forge, I did never used it. About uLink, We are not developing it anymore and it is on maintenance mode. So new projects should not be started using it. It has some of the Photon problems and some features which uNet doesn't have. It has multi server games supporting handover of players from server to server so you could make multi zone games and it had a lobby and an instance manager with support for Riak NoSQL database but as a board member of MuchDifferent I advice you to not use it unless you are happy of buying a license and getting the source code.
    About uNet's stability I think it will be very stable in march/April if they keep the pace with bug fixing.

    Also in general I think most of these competitors will be faded away by uNet in a year or so but it is just my opinion. Performancewise or stabilitiwise other solutions like Photon might be better at the moment however.

    Forge itself is new and might have issues as much as uNet but since the number of users is less, You'll see less issues brought up.

    Unfortunately Unity is declaring features stable a little soon maybe but uNet should be very stable at 5.3 or at most 5.4 release time. For fast pace games it gives you nearly all of the controls you need on sending messages both regarding what bytes to send over the wire and regarding the quality of service.
    For things like input you want to do 1-2 retries and for position updates you would want fully unreliable messages and for some other events you might want fully reliable ones. Also its state sync technology can replace many reliable messages because you'll eventually get the update and it is enough for many games.

    The only low level feature missing (stability aside) is prioritization of messages by not only disabling them but being able to set priorities for packets like what the "I shot you first" video from Halo team on GDC vault shows. Take a look at that video on GDC vault. It will help a lot. Also read the old paper from 2000 which they reference. It's damn good.

    END_IMHO
     
  5. imtrobin

    imtrobin

    Joined:
    Nov 30, 2009
    Posts:
    1,548
    Is that official ulink is not longer in active development?
     
  6. Ashkan_gc

    Ashkan_gc

    Joined:
    Aug 12, 2009
    Posts:
    1,102
    @imtrobin Well I announced that we are going maintenance mode in the forum thread about uLink 1.6 beta.
    There is no official post because we did not decide how to distribute source code to current customers and ... Hopefully we'll do in the next board meeting.
     
  7. imtrobin

    imtrobin

    Joined:
    Nov 30, 2009
    Posts:
    1,548
    I see. I'm a customer, have not used it yet, was saving for future so did not follow it closely.
     
  8. hippocoder

    hippocoder

    Digital Ape Moderator

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    unet's primary advantage is that it is from what I can see, well engineered at the LLAPI. The HLAPI is a shocker though, and needs much love as well as hand holding docs and tutorials for those of us who are absolutely rubbish.

    As logically those are coming, it's just a waiting game before unet dominates. The only place where unet will fail is if it turns out too expensive or too restrictive to run in a production scenario.
     
  9. imtrobin

    imtrobin

    Joined:
    Nov 30, 2009
    Posts:
    1,548
    Frankly, given previous experiences, I doubt Unet will be production ready till a very long time. I would look for a more engine independent networking solution, as my future projects might not be in Unity.
     
  10. UnbreakableOne

    UnbreakableOne

    Joined:
    Nov 16, 2013
    Posts:
    168
    Thanks for the in depth reply.

    I really want to stick with Unet as well but I feel myself stuck at small problems for a long time that makes me really reconsider my choice. My gut feeling is still with Unet but my everyday experience is proven otherwise.

    Also going towards technologies like Photon that will fade away soon, as some people guess, does not seem very logical.

    What makes you say that?
    Also, do you have any recommendations with the "engine independent networking solutions" ?
     
  11. hippocoder

    hippocoder

    Digital Ape Moderator

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    Photon.
     
  12. imtrobin

    imtrobin

    Joined:
    Nov 30, 2009
    Posts:
    1,548
    Well, beause I've been using Unity since 3x. Most of the shiny features does not work well together in production, even after years since they were introduced.

    Why do you think Photon is going away? There is Photon Server, but it's windows based, that's the only issue. The other is Smartfox. I used to use Raknet in C++ before I switch to Unity, but I don't think he's actively developing that anymore.
     
  13. tobiass

    tobiass

    Joined:
    Apr 7, 2009
    Posts:
    3,018
    Ashkan: Thanks for having a low opinion about our stuff, as usual :)

    Don't worry about 3rd party solutions as soon as someone is announcing something new and shiny. There is a lot of room for competition in everything that's software related.
    Unet has great ideas and some really nice features. It's becoming better over time, too. However, it's not a miracle either. For mobile games, it needs the relay service and some servers, e.g..

    Aside from that, Photon is not tied to Unity directly. It is used across a wide range of engines, including Unreal, which has a proven networking solution built-in for years.


    @UnbreakableOne: You should probably describe your requirements. Do you need server side logic, AI, persistence? How many players can interact (room-based game or seamless world)...?
     
    hippocoder likes this.
  14. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    @UnbreakableOne Hi there! :D

    As seen in our latest announcements, we are launching Forge Free, so in a couple of days you'll be able to test out Forge for yourself and evaluate it, we've got nothing to hide. As much as I like hearing about Forge being the "underdog" and the "new guys on the block", being on the top of the networking section in multiple categories for 2 months running, there has to be a reason right? There has to be a reason that we could launch this year and be named next to all of the serious big time networking solutions every time, right? I can't tell you the reason specifically because I'm extremely bias, but feel free to ask our community, we will even invite you to Slack to talk to them if you wish.

    What Forge is? Forge is a networking solution that is built in pieces like a puzzle. Our networking layer is abstract from our Unity layer. This makes it extremely easy to pull out and use it with any platform. We are open source, we give full GitHub access to developers to do pull requests, we have over a thousand developers using Forge. We release updates (normally) around 2 times a week and we are active in all of our communities.

    uNet is operated by Unity, a big company that spends a lot of time on many different things. Why is this big company having so many issues with uNet? I can't tell you, we have literally about 100+ users who left uNet to come to Forge for many reasons. Unity is not perfect or flawless, this is why they look to developers like us to help build tools for their beautiful engine :D

    When you use Forge, you are not a customer to restrict, or forget about, you are a part of a quickly growing community that simply loves building games that bring friends (and rivals) from all over the world together to have a fun time and forget about their worries for a little bit of time. We believe in every game on our platform, small and large. We care about developers, but again, don't ask me, ask the community :)

    Send me a PM if you want to know more. Either way, thank you for being a developer that wants to be a part of connecting people around the globe! :D
     
    Last edited: Nov 10, 2015
  15. djoshi

    djoshi

    Joined:
    Mar 28, 2014
    Posts:
    182
    @UnbreakableOne Hi!

    If you want for mobile games then you can use our Plus Networking - cheap, easy, stable & permanent(Pay once) solution for multiplayer networking using Google RTM.
    > Very easy to setup(2-Page Doc, Use 3 components & you are done)
    > No server or services(Paid) headaches
    > Also you can use FREE features like Quickmatch, Invitation, Connection via bluetooth, Save game data etc.

    For more info : http://forum.unity3d.com/threads/in...ng-solution-to-google-rtm-for-unity3d.365375/
    Asset Store : http://u3d.as/k9h
     
  16. awaterpistol

    awaterpistol

    Joined:
    Sep 3, 2015
    Posts:
    25
    At the moment, Photon is the best in my opinion. However, come Unity 6 when uNet has all it's features (such as master server) then I see Photon being left behind. However, I'll always choose Photon as I have thus far. I personally don't like how complicated it was to get uNet syncing without lag. Everyone says so little code for quick setup. But Photon works out the box (and documents syncing).

    Maybe when uNet is documented better with better examples and has a master server, people will consider it. But just now, they're relatively similar.
     
  17. snacktime

    snacktime

    Joined:
    Apr 15, 2013
    Posts:
    3,356
    People tend to equate networking with everything that goes into a game's backend, which just isn't the case for a lot of realtime multiplayer games. And all the other stuff outside of networking, Unity isn't going to go there.

    Unet doesn't solve how you design your server architecture to deal with things like persistence or what higher level abstractions you use to handle server side game logic. It doesn't handle how to scale. If you take a more complex game like a moba or mmo, the networking stack is just one small part of your larger system.

    With Game Machine I'm actually looking at using Unet to handle the client side networking. It's such a small part of my overall platform I only gain by letting Unity handle that part for me. Especially on the mobile/console side of things. Unity will never compete with 90% of what Game Machine does, it's not their focus.

    It's kind of the same deal for Photon also, they do a whole bunch stuff Unity will never touch.

    Plus you have the whole issue of support. If I'm running a large commercial game, I kind of want a company that is focused on server tech for that side of things. No offense to the Unity guys, but that is not the focus of their company. The accumulated knowledge of running backend systems for multiplayer games is going to be much higher in a company like Exit games.

    This whole idea that Unet will replace everyone is ridiculous on it's face and should really just die in a fire.
     
    CarterG81 likes this.
  18. UnbreakableOne

    UnbreakableOne

    Joined:
    Nov 16, 2013
    Posts:
    168
    I've made a fast paced 2D shooter game, imagine something like Quake 3 Arena (or Call of Duty if you are younger ;) but in 2D and it works great in local multiplayer on one machine and I'm trying to make it work over the Internet.

    The project got greenlit and will launch on Steam but we've heard some good things about releasing on PS4 and Xbone as well, that's why I'm concerned with console compatibility of the chosen network solution.

    We've tried PUN and UNet so far and they seem like each other for our needs. My main problem with those is PUN is somewhat pricey for us and we rather not worry about CCU and more importantly, ping.

    We live in Middle East and I want to see my friends play the game but since, from what we understood at least, every message from a client goes to a Unet/PUN server and then comes back, we have +280ms delay and it's a disaster for our game and makes it not playble. I thought PUN/UNet would connect people directly, hence P2P, and use Relay Servers as a last resort but apparently it's not the case.

    Also I'm new to Network programming (but I'm a 8+ years indie dev) and need help and support but apparently there is not much to find. UNet's documentations are almost non-existent and PUN's forums are not that responsive.

    For the third networking package, I'm currently playing with Forge and learning how it works.

    Best thing I found with it is that it connects people directly and I have almost instant result when testing on my machine and it's great. I believe that's how recent Call of Duties work, they ask you to open your NAT and then connect people directly and do host migration. My problem is now is how to have a master server so two people can play together.

    I have several concerns with Forge as of now is that what happens if two people cannot connect directly, either behind a firewall or NAT problems. Is there a Relay Server? Is there another solution? What happens?

    I've followed their TicTacToe walk through and it was somewhat good. Now have to find out how to integrate Forge into my game.
     
  19. awaterpistol

    awaterpistol

    Joined:
    Sep 3, 2015
    Posts:
    25
    Are you using Photon Server or PUN? If you're using PUN you could switch to Photon Server (basically the same) [or realtime] and use that. The problem with that is you're hosting your own servers. Although eventually every company begins to host their own infrastructure. Photon Server also comes with 100 CCU free, rather than 20 CCU on PUN free.
     
  20. UnbreakableOne

    UnbreakableOne

    Joined:
    Nov 16, 2013
    Posts:
    168
    We were using PUN but my main problem is all data going through servers and we rather not host one, if we can avoid it.
     
  21. awaterpistol

    awaterpistol

    Joined:
    Sep 3, 2015
    Posts:
    25
    So you don't like data going through hosted servers but you don't want to host one yourself? Isn't that a never ending loop?
     
  22. hippocoder

    hippocoder

    Digital Ape Moderator

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    I think you're probably overthinking this. Unet works fine for connecting two people. Use the NetworkHud to control who to connect to and open a port. Done. "Lan" works for the internet as well, it just refers to the fact you need an unblocked port and an ip, as in classic Quake3.

    One of the machines is then a host (which is a server running alongside a client on the same machine). Other machines are clients.
     
  23. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    @UnbreakableOne Thanks for giving Forge a try! :)

    We actually provide a master server as a part of the Forge package :). We also have a Master Server alternative on the website once you login with your account into your profile.

    The master server actually doubles as a NAT hole punching router :). I have written about NAT hole punching in general on though.

    Feel free to ask the community on slack or post bugs/suggestions on our Epic :).
     
  24. UnbreakableOne

    UnbreakableOne

    Joined:
    Nov 16, 2013
    Posts:
    168
    I like to link people directly and if that's not possible, use a Relay Server (or any kind of server) to deliver the data to them.
     
  25. UnbreakableOne

    UnbreakableOne

    Joined:
    Nov 16, 2013
    Posts:
    168
    would you please explain more about this master server? I've read your NAT Hole Punching post.

    I want to know what Forge does when players are unable to connect directly. I think the only option is to use a server as relay, if that's what Forge does, what if we have 2 of them, one for Americas and one for another continent.

    also, are Mobile users that are not on same network be able to connect directly to each other?
     
  26. UnbreakableOne

    UnbreakableOne

    Joined:
    Nov 16, 2013
    Posts:
    168
    It's not as simple as this. You just described the best possible running scenario but it's most likely not to happen like this.

    When I was dabbling with UNet, I could not get two people connect directly. Even on same machine that both host and client are, it was sending packet to the UNet server and back.

    I want people to connect directly so if two are playing from Middle East and has poor ping speed to UNet servers, be able to have descent ping times when connecting to each other. Like how modern Call of Duty games are, they have a master server for book keeping and tells people to open their NATs, chooses one of clients and runs server on them (to become a host) and finally connects others to this host. That's exactly what I want to do since my game is very fast paced and high ping kills it.
     
  27. hippocoder

    hippocoder

    Digital Ape Moderator

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    You're referring to a relay server, which Unet currently supports. Are you sure you have the right port set up for unet? Also using any of the "Use Network Simulator" stuff will cause it to fail when connecting to the same machine (depending on if unity editor is the host or a client). Probably a bug.
     
  28. arkhament

    arkhament

    Joined:
    Jan 24, 2015
    Posts:
    114
  29. UnbreakableOne

    UnbreakableOne

    Joined:
    Nov 16, 2013
    Posts:
    168
  30. UnbreakableOne

    UnbreakableOne

    Joined:
    Nov 16, 2013
    Posts:
    168
    Yes, I mentioned Relay support of Unet. Problem with Unet is I could not avoid it by connecting two instances directly with open ports. Does Unet support that?
     
  31. UnbreakableOne

    UnbreakableOne

    Joined:
    Nov 16, 2013
    Posts:
    168
    I just renamed the topic to demonstrate comparison with assets other than Photon.
     
  32. hippocoder

    hippocoder

    Digital Ape Moderator

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    Yes it's how we do all our 6-8 player matches. I just open my port and provide them my ip : port in the executable and they click join and here they are.

    Probably your particular code reveals bugs or something, best report and keep in contact with the developers.
     
    Last edited: Nov 18, 2015
  33. UnbreakableOne

    UnbreakableOne

    Joined:
    Nov 16, 2013
    Posts:
    168
    Good for you but I think Forge will be better in 2 ways: 1) It will help us run our servers whenever we want, so ping times will be lowered for local players and 2) They are faster at developing tutorials and responses. My Unet question topics are still unanswered.
     
  34. hippocoder

    hippocoder

    Digital Ape Moderator

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    Why "good for you" ? is it because of the forum code inserting a stupid smiley?
     
  35. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    The master server will act as a both a host listing and a routing server. So when a player requests to connect to a server that is designated to be behind a firewall then the master server (having a line open with the server) will tell the server to try to connect with the client, while telling the client to try to connect to the server. In this exchange a hole will be opened on the server for that client as it is trying to communicate with it.

    If you had 2 it wouldn't matter because when the game communicates with a specific master server, since the master server tells the target server to communicate with the client it is a direct invocation :).

    Mobile devices (not on WiFi) are not blocked by a firewall from my understanding, this may be up to the carrier though. If you are talking over WiFi then the principals are the same as if it was a desktop machine on the network :)
     
  36. zKici

    zKici

    Joined:
    Feb 12, 2014
    Posts:
    437
    Great topic here,

    Just to get a clarification by any one of you, especially @hippocoder
    "Yes it's how we do all our 6-8 player matches. I just open my port and provide them my ip : port in the executable and they click join and here they are."

    I'm working on a mobile game,

    The best scenario to describe the mobile game is "moba" style.

    1 - The player is the host (server)
    2 - Up to additional 9 players can join the host (1) - a total of 10 players (1 being the host)

    Now, is this possible via uNet?
    What specific approach is this, a relay server?


    If not, what are my other options, I've read about PUN+ and I am not sold that that's the approach for this game.

    Eventually there will be a "lobby" presenting all the "hosted" games sorted by lowest ping - which other players can join to.

    Also the game will obviously have the capabilities to Lan connect and/or via WiFi or Mobile network data.

    Sorry to hi-jack the topic, but help would greatly be appreciated regarding this.

    More info regarding the game: The player character position will be updated, and up to 2 projectiles at a time per player within 10 seconds, is this at all possible for mobile?

    Thank you all.
     
    Last edited: Jan 13, 2016
  37. Ashkan_gc

    Ashkan_gc

    Joined:
    Aug 12, 2009
    Posts:
    1,102
    @tobiass I had no bad things in mind and to be clear I was just talking about PUN and not photon server.

    Yes I think PUN will find it hard to compete with uNet over time, Some competitors might stay on the market (PUN included, bolt has a higher chance to me) but photon server is surely stable and nice and does its job well. I've considered using it for a project as well. This game machine thing, I was thinking of making a similar system using Microsoft project Orleans and use photon server as frontend for games to connect too.

    Sorry if I meant it another way. For some kinds of game services and some kinds of games you are the perfect solution but PUN vs uNet, I don't think in the future PUN will stay competitive.
     
  38. Ashkan_gc

    Ashkan_gc

    Joined:
    Aug 12, 2009
    Posts:
    1,102
    and about photon server not adding features, yes that is true, I guess you have to develop a lot of client SDKs and that's only natural and maybe you don't want to add stuff to photon server and it's good at what it is doing. again no bad intentions. People come and go. We came and went and .. big world captured by war gaming, monumental games, hero engine ... It's a tough industry. I hope you guys survive seriously.
     
  39. snacktime

    snacktime

    Joined:
    Apr 15, 2013
    Posts:
    3,356
    You know, when I started game machine I wanted to use .net. I've taken a hit in potential users for having it java. But at the time Orleans literally didn't exist, the tools I wanted for what I wanted to create just weren't there yet in .net. Now you have Orleans/Akka.net and a .net port of Netty, it's really to the point where .net and java are equivalent almost for this kind of thing. The edge still being that .net just still lags, it's going to be a while before the next new thing appears first in .net.

    As to Orleans, it's nice, but do look very closely at Akka.net also. I was just looking at Orleans closely for the first time for a paid game project. It doesn't have actor level supervision or failure handling like Erland/Akka do. WIth Akka I can configure things to match how Orleans works to the last detail, or not. I have that choice.

    I also found that it's really the abstractions around concurrency and the stuff like the failure handling that I ended up using the most. Originally I thought the distributed nature was the big win. It really wasn't. There are too many things that you can't distribute because of latency. You really want to keep a whole lot of things local and just scale vertically. And transparent failover is kind of a pipe dream. Distributed systems just don't do that. Not that you can't try to engineer that yourself but the distributed system is of no help with the transparent part, and frankly it's not worth doing. It's far easier to solve that problem with hardware redundancy and just be ok with going down for a short time once a year or so at most. Orleans/Akka do give you the ability to failover cleanly and automatically, and that's really good enough.
     
  40. Ashkan_gc

    Ashkan_gc

    Joined:
    Aug 12, 2009
    Posts:
    1,102
    Well if you want to scale vertically then any concurrent programming tool is good for you. I agree many things are hard to scale horizontally in games.

    About Orleans not having super vision or failure handling mechanisms of Erlang/Aka , this is a misunderstanding.

    In Orleans you can handle failures of actor messages you send (i.e. methods you call on grains) and if that throws an exception or returns an error you can handle it by calling it again or using a circuit pattern or ... The thing that doesn't exist is restarting actors after failure which is not needed in Orleans.

    And yes you can implemented Orleans or at least some parts of it on top of Akka/Akka.net but that's a huge amount of work but if you prefer the choice, I don't have much to say.

    If you want to use Akka probably java is a better choice since the .NET version lags behind but I really think Orleans is a huge step forward, Orbit framework of bioware tries to clone that in JVM.
     
  41. Ashkan_gc

    Ashkan_gc

    Joined:
    Aug 12, 2009
    Posts:
    1,102
    @seanr did this post lost in the forum? Can you please shed some light on this.
     
  42. snacktime

    snacktime

    Joined:
    Apr 15, 2013
    Posts:
    3,356
    The goals of Orleans and Akka are just different, I really don't see either one as a huge step over the other. They are both intentionally targeting different user bases and to some extent different sets of problems.

    This is really the best comparision I've found. Admittedly by one of the Akka authors but much less hand wavy then most other stuff you find.

    https://github.com/akka/akka-meta/blob/master/ComparisonWithOrleans.md
     
  43. Mr.Tura

    Mr.Tura

    Joined:
    Nov 18, 2015
    Posts:
    10
  44. Ashkan_gc

    Ashkan_gc

    Joined:
    Aug 12, 2009
    Posts:
    1,102
    @snacktime Yes I saw that article, There are multiple inaccuracies in it and Gabbi and I were discussing sending a pull request a while back.

    The part about failure management incorrectly says Orleans can not handle software failures while it can handle all software failures which Akka can.

    the isolation part also says Orleans always serializes messages while it is not true and if you mark arguments as [Immutable] then it will skip copying just like Akka does.

    The article has biases and good points as well.
     
  45. Justice0Juic3

    Justice0Juic3

    Joined:
    Apr 29, 2013
    Posts:
    188
    I agree with you, UnbreakableOne. They said it (UNet) would make networking somewhat easier, but even the most simple additions to my game take redicilous much time and not even get it work properly.
    Something I'm really stuck with is playing Audioclips over the network (and letting them hear on both sides: Host & Clients) :(
     
  46. Ashkan_gc

    Ashkan_gc

    Joined:
    Aug 12, 2009
    Posts:
    1,102

    uNet has bugs and makes it problematic in some ways, it's not yet stable enough and all features (specially state sync) have problems but I think the main promise is actually true. It makes it easier to make networked games by the following reasons.

    - RPCs and Commands are type safe so no errors due to dynamic nature of RPCs in most other networking packages and old built-in networking.
    It has a match making server ready like Photon which old unity networking did not have and also easily allows dedicated authoritative servers as well.
    It has an easy to use and understand object ownership system
    It has a powerful and easy to use serialization system
    You can go low level if you want/need
    It is customizable in many aspects like the NetworkConnection, multiple clients and servers on same process and ...


    In other words it doesn't have many artificial limitations of the old networking and has many more quality of service types, for example sending big unreliable messages for audio is possible which is not possible in built-in old networking and many other networking solutions.

    The main problem is stability to me, If you compare it to old networking it might seem harder but if you take a look at supported features then you can see it's easier. The old networking did not have object ownership and as a result you did not have to deal with it but uNet has so it seems harder but It's harder because it's allowing you to do things inpossible before.
     
    Justice0Juic3 likes this.