A good idea is to think about where to start and what features you would like for your game. You can do this by a process of brainstorming – i.e. think of anything that comes into your head, write the ideas down and then later on, go through and pick out the good things that you could use from your ideas. You can also draw out your ideas and sketch them on paper. An example below is the brainstorming that I did to create my game.
—– Start of Brainstorming —–
For my first 2D game, I wish to create a space-invaders like game initially just to get the hang of programming a game. I will create a ship of some sort that will hover around the bottom of the screen, maybe let it fly higher later. I will create some alien creatures to shoot and get them to shoot down on me. I will need to figure out sounds and explosions as well. I probably will get the user to use the keyboard to move the spaceship and play the game. I will need to employ a score, and a high score for people to beat, maybe a list of high scorers. I may even get some background music to play if it is not too annoying (something techno maybe?). Depending how motivated I am, I may turn this game more into a Galaga / Galaxian style of game later to get the aliens to move and shoot as well as fly off the screen. Once the user completes a level, I could make things a little harder by speeding things up, introducing new traps, etc.
—–End of brainstorm—-
After your brainstorming session, you are ready to nut out the game design. Note that you come up with a basic design first. Then you can write some code. Afterwards, you will end up changing the game design and adding more details. Then you write more code. And so on. As you can see, game design is pretty much an iterative process (ie. you start with the basics and then you flesh out the details more and more as you get closer to completing your game). Sometimes you may also change your game design because the feature may not be possible to code or it may take too long.
Here is the game design so far (not in any particular order):
- Name of your game
- Design of starting screen
- Design of configuration screen (keyboard assignments, etc)
- A storyline for the game to set it in context
- Design of leaderboard screen to show high scores and save to disk
- Artwork for ship, bullets, aliens, explosions
- Special sounds for shit shooting, alien shooting, alien movement
- Background music while user is playing
- Design of end screen which will include credits
- Program to install the game to the user’s hard disk
- Design of different levels and degree of difficulty
- Scoring – how many points does the user get for shooting the aliens?
- How many ships does the user get before game is over?
- What fonts to use for the text on the screen?
- What background screen to use?
- What screen resolution to use?
- Title screen (before configuration)
- Keys that the player uses to play
- How do the aliens and player ship move?
- Add any special effects?
As you can see, there is a lot of work involved just to make a simple space invaders type game.
I decided to call the game RuzInvaders initially. The first 3 letters are from my surname and the “Invaders” is from the space invaders type of game.
After a bit more thought, I will call it Star Invaders.