Hi, multiplayer games usually have problems when both (or more) players have nat (Network address translation - Wikipedia). Does UE4 have any built-in nat punch? If UE4 don’t have such, do you have any idea how combine steam’s networking with UE4?
The Steam networking API is a simple set of functions to let the game send data directly between two Steam users. To make connections from behind home NAT’s, it uses the libjingle NAT-punching library or, if no direct connection can be made, through the Steam relay servers.
See the documentation page about Steam peer-to-peer networking.
On the page Steam Networking (Steamworks Documentation) some steam functions to handle networking, but as i know UE4 handle network by itself. Is here any way combine steam’s nat punch (libjingle NAT-punching library or through the Steam relay servers) and UE4 network handling?
The online sub system doesn’t handle actual hosting, you still have to host it. Steam is for things such as saving cloud data, friends lists, achievements, etc. You choose a server (digital ocean, whatever) to host on, and then you forward the ports on that server. As long as your game is being ran as a dedicated server and your users aren’t hosting the games you’re fine. Only the person who is getting the connections (the current “server”) has to port forward.
UPNP Plugin is only partial solution for routers who have that feature turned on. NAT punch is much more universal solution that would work even UPNP will not.
You can check your router by downloading this tool: http://upnp-wizard.findmysoft.com/download/