Search Unity

I want to understand how moba games work?

Discussion in 'Multiplayer' started by khiem8991, Jan 2, 2022.

  1. khiem8991

    khiem8991

    Joined:
    Nov 7, 2021
    Posts:
    2
    Hi! I just started learning unity game making, I have completed Unity Essentials Pathway, Junior Programmer Pathway and part of Creative Core Pathway. Currently I am learning about Multiplay in unity, I want to understand how moba games like league of legends work in terms of network. I can't imagine the structure of the moba game.
    I'm having visualizations about LOL:
    _Case 1: LOL has a dedicated server to store user data (like level, outfit, rank...), players will log in to this server. Then open LOL then we will enter LOBBY, We will find and match with 9 other people. Then 1 out of 10 players will act as the server, if this player is disconnected then the server rights will go to 1 of the remaining players. If this is the case, if I make a game like this, the game will have 2 networkmanagers, 1 to connect to the data server and 1 to connect the players?
    _Case 2: LOL has a dedicated server that both stores user data and runs a game server for players to connect to, and LOL includes 4 separate applications: LOL LOBBY Client, LOL LOBBY Server, LOL Client and LOL Client. LOL Server. LOL LOBBY Server and LOL Server save on dedicated server, LOL LOBBY Client and LOL Client on player side. First, on the server side, the LOL LOBBY Server is open, allowing LOL LOBBY Clients to log in and connect to and have the function of pairing and creating matches. After matchmaking, the server side will start 1 LOL Server and in each player machine will start 1 LOL Client, 10 LOL Clients will connect to 1 LOL Server. In this case, every time 10 players create a match, the dedicated server creates 1 more LOL Server. If this is the case then I don't know how different applications communicate ==.
    My visualizations may be wrong because I don't understand the basic concepts well. I want to be enlightened. Thank you very much!
     
  2. toddkc

    toddkc

    Joined:
    Nov 20, 2016
    Posts:
    207
    I can't speak to the specifics of how LoL is engineered, but generally your Case 1 is the way. For a "beginner" what I would recommend is trying the free tier of something like Photon PUN or Fusion to get the actual game working, and then the free tier of something like GameSparks or PlayFab for the player accounts. Another one I've been interested in trying is LootLocker.

    Then your game would need to both interact with the parts of the account system that are needed, and the real-time gameplay solution that you are using. That sounds super complex but it really isn't. Obviously making a game is very complex, but just using some free accounts on these services you could fairly easily get something setup where players will login to their account, save some basic info to that account, and then join a game where they can see other players.
     
  3. khiem8991

    khiem8991

    Joined:
    Nov 7, 2021
    Posts:
    2
    Thank you for your feedback!
    At the time of asking the above question I was only familiar with Unity and its solutions, I was unaware of concepts such as back-end servers, session servers and the use of external services. After researching playfab, I feel enlightened on most of my questions. I know I'm a newbie, there are many unheard of concepts like back-end server, session server.... If there's any document that introduces all the basic concepts, that's it. I need it now.
     
  4. toddkc

    toddkc

    Joined:
    Nov 20, 2016
    Posts:
    207
    I would just look into youtube tutorials. If you pick a back-end service they will likely have tutorials also. I should have mention Epic Online Services also, obviously that's going to be a popular choice. Steam has one too. You might be able to find some assets on the store that are free where you could see code and setup examples, I know there are paid ones but not sure if any are free. You'll get it, good luck!
     
    khiem8991 likes this.