| I recently started getting to know Unity3d and it was extremely easy and quick to learn. One annoying discovery was that their variant of JavaScript is not real JavaScript, it's "UnityScript". It took me quite some time to convert a simple script that I had written for node.js to UnityScript. I need the pro version of Unity3d to generate iOS, Android or VR games for the Oculus Rift.
For someone who is just doing a bit of indie development, that's too expensive. So I checked out UE4 also. You can subscribe for a month for $19 and then continue using the version that was the current version during your one month of subscription. If you need updates later on, subscribe for another month. UE4 is harder to learn but looks a lot better than Unity OOTB. Anyway, I hope Unity will be competitive again regarding pricing with the imminent announcement of their 5.0 release. |
If you think I'm exaggerating just as a quick overview, there are no object literals (e.g. {value: true}), there is no array literals (e.g. [1]), you have to use new Array() which is deprecated in real JavaScript, they also implement some of the JS native functions but forget others making everything more confusing (for example parseInt exists but btoa doesn't), colons don't do anything they do in JavaScript, nothing, they are use to specify type, because UnityScript is a semi-typed language. Functions are not first class citizens and is not prototype based; at the end is just a mask for C# and that would be okay if it wasn't for them calling it "JavaScript" or even gasps "Unity-Flavored JavaScript"