Hi Everyone!
I have plan to make MMORPG game with friends and because of our experience in unity, we decided to chose that engine for that (opposite was UE). (3 Devs - with some experience, rest of team is for Lore/Game concept). Dev team have ~2years of experience in game Dev but no in multiplayer games so this is something new for us.
I see there is a lot of posts like that but a lot of comments are deprecated. We want have up to 1-2k players online in same time. Which solution is the best way to create server that handle this?
I made some research and I found only Mirror that is the most suitable for our requirements. But it handle amount of 1000k+ CCU without splinting severs? Is there maybe similar framework for more CCU?
Maybe 3rd party solution for handling unity servers? I mean positioning, collisions, re-spawning gameobject etc.
3rd party tools like:
Amazon Gamelift
Google servers
Playfab
I understand only handling things like logging, chat etc.
In opposite of that is create own Server - but that is a lot of work - how to handle collisions, live time positioning… I had some idea but maybe there is ready-made solutions that is fitting our requirements.
Speaking from experience, I do not believe either netcode or Mirror will be good for your needs. Netcode is still in development and to my understanding still has quite a few issues(and not much documentation?). I also developed on Mirror for about 2 years very recently, and I can say honestly that it does not scale well. The ccu they advertise is extremely misleading because at that point a Mirror server would be crippled. If you are looking for performance and specifically a server that also runs inside a Unity build(even headless) I do recommend my Fish-Networking, because it is stable and it does out perform current free solutions. I’ve included a screenshot of my measurements where Mirror becomes unstable with more networked objects.
But, and this is important, for what you are trying to accomplish I do not recommend using any networking solution that runs inside Unity; scaling would be horrific, even if the networking stack is amazing. I wish I had something else to recommend but I’m not super familiar with solutions that don’t rely on Unity, though as an experienced network developer that’s where I strongly encourage you to begin looking.
Coming from someone that develops games for a living and has made their own networking solution: I’m sticking with my original assessment that specifically for what you are trying to do you will be best avoiding a networking solution that requires Unity to run.
This includes Mirror, FishNet, NetCode, ECT.
Looking out for you best interest, wish you best of luck.
You can make a lite mmo and have only like 8 people max per battle area. Generally its not really a good idea to put like 300 players all in the same place anyways.
I agree 300 is a lot, and would avoid it.
But for what it’s worth a third party just ran tests of other solution vs FishNet and FishNet performed over 800% better. I bring this up because they tested with close to 100 live players(people) and 200 connected bots and said FN was holding stable really well. I’m trying to get exact numbers from them for our gitbook.
Prior to my earlier comments I knew FishNet is the most optimized free networking option but I didn’t know you what degree. With these results I’m confident FishNet can handle 300 easily given user code is optimized.
PS: even with this information 300 players in one spot can be hard on other players which are doing actual rendering and I’d consider strongly against it. 300 players in a large world, completely different story.