1 | | It would be best to include UDP Hole Punching / NAT Transversal in 0AD. Current status of an implementation can be tracked [https://github.com/JoshuaJB/0ad/issues/20 here]. |
| 1 | ==== Details ==== |
| 2 | Right now in 0 A.D. we use a primitive UPnP system to implement NAT transversal but this system is unreliable. We'd like to see a better method using UDP Hole Punching instead. The solution would most likely involve interacting with the lobby server to get transversal information but it could also involve using something like [http://en.wikipedia.org/wiki/STUN STUN]. |
| 3 | |
| 4 | ==== Expected Result ==== |
| 5 | Enabling 0 A.D. clients to connect to a host behind any type of NAT. |
| 6 | |
| 7 | ==== Required Prerequisites ==== |
| 8 | Fluency in C++ and understanding of NAT transversal. JavaScript knowledge would also be recommended. (Ability to learn/familiarity with erlang would also be required when dealing with the lobby server) |
| 9 | |
| 10 | ==== Helpful Links ==== |
| 11 | [https://github.com/JoshuaJB/0ad/tree/lobby Incomplete/failed try at implementation] |