seems to have different technical meaning for different games and game engines.
Different games implement their own way to represent lobbies, but is like "simulation race games": they are all the same concept with different vision from developers.
- Where is the lobby hosted? (A dedicated lobby server or client machine?)
Prefer hosting the lobby in server, because:
Latency: if a client machine needs to send some signal to lobby, the packet need to pass to client to server to client and.. returns to server to client to get a "ok" response.
Security: if lobby resides on a client machine, a malicous code can be easily sent to others clients.
Persistence: if a client closes/drop/loose the connection, the lobby is expected to be "destroyed" by others clients (more client errors), with server you guarante that lobby "exists" to others clients. Less errors occours and need be handled if you store the lobby representation in server side.
Depending of architecture, there is no need for a dedicated lobby server, the server can be the same that is used to make login, share messages, view friends or see profile because the resources are closer, example: you can use 2 servers, one for login/messages/friends/lobbies/profile and other for "real time gaming".
from comment update: Some games have a option to "be the host". This is useful to play in LAN with friends without Internet access or reduce connection latency.
2: Is there's a host who owns the lobby?
Yes and no: For MMO's, RPG's is expected that a someone be the "lobby owner", but the lobby owner is referenced by the server that stores the lobby representation. This is needed for player experience: "I'm creating a lobby and I want only this players that are my friends playing with me". Some games will have more control of lobby owner, the lobby owner can pass permission to others players to invite, etc.
Some other games create random lobbies without a owner to group random players and dispatch more fast like first person shooters: "I just want to play, enter on a exsiting game and shoots". In this way, there is no reason to have a owner because the "existence" of game can extend the players "presence" on it.
- Do you need multiple free running servers to serve the lobbies? Ex. lobby A is ready,server 1 is free so assign it server1 , lobby B becomes ready search a free server for it and assign it to it.
Depends of the server load and architecture, you can start with a one server for various operations and by the load split the micro services and each micro service multiple in multiple servers and beyond.
For client machine view, is better to communicate to server thinking that exists only one server, this reduces bandwidth usage and client code abstraction. If you have more servers, one of them communicate with others to query free lobby servers.
Am I even understanding the concept of lobby correctly?
Yes, lobbies are lobbies, the difference on games is how you represent them based on a better player experience and client/server resource and connection management.