for your first question: work with room names.
Join room USER INPUT ROOM NAME for game GAMENAME instance INSTANCENAME[/code:22bqwroc]
so the game name and instance name must be the same for every player. but instead of a given room name the player can input the room name itself. when two players enter the same roomname they end up in the same room given, the room isent full