Search Unity

Why no official UNET tutorial in the learn section

Discussion in 'General Discussion' started by pKallv, Nov 7, 2015.

  1. pKallv

    pKallv

    Joined:
    Mar 2, 2014
    Posts:
    1,191
    Just wonder why there is no tutorial section for networking, UNET?

    Is there any official UNET tutorials available in the tutorial section?
     
  2. Kiwasi

    Kiwasi

    Joined:
    Dec 5, 2013
    Posts:
    16,860
    Really? Wow.

    That's a big hole in the market I should be exploiting.
     
    holliebuckets likes this.
  3. Tomnnn

    Tomnnn

    Joined:
    May 23, 2013
    Posts:
    4,148
    Why are you looking for tutorials? Did they announce that they fixed UNET? It was a mess when I used it. If you want to learn it, here's a tip from my experience, don't use the built in features that attempt to keep transforms / rigidbodies in sync. Unless you're making co-op seizure simulator, then by all means use it, the game is already made for you.
     
    Nanity and hippocoder like this.
  4. landon912

    landon912

    Joined:
    Nov 8, 2011
    Posts:
    1,579
    I also question this. I found the UNET documentation dreadfully lacking also. Overall, I can only say that I'm curious about the networking as I've found nothing to actually explain it in full.

    Maybe this was due to poor usage or configuration? It would seem like a likely explaination going off of the poor documentation of the feature. Anyways, I surely hope it's not truly as you say.
     
    Ryiah and pKallv like this.
  5. TylerPerry

    TylerPerry

    Joined:
    May 29, 2011
    Posts:
    5,577
    I'm quite sure that UNET is just in a alpha state, just without the name. Often updates happen that totally break the functionality. Tutorials exist only in the form of example projects that are posted in the forums(And often don't function/ are not what you'd do in an actual game), Googling API doesn't work(Like "NetworkDiscovery Unity" is a common one for me that never works)

    The thing with the 3rd party tutorials is that they are outdated, don't work and even at the time they were terrible and didn't teach the best ways of doing things (Because the people writing them didn't know how to use it).

    My advice for using UNET is to keep the networking code as simple as possible. If you have like 1000 lines of network specific code then you will have problems but if it's just syncing a few transforms (Learning to make the network transform work is a skill in itself :D) then you'll be fine. Always use the code as you imagine Unity would, because they change things all the time and if you are doing strange stuff it will break.

    It's totally the best networking available but can be troublesome due to lack of tutorials/resources but I think that's only because of the rapid updates and changes to behaviour that any tutorials written now will be outdated in a few months. I don't think people should write tutorials for it until its more stable because they will just cause more problems in the future.
     
    Ryiah likes this.
  6. darkhog

    darkhog

    Joined:
    Dec 4, 2012
    Posts:
    2,218
    On Unite when they were presenting UNET there was shown how to make simple game in one of the panels (it's on YT, know it for sure as I watched it but couldn't afford to be on Unite). I think it was Unite Europe.

    //edit: While I know Unity won't do this because it'd hurt their business model, I'd very like to see tutorial on how to use UNET without using Unity's networking services and while using "easy", high level synchronizing components, with optional tutorial of writing custom master server (a.k.a. server list).
     
    Last edited: Nov 8, 2015
  7. Tomnnn

    Tomnnn

    Joined:
    May 23, 2013
    Posts:
    4,148
    It works nicely if you're using it for nothing more than hosting, connecting and sending commands / rpcs. Any of the built in things for keeping track of data (syncvars being a possible exception) I have messed with a lot and found them unsatisfactory.

    NetworkTransform

    Client starts at the same position on both the server and client. You move left. The copy on the server desyncs almost immediately, picking up speed somehow. The server copy hits a wall, and the only thing in sync is the collision, so the client on their end sees that they have just rebounded off of the nothingness a few unity units away from the wall. That's in anything you setup yourself as well as the examples they have provided for us. The rolling ball demo, the 2d space shooter demo, you can see the clients move faster on the server every time. And then bounce off of nothing every time. And GabeN help you if you desire not-so-granular grid based movement. Did you just move left and then up on a grid? Well the built-in interpolation says the best way to keep that in sync is to move diagonally. So... with that example in mind... don't use the networktransform if you have complicated movements, the other users will simply see you kind of float along a path somewhere between all of the movements.

    I have no doubt it'll get better, since if you want to put in the effort to go into it blind without tutorials and write your own commands and rpcs to handle interpolation and other syncing, then it actually works out. There are always going to be issues with networking because no system is 100% latency free, so some games simply cannot be without visual bugs.
     
    Ryiah likes this.
  8. tiggus

    tiggus

    Joined:
    Sep 2, 2010
    Posts:
    1,240
    What they basically released is a buggy Photon with a unknown price that will kick in at some point. The lack of nat punchthrough kills it for me but the basic tests I ran I had issues similar to Tom, I think "alpha" is a good way to put it for now.
     
    Last edited: Nov 8, 2015
    Tomnnn likes this.
  9. landon912

    landon912

    Joined:
    Nov 8, 2011
    Posts:
    1,579
    @tomnn && @tiggus well that's disappointing to say the least. I was hoping to use it in the near future. Oh well, hopefully there are some fixes soon before I really have to dig into it.
     
  10. Tomnnn

    Tomnnn

    Joined:
    May 23, 2013
    Posts:
    4,148
    I think this was stated actually. Didn't they say there was a lot more work to do in the 5.x cycle?

    I encourage you to make something small and unrelated to what you were planning. Plan something small and make use of syncvars, hook functions on those syncvars, rpcs and commands. Then you'll have a grasp on the current strengths. Make a cube that moves up and down, and sync it on 2 instances of unity, or something similar.

    It might be alpha, but it's still cool that it's so easy to use. Maybe trying it out will inspire you to make something that doesn't require syncing beyond making decisions, maybe... something turn based.

    --edit

    Oh, and if you do make something, open up advanced options and play with different send modes, send rates and send channels!
     
  11. theANMATOR2b

    theANMATOR2b

    Joined:
    Jul 12, 2014
    Posts:
    7,790
  12. pKallv

    pKallv

    Joined:
    Mar 2, 2014
    Posts:
    1,191
    TylerPerry likes this.
  13. darkhog

    darkhog

    Joined:
    Dec 4, 2012
    Posts:
    2,218
    Well, either out of date or too up to date (i.e. mentioning stuff in beta/upcoming 5.3).
     
  14. willgoldstone

    willgoldstone

    Unity Technologies

    Joined:
    Oct 2, 2006
    Posts:
    794
    Hi everyone,

    Full disclosure time!

    So we haven't had a networking series on the tutorial section yet because of a few reasons -

    a) as Networking was being developed, we were waiting for some stability in various aspects - API, the service etc because when we make tutorials we need to think about production time versus longevity of the validity of the content. With this hitting around 5.1 we were still mopping up various tasks related to 5.0 features.

    b) we have also been training our team on Networking as it's not something we have had specific engineering effort around in the past on the tutorial side - we hadn't intended to make raknet tutorials as we knew the new system was coming for a couple of years. The way our team works to create tutorial content is to have developers of the feature train our team members on how to use it and also the implications of using it. With Networking this is a HUGE topic - and we've been wrestling with getting the right understanding of networking. We then have our programmers work with our trainers to find a way to teach it best.

    This is where we are at now - writing content that we think is crucially -

    i) setting expectations of what you can do with networking
    ii) making content that's simple enough for beginners to build interest and understanding of our features
    iii) making content that's going to make it clear that there are no magic bullet solutions to using Networking for certain scenarios - we want to be responsible here and give you simple examples using the High Level API, which a clear distinction which makes it clear that detailed work should be done to make a fully fledged game.

    What's next?

    Right now we're pushing an update with a load of fixes to our Lobby sample package on the Asset store, it should be approved by tomorrow. This contains a small asteroids game which replaces previous example Pong. Download it with 5.2 here (5.1 users will see the old package) -

    https://www.assetstore.unity3d.com/en/#!/content/41836

    Thanks everyone for your patience and as ever we appreciate you folks in the community who have been supporting one another on features as they mature like this,

    Cheers all

    Will
     
    Last edited: Nov 12, 2015
  15. Tomnnn

    Tomnnn

    Joined:
    May 23, 2013
    Posts:
    4,148
    Hi!

    Aww yis!

    Speculation was accurate, cool.

    Explains the desync in the demos :p Although I'm sure that's partially due to the first reason as well.

    That's exciting.
     
    gameDevi likes this.
  16. landon912

    landon912

    Joined:
    Nov 8, 2011
    Posts:
    1,579

    Thanks for communicating.
     
  17. pKallv

    pKallv

    Joined:
    Mar 2, 2014
    Posts:
    1,191
    Thanks for communicating!
     
  18. hippocoder

    hippocoder

    Digital Ape

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    Nice one, Will!
     
    holliebuckets likes this.
  19. Arowx

    Arowx

    Joined:
    Nov 12, 2009
    Posts:
    8,194
    Is it possible to add a ping column to the lobby list?
     
  20. darkhog

    darkhog

    Joined:
    Dec 4, 2012
    Posts:
    2,218
    Same here. Also:

     
  21. Meltdown

    Meltdown

    Joined:
    Oct 13, 2010
    Posts:
    5,822
    Out of interest Will, why was UNET pushed out the door way before it was clearly not ready? From what I've seen on the forums its just caused a whole lot of people a lot of frustration, and having a severe lack of documentation, why was it released?

    This just seems to be the trend with UT nowadays, pushing out buggy, untested software riddled with bugs.
     
    Ryiah, darkhog, Trigve and 1 other person like this.
  22. darkhog

    darkhog

    Joined:
    Dec 4, 2012
    Posts:
    2,218
  23. Tomnnn

    Tomnnn

    Joined:
    May 23, 2013
    Posts:
    4,148
    It's also painting a very bad picture of networking. Trying UNET out of the box for a project that is supposed to be reasonably synced will turn people off of Unity for multiplayer games :p

    Not too hard to use, but holy trees, the jitters and instant desync are second to none.
     
  24. gameDevi

    gameDevi

    Joined:
    Oct 14, 2015
    Posts:
    155
    how many people do you think are working on Unet's development?

    I hope it's not going to be like the Unity's navmesh situation. It seemed to me that unity's navmesh development got put on hold for a long time. Kept as basic as possible but yet enough to say we have our own navmesh system *marketing* but not good enough for "real" use cases. you would need to purchase another asset.
    unity's staff would just reply "You can purchase X asset on the store".

    I'm expecting to see "You can purchase Forge Networking on the asset store" instead of making Unet awesome.

    After years of using Unity I now understand why the experienced users was saying "Unity is good for prototype or for making very basic games." Keep it simple the less Unity will break. lol

    we've ditched over 4 projects and now we're making it so simple that it's as basic as crossy road lol .

    We don't use Unity's Navmesh. (featureless)
    We don't use Unity's Terrain system. (poo)
    We don't use Unity's Post effects (poo)
    We don't use Unity's input system (no one does)
    We don't use Unity's Unet. (we tried it but only good for marketing material and presentations at Unite)
    We don't use Unity's GI bakes (too many problems here)

    It's got me thinking that all these problems might be a good thing after all. Business wise it's better to make a simple game successful then it is to make a complex one. Less time to find out if your game sucks or not. :p

    I think that half of my more complex projects probably would've failed anyway and that wouldn't have been Unity's fault.

    So am I pissed = Nope
    Have I seen the light = Yes but with no GI
    Conclusion = Keep it simple your game probably would've sucked, better to know sooner than later.
    Feelings = Happy Yey!
     
    Last edited: Nov 16, 2015
  25. Kiwasi

    Kiwasi

    Joined:
    Dec 5, 2013
    Posts:
    16,860
    theANMATOR2b likes this.
  26. hippocoder

    hippocoder

    Digital Ape

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    That's all true, but the unfinished parts of Unity do make it more difficult to make ambitious titles than it needs to be. Plenty of paint points.
     
    Kiwasi likes this.
  27. Tomnnn

    Tomnnn

    Joined:
    May 23, 2013
    Posts:
    4,148
    I like that.
     
  28. Andy-Touch

    Andy-Touch

    A Moon Shaped Bool Unity Legend

    Joined:
    May 5, 2014
    Posts:
    1,483

    About 5.

    Not true; games such as Cities Skyline, Kerbal Space Program, Hearthstone, Angry Birds 2, Besiege, Volume and Assassin's Creed Identity are all made with Unity and are fairly complex games to create.

    Im curious, what games were you trying to create?

    If you look at our roadmap and dev talks from Unite; you'll see that we are working on updating/bettering all of those.


    Why would it be our fault? :) There are hundreds of other factors thats fault it could be (Being too ambitious, not having the right skills, not optimising early, not hiring the right people for the role etc)
     
    theANMATOR2b likes this.
  29. Tomnnn

    Tomnnn

    Joined:
    May 23, 2013
    Posts:
    4,148
    I think the complaint is that they all exist with a similar quality, rather than having fewer of those in a better state.

    Maybe that was an argument regarding closed source for unity / the listed features. If you use navmesh navigation and there are issues, who else can be blamed?
     
  30. ShilohGames

    ShilohGames

    Joined:
    Mar 24, 2014
    Posts:
    3,021
    One thing that would really help is if Unity set up several community based projects that relied only on core Unity features (no 3rd party assets). That would give interested developers a chance to work together on a cool community based project, and (most importantly) it would help Unity get a better idea of the real pain points that currently exist in Unity 5. These community based projects could be similar to how Epic has community based development of Unreal Tournament, but not limited to only FPS games. Maybe Unity could set up several community based projects that addressed several popular genre (FPS, RTS, RPG) that forum users have expressed interest in. These community based projects could also serve as a content source for tutorials and marketing.

    Anyway, this would be a fantastic way to drag some of the currently problems out into the open. If the Unity community was trying to build a game similar to Unreal Tournament, then I am guessing the issues with UNET (and input, terrain, etc) would have been resolved already. The short list of issues that gameDevi posted above is an excellent start. If there were large Unity community based projects that needed to use only Unity's included features, then those core features would rapidly improve.

    Andy Touch is right that there are some obviously successful titles that were done in Unity. And titles like Cities Skyline, Kerbal Space Program, Hearthstone, Angry Birds 2, Besiege, Volume and Assassin's Creed Identity are great examples. But we don't know how many 3rd party solutions (either from the asset store or custom) needed to go into those titles for things that should be considered built in features of a game engine. For example, what is the biggest title that uses Unity's UNET?
     
    Arowx, pKallv and Tomnnn like this.
  31. CaoMengde777

    CaoMengde777

    Joined:
    Nov 5, 2013
    Posts:
    813
    UNET is viable for simple LAN implementation on simple games though right? ..thats all i really care about
     
  32. Meltdown

    Meltdown

    Joined:
    Oct 13, 2010
    Posts:
    5,822
    I don't know, refer to the documen.. oh wait...
     
    theANMATOR2b and landon912 like this.
  33. Marble

    Marble

    Joined:
    Aug 29, 2005
    Posts:
    1,268
    Yes. Using it requires that you change some of your Unity habits, though. For example, parenting NetIdentities with UNET is a real chore, keeping lists synchronized over the net is a drag, and using coroutines with RPCs is tricky. But whatever. If I can use a Unity solution for a tech problem, I will, because I've been burned too many times by ephemeral 3rd party assets.
     
    Last edited: Nov 18, 2015
  34. Kiwasi

    Kiwasi

    Joined:
    Dec 5, 2013
    Posts:
    16,860
    Yeah we do. Every great game requires a ton of custom stuff. If you only ever use built in features then your game will never stand out from the crowd. Remember everyone else has the same built in features.

    UNET is too new for any big games to have picked it up yet.
     
  35. Tomnnn

    Tomnnn

    Joined:
    May 23, 2013
    Posts:
    4,148
    Or at least no paid ones.

    Only if it's turn based so you don't notice the desync or it's co-op so the synchronization for player bodies doesn't matter.
     
  36. willgoldstone

    willgoldstone

    Unity Technologies

    Joined:
    Oct 2, 2006
    Posts:
    794
    Hi folks

    Just wanted to update you as soon as we had something - we now have the first of many future networking tutorials. You lot have been asking for written content too so we focused on that. In this first example we are aiming to deliver a simple game to get newcomers into the concepts of working with our networking system, creating a simple 2 player shooter.

    http://unity3d.com/learn/tutorials/topics/multiplayer-networking

    Feedback always welcomed!

    Will
     
  37. Tomnnn

    Tomnnn

    Joined:
    May 23, 2013
    Posts:
    4,148
    Sorry to make so much noise here. I don't even use Unity for the server side of things :p But that's not a desirable option for everyone, so great to see news here!
     
  38. tatoforever

    tatoforever

    Joined:
    Apr 16, 2009
    Posts:
    4,368
    As of now UNET parties are hosted by players themselves, thus is not a server-authoritative system. Not sure about the future though.
     
  39. Tomnnn

    Tomnnn

    Joined:
    May 23, 2013
    Posts:
    4,148
    I'll give unet a try if I can connect to my friends over bluetooth. Adhoc & LAN 4ever!
     
    tatoforever likes this.