Why no official UNET tutorial in the learn section

Just wonder why there is no tutorial section for networking, UNET?

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

4 Likes

Really? Wow.

That’s a big hole in the market I should be exploiting.

1 Like

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.

2 Likes

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.

2 Likes

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 :smile:) 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.

1 Like

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).

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.

1 Like

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.

1 Like

@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.

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!

Not sure if any of these links are helpful - it’s all gibberish to my animator brain :eyes:, but I thought I’d attempt to help.

http://forum.unity3d.com/threads/unity-5-unet-multiplayer-tutorials-making-a-basic-survival-co-op.325692/page-2

Is this an example of the documentation for UNET not being up to date:

http://docs.unity3d.com/ScriptReference/Networking.ClientScene.RegisterPrefab.html

In this code, from the documentation, we find this line: “myServer = NetworkServer.Instance;”. When testing this it seems like there is no “.Instance” associated to NetworkServer.

1 Like

Well, either out of date or too up to date (i.e. mentioning stuff in beta/upcoming 5.3).

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) -

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

10 Likes

Hi!

Aww yis!

Speculation was accurate, cool.

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

That’s exciting.

1 Like

Thanks for communicating.

Thanks for communicating!

Nice one, Will!

1 Like

Is it possible to add a ping column to the lobby list?

Same here. Also: