Tuesday, September 22, 2009

What is wrong with Unity3D?

I've worked with Unity3D for quite a while now. I really like it. It saves so much time, with all the functionality I need pre-baked and ready to use. I also think the component based architecture is an absolute artwork.

So what is wrong with it?

The last year as seen me working with a team of Unity3D developers on a project. We have three developers, and two artists. This is where Unity3D fails. The Asset Server solution which Unity Technologies provide to allow for collaborative projects is really bad. I'm often prompted with change sets from the start of the project, which don't seem to harm anything but are still confusing. The inability to merge Scenes, and the Prefab workaround is simply heinous.

The final straw came today, when I was attempting to merge in a colleagues work before I committed my own. I was receiving a simple runtime error from one of his functions which I could not resolve. In desperation, I clicked reimport all, a time consuming process which reimports all the assets in a project, during which you cannot work on the project.

Problem solved. Arrrgh.

Unity3D is awesome for solo developers, not so great for teams. These kinds of strange issues need to be fixed before a team of any size should seriously consider using Unity3D.

Monday, September 07, 2009

No Power Operator in C#...

There is no power operator in C#.

What the...

This is the reasoning:
It would be possible to add a power operator to the language, but performing this operation is a fairly rare thing to do in most programs, and it doesn't seem justified to add an operator when calling Math.Pow() is simple.
Huh? A "rare thing to do"... as compared to the bit shifting operators for example? If this question is in the FAQ, surely it deserves a place in the language.

Ridiculous. Brain Dead. Stupid. Utterly Stupid.

The Python Ternary Sucks

I have just spent an hour trying to track down a weird bug in some Javascript interpolation code. The offending code looks like this:
var n = i+1?i<length:length;
Ternary expressions almost always have the structure:
condition value_if_true value_if_false
My Python brain got it wrong, as you can see, I used:
value_if_true condition value_if_false
in the Javascript code, which is the Python way of doing things. Eg:
i+1 if i < length else length
Stupid Python. In this case, The language syntax of Python should have followed the conventions used by most of the planet. "Practicality beats Purity" and all that.

Edit:To be clear, my point is that the Python Ternary expression is needlessly different to almost every other language and causes Brain Pollution.

</rant>

Popular Posts