For instance on Comcast i personally see a lot of traffic to local Boston destinations routed though New York City.Īll this really means is you cant design a system assuming NAT punch through is faster, you'd really have to test both routes and go with the optimal one. So if you're in Boston and you're communicating with someone else in Boston that's not on your LAN (and particularly not on your same ISP) it's actually quite possible your packets will be routed out of your locality to then come back to your friend that's in the same city. The catch is surprisingly major networks are tier 2, like Comcast for instance. Here's a wiki page explaining the most common issue with this assumption: Internet routing is a strange and contentious beast, and it's unfortunately not safe to assume a more local geography will have a more direct connection. The best response i have for "is NAT faster than Relay server routed packets" is maybe. I'd like to clear up some of the misconceptions I see here and provide insight into our planning with respect to internet play.įirst off there's a misconception that Relay facilitated internet play is inherently slow. That is "centralized", but you won't be able to avoid that in internet matches.Īs for LANs, I believe players are able to copy an IP address if it gets displayed to them in the right place so they don't need LAN matchmaking desperately, and if they actually do, there is certainly a way to solve that with a single broadcast message as they did "in the old days". I believe that a supersimple script on a server might be fairly enough to just list currently available multiplayer hosts that are looking for players. As for matchmaking, I thought about it for some time, and I don't see how a matchmaking service like the one from unity could serve what you are aiming for (which is, by chance, what I aim for as well). OpenNAT would be better, but it is a fork rewritten for C# 4.5, so using that in Unity won't happen for a while. But it works, and once you have implemented it, you don't need to care any more. It isn't the fastest, and it certainly "does everything for you". There is MonoNAT (which I already use for my game), a C# library in its heart, but the implementation isn't that hard. I am back to the old unity network again :/ On the other hand UNET is simply unusable so far. It will connect them locally if possible and uses NAT punch through if needed. RaKnet and the old network handled that just fine. The point of a matchmaking system is to connect player for me. That is the reason to use a match maker in the first place! The point is I don't know if the connection users are in one LAN or not. And even if they have a server in New Zealand it will still cause a massive drop in latency for no benefits (except for Unity as you will need to pay for a not actually needed relay system). If I play with someone else in New Zealand it will still relay all the data to the US simply to get around the NAT. The LAN example was just to show how useless the new system is. A proper library that can connect people through NAT usually is able to recognize if this isn't needed in the first place. If not, is it possible to make my own with the Message system? (I already have a MasterServer)Ĭlick to expand.Sorry I didn't express myself clearly enough. Is there going to be NAT-punchthrough implementations? Is there going to be UPnP implementations? (Or are there any out there?) I already have a MasterServer set up that holds the hosts, and was wondering if the punchthrough would work with the message system in UNET? Or maybe a NAT Punchthrough implementation is coming, like with the old RakNet? I also looked up NAT Punchthrough (Or UDP Hole-punching), and figured that might be a good alternative, but less reliable. Are there going to be any UPnP implementation? I tried looking around for some C# implementations to use in my project, but I couldn't get them to work, probably because of my inferior knowledge to how C# works. Problem is, there's no implementation for it in Unity. I then went to forward my port for testing, then noticed Skype has ports forwarded automatically, and stumbled upon the feature of UPnP, and researched, and figured out it's pretty much what I need. The problem is that to get this to work, the host needs to port forward, which would deminish the players able to play by a lot. The game is a P2P, with one client as the server, or a host. I have recently been working with UNET, and started work on a project using it.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |