- Do you want to host the game servers?
- Or do you want the players to host their own server?
I would write a "game tracker" (which could be an http server) which keeps track of the opened games.
Then if a player wants to join, the game tracker has to provide the ip of the server.
For 1. you have to start the server when a player "creates" a new game. (Register it on your game tracker). Then tell the players the ip.
For 2. the server creator tells your tracking server that there is a new server it must track.
Then make shure (maybe with godots new miniUpnp wrapper) that the port is forwarded on the servers network. Then the players ask the tracking server for the ip, then connect like normal.