-
Notifications
You must be signed in to change notification settings - Fork 2.2k
Description
Problem
Jack is playing a world (possibly with "Host Server" toggled on), and Jill wants to join, but Jack (and possibly Jill) is behind a NAT.
Currently to connect a port-forward or tunnel would be required.
Solutions
Do UDP hole-punching either via a public service fully negotiating, or just to get the external port and have them manually exchange ip:port pairs with each-other.
This makes it much easier for people to host & join private games.
Alternatives
Everyone must use an existing tunnel solution (s.a. VPN) or port-forwarding.
Tunnelling is often technical to set up or costs money.
Port-forwarding is easier but requires permission and is impossible on non-home networks.
A kid or layperson just wanting to join a game with their friends is unlikely to do either.
(There's also the possibility of UPnP, PCP, or NAT-PMP, but I think those're almost always disabled. At the least I know UPnP is very prone to security issues. This should possibly be a separate feature request.)
Additional context
This is NOT distributed servers or anything of the sort - there is still a single host (Jack). This is just an alternative way to initiate a connection between the host & clients.
Note that mobile networks used by phones often do NAT in a way that makes hole-punching unreliable at best.
For home NAT hole-punching has become a feature so should always work afaik.