Create a function whereby when a game is created, a or similar payload post is sent to a java(or similar) server that reads the post and updates your own “server list” with all the game details, map, players etc somewhere on the web. Goolgle 'free java webservers" though you could host it at your home PC if its small scale. Then the users looking to join have a similar function but instead they GET the info from your homemade server and that information is what’s fed into your server list to show avail WAN games. The whole thing happens on the java server, not on the game. The game just shows the information the server gives it. In the end, the join is always via the IP of the host.
Second option: requires you to know how to program a server to keep track of your games outside of Ue4. so in java or something. OR if you have a friend thats a programmer he/she can probably write a server to do this up for you in a day. There aren’t any tutorials for this
otherwise go with the steam option. there are tutorials for that, google: ue4 steam
If you want the shortcut, the Generic Shooter game in the marketplace claims to have the steam setup already working. I haven’t tried the game but the reviews are good. So might be quick to get it up and running there for $20.
i dont know if its THAT simple. But i dont think its too difficult. I’ve never used steam for this. I have my own java server for matchmaking. I’ve seen lots of guides though for steam setup. Google it.
And as mentioned, there are some marketplace items that include it at a decent price if you want to see how it works without figuring it out for yourself.
Discovery does not work in on internet (but can work on WAN, just not globally), because multicast (Sending data packets to all network percipients lisining to designated multicast IPs) which is essential for any network discovery systems, does not work on internet scope, only in subnet (this includes private subnet IPs of LAN). Instead you need is service where servers will advertise themselves in, that service will list them and user can able to access it to get that list and connect using ip on the list, this kind of service is called “Master Server” (one to rule them all :p). As thankstipscom said Steam provide this service but you don’t need to use it you can build your own. It requires some work, if you have expirance with web services it should not be a problem still you will need to host Master Server. I jusy google a little and find out there actully someone that work on Master Server plugin for UE4, you might be interested in it, you can always extend it on top of it