- Home /
Dedicated server-client networking design (MOBA-like)
Hi,
Let me begin with an example game. I'd like to have a similar system like in League of Legends (DOTA is doing this as well IMHO).
Small description: There is one server and multiple games. The user logs in, then can join in a queue (matchmaking) and play with each others.
The problem(s): If I have only one dedicated server then it handles all of the information (for every game created). The server has to have the game objects as well, beucase it's an authorative server, so it does the computations. If there are 1.000 or 10.000 created game, it can be memory and computation heavy, can't it?
What would be the best design for a game like that?
Thanks
Yes, it COULD be very heavy. it really depends on your game. How many players can join, how many objects are on screen, ec. You would have to find out how many instances your dedicated server can run, then set that as a cap.
$$anonymous$$y biggest problem with this calculation is that I'm not sure about how much memory is used by the Unity. I mean, in the server side, I don't need the actual mesh data and so on, just the game objects with some other informations like collision data and navmesh. I guess, I should try and measure it. :)
Answer by g-pechorin · May 27, 2015 at 08:19 AM
I would guess that it works something like an old-school IRC-like chat room. The authentication server acts as a sort of proxy and start-up shards (or whatever) then pass each player's commands off to that second program - which might be on a separate computer. Just like IRC's architecture stuff
With a MOBA the "matches" don't have to be shared worlds so each shard only needs about 30 people or so ... right?
(Disclaimer ; I haven't looked at Unity's wondrous server software)
(Disclaimer ; My exposure to MOBAs is working as a server-jockey for not-really-MOBA, a 3 hour trial of Heroes of the Storm, and what I've gleaned from imgur)
Thanks
So I would have two different programs: - The first is the match-maker-server. This handles the user authentication and queues. - When a match is found (it means 6-10 people), the second program is started which actually handles the game. Or it's already running in the background and a new thread is created for the new game.
Sounds like a good idea, however I'm not sure how many player could be handled on an average PC.
Yes - you've got the gist of "how I would do it"
I wouldn't run the matches on player's PCs (cheaters) I'd use a second set of "arena-servers" which trust the match-maker-server. The match-maker-server can tell the arena-servers which player-clients to let in, then tell the player-clients to connect to the arena-servers
Your answer
Follow this Question
Related Questions
Unity networking tutorial? 6 Answers
How to watch in client applications what it is happening in the server one? 0 Answers
Network and Server options 0 Answers
Creating a multiplayer game. 1 Answer
Networking: Standalone Simulation Server 0 Answers