Hellpoint is a game that uses the Peer-2-Peer architecture for its multiplayer. It means that two players connect to each other directly. Our servers act as matchmaking services, giving players information on how and when to connect to each other. The "how" is the important part: the server gives an IP address and a port to use for the connection to establish.
The server picks a random port between 20,000 and 30,000 and tells both players to connect to each other's addresses at a specific time, using a countdown from the reception.
Example: Player B connects to Player A using a match code. The server tells the players that they will connect to each other using port 23,456 in 6 seconds. Player A sends a connection request to Player B's address using local and remote port 23,456. His router opens port 23,456. Meanwhile, player B sends a connection request to Player A's address using local port 8,765 and remote port 23,456. His router opens port 8,765... Player A sees the incoming request as it shows up on the right port. However, Player B doesn't see the incoming request because its local port is the wrong one. The result: "Connection failed".
Why Player B requests on the wrong local port?
Routers, modems, and ISP can decide to remap a request to a different local port. In most cases, it can be seen as a security measure. However, it also makes it very hard for P2P games to function properly. A router doing that is usually called Symmetric NAT, Strict NAT, or NAT Type 3. A modem doing that is usually called... an annoyance (but such modems are quite rare). An ISP doing that is called Carrier Grade NAT. ISP remap requests to reduce the cost as they don't allocate you a unique IP but instead handle you as if you were in the same subnetwork as other clients.
If your router is remapping your port for you, there are usually some options you can try:
- Turn on UPnP; since version 356, Hellpoint performs UPnP requests if it detects a valid device
- Reduce your NAT level; if you see "Strict NAT" or "NAT Level 3" anywhere, you can usually turn it down to level 1 (low) or 2 (medium)
- You can do port forwarding or Port Triggering in the 20,000-30,000 UDP range towards your PC
If these options aren't available for you or don't work, as a test (don't leave it like that), you can try:
- Place your computer in the demilitarized zone of your router
- Connect your computer directly to your modem
If these won't work for you either, there is a good chance your modem or your ISP are remapping your port.
Some modems have settings similar to router ones. If your modem doesn't have any settings, there's nothing to be done, unfortunately.
Most ISPs will allow you to request their removal from their CG NAT. So far, we've heard of only 1 ISP (out of 5) that asked for extra fees.
What Cradle Games did to improve connectivity in Hellpoint
In version 353, we introduced port switching. The game starts to listen on a local port, and if a remote port doesn't match, it switches communication towards it.
For it to work properly, you may need to modify your Windows Firewall Inbound rules to accept "Edge Traversal" requests. If it is not allowed, Windows Firewall will block "traversal" requests or requests for ports not previously called to.
Please, note that this is if your friend is having their local port remapped, not yours, as you need to detect their ports being changed and adjust to it.
What if both players are having their ports remapped?
If both players are behind a symmetric NAT or a modem doing port mapping or an ISP with CG NAT... There's no solution to this puzzle right now. One of the two players needs to figure out how to reduce their NAT restrictions.
But I can play other games just fine!
If you're playing an FPS or a battle royal game, you're never connecting to other players—you're connecting to a dedicated server handling the game's logic. "Big" games can also deploy "relays" all over the world for people who are unable to connect to each other. Relays are usually expensive and also add a lot of latency to the game.
Internet providers using CG NAT:
- Superonline (Turkey)
- Fastweb (Italy?)
- Kabel Deutschland (Germany)
- OTE (Germany)
- Liberty Global (Netherlands)
- Zen (UK)
Please, note that CG NAT does not support UPnP or any form of port forwarding.
We really hope that helps you establish a connection with your friends in Hellpoint.