Wednesday, September 30, 2015

Learning Unity 3D

Unity (3D) is one of those all-in-one, inclusive, cradle-to-grave 3D packages that has a billion and one things that it tries to do in an effort to provide some sort of structure or environment for real time 3D animation, what many would call “games”. Or “VR”.

It is clear that they have done a valiant job to both provide a framework, and also to provide scriptability and programmability at every level. Thank goodness the bad old days when somehow people thought they were going to do computer animation without being able to program computers seems to be dead. It is also clear that Unity has put a lot of serious effort into providing real documentation in contrast to so many other firms out there who seem to think that they can "group source" their documentation from random users.  I appreciated that they recognized that there is user documentation online that is not very good.  They have an entertaining IDE that seems to work right out of the box and supports not one, not two, but three different but related scripting languages.  This is all good news.

The bad news is simply that with software of this type there are barriers to entry and one needs to reach a certain critical mass before you can do much of anything useful with it.  This is just a fact of life.  And at least in Unity's case everything makes sense, at least so far.  That is more than I can say about many other software packages out there whose name I will not mention, other than Photoshop and Gimp, those two I will mention by name.

So it takes time to get traction as with any serious software package.

There is one silliness which I have noticed they try to conscientiously document.  One of their three embedded scripting languages is "Javascript-like" but when you look closer you realize it is not Javascript much at all.  So that is a little weird and it has the side effect that in fact you only think you know how to program one of their scripting languages, the reality is different.

So why do I mention all this?  Its because a friend asked for some help on a demonstration he was doing in Unity and he had a little less than a week.  The problem is, in about a week one can start thinking about getting something simple done in a system like this.  A month would be more realistic.

And this is not an isolated situation. The fact is that there are dozens if not hundreds of these packages out there, each in their own niche, and none of them are terribly difficult to learn, at least up to a point. But it is not instantaneous and figuring out which ones to learn and become good at is not intuitively obvious, most of the time.

[10/16/2015 As an addendum, although it has taken longer than I like to learn elements of Unity, it is proceeding and it will be entertaining and useful to pursue this at least as far as doing a non-trivial trial application, maybe something in the so-called VR world which is certainly trendy right now]

My "Hello, world" script in C# for Unity.  From tiny acorns might oaks grow.

No comments:

Post a Comment