Hi guys, how are you?
I’m quite new developing games, and since I am researching about multiplayer technologies I need some advices from you, that maybe, get more insights about this.
We are trying to develop a MOBA (yes, another stupid moba project). Since we don’t have any rush to do this, so we are researching about it.
I am totally sure, we need to use a Server → Clients connection pattern.
So I know, we need to develop a server which will handle different events in the game.
So now, my search gets to the moment where I need to start, but the question is not how, it is with what?
I know different libraries like Mirror, NetCode (New unity one on alpha stage) and others sites which offer you a basic solution like PUN (Which I think won’t work), smartfox and others.
Honestly, I’d like to do it all ourself, even the queue with the matchmaking systems, but I don’t know what mirror is capable of and same with NetCode.
Could you tell me if this libraries are made to support Server => Clients connection pattern?
I know old UNET does it, but since it is going to be deprecated I think it is not worth the time to code something there, and then have to rework it entirely.
photon and smartfox works as clients server and outside of unity
i dont know netcode but they are all valid choice, you might need a separate server to handle matchmaking and player data persistence. mirror cant do that very well for many users because it is embedded in unity. but you could use plain c# and simple post request to handle getting matches and saving your players data from dedicated server.
generally a backend for this kind of game do not use one framework but multiple things like redis, rabbitmq…
What about event listener for example?
For example, spawning manager must be in the server side. So, I’d need some kind of RPC.
I know this could be done with native, but I quite don’t know the C# Framework that much to understand how to send the packages.
In the case I’d like to go native, do you know if this kind of connection is more for a TCP/UDP way?
I know I am asking many questions, but since this is the first time I am going into this kind of task, I want to do it well.
I can speak for SmartFoxServer. In SFS, client and server share a persistent connection, so you generate events on the server side and send them to the clients. Actually the whole architecture of SFS client API is based on events fired by the server.
Interesting, would be nice to give it a try too. I was thinking it has everything I need, but I don’t like much about can’t control everything that is happening inside that black box.
I would like to know, if there is a way of communicate a dedicated server with netcode, but as you said the documentation doesn’t tell us so much, I would like to use the new Component system too, it seems it will be huge in a future.
I think for now, I will have to start with something, thanks for the info guys.