So you know a little bit about programming (perhaps you’ve read the free book, “Invent Your Own Computer Games with Python”, a free programming book for beginners whose author shamelessly plugs at every chance) but you want to get better at coding. You can’t seem to find any open source projects that are at your level or easy for new people to contribute to. You’ve gone through a few of the practice problems at Project Euler but you want to create something more substantial, or at least a cool thing you can show your friends. (Not that finding the 31337th prime number isn’t cool.)
Here’s a list of game clone ideas for you to implement. Each has a short description of the game, links to videos of the game, and descriptions of what kind of algorithms you’ll need to know in order to implement them. These games have been selected for their simplicity, so you don’t have to spend several weeks designing art, levels, scripted dialogue, or complicated AI. These are clones designed to be doable in roughly a weekend. A Mario or Zelda clone would be complicated to put together, but a Tetris or Asteroids clone would be doable in a weekend.
The Orisinal website has a great collection of Flash games with very simple mechanics that can be copied. http://www.ferryhalim.com/orisinal/
The Wikipedia entry for video game clones also lists some ideas.
UPDATE: If you’d like to make some more advanced games, I highly recommend you watch the talk Juice it or lose it – a talk by Martin Jonasson & Petri Purho on some simple tweaks and tricks that turn a simple pong game into a really polished looking pong game.
Games from “Invent Your Own Computer Games with Python” and “Making Games with Python & Pygame” books:
These games are described in these free Python programming books and their source code is available. However, you can make your own variants.
Description: Several bad guys fall from the top of the screen, and the user must avoid them. The player can be controlled with the arrow keys or more directly with the mouse. The longer the player lasts without being hit, the higher the score.
Variations: Have enemies fall at different rates and be different sizes. Have enemies fall from more than one side of the game. Have power up pickups that grant invulnerability for a while, slow down bad guys, give the player a temporary “reverse bad guys” power, etc.
This game is covered in Chapter 20 of “Invent with Python”
2. Memory Puzzle
Description: A board full of overturned cards. There is a pair for each card. The player flips over two cards. If they match, then they stay overturned. Otherwise they flip back. The player needs to overturn all the cards in the fewest moves to win.
Variations: Provide “hints” in the form of four possible matching cards after the player flips the first one. Or, quickly overturn groups of cards at the beginning of the game.
This game is covered in Chapter 1 of “Making Games with Python & Pygame”