About new Unity 3.0

Started by
21 comments, last by swiftcoder 13 years, 6 months ago
When I recently began using Unity, I found the tutorials at http://unity3dstudent.com/ to be very useful for getting acclimated to the Unity editor and base features. I highly recommend them.
Advertisement
Quote:Original post by b3y0nd3r
By the way, I know some C++ and I'm going to develop primary on Mac OS, wich scripting language suits best, &#106avascript, C# or Boo?<!--QUOTE--></td></tr></table></BLOCKQUOTE><!--/QUOTE--><!--ENDQUOTE--><br><br>Whichever language you are most proficient with because at the end of the day, regardless of which language you choose, it's going to be compiled in CIL. <br><br>
"My own preference is C# (for a few different reasons), but I'd recommend just playing around a little with whichever of the three languages seem interesting to you, and see which one you like best."

hey jyk, I'd like to know what reasons are they. I've read that some people argue it is harder to learn, but that's not a problem if later it could code more complex concepts or relations.
Quote:hey jyk, I'd like to know what reasons are they. I've read that some people argue it is harder to learn, but that's not a problem if later it could code more complex concepts or relations.
To be honest, my reasons don't really matter much. All three languages are supported, you can make games using all three, so there's probably no particular reason to favor one over another (aside from available resources, perhaps).

Now, to elaborate on that a bit, there are definitely significant differences between the languages in question. In the past at least I think there have been some things that were a bit easier to do with C# than with UnityScript, but I think UnityScript has been upgraded significantly with Unity 3, so that may no longer be the case. And, due to its dynamic typing and integrated nature, there are things that are easier to do in UnityScript than in C#.

But, to answer your question, the main reasons I prefer C# are:

1. C++ is (or was) my primary language, and C# is more like C++ than UnityScript is (of course C# and C++ are still radically different languages).

2. I already had some experience with C#, so it seemed like a logical choice.

3. Personally, I don't see much reason to spend time learning a language that has no applicability outside of the Unity engine (as far as I know, at least), when you can instead use a generally applicable language such as C#. Yes, I know learning a language shouldn't be a big deal for a reasonably experienced coder, but nevertheless I'd rather use that time in other ways.

But, like I said, those reasons don't really matter :) I would just go with whichever seems most appealing and makes the most immediate intuitive sense.
Quote:Original post by jyk
3. Personally, I don't see much reason to spend time learning a language that has no applicability outside of the Unity engine (as far as I know, at least), when you can instead use a generally applicable language such as C#.
Which of the languages doesn't have general applicability? UnityScript is just a ECMAScript implementation on top of the CLR, and Boo is a full-featured CLR language - I would hesitate to say that either was limited to Unity.

Tristam MacDonald. Ex-BigTech Software Engineer. Future farmer. [https://trist.am]

Quote:Original post by swiftcoder
Quote:Original post by jyk
3. Personally, I don't see much reason to spend time learning a language that has no applicability outside of the Unity engine (as far as I know, at least), when you can instead use a generally applicable language such as C#.
Which of the languages doesn't have general applicability? UnityScript is just a ECMAScript implementation on top of the CLR, and Boo is a full-featured CLR language - I would hesitate to say that either was limited to Unity.
I may not have been completely clear, but I was referring to C# and UnityScript in particular (I wasn't talking about Boo).

My understanding is that UnityScript is a variant of &#106avascript that is specific to the Unity engine; in other words, although it's similar to &#106avascript, it's not the same language, and is not usable as-is in any context other than Unity.<br><br>Now, I haven't used UnityScript myself, so this is just based &#111;n what I've picked up from the Unity forums and elsewhere. Naturally, there's always a possibility that either the information I read was wrong, or I simply misunderstood it. In any case, I'll look into it a bit and see if I can determine if my understanding is incorrect (which it may be).
Here's a couple of the references I was referring to:

http://www.unity-tutorials.com/forum/viewtopic.php?p=34
http://forum.unity3d.com/threads/11440-Which-Scripting-Language?highlight=language+c%23+unityscript

Now, I may very well be confused, but I was really under the impression that UnityScript, although similar to &#106avascript, is a separate language specific to Unity. If you know otherwise though, I'd certainly like to know if I'm wrong.
Quote:Original post by jyk
My understanding is that UnityScript is a variant of &#106avascript that is specific to the Unity engine; in other words, although it's similar to &#106avascript, it's not the same language, and is not usable as-is in any context other than Unity.<!--QUOTE--></td></tr></table></BLOCKQUOTE><!--/QUOTE--><!--ENDQUOTE-->AFAIK, they are both bog-standard implementations of ECMAScript, as is Flash's ActionScript.<br><br>Apart from minor implementation artefacts, the &#111;nly differences are in the provided class libraries, which as &#111;ne would suspect, have very little overlap between browser/Unity/Flash.<br><br><b>Edit:</b> The biggest issue with &#106avascript vs UnityScript is that while they are the same language, the programming model is different. When people 'learn' &#106avascript, they are actually learning to manipulate the DOM - which has little or nothing to do with the language itself. Unity treats &#106avascript as a first class programming language, so you have to write object-oriented &#106avascript exactly as you do in C#/Boo, and it misses most of the warm fuzzy shortcuts afforded by the DOM.

Tristam MacDonald. Ex-BigTech Software Engineer. Future farmer. [https://trist.am]

Quote:Apart from minor implementation artefacts, the only differences are in the provided class libraries, which as one would suspect, have very little overlap between browser/Unity/Flash.
Obviously we're not talking about class libraries here :) But, I assume you already knew that.

Anyway, have a look at these two links:

Link 1
Link 2

If after reading those you still think I'm wrong, then I guess I must be :) (I suppose I must be misunderstanding something or other somewhere.)

In any case, it really doesn't matter. I made it clear to the OP that my reasons for preferring C# weren't important, and they aren't. If I'm wrong about the UnityScript thing I'd certainly like to know, just for my own edification, but it doesn't really have any bearing on the discussion at hand; as has been mentioned several times, each of the languages in question is a viable option, and the OP can easily try them all and see which he or she likes best.
Quote:Original post by jyk
Anyway, have a look at these two links:

Link 1
Link 2

If after reading those you still think I'm wrong, then I guess I must be :) (I suppose I must be misunderstanding something or other somewhere.)
Nope, it looks like you are correct. I had chatted with one of the marketing oriented types over there on this issue a while back, and I came away with a somewhat different impression than the links give.

I had thought that the only differences were some implementation artefacts (i.e. use of Mono's String class), and the addition of class-based inheritance. Looks like their changes were a little more drastic, and they aren't a strict superset of ECMAScript anymore.

Tristam MacDonald. Ex-BigTech Software Engineer. Future farmer. [https://trist.am]

This topic is closed to new replies.

Advertisement