I’m disappointed.
Or maybe this is the wrong word. I am Shocked. I’m angry.
Unity, my dear friends, I love you guys, I really do, My company and it’s games are made on Unity, and I have done plenty of consultant work for companies making real production multiplayer games. and I can tell you, this blog, and this report is just… Wrong, I mean… completely wrong… outright. misinformation.
Who wrote this blog? who made this research?
Is it anybody that actually knows how to make multiplayer games?
Doesn’t seem like it.
I am just perplexed. This document reads like a high school report. I don’t want to offend somebody but really. it does.
Somebody has to be harsh and say the truth. as example you use a unknown made up term “DGS”, again, no offence to the author, it’s just a very entry level paper, which isn’t expected*.* Neither is networking entry level stuff
Sorry for the longread but here are the facts.
TLDR:
- You are comparing completely different things, more like apples and oranges, on arbitrary undefined meaningless statistics.
- The market research doesn’t include half of the solutions.
- Some solutions are outright a wrong way how to network your game and will hurt anyone trying to build a game on them.
- The products are not tested on actual real world production games successes.
- Winner is not a winner
- Unity has no viable solution.
Wrong compare
Each solution presented is very different, some don’t do much for you more than syncing some variables/RPC’s you present it, some take the whole task of networking out of your hands so you can actually just make a fun game.
This is a giant difference. As example your “winner” MLAPI doesn’t do much of what you want a library to do for you, Concepts like RPCs are fire and forget, you have no idea which order they come in. Every server auth movement example have to make up for this, by implementing reconciliation… this library doesn’t take care about a basic tick-engine, correction, reconciliation, prediction, etc etc etc.
Whilst on the other side of the spectrum Quantum, is a fully deterministic framework where you can literally make a game almost like a single player game, and it’s completely networked out of the box, you don’t have to think about anything, it just works… and it’s amazing too. How is MLAPI better?
The statistics you give stars for in your compare are just silly, it is not defined how you get those stars, what they mean and they are on points that are not even helping your customers choose a library. You have not provided any actual data, just your conclusion with no way to back it up (which basically means its arbitrary).
Also I seen some straight up miss-information and/or lies about some solutions (Quantum, Mirror, etc.)
Leaving out solutions
I understand you have to make a scope for this compare, but from my research and knowledge in the production game field, MLAPI is barely used, whilst Forge was left out, as example. (not that those are good solutions but just saying)
Wrong way to do networked games
I see the options a developer has to network their game in Unity as a trap into a minefield.
Once a developer chose a certain solution, and tries to make his game in it, he usually is stuck in it’s (usually wrong) way of doing things. As a industry professional with experience, and in contact with many other industry professionals in the field of networked games I have seen too many projects fail.
Most networking solutions are focused on one thing:
How to pack data and send it and receive it, whilst this is just not how you network a game.
A networked game is all bout the simulation. Let that sink in, SIMULATION.
Everything revolves around that, How do you simulate a game, across devices. so for a player it is fun and smooth.
The way how to pack data, and take care about packet loss or delays, it is things way less important than the simulation.
Exactly in this field, most solutions fall flat, they don’t take care about it, you have to build it yourself, so what is the point of the library then at that point?
Networking is way more than having some data on one end and having it on the other end.
Even worse is advising people to use a low level library that uses TCP for it’s reliability, ever network engineer knows that TCP data will push UDP data out of the pipe, which is why reliable UDP libraries were designed in the first place.
Real world production games
This is the big/main one for me, What actually should matter is what games have been made on each solution, and what these developers had to do/workaround or make themselves to make their games in a released and working state.
Winner is not a winner
You recommend your users to MLAPI as the best overall, I want to say that this is biased.
The lead developer recently got hired by Unity (this is not mentioned)
There are no launched games or proven to actually work in real world scenarios (both MLAPI itself and the relay and punch and its udp library) Compared to other solutions there is really no community surrounding it.
The library itself is basically a re-hashed version of UNET, which by most is deemed not a good library or the right way to do networked games.
The real winner, is a solution that solves the problems your users have to make a networked game.
hint; it is not MLAPI or Mirror.
So this is what you recommend… a fresh re-hash of your old UNET-architecture with no launched games, not proven to work in real world scenario and no community almost?
Where the author works for you since this month…
Unity has not it’s own viable solution
The real reason we are all talking about these things, and we are having libraries to compare is because Unity has not reacted to the market and presented us with a proper networking solution developer in-house, it has failed on this job for 10 years already.
Every solution presented was a wrong way to do networking, from Raknet to UNet and now to the new dots networking, this is not how you network a game.
You guys have to get together, possibly to be harsh, fire the networking team, fire the networking lead, and start over.
Find real industry professionals that have multiplayer production games under their belt, hire them, give them a salary they cannot refuse steal them if you have to… Let them make an actual multiplayer solution that we can use.
Recently with all the IPO build-up you bought companies that didn’t help your customers, like Multiplay, or Vivox you paid millions!, why don’t you guys use such money to hire good developers with multiplayer experience… or as an alternative buy up Exitgames/Photon, integrate it into the engine, they seem to have multiplayer down. That would have been an actual useful acquisition.
Whatever you do, the clock is ticking, Your competition, as example Unreal has a good multiplayer solution build into the engine for years, and developers are not blind, if your choice is to walk this minefield, or roll your own solution, or just go for the competing engine… think about it.
With love and hope,
Maxim.