Topic: Hosting solution without port forward or UPnP!
I came up with an idea which I have proved that it works to fix the problem of port forwarding being required in order to host games.
I actually thought of it one day while I was hacking an IP camera, watching its network traffic, and I wondered how is the server able to send data to this camera through my firewall even though I did not open a port for it? I found out it was possible by doing something called UDP hole punching
In the context of our game, it works like this:
1. PlayerA hosts a game, but his port is not forwarded
2. PlayerA's game client script (a custom Python script add-on) downloads a list of all other player IP addresses from PvPGN (requires server side code for this)
3. PlayerA's Python script periodically sends UDP traffic to all other players on port 6112
4. PlayerA's router has now opened port 6112 to each player in order to allow a response from them
5. Anyone can now join his game
Here is proof that I got it working, notice the server says my port is closed, but yet abcde is able to join my game:
Here is the proof of concept code which we are working on implementing for en.war2.ru:
If you are interested in this let me know and we can work together to get this on more servers
Added: 17.05.2018 12:58
Related forum post (I am AHB there)