Getting started with Unity 3D, and a small game prototype

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
  • Multiple language/script support. You can choose to code in C#, Javascript, or Boo – all handled via the MonoDevelop IDE by default
  • 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:

jumper-01
The player bounces up the infinite platform stack – being allowed to pass through the from the bottom of a platform, but not from above
jumper-02
Boost powerup items allow extra speed, and result in a zoomed out view, showing more of the game scene

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.

Leave a Comment