I want to discuss a networking architecture for a MOBA (DoTA2) like game. The resources on this topic are pretty scarce, but I did my research (not being too lazy) on Unity forums and general Google. I am Unity-noob, but learning hard towards changing this. I also have a good background in programming and networking.
Till this point I am aware of concepts of authoritative, non-authoritative and master server and did some successful experiments with all of them. I think that the correct network architecture should be the foundation of a MOBA game, so first I want to clear the ideas in my head and then proceed with real work.
Basically I want to make a lobby-style game, which will match-make players automatically and launch another instance of itself (or a level etc.) with matched players. DoTA2 players will surely know what I am talking about. Here are my silly questions:
How to make a game to continue if the host leaves (if using non-AServer)? Does it have to be Authoritative server on 100%? I may be wrong, but I think DoTA2 works like this: it is just a lobby and when the game starts one player is assigned as host. If he leaves, somebody else takes over, and the “big” server receives only the outcome of the game (with the replay). Any ideas how to achieve this?
How to make the lobby separate from the real game and how do I link them? Should they be completely detached or the “lobby” should be just the first level, which spawns separate map for separately matched players?
I plan to use State Synchronization for tracking movement and RPCs for everything else. Any advise on this or in general this is the correct way?
I do not believe in the so-called “cloud” … stuff, so I want to build everything by myself and have full control over it.
Thank you for bearing with me this long
Well i have not really played DOTA2, i am more of a LoL player
But i am pretty sure that they are NOT letting anyone host a game. That would open up for cheating, and will kill any modern e-sport.
I guess they got a full auth setup.
Yes, sry, LoL architecture is probably the same (I have played it for about 2 years) so it is relevant.
And yes, I was thinking about the same regarding cheating. On the other hand AServer will require enormous server farm in each region to host the ongoing thousands of games. Maybe it is something in-between.
Thanks Glader, thanks Arterie.
Is Photon networkin better than plain Unity? Does their framework is superior?
Arterie, how can I transition between dedicated 1st scene and player hosted 2nd scene after the game starts (I do not say this is the best approach)?
Something I did not checked very well - can Unity start another exe with the game itself?