Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

Boo, C# and JavaScript in Unity - Experiences and Opinions

Discussion in 'General Discussion' started by jashan, Feb 27, 2009.

?

Which Unity languages are you currently using?

  1. Boo only

    2.9%
  2. C# only

    56.3%
  3. JavaScript only

    19.2%
  4. Boo & C#

    1.6%
  5. Boo & JavaScript

    0.4%
  6. JavaScript & C#

    18.5%
  7. Boo, C# and JavaScript

    1.1%
  1. Demigiant

    Demigiant

    Joined:
    Jan 27, 2011
    Posts:
    3,239
    Same goes with UnityScript, or even C# for some. It's a question of taste, and now that the language exists, it would be a tough choice for many people to remove it.
     
  2. Velo222

    Velo222

    Joined:
    Apr 29, 2012
    Posts:
    1,437
    I started learning programming altogether with UnityScript (javascript). Then as I gained more experience, I learned that most of the robust addons I wanted to use for my game were written in C#. I also learned a couple of things that C# could do that Unityscript could not. So I spent a little time working with C# scripts and converting some of my javascript into C# that other C# scripts could work with.

    Now, my game is written in about 80% Unityscript and 20% C# :)

    While both languages can usually get the job done, C# seems a little more "sharp" and "compact", whereas Unityscript seems a little "loose". But, for the most part they get you to the same destination. Overall, even though I mainly use Unityscript, I'd consider C# the "best". Just my opinion though.

    I'm still programming almost my entire game in Unityscript though as we speak.
     
  3. superpig

    superpig

    Drink more water! Unity Technologies

    Joined:
    Jan 16, 2011
    Posts:
    4,649
    IIRC it's because the UnityScript compiler is written in it, such that doing the work to support UnityScript means we get Boo for almost-free, or something like that.
     
  4. Deleted User

    Deleted User

    Guest

    Oh that's cool, makes good sense.
     
  5. giyomu

    giyomu

    Joined:
    Oct 6, 2008
    Posts:
    1,094
    Used Xna before moving to Unity , so C# was no brainer to me ( and part of what make me go to Unity was certainly because of C# script ability )

    Regarding Boo and people who use it , you will be surprised how In some small smart phone game company in japan they use it ( mostly browser game company before , so lot of coder get use to Ruby , python etc ..so Boo seem a logical and painless move for them ..)
     
  6. Shadowys

    Shadowys

    Joined:
    Aug 19, 2013
    Posts:
    5
    Not sure how JS differentiates between a class and a hashtable. Mostly I use hashtables when I need quick access (O(1)) to something, and that something is something I might change on the fly, but classes I reserve for special cases when I need to modify inner states, not as a storage structure.................. :p
    Code (csharp):
    1.  
    2. #Basically Boo allows this:
    3.  
    4. state={ "motion" : "up", "speed" : 1, "shoot" : true}
    5.  
    6. # C sharp requires you to build an Dictionary of <string, object> then cast everything.
    7. # Boo? Well:
    8.  
    9. if state["motion"] == "up" and state["shoot"] !=false: print(state["speed"] as int)
    10.  
    11. #Generators inherited from Python comes handy when you just need to generate a list,
    12.  
    13. Enemiestransform = (enemy.transform for enemy in GameObject.FindWithTag("enemy") \
    14.                   if (enemy.transform.position-self.transform.position).magnitude<=5)
    15.  
    For some reason Python generators are faster than loops though, not sure about Boo, since it's .NET
    http://stackoverflow.com/questions/954112/c-sharp-list-comprehensions-pure-syntactic-sugar
    Just small things I noticed while coding in Boo.
     
    Last edited: May 22, 2014
  7. RockoDyne

    RockoDyne

    Joined:
    Apr 10, 2014
    Posts:
    2,234
    Somehow I'm not surprised. Makes me curious why they use ruby and python for gaming. Only thing I can think of that uses ruby is rpg maker.

    I have to admit, I'm half tempted one of these days to try out boo for S***s and giggles.
     
  8. minionnz

    minionnz

    Joined:
    Jan 29, 2013
    Posts:
    391
    C# allows this
    Code (csharp):
    1.  
    2.      
    3.     var state= new { motion="up", speed=1, shoot=true };
    4.    
    5.     if (state.motion == "up"  state.shoot !=false)
    6.        print(state.speed);
    7.      
    8.     //C# LINQ
    9.      
    10.    var Enemiestransform =  from enemy in GameObject.FindWithTag("enemy")
    11.   where (enemy.transform.position-self.transform.position).magnitude<=5
    12.   select enemy.transform;
    13.  //  Or: GameObject.FindWithTag("enemy").Where(e=>e.transform.position -  self.transform.position).magnitude <=5).Select(e=>e.transform);
    14.  
     
  9. npsf3000

    npsf3000

    Joined:
    Sep 19, 2010
    Posts:
    3,830
    If you're going to compare languages, please *know* the languages. For example # C sharp requires you to build an Dictionary of <string, object> then cast everything. is false. There are three approaches I can think off immediately that result in very similar functionality:

    Code (csharp):
    1.  
    2. //anonymous types
    3. //strongly typed immutable classes - note that state.motio would give a compile time error, not runtime!
    4. var state = new { motion = "up", speed = 1, shoot = true };
    5. if (state.motion == "up"  state.shoot) print(state.speed);
    6.  
    7. //dynamic types - IIRC Syntax - Bag returns a dynamic type.
    8. var state = new Bag { { "motion", "up" }, { "speed", 1 }, { "shoot", true } };
    9. if (state["motion"] == "up"  state["shoot"]) Console.WriteLine(state["speed"]);
    10.  
    11. //Override ==  - Should be legal syntax if the Bag returns a wrapper that overrides '==' (and others, e.g. tostring) and performs type checks, implicit conversions etc.
    12. var state = new Bag { { "motion", "up" }, { "speed", 1 }, { "shoot", true } };
    13. if (state["motion"] == "up"  state["shoot"]) Console.WriteLine(state["speed"]);
    14.  
    Never heard of Linq?

    Code (csharp):
    1.  
    2. //First
    3. var Enemiestransform = GameObject.FindWithTag("enemy")
    4.                                      .First( e => e.transform.position-self.transform.position).magnitude<=5);
    5. //Last
    6. var Enemiestransform = GameObject.FindWithTag("enemy")
    7.                                      .Last( e => e.transform.position-self.transform.position).magnitude<=5);
    8. //All, Deferred:
    9. var Enemiestransform = GameObject.FindWithTag("enemy")
    10.                                      .Where( e => e.transform.position-self.transform.position).magnitude<=5);
    11. //All, to List:
    12. var Enemiestransform = GameObject.FindWithTag("enemy")
    13.                                      .Where( e => e.transform.position-self.transform.position).magnitude<=5).ToList();
    14.  
     
    Last edited: May 22, 2014
  10. Demigiant

    Demigiant

    Joined:
    Jan 27, 2011
    Posts:
    3,239
    As far as I know, Linq can cause issues with mobile platforms though, so beware.
     
  11. Shadowys

    Shadowys

    Joined:
    Aug 19, 2013
    Posts:
    5
    Nice. There we go. Some sort of comparison between languages :p

    Actually, I do use C# (because PUN is in C#), but going from C# back into Boo, I do appreciate the syntax for generators (Linq............==, Boo generators speed > for loops, but linq performance is not), for loops that also function as foreach loops and literal slices, etc, basically just for readability.

    Going vice versa though, the documentation and community available is overwhelmingly awesome.

    Sometimes it just feels going against current just to program in Boo. LOL.
     
    Last edited: May 22, 2014
  12. makeshiftwings

    makeshiftwings

    Joined:
    May 28, 2011
    Posts:
    3,350
    There is a bug with Unity's outdated Mono implementation that causes GC and slowdown in foreach loops in C#. That's not a "feature" of C#. If you compile your C# in Visual Studio beforehand and put it into Unity as a DLL you won't hit the foreach bug.
     
  13. MGazer

    MGazer

    Joined:
    Jan 6, 2014
    Posts:
    17
    Some of us do use Boo even if it isn't the most popular option. I personally think that the more options you have the better.

    http://forum.unity3d.com/threads/247235-My-first-game-Meteoroids

    If I need to use something else on occasion it's really no problem at all to write a script in C# or Unityscript. I made Meteoroids using Boo. I think I used one C# script and I used LeanTween in C# for the camera shake.
     
  14. ippdev

    ippdev

    Joined:
    Feb 7, 2010
    Posts:
    3,850
    Amazing how many people try to stop us from using JavaScript(UnityScript). Could be the fact they are used to the brain muscle memory from over a decade of developing in ActionScript. It took me less than an hour in Unity 2.6 decide to drop Flash dev and go with Unity back in 2009. And in four hours was writing full physics sims, had a few dozen rotation, translation, constraint and other helper scripts written. If it was C# I would never had made the switch. I now have literally several thousand scripts in Unity js. Why should I stop?? No good reason you can come up with and that is a fact you cannot smirk your way around.
     
  15. Demigiant

    Demigiant

    Joined:
    Jan 27, 2011
    Posts:
    3,239
    Ippdev, Teo's was just a consideration, and there was clearly no attack to JavaScript/UnityScript in his lonely and single phrase. Incredibly, the rebirth of this old thread has not yet transformed into a UnityScript/C# fight, so it would be nice if we tried to keep it like that :p

    Ah! And I thought it was a global C# issue. Thanks for the info. I hope one day we'll be able to use foreach loops whenever we want.
     
    Last edited: May 23, 2014
  16. ippdev

    ippdev

    Joined:
    Feb 7, 2010
    Posts:
    3,850

    Check Teo's post history recently. It is not an isolated post. I am not starting a C# vs .js war. I am asking that one not start from _some_ of the C# folks who ALWAYS start them with snide remarks about js or consider us noob devs. I am far from a noob at 56 y.o, 35+ years as senior art director/arts engineer and several gigs as lead dev on game projects and 15 years programming.

    I offer this link for proof I ain't a noob at art and doubt many here could match it https://www.flickr.com/photos/cicidia/2439909372/ and this in the digital realm http://www.youtube.com/watch?v=CyA-xkTN9IU and this framework for a custom pelt shader in .js using Substance Designer
    http://mindreleaselabs.com/UnityDemos/CanineAavtarCustomizerShaderDemo.html and this framework for a procedural IK combat and nav system written in .js http://mindreleaselabs.com/UnityDemos/KatagonV1Documentation.pdf Not exactly noob/amateur stuff. YMMV:)
     
  17. Demigiant

    Demigiant

    Joined:
    Jan 27, 2011
    Posts:
    3,239
    I know lots of people that use UnityScript and who are definitely not noobs, so I certainly believe you :) That said, man, WHAT is that fish statue??? xD If you somehow worked on it, you have my compliments since it looks really cool, but... but... I'm Italian, and here "fish" is another way of saying "that thing which is between a man's legs", so that statue looks, uh, very weird! Beware, no offense intended, but I couldn't resist mentioning it :D
     
  18. ippdev

    ippdev

    Joined:
    Feb 7, 2010
    Posts:
    3,850
    The Great Fish (biblical reference) was commissioned by Pano Karatossios who is the biggest restauranteur in the US and CEO of The Culinary Institute of America (an institute for educating chefs) and Buckhead Life Restaurant Group. I was Lead Artist and Project Manager so it is all my work. It is clad in 10.5 tonnes pure copper and can withstand 175 mile per hour winds and an 8.5 earthquake, stands 65 foot tall and weighs 83 tons with 220 hand pounded scales and 3300 handcut copper foil pieces. It was commissioned in 1995 for showing off for the 96 Olympics. It is in front of his flagship restaurant, The Fish Market, so kind of appropriate. This is also the HQ of the 16 top restaurants he owns in Atlanta. We often joked about it being Pano's Penis..so the reference doesn't bother me.. I beat ya to it. It was my first statue I ever built but I had been self trained in the Italian Masters since age 5 and was awarded the commission based on my oil painting skills. I have had over 100 folks tell me they fired a big one up and sat and looked at it..a fine compliment AFAIC. It has been featured on several hundred magazine covers and was the front cover of Japan Airlines in flight magazine for two years as to what to see in America. I have been on national news, many local shows and interviewed for a number of local and national newspaper articles as well as sent kudos from many celebs for the work. It is the largest freestanding statue in the southeastern US and will always be the biggest statue in Atlanta as after they put it up a statute was put in place to not allow anything that size to get permitted again. Pano is devout Orthodox Greek Christian hence The Great Fish moniker. It led to being hand picked by Coca Cola to design, engineer and install the largest arts install at the 96 Olympics.
     
  19. Demigiant

    Demigiant

    Joined:
    Jan 27, 2011
    Posts:
    3,239
    Dong jokes apart, as I said, it is very cool indeed ;)
     
  20. jashan

    jashan

    Joined:
    Mar 9, 2007
    Posts:
    3,307
    I appreciate people not starting a C# vs. JS ... or Boo or whatever war. The purpose of this thread was specifically to really just share personal experiences with the different languages and not debate which one is "better".

    So if you (this "you" refers to everyone reading this thread, not any specific person) are experiencing some issue with either language in your personal usage of that language - please share it here. If you want to prove to people that your language is the superior one ... there's plenty of threads where that exchange of opinions perfectly fits the tone of the original posting ;-)
     
  21. JovanD

    JovanD

    Joined:
    Jan 5, 2014
    Posts:
    205
     

    Attached Files:

  22. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    15,614
    I have a question. As someone who has barely used UnityScript and hasn't taken an interest in learning it, I am curious to know if it has all the same features as C#. In particular:

    - Does it have delegates or some equivalent?

    - Can you define custom generics?

    I ask because I simply haven't seen these things done with it.
     
  23. Shadowys

    Shadowys

    Joined:
    Aug 19, 2013
    Posts:
    5
    JS and Boo have first class functions, which does almost the same thing, (no pointers in JS)

    Code (csharp):
    1.  
    2. function myFunction(a, b) {
    3.     return a * b;
    4. }
    5.  
    6. a=myFunction;
    7. alert(a(3, 3));
    8.  
    Not sure about custom generics though.
     
  24. ippdev

    ippdev

    Joined:
    Feb 7, 2010
    Posts:
    3,850
    Don't wanna C#. Just like I prefer not talking backwards in my native tongue.

    HTH
     
  25. ippdev

    ippdev

    Joined:
    Feb 7, 2010
    Posts:
    3,850
    What is a custom generic used for?

    So far there has not been anything I have not been able to do in Unity .js. AFAIK..I have been able to implement any request a client had in dozens of contracts and hundreds of personal projects and text sims. I can't ever recall wishing I had some functionality that C# had. I have worked on many projects in C# for clients and came across many a mess that I have not seen in .js. The cleanest code I have seen in C# was almost the same as .js but kinda like Yoda was doing .js in the way the syntax was formed..
     
  26. Demigiant

    Demigiant

    Joined:
    Jan 27, 2011
    Posts:
    3,239
    A while ago, a friend asked me about the differences, so I wrote a post on my old blog about them, also gathering feedback from the community.

    In no way it wants to be a "C# is best, UnityScript sucks", so please if you read it, don't read it that way. It's just that there are indeed various additional things you can do with C#. Still, most of all are simply language candy (apart the fact that C# compiles way faster with big projects) and again, everything you want to do can be done with both languages.
     
  27. npsf3000

    npsf3000

    Joined:
    Sep 19, 2010
    Posts:
    3,830
    All sorts of stuff, particularly useful if you're wanting to create or work with collections or wrap functionality around a type. I also use it a lot if I'm creating extension methods (e.g. Linq);

    I gave this example in an earlier thread:

    Code (csharp):
    1. public class GenericPool<T>
    2. {
    3.     Stack<T> store = new Stack<T>();
    4.  
    5.  
    6.     public int MaxStored = 100;
    7.     public Func<T> CreateLogic;
    8.     public Func<T, T> SaveLogic;
    9.     public Action<T> DestroyLogic;
    10.  
    11.  
    12.     public T Get()
    13.     {
    14.         if (store.Count > 0) return store.Pop();
    15.         else if (CreateLogic != null) return CreateLogic();
    16.         return default(T);
    17.     }
    18.  
    19.  
    20.     public void Save(T item)
    21.     {
    22.         if (store.Count < MaxStored)
    23.         {
    24.             if (SaveLogic != null) item = SaveLogic(item);
    25.             store.Push(item);
    26.         }
    27.         else if (DestroyLogic != null) DestroyLogic(item);
    28.     }
    29. }
    Many people do believe if it's not broken, don't fix it. Of course, all that means is they wait until something breaks until they try to improve.

    Do you *know* what functionality C# has?

    For example, here's a rough list of what US is missing (feel free to update):

    • Generics.
    • Extension Methods.
    • Events.
    • Optional Named Parameters.
    • Params Keyword.
    • The billion and one resources in and on C#.
    • Nullable syntax.
    • The ability to write applications outside of unity easily [console, web, services, forms, silverlight, photon server etc.].
    • Visual Studio support.
    • Anonymous types.
    • Cool object collection initializers.
    • Implicit arrays.
    • Really cool features like dynamic and async [albeit not currently available in Unity].
    • Properties [esp. auto properties]
    • Namespaces.
    • Partial Classes.
    Have you gone through that list, understood each one of those features, and decided that they're really not worth it? Furthermore, C# is an active language that is currently being developed further, so we will shortly be able to add to that list:

    • Roslyn
    • Primary constructors
    • Auto-property initializers
    • Getter-only auto-properties
    • Using static members
    • Dictionary initializer
    • Declaration expressions
    • Await in catch/finally
    • Exception filters
    • Binary literals
    • Digit separators
    • Expression-bodied members
    • Event initializers
    • Null propagation
    • Semicolon operator
    • Private protected
    • Params IEnumerable
    • Constructor Inference
    • String interpolation
    • NameOf operator
    • Field targets on autoprops
    Still not convinced? Here's the great news! Use US!

    I think there has been some confusion that US is somehow a bad language. It is not. However, many developers find that US is not much easier than C# to learn, and unnecessarily limiting (because they happen to like one or more of the above features) - this in combination with the UTs strong US marketing resources at the time meant that there was a lot of newbies being convinced that US was the simpler or better alternative and suffering from it. AFAIK this has changed, with C# being the default tutorial language.

    To repeat it wasn't that US is a bad language, but it was being used in a scenario where it was not merited.
     
    rakkarage likes this.
  28. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    15,614
    Yeah yeah, but functionality isn't everything. The other languages aren't my flavour either, but that doesn't mean I think less of them.

    C# does have its downsides. For instance, changing one member of a Vector3 (or Color) in C# looks like this...

    Code (csharp):
    1.  
    2. Vector3 temp = transform.position;
    3. temp.y = 0;
    4. transform.position = temp;
    5.  
    ...where in US it looks like this...
    Code (csharp):
    1.  
    2. transform.position.y = 0;
    3.  
    And if your game's exclusively made of simple behaviours why not take the language that's less verbose and clearer for that use case?
     
  29. npsf3000

    npsf3000

    Joined:
    Sep 19, 2010
    Posts:
    3,830
    Which is why I make it very clear at the end of my post that US is a fine language.

    To be fair, I'd write that C# as:

    Code (csharp):
    1. transform.SetPos(y: 0);
    2. //or
    3. transform.SetYPos(0);
    Though, granted, that feature is one of the few US does have over C#.

    I agree - the less verbose and clearer the language the better!

    Which still leaves us with a question - US, C# or Boo? They are all pretty clear and to the point, with some minor differences in approaches.
     
  30. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    15,614
    For most use cases. At a high level, being concise is a virtue. As you get closer to the metal/try to write fast code for performance hotspots it sucks, as conciseness often hides important detail.

    In essence, I can absolutely see benefits to both C# and US. I don't know about Boo, so I can't comment to that.

    To me the main downside of US is that it's called "JavaScript" so often and even officially. It is not JavaScript, and JavaScript was already confusing enough to newbies thanks to the whole "JavaScript is not actually related to Java" thing. So now we've got "JavaScript in Unity is not actually JavaScript, and also JavaScript is not actually related to Java".
     
    Last edited: May 27, 2014
  31. npsf3000

    npsf3000

    Joined:
    Sep 19, 2010
    Posts:
    3,830
    I'm not sure how we got here and what the relevance is. I also feel like a bunch of concepts are getting mixed together - less verbose and clear is not necessarily the same as concise. And if one is writing 'close to the metal' one can still be 'concise' while expressing low level concepts - I can write both a web server and a packet header concisely - even though they are on very different levels of abstraction.
     
  32. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    15,614
    I'm just discussing how different things are useful in different use cases. Also, I was using "concise" as an antonym to "verbose", nothing to do with the clarity side of things. (To the contrary, I was talking about conciseness hiding important detail, i.e.: making things less clear.)
     
  33. alexzzzz

    alexzzzz

    Joined:
    Nov 20, 2010
    Posts:
    1,447
    By that extra one resource, I believe, you meant the complete language specification, the thing that UnityScripts lacks badly.
     
  34. npsf3000

    npsf3000

    Joined:
    Sep 19, 2010
    Posts:
    3,830
    Of course :)

    Not being able to figure out if you support, say, the using statement [ala disposing objects], and if so what the syntax is is a huge productivity killer. Even worse - having to go into the compilers source code to explaining why functionality works they way it does or doesn't (as I have done in the past).


     
  35. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    15,614
    For the average user I think that stuff like professionally developed and/or delivered courses and other high-quality, well designed learning materials are more important. I can go to my local book store and get a C# guide and be relatively confident that it's of reasonable quality. I can't do the same for UnityScript.

    Actually, as I touched upon above, it's even worse - I can go to my local book store, buy a book about "JavaScript" because that's what Unity tells me I'll be working in, and be learning something that's largely unrelated to what I want.

    Internet resources are such a minefield that I can't recommend them to anyone. The people who can tell the difference between a good one and a bad one are typically the people who don't need to sue them in the first place.
     
  36. npsf3000

    npsf3000

    Joined:
    Sep 19, 2010
    Posts:
    3,830
    MSDN is an 'internet resource'.
    The Roslyn Forums are an 'internet resource'.
    The Enhanced Source view is an 'internet resource'.
    The tons of libraries that I use regularly are 'internet resources'.
    There are plenty of helpful forums that are 'internet resources'.

    Yes, it can take a little while for a beginner to get used to classifying between good and bad resources - but this is a largely self-evident statement -beginners often need practise at everything... that's why they are beginners. However it's very easy to direct a newbie to the 'safer' resources and give them tips and hints. For intermediate to advanced programmers the internet offers a huge buffet of help. Whether it be broadening your knowledge, giving depth, solving very specific problems, providing libraries that not only help you avoid reinventing the wheel, testing your knowledge etc.

    Recently I needed a checklist treeview in WPF. Sure, I could have spent a couple of days figuring out how to achieve this... or I could spend 15 mins on google and find a premade one on a blog post that works just fine.
     
    Last edited: May 28, 2014
  37. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    15,614
    Yeah, they're all great things, but they're not really relevant in the context of what I was talking about, which is learning resources for beginners.
     
  38. npsf3000

    npsf3000

    Joined:
    Sep 19, 2010
    Posts:
    3,830
    My apologies. You see, all my beginning learning was conducted via internet learning - so much so in fact that when it came to 'formal learning' I was twiddling thumbs most of my time. Heck, while I have bought numerous books on programming, the amount of time spent reading them would be a very small percentage indeed.

    If you can't recommend any resources online that's fine, but I'd suggest that's not a problem with the available resources - there's some real gold out there.
     
  39. alexzzzz

    alexzzzz

    Joined:
    Nov 20, 2010
    Posts:
    1,447
    Heh, my basic knowledge of C# came from reading the C# language specification, version 1.0 - a .doc file on a pirated CD with Visual Studio 2003 .Net. There was no MSDN on that disc, there was no books about C# on the shelves yet, neither I had an access to internet.

    Maybe, this is the reason why I do care that much for language specifications :)
     
  40. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    15,614
    I'm not arguing with that at all. Yes, there's plenty of gold out there, I agree completely. There's also some real crap. I didn't say it's all crap, I said I can't recommend it as a general approach because it's a minefield.
     
  41. ippdev

    ippdev

    Joined:
    Feb 7, 2010
    Posts:
    3,850
    Never seemed to stop me..so I am not sure how "critical" it is. What does stop me is trigonometric/quaternion functions once in a while. The rest is a breeze.
     
  42. ippdev

    ippdev

    Joined:
    Feb 7, 2010
    Posts:
    3,850
    When I first got started with Unity (early 2009) I read the docs from beginning to end. I had over a decade of AS1,2 and 3 work and had the opportunity to work under a dev who wrote a book on Flash programming who taught me many ways to go about things. I was also messing about in the group Ralph Hauwert (now a Unity dev) was in implementing 3D into Flash. The online resource I went to early on was the Unity.wiki that had all the scripts and many packages, tore those apart and saw what made them tick. I was wondering if a book on UnityScript would sell enough copies to be worth writing one. I wrote courseware for Flash 5 so have some experience in tech docs.
     
  43. _Yue_

    _Yue_

    Joined:
    Jun 8, 2014
    Posts:
    20
    Some users believe more interesting is if you write your script in C #, or perhaps think they are programmers. In this case the three languages are interpreted, and there is no difference to performance or enforcement itself.

    In this case it would be interesting to learn c + + and directX, this is not making games would end up without a best case, we would engine developers.
     
  44. Unboundv2

    Unboundv2

    Joined:
    Jan 6, 2014
    Posts:
    6
    I voted for "C# & JS" seeing as how I'm both a game/web dev. I use both in the work that I do. However if I was strictly doing just Unity3D. I would say C#. As it's a universal programming language and servers many purposes. Javascript is alright and uses the "same" syntax but just isn't my style.
     
  45. alexzzzz

    alexzzzz

    Joined:
    Nov 20, 2010
    Posts:
    1,447
    The first part is wrong. None of the languages are interpreted, all of them are compiled twice. The first time - from the source to the intermediate language code, and the second time - from IL-code to machine code by AOT- or JIT-compilers.

    After the compilers have done their job, you get a plain machine code not much different from what you get after C++ compilers. You can inspect it with any x86/x64 run-time debugger/disassembler.