It’s not really C# as in using OpenTK or developing an app with C# though is it? It’s a component based architecture that happens to use C# (and Java err script? Unityscript?), Lumberyard is also doing the same with “entities” although it’s based around LUA / C++.
That’s the bit that makes it poweful / flexible and quick IMO, you can esentially moth code (bounce back and forth making sure it works in no time at all)… I’ve noticed due to the game framework in UE / BP’s it’s simpler to initially get something off the ground.
When you start tackling more advanced concepts the lack of documentation / tutorials etc. starts to show, Unity has a massive user base in which most problems you come across someone else will have an answer for it and that’s not an engine issue (bar the doc’s) it’s simply because Unity is older in this iteration. Also Unity rarely ever changes, even if it does it appears to be minor things like GetComponent and it tells you near enough exactly what to replace it with.
Plus I know we keep looking at the asset store as a “bad thing” but there are some very well designed systems out there that correctly add niche / deeper functionality than you can get in most engines. Also just to note I find Unity far quicker in most day to day activities, compilation, shaders and letting the GI spin whilst you do other stuff etc… Also it doesn’t require you to have a small supercomputer to get things moving, we use workstations here (14 core Xeon, 64GB RAM, GTX 1080, SSD’s)… UE still takes ages to do stuff, if I batch import materials I just walk off for an hour or so.
Someone mentioned graphically those screenies would be better in UE4, I’ve been using UE a while and whilst this might be lack of knowledge on my part if you remove Lightmass out the equation (for bigger / openworld games) I can’t get UE to look as good as Unity and it’s a far cry from CE / LY…
The issue I’ve always found with Unity is taking a prototype (which is very simple to do if not slightly verbose due to lack of decent features) and turning it into a polished game. UE is far better at it and irrelevant of graphics (which doesn’t matter if you can’t release a game at an acceptible quality anyway) you’re not going to suffer scalability issues (if you’re an indie) neither do you have to wait for Epic to fix a last minute issue if it affects your release.
This is the thing, whilst I don’t think access to source is the solution to all problems (especially for an indie) at least if you hit a wall there’s something you can do about it and that’s the issue I have with Unity… I like it as an engine and at it’s core what it is, can’t say I trust it that much holistically and the amount of workarounds for their systems is silly.
We talk a lot about source code access, toolsets, graphics, peformance, cost etc. etc. and if that’s the case why are we not all using Amazon Lumberyard? I’ve not come across an engine that consitantly (indoor / outdoor etc.) that looks as good (bar CE of course), it’s far more performant than any other engine I’ve used, which comes with the most toolsets and it costs nothing.
Maybe something to do with it being a somewhat painful blackbox of an experience to do much? (although Amazon are improving this and it’s “getting there”)…