So we have two things going in parallel here.
We have this Native / Mono / Direct OpenGL (ES) thing going here that gets ported like mad to all the different platforms to get it running. Of course Unity is in this boat, UE4 is in this boat, the major game engines in this boat.
However on the flip side of this we have this node.js / asm.js / webgl / three.js / more radical browser enhancement thing going. Which has the interesting thing where, the developers of this paradigm don’t have to port their stuff like mad to everything, but rather it’s on the burden of the platform to provide a proper interface to run this stuff smoothly.
Now understandably the JS and WebGL side of things is nowhere near as developed in the high-end department as Unity 5 or Unreal. But it’s moving fast, and node.js has Google behind it. Xamarin is nifty and C# is probably one of the greatest products MS has made. But really I can very easily see js through node and asm becoming the true high performance cross platform language which all vendors make their own implementation for. Xamarin and Unity have to actively update and maintain Mono for all the platforms, huge amount of work. What happens when all platforms just maintain their own node.js or asm.js implementation? Essentially we end up with a high performance language that is already available on everything. And at that point developing in mono or c# actually turns out to be the one that takes a lot more run around.
Of course Unity’s greatest asset is it’s editor, not Mono. And someone would have to make a js based game engine and editor to compete with Unity. But again, fast moving.
One big quarrel of this however all rests on me assuming that one can write more optimized and ideal JS directly. But could il2cpp actually allow mono to compete with directly written JS?
This isn’t a very well thought out thought, I know, thats why I am posting it here. Has anyone else done any thinking along these lines? Have you come to any conclusions?