Building 2D shooter: Idea and prototype

I have decided to build a 2D shooter game for the Android. I would like to track the progress here in my blog. Because the game development is something completely new to me, I definitely need to get the feedback on many parts of the process. I want to make money with this game and I am decided to post all the eventual sales/ads numbers. Let's think about it as development diary. Either leading to profit or fail, I hope it will be useful to everybody, including me.

So I had an idea for the game. I have added it to my list of ideas on top position and couldn't stop thinking about it. It is 2D shooter, something in style of Space Invaders. Of course there are too many games of this style, so why do I bother with new one?

  • it has different style of shooting and targets than the regular games
  • I didn't find anything similar neither for the Android nor for the iOS
  • it is addictive (to me)
  • it has zero learning-curve
  • it can be fun to play even just for few minutes to kill some time
  • I am able to implement it myself

I don't know what else has the game fulfill to be successful (execution, of course), but this was enough for me to try. For now, I am not going to reveal what is so different on shooting and targets, because I would like to keep it for me at least until beta version is ready.

Being absolute beginner in game development, I have built the first prototype based on Android demo project Lunar Lander. Only thing that the game was doing were flying targets and the cannon that was shooting at them. That was my first touch with things like game loop, collision detection etc. It was drawing on SurfaceView, with almost no graphics, using just simple geometrical shapes for cannon and targets. The game was running on 60fps, sometimes dropping to 30fps. It wasn't that bad to look at, but wasn't smooth as well.

At this point I started to look at available game engines. After small research on forums and mailing lists I have tried libGDX. It is more framework than engine and I have decided for it because it seems to have healthy documentation, development and community and it offered what I was going to need. At least what I think I need so far. It is using OpenGL so my prototype rewritten to libGDX is running fluently at 60fps (though I have some problems with smoothness of moving texts). This time I started my prototype by modifying Superjumper libGDX demo.

So here I am having some simple prototype and still many decisions to make, but I am going to work hard to move this thing further. Keep reading this blog and let's discuss on Twitter or Google+.