How do I get started making Android games?
I am new to game development. I am interested in developing 2D games for the Android platform. What is the best place to start with (i.e) What are the basics and how to proceed? I already have programming experience in Java but don't have any experience with graphics or animation.
I am curious on whether OpenGL, while faster, drains more battery than regular 2D using surface view or whatever other method. Does anyone know an answer?
You'll have to pick one game engine and one game idea to get your hands dirty. AndEngine seems to be a nice fit for 2D games and Flappy Bird is the new 'Hello World' in game development. Check out this tutorial on Flappy Bird in Android using AndEngine. Cheers!
@appsroxcom I did pick up AndEngine and made a few games last year. And I now prefer Gideros, it makes life easier when developing x-platform games.
Hi @RagunathJawahar, according to your profile, you've continued to develop your android skills after that post, now I'm at the same stage with your this current question :) I wonder, as a conclusion, how did you give it a start? What was your first step?
@Mertinc I am into Android app development these days. I did use a couple of frameworks back then - Gideros and AndEngine. But I see that that landscape has changed drastically these days. You may have to do some research and find the one that works best for you. If I were to pick a game engine today I would definitely pick the one with cross platform capabilities.
Android might not be the best choice for starting game development because you would be learning several different things at the same time (Android SDK, making games, optimization, different phone models, etc.). Consider making some simple Java games on your computer to get familiar with making games in general; this tutorial looks like a good place to start.
Once you're comfortable with both Java and game development, start with the Android tutorials. The development guide is very useful, in particular you need to know Android fundamentals and activity life cycle, as well as graphics. Get the Android samples and check out the Lunar Lander and Snake game samples (there's also JetBoy, but that's focused on the JetPlayer).
The canvas class is actually good enough for most 2D games, but if you need better performance or want to move to 3D graphics later you will have to learn OpenGL ES. However, this is beyond the scope of getting started (unless you already know OpenGL).
Another good resource is the book Hello, Android which explores making a Sudoku game over several chapters, including drawing using canvas and handling user input. There's also a chapter on 3D graphics that builds a textured rotating cube.
I have just moved from BlackBerry to Android game dev and I want to throw my hat in with Firas: the Canvas class offers more than enough performance for a 2D game. There is no need to add the extra complexity of OpenGL when you start.
I agree with this answer, but Android isn't the worse place to get started! My very first programming project was a comic book viewer. Then, I made a puzzle game, and now I'm making a 2D game with OpenGL ES 2.0 graphics. I've learned on one heck of a curve, but in the last 9 months, Android has helped me get a good foundation in Java, SQLite, and OpenGL along with a great start with OOP and game development concepts. I could have done worse than learning how to program with Android.