Unity is an entire ecosystem based around game development. I have known about it for quite some time, but until recently have not really had a good look at it. After downloading and installing the free version of Unity (free, with a slightly limited feature set), I must say that I am very impressed.
Everything you need to create games is at your disposal. Here are my favourite characteristics of Unity after having used it a little bit over the last few weeks.
- Multi-platform support – its ridiculously easy to build for multiple platforms. PC, Mac, Web, iOS, Android, etc… I have had no issues with sharing my code across all of those platforms, and it all worked really nicely
- Great editor – the Unity editor caters for just about every process you need. It has some excellent workflows and makes setting up your scenes, objects and game hierarchy really easy
- Asset store – if you need to bolt on or add modules to your game, there are plenty of assets out there to take a look at
Having run through a couple of tutorials on this excellent blog, to get up to speed with Unity and the way it works, I have already started work on a small Jumping game / “doodle jump” type prototype/game. For now, and whilst it is in the prototype stage, it is just called “Jumper”. Here are a few screenshots:
The explosions are volumetric explosions, instantiated from a prefab (Unity speak for a template). I created them in Blender, and then used shader code posted over here, along with the basic guidelines in this great blog post to finish their implementation. I wrote code in C# to position, size/contract and control them once instantiated. I highly recommend looking at the above blog post I linked to read up more if you are interested in achieving this effect in your own Unity project.
All in all, I am very impressed with Unity. It allows you to effortlessly publish across all platforms, and go from nothing to prototype/small game in record time. It was a nice change from cocos2d-iphone which is what I am used to using to develop my games.