Chapter 05: Define your app

It is pretty vital to have a clear picture of what your app will do before you start to dig into details, otherwise the obvious risk is that you more or less never will be really "finished". Don't fall into that trap.

I'm planning to make a clone of the ancient arcade game "Asteroids", which I assume already is so exploited that no-one will care if yet another private person copies the idea.

I'm also planning to make the game ad-financed, as I would need those few extra dollars that might find their way into my bank account in order to keep this domain and web server up and running.

Let's start with a few simple sketches (sorry for the Swedish labels in the images - there are English translations below them):

Sketch 1: The game itself (Score, Ads, Level, Ship, Missiles, Asteroids)


Sketch 2: The controls (Accelerate, Fire, Rotate ship)


Sketch 3: The different "pages" in the app

These three sketches should be enough to get a clear picture of what I will try to accomplish, but I will still write down a series of requirements so that I won't miss any embarrassing detail.

So here's a list that I can check against while the development is progressing and also test against before I publish the app for the general public.

  1. The app shall be started through a clickable icon as any other app.
  2. When the app is started, the Main Menu shall be shown, unless the app already was running in the background - in that case the last viewed page shall be shown.
  3. On the Main Menu there shall be three links to the other pages; Play, How-To and Credits.
  4. The page "Play" is the game itself.
  5. The page "How-To" shall show how the ship is controlled and what the game is all about.
  6. The page "Credits" shall contain information on who made which part of the game and under which rights it is distributed.
  7. When pressing "Back" on your Android device, you shall end up "one page up". If your already on "Main Menu", the app shall be closed.
  8. When pressing "Home", the app shall be put in the background and the Android device shall display the standard Android Home Screen.
  9. There shall be ads on all pages in the app.
  10. The game starts at Level 1.
  11. There shall be no upper limit on Level.
  12. When a level starts, the ship shall be in the center of the screen.
  13. When a level starts, the ship should have the velocity 0 and be pointing upwards.
  14. When a level starts, there shall be one "full-size" asteroid per level (1 asteroid on level 1, 2 on level 2 and so on...) on the outer parts of the screen.
  15. When a level starts, the asteroids shall have random velocity and direction.
  16. The asteroids shall rotate (just for the effect).
  17. The ship fires missiles when you "tap" on the screen.
  18. The ship shall rotate clockwise/counter clockwise when you "swipe" right/left on the screen, but not change its velocity in any way.
  19. The ship shall increase its velocity in its nose's direction when you "swipe" up on the screen.
  20. The ship's velocity shall not decrease automatically. The player will have to rotate 180° and accelerate in order to brake.
  21. Objects (asteroids, missiles, ship) shall "loop" over the screen's edges and re-appear on the other side.
  22. Missiles only "live" for a short period of time so that they can't hit the ship that fired them in the back.
  23. When a "full-size" asteroid is hit by a missile, it shall be split into two "half-size" asteroids.
  24. When a "half-size" asteroid is hit by a missile, it shall be split into two "quarter-size" asteroids.
  25. When a "quarter-size" asteroid id hit by a missile, it shall disappear.
  26. When an asteroid is split into two, both parts shall inherit the "parent's" velocity, but change their direction approximately 45° (clockwise for one of them and counter-clockwise for the other).
  27. If the ship collides with an asteroid, the game is over.
  28. When the game is over, some sort of summery shall be shown along with a link back to the Main Menu.
  29. When all asteroids are destroyed, the level is completed. 
  30. When a level is completed, a "Next Level" link/button shall be shown along with a summary displaying how much time it took to complete the level, how many missiles that were fired and how much fuel that was used. (All these resources are unlimited in this game, but it can be fun to compete with yourself).


I think that we have a good start here, so let's begin!