Multiplayer (Hosting a Server)

I’d like to make a multiplayer game, but I’ve got no idea how is it supposed to work, or how can I make multiplayer servers.
Here is what I want to know:

  1. How can a player host a server that’s joinable by anyone who’s currently in the game?
  2. How can I make a list of all servers that are currently active (players active in servers)?
  3. How can any player join a server from the list without having to port forward or anything like that?
  4. How can I even make both players see eachother in-game, and how’s it all supposed to work, like it does in local co-op.
  5. How can I make a player limit per server?

Please don’t reply if you can’t help me with those questions. If you’re not sure if something works, then please try it for yourself before you post.

Actually i work on a prototype for a multiplayer. My prototype use a server NodeJS and my game is exported in HTML5.
I have a exemple with MySQL, that is useful for storage the datas.
You can see more in my signature :slight_smile: