Hi,
You may have noticed it, a proxy server is now in place on FAF.
What does it mean ?
When you try to connect to another player, the server acts as a NAT introducer (http://www.faforever.com/mediawiki/inde ... _NAT_works).
At this point, if it can't make you communicate with that player (because a lot of routers can't do the simple task of routing packets), it will make you try to connect through the server.
Meaning that you connect to the server, the other guy connect to the server too, and the server acts like a mail man.
At this point, you will get a warning from the server in your lobby saying that you may have a router problem. It can be you, or the other guy, there is no real way for me to know.
But if you see that A LOT, it's probably you. At some point, I may log these attempts to know for sure you are the cause of the problem.
Still, some routers that has no uPnP support (you need to enable uPnP to make this happen) and no routing setup may still fail.
The next step is to make the lobby encapsulate FA UDP packets into a FAF UDP packet that have more infos.
These infos will allow me to connect on a unique UDP port on the server (currently, it uses one port per player), allowing a better NAT translation detection.
And if that still not work, encapsulate the FA UDP packet into a TCP connection to the proxy server (at the cost of some network performances).
While this is required to make Galactic War run smoothly (as nil won't be seen when you join a game), the proxy server can eat a lot of bandwidth.
The idea is that anyone can put online such proxy server.
People from China or Emirates would also be able to put a proxy server in place to connect to players. It will work as long as that server has access to the whole world without trouble, and to these countries too of course.
I would like to know if it's a viable option for you.
The code is open sourced and available here :
https://bitbucket.org/thepilot/forged-a ... r/overview
(encapsulation is not done yet).