Tuesday, July 17, 2012

3D Game Development - A beginners guide to choosing the right SDK

Hey guys,

Recently I've been looking at a range of 3D game engines that lie outside of the Actionscript Stage3D realm, with the announcement that the Flash Player will no longer be supported on mobile devices. I am hoping to create a new 3D game idea that I have been mulling around in my head for quite some time now.

After looking for a really long time and playing with a few SDK's and seeing how they all weigh up against one another, there are a few standouts.

Unreal Development Kit - The engine behind the unreal series, a truly powerful piece of software, I won't deny that this thing LOOKS amazing. However, if you are looking to be able to ease into the development process, be warned, UDK uses it's own proprietary language called UnrealScript, and whilst it's not so far away from other OOP languages, you'll find yourself relearning a few idiosyncrasies of that corner of programming. It's free to play and develop with, however, if you're intending to go big with it (multi-developer big) then you might be deterred by their licensing, which until recently declared that royalties must be paid for any earnings over $50,000, however, there is now a application process that has to be gone through to get approval I believe. Aside from all of this, UDK is a brilliant set of tools to develop with, it's powerful, very quick at programming iteration and the engine itself looks gorgeous. There will be a learning hump before you get into any solid development, but apart from that, a good solid choice.


Unity - Unity is one of the best engines I've played with, it's got a huge developer following and looks great. In terms of pricing, Unity uses a 'module' marketplace, for where you want to deploy, this can be a blessing or a curse depending on how you look at it. For example, if you only want to develop for mobile devices, it'll only be two modules, but if you want to go platform wide, it'll cost you a lot more. There are also both a professional and standard options which allow you to save money by losing out on some features (click on the 'read more' link under each product). Aside from that, the game engine is great, very fast iteration time, good work flow and very easy to do things like model rigging, audio and above all, multi-platform deployment into native code. Unity also frequently does discounts and freebies, so it's always worth having the site on bookmark so you can come back later and see what's going on. Be warned, however, Unity is a end-to-end development suite, so if you are planning on coming into a project half-way through, you might find things difficult to pickup.


jME - jME or Java Monkey Engine is a engine that I came across very recently when searching for alternatives to the standard Android development suite, with 3D in mind, from what I've seen of the features and more importantly their showcase, it looks to be a very powerful, and easy to use system, it comes with it's own IDE, so no need to worry about messy set ups and getting things working in Eclipse or some such. I guess the most important thing that you should take away from jME is that it's 100% free! However, you'll only be developing for Android or Web. Which, considering the market and where the money is at the moment, might not be desirable.


ShiVa - I thought that ShiVa deserved a mention in this list also, ShiVa has been around for a while now and boasts some pretty impressive features, compiling code in C++ it's got a lot going for it, and it's relatively cheap too. And they're currently running a web deployment special which allows you to upload games for free.


Ultimately, as an indie developer, I'm always looking at the free or less expensive options when I look at a development environment, but looking at the wide spread of both suite and of price, I would suggest to anyone going past my blog to have a look at either Unity or Unreal, I recognise that they're more expensive (well, Unreal is only costly if you make a AAA title with it,) but I personally think that for the price that you need to pay for the product, you really do get the support and system that you pay for. 


David.