I've never used Unreal, but the GP is absolutely correct in regard to Unity. It is subject to so much churn, and the main architecture is so flawed, the best way to use the engine is to use it the least possible, as basically a glorified renderer and main loop.
The best quote I've seen comes from a comment on a feedback request thread [0] on the Unity Reddit, from andybak:
> It seems that everything that's working is deprecated and everything that's current is unfinished.
The features touted to be the "correct"/"current" way to use the engine are supremely half-baked, and the "old" ways are so inefficient and still buggy after all these years, that I have no words to describe.
I'm basically on the prowl to jump ship to Godot immediately when 4.0 arrives with the new renderer (the current release is not terribly efficient for 3D). It has its warts too, but at least it's architecturally sound, and the source code is very agreeable for someone not very familiar with C++.
Heck, there is literally no builtin solution for networking. There is a HTTP client, sure, but if you want any sort of realtime multiplayer, you have to use either a separately-billed paid third party, roll your own from sockets directly (good luck supporting WebGL), or use a community-maintained version of the deprecated networking system which frankly is not very good.
> roll your own from sockets directly (good luck supporting WebGL)
I'm sorry (not experienced in graphics) but why would you need WebGL for a multiplayer? Can't you have a normal 3D renderer that has a connection to server?
By "WebGL" they meant build of their game for web browsers that Unity let you create OOTB. So if your game is cross-platform and also support playing it in browser you have a problem: sockets that you can use elsewhere wont work in browser.
Sorry, the Unity crowd calls the browser target "WebGL". Yeah it's a bit silly but such is life.
It's not that you need to care about WebGL-the-technology for your networking, but that there are no provided tools to use, say, WebSockets, when creating games that will run on the browser.
Sure, you could use WebSockets through JS interop and create your own socket library encapsulating that, but it's hella annoying.