Sorry, you were pretty much wrong in every claim. None of the options you've mentioned are actually stable with the exception of C#, which you already acknowledged that were wrong to mention.
It might only be one engine but it’s a juggernaut in the industry
It's terrible. Not being able to write native code is a tremendous weakness of the engine. Not to mention that since you're writing a "fake" C#, you don't get the full runtime (can't use reflection, can't use coalescing null features, etc).
Unityscript is the Js clone they have/had (they’ve been pushing for C# to be the main language).
You can use null coalescing.
You can use all of Reflection bar platform restrictions on AOT ie. iOS (don’t recommend it in a game though...)
You can use a async/await.
You’re writing “real” C# with Unity, either with a custom Mono runtime or IL2CPP, neither of which turns your C# into “fake” C#
And Unity3D is “terrible” enough to serve 700 million players.
Then learn the settings and limitations for your target platform.
Just because you don’t know how to use Unity doesn’t make it doesn’t have features it does.
Look, just because I abhor Unity doesn't mean you have to take it personally.
Now you’re waving your hands and saying “So what I was wrong, Unreal has code, it has the best code”?
I think we’re done here.
IL2CPP is no different from CFront.
Unity devs could have gone full way and implemented a compiler backend themselves.
Instead they decided to take advantage of the SDK present in every target platform they support.
C++ once upon a time, also got compiled by generating C code.
Then don't misquote me. I didn't say any of that, except perhaps implying that Nim is mature. Ok right, and Go is great for embedded. I worked in embedded systems for years. 80% of the software ran on little arm boards that ran a decent OS (eg QNX, Linux, etc). Go would've saved so much trouble there. There's this weird HN filter bubble attitude that if it's more than 20MHz or does not ship with a 15 year old GCC fork, then it's not embedded, but that's bullshit. Go is a fantastic option for a very large amount of embedded software, and I'd wager what's left after that is perfectly served by tiny C programs running on little atmels.
I explicitly singled out C# for gamedev. Look, I'm trying to make a general argument that a few large still-good legacy libraries (such as Qt) are the only reason C++ is still standing. I must admit it feels a little like you're trying to misunderstand me on purpose because you don't like the message.
We're supposed to interpret other comments in the most charitable way, but a charitable interpetation is not at all possible when one says that C# is a usable solution for systems and embedded programming, that Nim is mature, or go is used in games and is a good idea to use for embedded.
Even combining all of the above languages would not reach the breadth and maturity of C++ in the target domains.