So… I’ve been doing a lot of complicated things lately. You know what I thought was not complicated? Getting two computers to talk to each other. Life is full of fun surprises.
The problem is, I was kind of cryogenically suspended for about a decade in terms of multiplayer video gaming and development, so my mind had that late-90’s thinking of “open a socket on some port at the server, connect to that with the client, start playing”. Seems like tutorials and explanations around the web are also stuck with that mindset. The problem is, it does not seem to work anymore.
The minor problem is that the days of “enter the IP address you want to connect to” are probably gone. Looks like you have to have some sort of matchmaking server to have a multiplayer game, which completely goes against my “have nothing to maintain” policy. But I can deal with that. Such a server shouldn’t be too complicated. Especially if I get someone else to do it for me (yes, you know who you are).
The bigger problem is firewalls, which all those kids today seem to be using. I can’t find any recommendation for the best way to deal with them. If I try a port other than 80, the firewall blocks it. And 80 itself, I’m pretty sure I can’t listen on it. Anyone knows what’s the best practice here?
Update (22.05.2013): The answer appears to be Hole Punching. More (and potentially awesome) details coming soon.