What is a concept of multiplayer mobile game?

Hi everyone. I’m new in game development. But I have a lot of experience in web development (frontend and backend).
Imagine a game which has Login Scene (on startup), Main Menu Scene (user see his level, username, history of matches, can choose server: Europe, Asia, America, edit profile, can start new match, buy some game stuff in a shop, etc), Match Scene (where the player compete with others in 5vs5 matches).
Can someone please explain me a general concept of that game? Right now i’m trying to understand how everything should work.
What I imagine in my head right now:

  • there is one main Data Server, which
    collects list of users, their
    progress, history of games, list of
    dedicated servers (Europe, Asia,
  • login, profile editing, viewing
    history, matchmaking: this all things
    happens on that main server;
  • when a user trying to find a new
    match, he first connects to the main
    server and waiting for that server to
    do some matchmaking and find rivals
    for him. When it happens, the main
    server gives him and all his rivals
    some meta data about dedicated unity
    server, where the match will be
    played and starts unity game on that
    server. Then all users connect to
    that server through UNet and play the match. After
    the match is ended, data about that match
    is gonna be sent to the main server,
    which saves everything and then the user request main server to get information about level up and all “after match” stuff.

Tell me please what I’m thinking wrong and what is correct.

unlike web development you can store things between scenes and mark game objects do not destroy. Generally i try to put most UI in its own scene and its good to split things into different scenes
For user auth, data and virtual currency/item data PlayFab is a good choice although you’re welcome to build your own web services. PlayFab is also adding matchmaking, they aleady have leaderboards
UNet is deprecated, I recommend Photon Bolt since you are an experienced developer (hopefully in C#) because it uses generics, interfaces, etc makes sense to developers and has more bultin features (especially for shooters). Mirror is being used by a lot of people too. PUN2 is a good choice too.
For a match type game you will want to use AWS Gamelift or Playfab Gameservers.
Everything you described is correct, but building your own data/authentication web services would be an arduous task.