Subscribe:Atom Feed


Posted: 12 January, 2016

Unity I've been meaning to write about Unity for a while. I basically live in the Unity editor and have done for the last 2 years, so - and in a fairly tangible way - Unity can have a profound effect on my quality of life. (Today has not been a good day...)

You've probably heard of Unity, but if not, it's one of a slew of modern game engines that are 'free' (as in beer) for any game developer, big or small, to use. It aims to be the one-stop-shop for developing on anything from a mobile phone or web page, to a PS4 & high end PC. It's been around for years, is reasonably well documented and fairly easy to learn, which has made it a hit with people just starting out and anyone - like me - that's budget conscious.

In many respects it's also responsible for the democratisation of the game engine market, the wild success of version 4 clearly helping tip the hand of Epic into changing the licensing model for Unreal. Between them, these two engines have changed the landscape for pretty much everyone. Instead of paying thousands (or hundreds of thousands, in Unreal's case) for an engine, you now get pretty much the exact same tool-chain that a AAA dev would need, with a team of 100s supporting it for you, all at next to zero cost. This makes Unity a massively important tool, not just for developers but for the industry as a whole.

I've been using Unity since the start of the v4.x series, so just over 2 years, as I said. Compared to in-house engines that I've used in the past, the Unity editor is a pretty flexible place to work. It's fairly easily customisable, allowing you to tool up for pretty much anything you need to do on the content creation side. The engine is scriptable via an Entity Component system that's very loosely coupled and, as such, very expressive. Components can be written in Javascript (spit) or C#, and if need be you can drop into C or C++ through a plugin API, as well as ship with your own DLL and/or shared libs. It ships with a forward and deferred renderer, which since version 5 also uses a realtime GI system with metallic and specular workflows for material setup.

It's pretty powerful stuff, given the price, and clearly better than anything I could have written on my own. For the large majority of work Unity doesn't get in the way. For everything else, Unity is the bane of my fucking existence and I can't wait to stop using it for a while.

I'm increasingly coming to believe that the vast majority of Unity developers don't actually use what they build, as some of the decisions that have been made recently are just completely brain dead. (I'll assume you're familiar with Unity past this point as I go a little ranty, so apologies if you don't know what I'm talking about...)

For a start, the editor has the same usability bugs that it's had since I started using it.

What about the fundamentally broken stuff? Or the mildly irritating? I could go on, but it'll just be listing the Unity Bug Tracker. And trust me, I could go on.

A lot of these complaints I could have written when I started on the 4.x series. That's not good. It seems, as an outsider, that there's a desire within Unity to add features rather than finish off what's shipping. Mecanim is moving at a snail's pace, and has caused me no end of problems. Given the choice of using Unity's UI or rolling my own, I'd roll my own. We're never going to see proper audio support without middleware. Fuck only knows when the HTML5 support will be 'finished'. But hey, these are all great tick boxes on a website, and we can show them in a You Tube video, so they must be good enough...

And what about the platform support? It's a noble aim to support every GPU known to man, as well as the CPU architecture the aliens from Independence Day are rocking, but Unity's quest to be all things to all people is rapidly leaving it in a state where it's a half-fit for a subset of uses. Unity 5 did improve a lot of things - thank fuck I don't need to run 3 different versions of the editor just to output console builds anymore - but it broke as much as it it brought in, as the ever sliding roadmap will attest to. And how well does the new lighting system actually work on mobile? I'd hazard not at all, so it'll be fun playing with all that 'Legacy' labelled stuff, 6 months from now...


Unity is creaking and it's a real shame. It smells of a legacy code-base groaning under the weight of its own feature set, while the company moves forward at a unrelenting speed. This is a massive shame, because for a while there, in 4.6, I had pretty good performance, a nice feature set and a rock solid work environment. If it wasn't for the console skus I probably would have shipped with that. Right now, in the 5.x series, I'm lucky if I can get through the day without the editor falling over or running head long into a bug.

Just stop guys. Take a fucking breather. One of the big draws to Unity was that it worked for what I needed. It can't claim that anymore. The race for feature parity with UE4 on the render side is good an all, but not at the expense of everything else being half arsed.

I'm not going to wait for 5.6 to sort this stuff out.