Game Development Engines for Mobile Platforms: Unity3D

20 December 2013
By Alexey Rybakov, Senior Developer

A little info about the iOS and Unity3D.

In this article I want to talk a bit about the Unity3D and the things you’ll need to use it for making iOS games. This post will be followed by two other, dedicated to Project Anarchy and Unreal Development Kits. The information given will be rather brief, as there are plenty of books and articles written about all the engines already.

I assume most of you will agree that writing games is extremely interesting, it is almost always fun and sometimes even quite profitable, so it is no wonder I chose this topic. Later I will also talk about why I work with iOS.

iOS has a huge choice of game development engines (Cocos 2d, Oolong Engine, Irrlicht, etc.), so why did I choose these three?

It’s quite simple, really.

Game development engines stopped being simply sets of libraries for quickly rendering a pretty scene long time ago. These days they should also provide tools for creating levels, physics and animations, setting up AI and multiplayer modes. All three of the chosen engines have these tools.

What is Unity3D

Unity3D is a product of Unity Technologies (Denmark) that was first introduced in 2005 and over the last few years has gained immense popularity among developers.

By November 2013 it was used by 400k active developers and it now has around two million total registered users.

But what makes Unity3D so attractive?

First of all, Unity3D is a multiplatform game engine; it works with Windows, Mac, Linux, Unity Web Player, iOS, Android, BlackBerry 10, Windows Phone 8, Windows Store Apps, Xbox 360 and PS3 (Support for Xbox One, Wii U, PlayStation 4, PlayStation Vita, PlayStation Mobile and Tizen was also announced).

This, however, does not mean that a game written for one platform will necessarily be compatible with any of the others.

Even more, some programs require additional tools, such as the PS3 and XBox 360 requiring Sony and Microsoft licenses respectively or even specialized hardware.

And, of course, all the resources used depend entirely on your choice of platform.

Unity3D also has great possibilities to reuse code for different frameworks and, more importantly, for developers to quickly learn how to use them. What with the development framework and languages being the same, it’s really easy to get to know new ones.

Speaking of programming languages, Unity3D supports JavaScript, Boo and C#. All this is made possible thanks to the Mono 2.6 .NET Platform.

It’s really easy to start developing a game for the iOS. Just download a MacOS installer on your Mac and after a simple installation you’ll have everything you need in Applications/Unity.

Here’s what you get:

To start with, the game development framework itself looks like a huge 3D editor.

You can do anything you want here! Create levels, check your characters’ animations, give objects physical parameters, and much, much more.

Your new folder also contains the Mono Develop IDE, to be used for the actual programming.

The default example that opens is Angry Bots – a kind of Fantasy RPG. You can check all the resources, change the maps and rewrite the enemy AI.

It’s very easy to launch.

First of all, choose Build Settings in the File menu.

After you choose iOS in the dialogue that appears, you shouldpick a folder to save your project in. And that’s when things get a bit fiddly – you need to launch xCode, a free IDE from Apple and open your project. Add the provision profile required to load your program onto a real device in xCode (it’s created in your Apple Developer Account) and assemble it for iOS.

Basically,Unity generates all the resources and code into an iOS native project which needs to be separately assembled. Not the most conventional way to code, but, strangely enough, quite comfortable.

Note: if you don’t want to assemble it yourself, but are still interested, here’s a link to the actual game on the AppStore: https://itunes.apple.com/us/app/angry-bots/id453467175?mt=8. It’s free.

So what technologies does Unity 3D support?

3D physics in Unity are based on the NVIDIA PhysX Physics engine, and 2D uses the well-known Box2D.

The graphic engine supports everything you’ll need to create the most amazing 3D effects: LOD support, Low-Level Rendering Access, 3D Texture support, Light Probs, Shaders, Shuroken Particle Systems, and the integrated Mecanim Animation System.

  • Audio 3D support is based on the well-known FMOD library.
  • The multiplayer engine is represented by RakNet.
  • API for AI creation.

An ability to connect your own plugins written in C++. As you can see, Unity is loaded up to the brim! And even more detailed list can be found on unity3d.com

How much does all this cost (We how much does all thiOS side of the question)?

Well, there are two versions, Unity3D Free and Pro.

The free version is available for commercial use, provided the company’s profits do not exceed $100k (The free version of Unity may not be licensed by a commercial entity with annual gross revenues (based on fiscal year) in excess of US$100k, or by an educational, non-profit or government entity with an annual budget of over US$100k).

The Pro will set you back by $3000 ($1500 Unity Pro + $1500 iOS Pro), which is quite bearable even for Indie developers.

Besides, there are options to stretch out payment over several months, student subscriptions and lots of other neat stuff.

That’s all about Unity3D for today. As I mentioned in the very beginning, in the next two articles I will tell you more about Unreal Development Kit and Project Anarchy.

Tags: ,


Add Comment

Name Mail Website Comment

  • Pritesh Jain

    25 November, 2015 11:17 am
    Excellent site, keep up the good work my colleagues would love this. I read a lot of blogs on a daily basis and for the most part, people lack substance but, I just wanted to make a quick comment to say I’m glad I found your blog If you love gaming for unity games kindly visit…. mobile app development