Unity SDK: It’s The Daddy
It’s Time to make things Spin.
Well, it’s been over a year since I posted a blog entry. A whole year! So much for me updating my site more regularly. They say time passes more quickly when you get older. In my case, I feel like Han Solo just pulled the lever for hyperspace. My face is literally rippling, oh the speeeeed…
Since closing Pocketeers Ltd in 2013, I’ve had to knuckle down and become self-sufficient at game development. For as long as I can remember, I have always worked alongside a programmer. Well, now I’m the one who has to fidget while the compiler runs. And I too swear and spit venom over unruly brackets :).
Back at the start of 2014, I knew that learning a new development system would be a huge investment in time. So selecting a platform is quite a big deal. There’s an array of game development middleware out there to choose from, with more seemingly added each week. I looked at the systems available – Gideros, GameSalad, Corona, Cocos 2D, Marmalade Quick, Unity – among many others. The tech world is a very fickle place – you don’t want to choose a platform, only for it to vanish in a couple of years. Look what happened to Microsoft’s Silverlight. A nice system, lightweight, with some great tools – but now in the process of being dropped.
As far as game engines go, each one has its own pros and cons. I was in the market for a ‘2D only’ game engine that offered a fully functional free version for learning. I tried a few out, and in the end shortlisted Corona SDK and Unity 3D. And, as I was primarily focusing on 2D products, I chose LUA-based Corona SDK.
So I spent the first few months of 2014 learning a large chunk of Corona SDK. It took around 3 months to write a fully-fledged game engine for an old client of ours – an engine for Murder Detective 3. That sadly didn’t go ahead, but you can see info on it here.
I thought Corona SDK was great, especially when used in conjunction with the ZeroBrane IDE. In April 2014 I would (and did) recommend it to artist friends for developing 2D mobile products. The biggest plus for me, was the documentation – which was easy to locate and well written. Support was excellent to, the guys at Corona always answered my emails.
However!…. After showing people the adventure game engine that I’d written for MD3, many asked if the game could be done in 3D. The game backgrounds were highly detailed pre-rendered 3D, but people wanted different camera angles. They wanted a bit more freedom to explore the environments. They wanted things to SPIN dammit. So, I took that feedback on board, and feeling slightly depressed, I decided to switch from Corona SDK to Unity SDK. Don’t get me wrong, I don’t consider learning Corona SDK a waste of time – a lot of the code principals that I learned have transferred over. But I did sort of miss the simplicity of Corona and its nice friendly documentation. By contrast, the Unity documentation often seems scattered all over the place. I would say I’ve picked up the vast majority of information outside of the Unity documentation – forums, YouTube and good old ‘books’ (remember those papery things?)
I’m probably around 85% of the way through completing my first Unity 3D project – a pool simulation with A.I. I chose pool because it covers many of the fundamentals of game development: physics, angle calculations, object manipulation and removal, different camera modes etc. The game logic also has to check for lots of different states and situations. The Unity environment is great to use, although it isn’t without its quirks – particularly when importing assets from 3D Studio. And, it does take a while for the core concepts to sink in (for a non-programmer like me at least!) Simply passing information between scripts being the first hurdle. I’ve still got a fair way to go before I would consider myself fully competent, but then Unity is a truly huge system. But it has definitely rekindled my enthusiasm for game development, and the buzz that I used to get many years ago from developing content has finally come back.
So in conclusion… I was kind of hesitant about learning Unity SDK. I have very good knowledge of 3D Studio Max and the Adobe Suite, but wondered if I had the capacity to learn ‘yet another’ massive piece of software. All I can say now is, if you can learn Max, or zBrush, then you can easily learn Unity. If like me, you’re a 3D artist having a tough time getting clients to pay anywhere near enough to cover your art production time, then learn Unity. At least then you have a means to package your 3D art in a form that you can sell and make money from. As far as I’m concerned, Unity was the missing piece of the jigsaw – the much needed key to self-sufficiency.