- Home /
Which programming languages i should learn first to use unity 3d if i want to make a simple games for iphone and ipad?
Pleas help me for buy the books
If you've ever programmed in Flash before I'd go with javascript. Actionscript 3 and Unity javascript are so similar that I switched over from Flash to Unity very easily.
Answer by Thom Denick · Jan 20, 2011 at 09:26 PM
I'm going to just say it - you should learn C#. It's more advanced, optimized, and interacts better with Obj C and XCode. It's fast becoming the standard language for gaming on multiple platforms. (Many Xbox 360 games are programmed in C#)
C# does have it's disadvantages. Perhaps the most notable disadvantage is that most Unity tutorials are written for Javascript. However, it's significantly more robust than either JS or Boo. It does not sound like English is your first language, but luckily there are a ton of C# book resources in all languages, so it's a great way to get started.
If you are a native English speaker, I apologize, and I can whole-heartedly recommend Head First C#: http://headfirstlabs.com/books/hfcsharp/
Which is one of the few books that takes you from Hello World right up to making full-fledged Windows games.
I would recommend going through 3D Buzz's awesome C#/Unity tutorial at: http://www.3dbuzz.com/vbforum/sv_videonav.php?fid=db25cc88fdc47f4afd9562b6abb1332a
I've been using Unity for 4 months now and write all my scripts in JS. Every now and then (like now, reading your answer) I get the idea that using C# would be much better. It's a good thing that one can use both in the same project, so maybe I could try "fading into" C#...
Answer by schwertfisch · Jan 20, 2011 at 09:19 PM
To make games with Unity, you basically need to use JavaScript and/or C# and/or Boo, as you can see here. Using one over the other has its pros and cons, but more or less all three languages can offer you the functionality you want for an iOS game.
Answer by Peter G · Jan 21, 2011 at 03:20 AM
I would like to say that while I tried to be informative, my answer is somewhat biased and subjective.
If you have absolutely no programming background, then javascript is the fastest to learn because it does some behind the scenes stuff to manage types and casting for you. It is also the most common language used on the support sites, so it will be easiest to find help if you get stuck.
Resources: Just search for it on the web, there are plenty of js tutorials.
Then there is C#. C# has more features than javascript or Boo, and it resembles Java/C++ if you have a background in either of those subjects. My favorite: you don't have to write var
before every variable. And personally, I find that MonoDevelop (even the one that ships with Unity) works better with C# than either of the other languages. It seems to correct code and auto-complete my work more effectively. The downside, its harder to learn if you don't have any prior experience for most people, and fewer people here use it.
Resources: Again search it. Microsoft's developer site
Boo... well... enough said. :) There are very few people who use Boo around here, and the Boo website wasn't anywhere near complete when I tried to learn it, so it can be hard to learn, hence I gave up. It's supposed to be python inspired synatx (I don't know, I gave up before I could make the connection :) ) Advantages: You hate punctuation or just want to be different.
Resources: Boo homepage
Ok, so you can see that I'm biased towards C#, but if you want to learn to program beyond the scope of Unity, then C# is probably your best choice. If you just need to add some logic to your game quickly then js might be your best bet. And Boo, well let's just say puppies cry when they hear people decide to use Boo. :)
Oh, and the best resource for Unity of all of them.
http://answers.unity3d.com/questions/4897/how-can-i-start-learning-unity-fast-list-of-tutorials
http://answers.unity3d.com/questions/5507/what-are-the-syntax-differences-in-c-and-javascript
can python be used in unity... i ve heard its the best than others..
I deleted your duplicate answer below. Please don't use Answers to ask questions. And I answered your question 30 $$anonymous$$utes ago. Unity supports C#, Javascript/UnityScript, and BOO. Before asking questions like this, please Google - "languages supported by unity3d"
Co$$anonymous$$g from a python background, scripting in Boo makes me fly :P C# just gets in my way too often, when I'm trying to use a simple dict/hashtable, the dictionary provided by .NET is just too meddlesome, and do I really have to write that much code just to make it work? The foreach statement especially. If you know the array put into the statement, the compiler should already know the types in it, since the array itself has been initialised...if I want to change the type, which you normally don't do, I can just cast it in the loop.....sigh. :D
Your answer
Follow this Question
Related Questions
Multiple Cars not working 1 Answer
Distribute terrain in zones 3 Answers
2D games; Javascript or C#? 1 Answer
Convert Java to C# 1 Answer
Code not working in C# 1 Answer