Sign in to follow this  
b3y0nd3r

Unity About new Unity 3.0

Recommended Posts

hey guys,

Newbie here, I've just read the review of Unity in the main page, and downloaded the free version. But I think I'm not getting the point of the Unity's usage. I mean, it is a game engine, but "how" do you develop a project using Unity?
Looking at the workflow, it seems you create some terrain, put some objects and get them to interact. I don't think that is the point of Unity, because it would be so limited.

I've seen it has some scripting. That means you only have to code that scripts? I'm learning C++ but I don't see where you have to "code" the game using the engine...

Anyone using Unity?


Thanks!

Share this post


Link to post
Share on other sites
Quote:
Original post by b3y0nd3r
Looking at the workflow, it seems you create some terrain, put some objects and get them to interact.


Yep, that sounds about right.

Quote:
Original post by b3y0nd3r
I don't think that is the point of Unity, because it would be so limited.


How so? From what I've seen, Unity seems to have everything you'd want in a game engine... Dynamic-lighting, physics, etc.

Quote:
Original post by b3y0nd3r
I've seen it has some scripting. That means you only have to code that scripts? I'm learning C++ but I don't see where you have to "code" the game using the engine...

Anyone using Unity?


I've only played with Unity for about a half-hour, but yes, you create scripts with either javascript, C#, or Boo (a dialect of Python). You could use C++ to create dlls or plugins perhaps.

Share this post


Link to post
Share on other sites
Coding is only one part of game makeing. (~30% of game making)

Unity has precoded components that game uses, and components are controlled
with script language. (time critical things are hardcoded in to components
and non-time critical is left for scripting languages)

And you can use Unity without using terrain component, terrain just happens to be
common element in games, so Unity has special component to speed up game makeing.


<rant>

Programmers are not best game desingers,
becouse making entertaintment is not about logic
but of imagination!

</rant>

/Tyrian

Share this post


Link to post
Share on other sites
Quote:
Original post by b3y0nd3r
I've just read the review of Unity in the main page, and downloaded the free version. But I think I'm not getting the point of the Unity's usage. I mean, it is a game engine, but "how" do you develop a project using Unity?
Looking at the workflow, it seems you create some terrain, put some objects and get them to interact. I don't think that is the point of Unity, because it would be so limited.

I've seen it has some scripting. That means you only have to code that scripts?
The scripting is where most of the work happens. It's the opposite of limited; basically, anything you can figure out how to program, you can do (within reason, of course).

Just looking at the editor without investigating the scripting API won't really give you an idea of the project workflow or of how to develop a project in Unity. If you want to get a better idea of the process, working through some of the tutorials and/or trying to put together a simple game (e.g. Pong, Asteroids, etc.) might be a good place to start.

Share this post


Link to post
Share on other sites
Thanks all for the answers. They were very helpful. Only one more doubt.
As my project is going to be focused on random generated worlds with RPG gameplay and with the users to be able to create and manipulate objects via scripting, is Unity powerful enough to do all of that?

Share this post


Link to post
Share on other sites
Great! I'm looking forward to check the tutorials.

By the way, I know some C++ and I'm going to develop primary on Mac OS, wich scripting language suits best, javascript, C# or Boo?

Thanks again ;)

Share this post


Link to post
Share on other sites
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, javascript, C# or Boo?
Although it was referred to as javascript for a while, it's actually UnityScript, a javascript variant.

Currently there are more Unity-related resources available for UnityScript than for either of the other two languages. There are a few reasons for this, two of them being that up until recently UnityScript has been favored in the documentation, and that UnityScript is arguably easier for beginners to get into than C# (and maybe Boo as well, although probably not to the same extent). I believe with Unity 3, the documentation is in the process of being updated to incorporate more C# examples.

Boo is hardly ever mentioned on the Unity forums, and I've seen almost no tutorials or example code that uses Boo. I'm not sure why, but for whatever reason, Boo seems to be by far the least frequently used of the three supported languages (and both as a cause and as a result of that, there are relatively few resources available on developing in Unity using Boo).

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.

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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, javascript, C# or Boo?


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.

Share this post


Link to post
Share on other sites
"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.

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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 javascript that is specific to the Unity engine; in other words, although it's similar to javascript, it's not the same language, and is not usable as-is in any context other than Unity.

Now, I haven't used UnityScript myself, so this is just based on 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).

Share this post


Link to post
Share on other sites
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 javascript, is a separate language specific to Unity. If you know otherwise though, I'd certainly like to know if I'm wrong.

Share this post


Link to post
Share on other sites
Quote:
Original post by jyk
My understanding is that UnityScript is a variant of javascript that is specific to the Unity engine; in other words, although it's similar to javascript, it's not the same language, and is not usable as-is in any context other than Unity.
AFAIK, they are both bog-standard implementations of ECMAScript, as is Flash's ActionScript.

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.

Edit: The biggest issue with javascript vs UnityScript is that while they are the same language, the programming model is different. When people 'learn' javascript, they are actually learning to manipulate the DOM - which has little or nothing to do with the language itself. Unity treats javascript as a first class programming language, so you have to write object-oriented javascript exactly as you do in C#/Boo, and it misses most of the warm fuzzy shortcuts afforded by the DOM.

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
Quote:
Original post by swiftcoder
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.
Yeah, I think Unity's version of javascript has often been presented as 'real' javascript, both for name-recognition purposes and (ostensibly) to prevent confusion. As you can probably tell from reading those links though, it's probably caused more confusion than it's prevented :)

Share this post


Link to post
Share on other sites
The main problem you have with Unityscript and Boo is that they are not used outside Unity, so looking for tutorials on learning javascript wont help you much in the Unity world, where as C# in Unity is the same as C# everywhere else. For instance, Unity 2.6 never had generics for Unityscrpt or Boo. Apparently it does now, but they only place you can learn about it is where UT writes about it. On the other hand, C# is still C#. C# is also a strongly typed which can seem like a restriction when you first start using it, but I basically live in the Unity IRC channel and I never fail to see someone confused about why they're getting a compiler message when they think they're assigning a float but it's really an int etc. There is no help for them anywhere else so they join the IRC channel, where the majority of us that give help are C# programmers.

I've also never heard someone learn C# after using Unityscript and exclaim "OMG Unityscript was so much better!!1!".

C# is also a much more transferrable skill to the non-game world. I can't speak for Boo, I've never encountered anyone in the IRC channel that uses it.

Share this post


Link to post
Share on other sites
Quote:
Original post by BLiTZWiNG
The main problem you have with Unityscript and Boo is that they are not used outside Unity
I hate to bring this up again, but people *do* use Boo outside of Unity. It is a full-featured CLR language, and you can use it anywhere you would use C#, F#, etc.

I personally have been developing my current project in Boo, using Mono/OpenTK for Mac/Linux and SlimDX for Windows.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this