An Introduction to Android Mobile Game Development – Part 1

We all love mobile gaming and it has become a booming market today. Majority of the smart device users use their device for gaming. Most probably you might be a mobile gamer too. But, have you ever wanted to make your own mobile game?  And still don’t have a clue where to start?  Then this article will guide you for a quick start. We will be focusing on the Android platform in this article.

How mobile games differ from PC games

Though they have a less processing power compared to modern personal computers, smart devices are considered as small computers. Some smart devices are capable of running high quality 3D games.

Games themselves and developing games for mobile differs from conventional PC game development in several ways.

Simple concept

Most of the mobile games are built on a simple concept and a storyline. Think of the popular game “Angry Birds”. The player has to destroy different structures using a slingshot. Another example is “Cut the Rope” where the objective is feeding a monster with candy. These games became popular because of the simple design and easy to pick up playing mechanics.

 Simple controls

Mobile games use easy to use controls such as touch, tap, swipe, tilt etc. These are actions which are familiar to all smart device users. So it makes the learning curve of a game less steeper.

 Development team size and development time.

Conventional PC/Console game studios use hundreds of individuals for the development of product. But most of the mobile games are made by small teams, sometimes by a single person.

Usually a mobile game can be developed in few weeks to few months (This can change depending on the project). But most of the PC games take years to complete (Eg. Skyrim V took 3.5 years).

Larger audience

The global smartphone users are expected to reach 1.75 billion in 2014. In most of the developed countries higher percentage of the population owns a smartphone than owns a personal computer. 2013 became a lousy year for PC sales but the mobile devices are on the rise. Another thing to consider is that most of the casual gamers tend to play game on a mobile device instead of a PC. Because of these reasons mobile games have a larger potential audience.

Available game engines and frameworks for Android game development










Programming language: Java

Price : Free

Supported Platforms: Android


This is a free and open source game engine with an active user community. There’s a lot of tutorials and sample code out there to get started.


The Major drawback of Andengine is that it lacks an official API reference . And it supports only for Android. You can make only 2D games using Andengine.




Programming Language: C++

Price: Free

Supported platforms: Android, iOS, Windows Phone 8, Windows 8


This is a free and open source game engine so you can modify it according to your needs. And you can publish games on several platforms using the same code base. Cocos2d-x is one of the best engines out there when it comes to the performance.


Beginners may find the learning curve quite steep.







Programming Language: Java

Price: Free

Supported Platforms: Windows, Mac, Linux, Android, iOS, BlackBerry and Web


This is a free and open source cross platform game engine. This game engine performs well compared to other java game engines out there.


Beginners may find the learning curve quite steep.








Programming Language: Game Maker Language (GML)

Price: Depends on the version (A free version is also available)

Supported Platforms: Windows, Mac, Linux, Android, iOS, Windows Phone, BlackBerry and Web


The GameMaker is one of the easiest game development tools to use. You can just drag and drop objects into the scene and apply pre defined behaviors to those objects. You can make more advanced things using the GameMaker’s own scripting language GML. This is widely used by hobbyists and professionals both.


The free version of GameMaker comes with some limitations. You can’t publish on mobile platforms using the free version. The paid versions are pretty expensive compared to the other solutions out there. You have to learn a new language just for GameMaker.

 Corona SDK


Programming Language: Lua

Price: Depends on the version (A free version is also available)

Supported Platforms: Android, iOS


If you need to program a complete game from scratch without dragging and dropping, this is the easiest solution you have. The language used is Lua and it’s very easy to learn. You can even publish for iOS and Android using the free version of the Corona SDK. It is documented well and provides sample apps to get started easily.


The free version of the Corona SDK comes with some limitations. You can’t implement in-app purchases etc. Another drawback is that you can only make 2D games using the Corona SDK.








Programming Languages: C#, Unity Script, Boo

Price: Free and a Pro version is available

Supported Platforms: Windows, Mac, Linux, Android, iOS, Windows Phone, BlackBerry , Flash,

XBOX, Playstation etc.


Unity’s main advantage is its cross platform capability. You can publish your games on every popular platform out there. Unity3D has a strong asset store where you can buy 3d models, scripts, sounds etc. And another huge advantage of using unity is that you can publish your game on most of the platforms even if you use the free version. However, when you reach a particular revenue limit you have to buy the Pro version.


Not observed.

Why I recommend Corona SDK and Unity3D

I’ve been using Corona SDK for a year and I believe it’s a good game engine to start game development for Android. Because of the very active community of developers and resources out there, you can get started easily. You can program the game in Lua instead of C++ or Java and this makes the development process fast. And it gives you the native performance. If you need to implement in app purchases in your game you have to buy the Basic version of the SDK which costs 16$ per month.

One disadvantage of Corona is that you can’t make 3D games using it. That’s where Unity3D comes into the action. Actually the latest version of Unity3D officially supports 2D game development. Unity3D is a game engine with an editor which allows you to create levels, manage game assets etc. It supports several languages such as C#, Unity Script (A modified version of Javascript) and Boo. Unity 3D is easy to learn but I recommend using something like Corona SDK because it improves the programming skills and gives you a better understanding of how things are tied together in a game. After getting some experience in game programming you can choose something like Unity3D.

Await Part 2 of this series!


About author View all posts


An undergraduate of University of Colombo School of computing and a passionate indie game developer

2 CommentsLeave a comment

Leave a Reply

Your email address will not be published. Required fields are marked *