Game Developer Links
Game Artwork Resources
Game Music Resources
Game Development Tools
So you want to start developing your own games and apps for Android, iPhone, iPad and other mobile / smartphones / tablets? Or maybe you already do, but are looking for a way to take your latest and greatest app across to multiple platforms.
There are currently 2 options available to you, which include:
Going Native
Going native is developing apps using the standard platform tools, programming language and frameworks for the target device / operating system. Some examples include:
- Apple iOS – This is the operating system developed by Apple that powers devices such as iPhone, iPad and iPod. To develop apps using the iOS operating system you are required to learn the Objective-C programming language, XCode development IDE and the iPhone SDK. To sign up as an iOS developer it will cost you $99 per year and you can only distribute your iOS products by Apples App Store.
- Google Android – This is an open source operating system developed by Google that powers devices such as Amazon Kindle, Samsung Tablets and far too many other devices to mention. It is by far the most prolific mobile operating system to date and is the choice operating system for everything from watches, phones and tablets to TV and gaming consoles. To develop for Android you are required to use the Java programming language and your IDE of choice (e.g. Eclipse, ADT, Netbeans or command line if you are that way included). There is no required sign up although you can sign up with Google Play for a single flat fee of $25 and distribute your products via Google Play. In addition, there are many other Android app stores that will also distribute your products without any sign up fee.
- Windows Phone 8 (WP8) – This is a relatively new operating system from Microsoft that powers devices such as the Nokia Lumia series of phones. To develop for WP8 you have a choice of which language to use such as Visual Basic, C# and C++. To sign up as a WP8 developer and distribute your apps it will cost you $19 ($99 if a company). You can only distribute your apps via the Windows Phone 8 store
- BlackBerry – The latest BlackBerry operating systems support the BlackBerry PlayBook tablet and variety of other BlackBerry 10 devices. To develop for BlackBerry you are required to use the C++ language and use BlackBerry’s Momentics IDE, although it is possible to re-target your Android apps and games for the BlackBerry. To sign up as a BlackBerry developer is free of charge. You can only distribute your apps via BlackBerry App World.
- Tizen – This is a brand new open source operating system that’s gunning for Android (IMO). To develop for Tizen you are required to use the C++ language and the Tizen IDE / tools. To sign up as a Tizen developer is currently free of charge. You can only distribute Tizen products via the Tizen store as far as I know.
Going Cross Platform
When I first started out in mobile game development I started trying to learn all of the various different operating systems, languages, IDE’s and various other tools and it became apparent very quickly that I was spending a massive amount of my time working on platform code instead of the game itself. With this I decided that there must be a better way, so I began looking around for a way to develop games and apps using a single language and a single set of tools. This lead me to discover many different ways of developing games and apps for different platforms. A number of these are outlined below:
- Marmalade SDK – As I have always been a keen C++ developer I was very pleased when I came across the Marmalade SDK. I was also double pleased to discover that the Marmalade SDK allows me to not only develop for all supported platform using a single set of API’s but also deploy to and test on those platforms using a single tool. The Marmalade SDK supports 2D / 3D game and app development across a large range of platforms including Android, iOS, Windows Phone 8, BlackBerry, Tizen, Windows 8, Mac OS and various TV platforms such as ROKU. In addition to C++, Marmalade supports rapid application development using Lua via Marmalade Quick, HTML 5 via Web Marmalade and Objective-C via Marmalade Juice. The Marmalade SDK is available via a number of licenses including a FREE license. Other game engines are also available that are built on Marmalade including the AppEasy Core and Cocos2d-x. The Goji Editor (a game IDE) also has targets for Marmalade. The Marmalade SDK is also as close as you can get to true native speed as all code is compiled to the native processor of target devices.
- Unity – Unity is a self contained development environment that revolves around its state of art 2D / 3D game editor. To develop games you import assets into the editor and create game objects attaching scripts to add functionality, everything is close to WYSIWYG. Unity supports a large range of platforms including Android, iOS, Windows Phone 8, BlackBerry, Windows 8, Linux, Mac OS, PS3, Wii, Xbox 360 and web player. Unity supports the C# and JavaScript languages. Unity is offered via a number of licenses including a FREE license.
- Corona – Corona is a rapid application development environment that enables the rapid production of 2D games and apps using the Lua language. Corona supports development for the Android and iOS platforms. Corona is offered via a number of licenses including a FREE license.
- Xamarin – Xamarin is a C# based development environment that offers a C# wrapper around the native underlying operating system, providing access to almost all native application functionality via C# classes. Apps are developed using Xamarin Studio or Visual Studio. Xamarin supports development for Android, iOS, Windows Phone 8, Windows and Mac OS.
- HTML 5 – If you want true cross platform development and do not mind losing a LOT of native speed then HTML 5 is the way to go. There are two major advantages of developing apps with HTML 5, the first is that you can get started with a text editor and a web browser whilst the second is that HTML 5 is supported on just about every device and by every operating system. The downsides of course are the huge loss in speed and having to deal with the small intricacies of each platform or even browser (there are a number of JavaScript frameworks that can help lighten this burden such as JQuery). Some developers have taken HTML 5 a little further by mixing native code with JavaScript via a web bridge, however going that route is taking you back to square one because you lose true cross platform compatibility.
There are many more tools providers that provide solutions for developing apps and games for mobile but most are a mixture of the above. I will add other interesting development systems as I come across them. If you would like yours adding then just leave a message below.