Here is a part of an email I've sent to GhostFace some weeks ago.
Quote:
Hi Christoph,
Here is a post inside the GarageGames forum that can interest you.
It is about hosting a game with router and firewall. It explain why COOP or
DIE have so many problem about this subject. The fact that classic master
server use UDP allow them to deal with the real port used. You can look
directly at the end of the thread :
[url]http://www.garagegames.com/mg/forums/result.thread.php?qt=14196
[/url]
I think that this problem can be solved by using a classic third party
master server (using UDP) for the master server aspect of the worldserver.
In short, when you are hosting a game behind a router, NAT, firewall... others players must join you by using the IP and PORT of the box.
The IP is correctly handled by the worldserver, but the port stored in the worldserver database is the port of the PC, not the PORT of the "box".
It's because the worldserver don't use UDP (protocole used during game) but HTTP, so it can't identify the port the box will use for PC UDP request.
Classical master server don't have this problem because they are using the same protocol for both playing and registering to master server.
When your "box" use the same port number of your PC, it works, when it remap it to another number it doesn't.
It could be considered as a limitation of an HTTP (php based) WorldServer.
It's not cool