I’m in love.
I’m in love with proxy servers. They didn’t just solve a lot of problems for people (and if you are out there and have any problem getting connected to people in the lobby you need to tell us specifics because we’re increasingly finding it difficult to find anyone who is having a problem getting into the game lobby (this discussion has nothing to do with people who drop in a game or pantheon or rage quitters, we’re just talking about getting player A to see player
.
First, proxy servers are, relatively speaking, cheap. Second, it turns out, they don’t add nearly as much latency as we thought. Maybe 10%. But don’t take my word for it, maybe someone who’s used them already can testify in a comment about it.
We’re increasingly tempted to do away with NAT traversal entirely and go with a system that where you either can directly connect to someone or we just host it for you. NAT traversal is slow and while I’m a network noob, I just don’t trust it given what I’ve learned in the past week about how crazy some network connections have gotten.
In the good old days of Starcraft, people had either phone modems or a cable modem that connected directly to the Internet. In those days, security was so bad that I could go to Network Neigbhorhood and go on to my neighbors computers if I wanted. Not that I did of course…
Anyway, over the years, ISPs have changed. Security is better and bandwidth is higher thanks to things like multicasting. People are behind various kinds of routers and on top of that people run various firewalls of various degrees of quality.
The nice thing about the proxy servers, however, is that it doesn’t care about any of that.
Do you know why so many people couldn’t connect before the proxy servers went up? The answer is that many ISPs (Cox cable for instance) use multicasting. Your Internet connection becomes many Internet connections. This is a good thing for consumers 99% of the time because you can get much better performance if the ISP can pick amongst many different sub-providers in real time. Blended bandwidth is how I often hear it called.
But it is, in my opinion, the death knell of pure peer to peer gaming in the long term because more and more ISPs will be using this. Heck, *I* use this on my machine right now. I have 3 NICs on my computer each with its own ISP. I have a T1, a Comcast Cable and a US Signal and Windows automatically goes between the 3. Try doing a NAT punchthru on that. Now, the ISPs obviously put all this stuff back together on their end to send the packet back to you.
But consider this: What if you’re playing your friend Bill and you did a direct connect to him and during the connection phase, the ISP, using multicast, happened to connect to Bill on an IP known as 79.134.34.5:7092. Forget what your external IP is from your router. That’s irrelevant in this example. Bill thinks your IP is that. But if you then send another message and the ISP sends it through a different sub-provider because it happens to be the fastest at that moment Bill is going to see he got a packet from 209.69.142.34:8073. Well, that’s not you right? Bill’s computer might assume that that’s a different person. So what happens? Bad things.
Now, some network engineer is likely yelling “Yea but you can fix this with an intelligent NAT server.” Sure, you could keep band-aiding that stuff forever. But a proxy server doesn’t care about how many IPs you transmit at. It just has a record of you with your various blended IPs and sends back to the one it received it from and life is good.
Don’t take what I’m writing here as gospel. I’m still a network newbie here and this is just a blog where I’m seeing just how crazy connections have gotten since even a couple years ago.
If any network engineers reading this want to comment, by all means, do so. But from what I’m seeing, in the long-term, I think it makes a lot more sense for even synced RTS’s to just use dedicated servers because you can set them up anywhere in the world and the ping times today are nothing like the old days and bandwidth is cheap.
Incidentally, we are hoping to put this to the test today by having Pantheon games only use the proxy servers. So we’ll be able to find out pretty quickly if this works.
I don’t know about you but I find this extremely cool stuff.