Hi. I am an intermediate python programmers who knows the basics of programming. I am interested in using Unity to make mainly 2d games with some 3d aspects. So given my previous knowledge, what would be the best language for me to learn and if you know, where can i start to learn it.
Thanks and sorry if im posting this in the wrong area;)
If you’re a python developer than Boo is probably the quickest alternative for you since it’s a python derivative. However, tutorials and information on Boo are much more scarce. If you think you’ll need to heavily leverage tutorials and outside information then it’s kind of a tossup. C# to me has the best tutorials and information out there, however you may find JavaScript easier since C# is strongly typed. In fact, I believe the JavaScript interpreter for Unity was actually written in Boo.
Thanks, so would you recommend javascript for me then? And is javascript easily made portable to mobile versions? Sorry about all the questions, I’m just exited :). Is Boo powerful to handle 3d and stuff?
Yes it should work just fine. In fact, a lot of the built in assets (such as the character controllers) have javascript based scripts. I personally prefer C# but that’s because I’m already a C# developer. In terms of learning the language, you’ll find a wealth more resources for C#. If you want to get rolling quickly I’d probably suggest either Boo (because it’s similar to Python) or JavaScript (because the concepts are similar), but if you have a little time to invest in learning a new language I would look at C#. All I can really do is give you some pros and cons… I can’t really speak for what would be best for you.
What I would recommend is to take a look at the scripting reference for Unity:
http://docs.unity3d.com/Documentation/ScriptReference/index.html
There is a dropdown where you can switch between JavaScript, C# and Boo for the examples. Look at the different reference samples and switch between the languages… see which one you think feels more natural and like you can get a good handle on.
Edit: I actually compare learning Unity to learning the .NET Framework. Switching between languages doesn’t take a lot of effort… if you know C#, you can switch to VB .NET for example. The hard part is learning the framework itself. The same goes for Unity… the majority of your time is going to be spent learning to do this the Unity way… learning about the API within the engine and how to implement it, and figuring out how to implement the bits to fit your needs. The language is going to be the trivial part and if you start with one, you can switch to another later. You can even mix and match in the same project pretty easily.
C# → Developed by a team at Microsoft.
US/Boo → Developed by 1 person (no offense to him, I’m sure he’s a brilliant coder, but still).
What does that mean in terms of language choice? Sorry I just don’t understand
It’s just my opinion, but I would tend to trust a team at Microsoft over 1 person when choosing my programming language. Plus Microsoft not only developed C# but the whole CIL as well (which is what everything compiles to - US/C#/Boo), and the US/boo guy wasn’t part of that development, from my understanding.
So is the C# learning curve worth it?
Yes, it’s syntax is well established and used not only in unity but visual studio as well. Whereas the Boo/US syntax is basically made up by, like I said, 1 guy. So learning us/boo you’ll be learning what one person’s ideas are of how language syntax should be…
The CIL is compiled with Mono which is not developed by or associated with Microsoft in any way.
Microsoft created the CIL, then Mono came around and made (microsofts) CIL run on more platforms.
Really there is no reason to NOT go with C#. Period.
Not on all platforms… when targeting Windows Phone or Windows Store Apps the final project targets the Windows APIs. Also, Microsoft worked directly with Novell to enable them to develop Mono.
If you’ve got the time to learn C# and .NET I would 100% agree with this statement. Its uses extend far beyond just Unity.
Right - like I said, two different runtimes. The difference between them is important because you can easily give the impression that writing a game in Unity with C# won’t work on non-Windows based systems - which obviously isn’t true.
Yes of course. I neglected to mention that.
C# can be used for just about everything. (Except drivers)
You give yourself a good service by learning it.
Hi, for my experience i started by JavaScript Unity, but after two months i learn C# for Unity.
C# it’s very easy, i recommend to learn C#!!
Can we move this to the gossip section ? To the OP - ( Tip ) Try the search first to see more detailed topics on what language to use.
The post is perfectly fine here otherwise I would have moved it already.
Could you elaborate a bit, do you mean that mono is not used (at all?) when targeting WindowsPhone or Windows Store Apps? And that instead it uses the native .net?
I’d say C# just because it’s more universal, you’ll find better help and be able to use the language in many more instances than boo or javascript.