Love – hate relationship

Today I wanted to write a little bit about our planned update from Unity 5.1.1 to 5.3.0 and why it’s taking so long.

First, let me say, that Unity is a great engine. We really enjoy working with it. I might be more difficult to pump out high-end graphics on it (not that we care, we haven’t got resources to provide AAA graphics anyway), but it’s easy to work with and its UI editor is the best I’ve worked with so far. Having said that, I sadly have to admit that most of the recent releases have not been ideal (and I’m being diplomatic here).

5.1.1 we used so far was released in June, 2015. The major problems with it was the resolution glitch – when the player selected a resolution that was of different aspect ratio than their monitor’s, all buttons’ hit areas where offset significantly, making the gameplay rather difficult and navigation extremely annoying. Some of those, who encountered that problem, found a solution on our forums, but others just assumed the game is faulty. I don’t need to add, it resulted in at least several refunds (and I do understand that, as a buyer I would expect the game to work without having to look at forums for solutions). 5.1.1 also caused a sticky keys problem on Linux build (which is officially not supported, but if that’s something we can fix then we would). So, we waited for Unity 5.2…

Unity 5.2.x fixed all of the above and also, among other improvements, added dropdown boxes, which we wanted to use in the Event Editor we are working on. But life would be too easy if everything worked correctly, right? So this time, there was something messed up with physics. Profiler, even on a new, empty scene, kept showing spikes on physics every few seconds, up to 160 ms. This, unsurprisingly, resulted in poor game performance and framerate drops. So, we waited for Unity 5.3…

Unity 5.3 was released on 8th Dec. It did fix the framerate drops, so we started using it for the last week and were very optimistic that all serious issues from previous releases have been fixed. Until we started testing on DX9, Linux and Mac. Mac build was crashing straight away. Linux and DX9 had a very serious graphical glitch, were upon interaction with an animated element on scene, several other animated elements on that scene was assigned a different texture for 1 frame (like – a Cancel button was getting a font atlas texture). The visual effect was that half of the screen blinked for a split second. Not something we could have present in a release build…

So we scratched our heads and the best option was to revert to an earlier Unity build. There was only one candidate – 5.1.4, which in theory should be working without 5.2 physics spikes, but with sticky keys for Linux fixed. This was all fine, but it would mean the resolution bug would still be present, at this bug alone was the main reason to move away from 5.1.x. And we would lose about one weeks worth of changes to try and apply it to an earlier version.

So we scratched our heads even more, and discovered that at the end of November, Unity released version 5.2.3. This one had resolution problems fixed, sticky Linux key fixed and no spike on physics. It also includes UI dropdown boxes and fixes some glitches with Input fields. But because it’s still 5.2.x series, it has no texture flickering glitch, that was added to 5.3.0 as a side effect of asynchronous texture loading to improve performance. At this point it needs more tests to use it for a release build, but we have high hopes.

So the past few days were full of very emotional reactions, thanks for the thrill Unity! 😀

Bookmark the permalink.

Comments are closed