Opened 10 years ago

Last modified 5 years ago

#2305 closed enhancement

UDP Hole Punching / NAT Transversal — at Version 7

Reported by: Josh Owned by:
Priority: Must Have Milestone: Alpha 22
Component: Multiplayer lobby Keywords: patch, beta
Cc: fcxSanya@… Patch:

Description (last modified by Josh)

Details

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 STUN.

Expected Result

Enabling 0 A.D. clients to connect to a host behind any type of NAT.

Required Prerequisites

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)

Incomplete/failed try at implementation

Change History (7)

comment:1 by Josh, 10 years ago

Component: Core engineMultiplayer lobby

comment:2 by leper, 10 years ago

Priority: Release BlockerMust Have

comment:3 by leper, 10 years ago

Milestone: Alpha 15Alpha 16

comment:4 by JoshuaJB, 10 years ago

In 14332:

UPnP-based automatic port-forwarding using miniupnpc. Breaks windows build at the moment. Refs #2305

comment:5 by Josh, 10 years ago

Description: modified (diff)
Priority: Must HaveShould Have

Because we now have UPnP-based automatic port forwarding (which serves nearly the same purpose), I'm dropping this ticket's priority.

comment:6 by ben, 10 years ago

In 14352:

Fixes Windows build.
Fixes UPnP error handling to be more correct and conventional, refs #2305

comment:7 by Josh, 10 years ago

Description: modified (diff)
Owner: Josh removed
Priority: Should HaveMust Have

I'm not really working on this anymore as I have not been able to fully understand what implementing this would require.

Note: See TracTickets for help on using tickets.