hey all…
I’ve been working on a multiplayer game for the past few months. I had everything working in my game in unity 2.6, but because of recent problems, I had to upgrade to unity 3. unfortunately, now i can’t seem to connect to any registered servers at all.
I think the master server ISN’T the problem – starting a server is fine, and I can have friends start a server, but I can’t connect to their servers, nor they to mine. If my friend starts a server, I can pretty much always detect it… but when i try to connect, Unity just fails at doing so.
the connection tester is telling me “Limited NAT punchthrough capabilities. Cannot connect to all types of NAT servers. Running a server is ill advised as not everyone can connect.”
The frustrating thing is that I had a completely dependable thing going in unity 2.6. I don’t have any specific question, I’m just looking for general advice.
is connection really this difficult? I’m on a private wireless connection on a regular residential internet service plan. I can’t imagine this working for anyone if it doesn’t work for me. very frustrating.
any thoughts? I really need someone to save my arse here. 
Thanks guys!
is everybody hosting a masterserver disabling his firewall and DMZ forwarding to the machine running the master server
cause thats what expected for such a server handlign the master server, true reachability, no pass throughs or anything to get there
This is almost certainly due to you not having the ports forwarded correctly on your router, or due to the minor changes in NAT-related stuff while initialising a network connection in Unity 3 vs 2. Try loading up the official Unity networking examples and see if they work any better, and if they do take a look at their code vs yours.
I wouldn’t ever recommend using DMZ for this type of thing, or disabling your firewall. Just configure the ports to be redirected to the machine hosting the server. That’ll hopefully fix your ability to host, but if you really can’t connect to a server that somebody else is hosting (and you’re sure they’ve forwarded the ports) then you have something like a firewall messing with your connectivity somewhere at the routing or OS level.
hey guys, Thanks very much for the replies…
xomg – alright, cheers, I’ll try all of that.
Dreamora – as a matter of fact, I’m just using the default Unity master server… which… so far, has worked well. (well, I’ve also tried using the dimerocker servers, but i can’t seem to connect to them at all since unity 3…)
the problem is with connecting to a game that’s registered on the master server… not the master server it’s self… unless I’m misunderstanding you?
I’ll post again if i find anything…
dimerocker likely is still on the U2 one yes, which won’t work (the two versions have distinct ones)
If connecting to the game listed on the master server fails, your networks potentially don’t allow nat punchthrough, in that case there is not much that can be done as in such a case, UDP will basically just not work at all. (thats why shooters and many other games use servers hosted somewhere instead of player ↔ player connections where players need to be set correctly in their network. WarCraft 3 had some serious problem with this on custom games for example)
also ensure that your game is using a reasonable port (25000+) in case you don’t do that yet 
hmm thanks, makes sense…
I’ll check my port right now.
interesting. I’ve experienced a few connectivity nighmares in various games. the thing is, I can actually connect to my friend in other, older unity games (or even in an old build of my game, made in unity 2.6) so i know it can’t be a problem with my network. I certainly have no desire to point any fingers at the unity peeps – I know that if my game works in 2.6, there surely must be something i can do to make it work in 3…
Maybe i’ll harass someone…
oh, an adendum… I tried the networking examples (imported into unity 3, of course) and they don’t work…
Thanks for the heads up. We’ll get the dimeRocker MasterServer upgraded ASAP.
hypnoslave, I think you are finding some bugs in the Unity 3 network layer that need to get sorted out.