Android development is getting easier and easier with more companies making tools that allow developers to do almost anything. Google of course has their own application known as Android Studio that includes a whole suite of useful tools as well as a whole website with a plethora of information on Android development. Third parties are also getting involved with the likes of Genymotion and YoYo Games’ GameMaker.
Since Google makes Android, it is only fitting that they would also make an Integrated Development Environment (IDE) that allows people to develop apps for it. Succeeding Eclipse in 2014, Android Studio is Google’s answer to an all around IDE that enables developers to get what they need done without leaving the IDE itself. Android Studio’s coding environment acts just like any other Java IDE as far as error checking and file hierarchy. Besides the ability to code applications, Android Studio also offers the ability to test apps using the Android Virtual Device Manager and by plugging in physical devices and using the Android Debugging Bridge. You can download it here and a tutorial on how to use Android Studio can be found here.
This is a fantastic feature of Android Studio that allows developers to test their app on a virtual device to make sure everything works properly. There is the ability to customize pretty much every aspect of the device including instruction set, ram size, screen size and resolution. Performance is pretty decent, although you can tell it is a virtual machine. There is one way to improve performance however, Google worked with Intel to release a “fast virt mode” using Intel’s Hardware Accelerated Execution Manager (HAXM) to speed up the performance of the virtual device. The only downside is that this only works for the x86_64 instruction architecture, so if you need to test on x86_32, MIPS or ARM, you will not be able to take advantage of this. Running an ARM virtual device is very slow and isn’t recommended unless you absolutely need to check ARM for a specific reason. In my experience, all apps I’ve tested on x86_32 or x86_64 have worked on ARM no problem, however this may not always be the case.
Android Device Monitor
This is a very interesting feature included with Android Studio. The Android Device Manager allows the developer to monitor their device while it is plugged into the computer or to monitor a virtual device. This includes how many processes are running and on what thread, network stats and the ability to look at the LogCat. There is also a file explorer which is useful if your app writes data to the device. This program is essentially a supercharged LogCat.
If 3D is more your style then Unity3D is a great place to start. Famous games like Crossy Road and Monument Valley are made in Unity3D, as well some benchmarks. If you have never touched 3D modeling or development before, Unity3D may be a shock to the system, but don’t fret, Unity offers many tutorials and demos to get you started. Unity3D uses the C# programming language to get everything working. You will need to use an external software to make the 3D models themselves however. Some good software to do so includes Blender(which is free), Autodesk Maya or even Photoshop CC 2015. Unity3D is also very demanding on your computer, sapping up all of my graphics memory and most of the 16 gigabytes of RAM I have installed. If you notice in the picture above I have 52 megabytes free out of 16384. A desktop is highly recommended for this, as I’ve crashed Unity3D multiple times.
A word of warning, 3D is a completely new ballgame and requires a lot of time and effort on your part to learn how everything works. Instead of simple sprites and images there are 3D objects, meshes and materials that make the 3D world possible, each with infinite combinations and separate code. I would highly recommend not starting with Unity3D if you are just getting started with Android game development, instead, use something else listed in this article and work your way up. That being said, there is no reason to not give it a try. If you want to take the plunge then here is a great guide on how to get started with Unity. Once you’re ready, grab Unity here and try it for yourself.
Corona is a well known name in the development community with games like “Pop the lock” and “Fun Run 2” coming from the kit. This is a different way to develop apps compared to Android Studio and the other engines mentioned in this article. The programming language used is Lua, which you may not have heard of before. Lua is a fast scripting language that is simpler than Java or C++ and is very similar to GameMaker Language which is discussed in the next section. There is a huge developer following and the forums are full of useful information for any questions you may have. Gary Sims has an excellent article on how to make a game using Corona here. Download Corona from here.
This is one of the easiest, yet advanced, engines I have ever used. Period. Offering full customization on everything from sprites to sound. GameMaker: Studio is meant for 2D games, but it excels in that category. The user interface is very simple with the ability to drag and drop actions and abilities. If you want more customization then you can also code using GameMaker’s proprietary programming language known as GameMaker Language. GML is much easier to learn than Java or C++, as it does not have methods (or functions in C++) and the syntax in typically be a lot shorter and simpler than Java and the like. The only downside is the price, at $150 US for GameMaker: Studio professional plus $299 US for the Android export module, this is quite an expensive investment. You can try the free version and learn everything you need but you will not be able to export to Android without shelling out cash. A full guide to making your very own game is here. Be sure to check out all of the purchasing options here.
There are many ways to develop for Android, this list is a great place to start for every type of developer, whether you want Java or Lua, or even a drag and drop interface and 3D. It is a good idea to try all of these out for yourself and see what you feel the most comfortable with. Let us know in the comments how you develop for Android!