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.
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).
There are lots of results at Stack Overflow for
android game. Lucky for you, I went through all of them and picked out the relevant ones to your question.
- "Tutorials and libraries for OpenGL-ES games on Android"
- "android opengl game"
- "Is there any Android game framework ready to use"
- "Android - What classes to use for UI game development"
- "Looking for Android Development Java Game Script"
- "Which Android development blog has the most walkthroughs and tutorials?"
- "How much Java should I have learnt before trying Android programming?"
- "Android: 2D. OpenGl or android.graphics?"
- "Roadmap to Android development"
- "Getting started with OpenGL… in Android"
- "Android OpenGL ES and 2D"
If you're already familiar with Android and doing basic UI applications with it, then you'll want to take a look at this multi-part tutorial that explains drawing graphics to an Android screen.
All of these are really good answer. But I am a little surprised that no one has mentioned jMonkeyEngine yet.
Its java, its shader based, its super easy to begin with, very good documentation, awesome community, fast bug fixes, comes with a game development enviroment(jMP based on NetBeans platform) & its evolving very very fast.
I would emphasis more on it because, game development and making a library that someone will be using to make a game is quite different. So, if you want to make a game not a game engine, just jump right in jMonkey Engine with your eyes closed. :)
Processing.org is another good place to start for (somewhat simplified) coding/development before diving into the Android SDK. It works on Max/Windows/Linux and has a version developed specifically for Android deployment. I highly recommend it - as long as you have an Android phone you can deploy games/apps to your phone that you make with that version of Processing. Hope it helps.
I am also new to android game development, and I find the open source game engine AndEngine a pretty good tool to start with. It's got a bunch of examples and a fairly active community.
I strongly recommend the Airplay SDK as it works on windows and deploys to most smart phones. They also have a great Indie license.