I Need Practice Programming 49 Ideas for Game Clones to Code

Coding Games Coding Live

Description:Players put down their X or O symbol on a 3×3 board and try to get three in a row.

The original Bejeweled game and its sequels are at

Variants:Power ups fall from smashed blocks, including: triple ball, longer paddle, ball breaks through bricks, a laser shoots out from the paddle.

Variants:This is a similar game to Bejeweled, and the power ups used in that game could be used in this one.

Description:Two players of different colors drop their tokens on an upright board. The player to make four tokens in a row, column, or diagonal wins. Creating an AI for this requires a simpleminimax algorithm.

Variant: Add all sorts of level gimmicks: teleport tiles, conveyor belts, buttons that open doors/bridges, buttons that need an object left on them to keep a door open.

Description:Blackjack is a classic card game that is simple enough to implement a dealer AI for.

Variant: A nine-button version can add challenge to this game (but more than that would probably just be tedious.)

Variants:Variants are listedon the Wikipedia page.

Description:A very original but obscure puzzle game on the NES. The player controls a wizard who can make and unmake ice cubes, which need to fall on all the fire in a level to clear it. The ice can also be used as platforms, and individual blocks of ice can be pushed around. (As a platformer, making a clone of this might be a bit more involved. But the concept is original enough where I think itd be worth the effort.)

Description:On each round, a wave of zombies attacks a barricade while the player shoots from behind it. Several shots are needed to kill a zombie and accuracy counts. When the zombies reach the barricade they begin to damage it. The player loses if the barricade is destroyed. After each round, the player can spend actions on finding new weapons, finding other survivors to help defend, or repairing the barricade.

Description:Objects are thrown up over the screen and the player must drag the mouse over them.

Description:Players move their marbles around a hexagonal board, trying to be the first to push six of the opponents marbles off the edge of the board.

Python sourceanother Python sourceand anotherand another.

Description:A stone capture gamewhere the board is made up of 12 pits and a score pit that the player tries to move their stones into. A simple minimax algorithm can be used by the AI.

Variant: Different power ups for matching a particular jewel. Be able to sometimes swap jewels that are not adjacent to each other. Timed games.

Description:Player form words from letter tiles on a board. Rare letters are worth more points. Some spaces on the board give letter or word bonuses. You will need a dictionary file for this program, which you can download from

Description:Essentially like a two-player Dr. Mario without the germs.

This game is covered inChapter 5 of Making Games with Python & Pygame.

Description:Players control tanks on a 2D hilly terrain and enter the numeric angle and velocity of a cannonball shot. The object is hit the other players tanks.

Description:A Tetris-like game where two-colored pills fall on different colored germs. Forming four in a row of the same color germ/pills causes them to disappear. The player wins when all the germs are cleared from the board, and loses if the pills fill up the board.

Description:The top of the board is filled with different colored bubbles. The player must shoot bubbles from the bottom to form a set of three bubbles of the same color in a row to make them disappear. The ceiling lowers over time. The player wins if the board is cleared of bubbles, and loses if the bubbles reach the bottom.

Description:Two players take turns setting one of the 16 pieces which is either: tall/short, light/dark, square/circular, and hollow/solid. The goal is to get four in a row of a common trait.

Variants:Teleports, buttons to control doors, keys to unlock doors, having multiple characters to move around that must work in sync to unblock each others paths.

Description:Player runs through a maze to the exit. This is more of an exercise in writing maze-generation algorithms.

The Wikipedia entry forvideo game clonesalso lists some ideas.

Variants:Add different level/wall designs instead of the standard board. Add teleports, or buttons that can activate doors and bridges.

Description:A typing game where words slowly move to the right side of the screen. The player must type the word to make them disappear. The player loses after enough words hit the right side of the screen.

Heres 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 youll need to know in order to implement them.These games have been selected for their simplicity, so you dont 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.

Description:Players control a constantly moving object that leaves a trail of walls behind it. The player who avoids crashing into a wall longest wins.

Description:The player alternates between building fortifications (to house cannons) and shooting at incoming ships. This game is similar to Missile Command, with a building mechanic added in.

Variants:Some variants are listedon the Wikipedia page for Chess Variants.

I especially recommendWinter BellsA Daily Cup of TeaBugs, andHold the Rope!

Variants:See Minotaurus, the next game.

Board games are a good source for game clone ideas. A game like Monopoly has far too many rules to put together in a short time frame, but heres a list of board games that have simple mechanics. Chess, Go, and Stratego may be too complicated to create an AI opponent, but in that case you can just make it a two-player game. These games dont really have variants,

Wikipedia entry on Maze Generation Algorithms

A flash version of 2D Katamari is available.

Source code for Awale, a Mancala variant.

This game is covered inChapter 4 of Making Games with Python & Pygame.

Download Python Source: memorypuzzle.py

Description:The player is in a level with objects that need to be pushed over goals. The objects can only be pushed, they cant be pulled. This game does require some effort to design levels for, but Sokoban levels have beendesigned by others and published on the web.

Description:The player controls a paddle that bounces a ball off of bricks in the level. The bricks break when the ball bounces off of them. The level is cleared when all the bricks are destroyed.

Description:Two players set up army units on the board and try to determine the strength of their opponents units. Disinformation is an important aspect of the game.

Variants:There are too many to list here.See the Wikipedia entry for Scrabble Variants.

Description:On a grid, a black and white player places tiles of their color on the board. The opponents tiles between the newly placed tile and that players existing tiles are flipped to become the color of the players tiles. The game ends when the board fills up and the player with the most tiles of their color wins.

This game is covered inChapter 9 of Making Games with Python & Pygame.

Description:Players take turns laying down stones and try to capture areas of the board. See the rules for full details. Even simple Go-playing AIs require deep levels of knowledge, but a two-player game is easy to create.

Variants:Instead of numbers, you can have a scrambled picture cut up into 4×4 tiles.

Description:The original Katamari Damacy game was in a 3d world, but a 2d version is also easy to implement. The player controls a small object in a world of different-sized objects. Touching the smaller objects grows the player, touching the larger objects damages or shrinks the player. The player wins when they reach a certain size.

Description:Chess is a classic game, andthe rules are explained on Wikipedia.

Description:Two players try to move their token to the other side of the board. On their turn, they can either move their token one space or place a wall on the board. A player cannot completely seal in the other player with a wall. An AI for this game may be too complex, but a two-player version should be simple to implement.

Description:Each territory has a certain number of armies which can be used to attack adjacent territories. The player can attack as often as they want, but conquering too many territories stretches out their troops so that the territories can be reclaimed easily. Additional armies are given based on conquered territories, so not expanding fast enough will also lead to losing. A straight forward AI is relatively easy to produce.

Description:Shapes made up of four blocks fall from the top of the board. The player must rotate and place them to create full rows with no gaps. When a full row is made, the blocks in that row disappear and the blocks above it move down. The game ends if the board fills up.

Description:A few rows of enemies gradually makes theyre way down to the player. The player must shoot them all before they reach the bottom.

Variants:Using a 3x3x3 board for 3D Tic-tac-toe. Wikipedia has alist of variations.

This game is covered inChapter 10 of Making Games with Python & Pygame.

So you know a little bit about programming (perhaps youve 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 cant seem to find any open source projects that are at your level or easy for new people to contribute to. Youve gone through a few of the practice problems atProject Eulerbut 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 isnt cool.)

Description:The player controls a ship that must gently land on a flat surface of the moon. The ship has limited fuel, and using the thrusters affects the momentum of the ship (much like Asteroids).

Description:The player must put down different shaped pipes on the board. The pipes cannot be rotated or moved after placement, but the player does get to see the next several pipes that will be used. A little after the start of the game, water begins to flow through the pipes.

Variants:Usually there are ways to streamline tasks by doing them in a certain order (e.g. the player can carry meals for two tables at the same time).

This game is covered inChapter 10 of Making Games with Python & Pygame.

Variants:See Rampart below. Different weapon types (the kind used in Scorched Earth) are also possible.

Description:A player moves their pieces diagonally on a board and tries to jump the opponents pieces.

Description:Four colored buttons light up in a specific pattern. After displaying the pattern, the player must repeat the pattern by clicking the buttons in proper order. The pattern gets longer each time the player completes the pattern. If the player presses a wrong button, the game ends.

Variants:Bonuses for combos. Some objects cause the player to lose if they are touched.

Description:The player rotates a ship to shoot asteroids, which break into two smaller asteroids when hit. The player must avoid being hit by the asteroids which slowly move around the screen. The player has no brakes, and can only slow or stop by using thrust in the opposite direction they are traveling.

The Orisinal website has a great collection of Flash games with very simple mechanics that can be copied.

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.

This game is covered inChapter 8 of Making Games with Python & Pygame

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 inChapter 7 of Making Games with Python & Pygame.

Description:A worm or snake constantly moves around the board. The player controls the direction the head of the worm moves, and the worm must try to eat apples that randomly appear. Eating an apply causes the worm to grow in length. The game ends if the worm crashes into the edge of the board or into itself.

This game is covered inChapter 6 of Making Games with Python & Pygame.

Variant: Three player Othello with three different colors. Non-square boards.

Variants:Different zombie types (armored, fast moving-dog zombies, etc.) and weapons can be used (mines, grenades, traps).

Variants:Dice Warsis a high-speed Flash game that is similar to Risk.

Variants:Several of the same variations found in Arkanoid can be used in Pong. Obstacles can be placed on the map instead of just an open field.

Download Python Source: tetromino.py

Description:This game is essentially a more complex and multiplayer version of Quoridor, with a Minotaur monster added in that can attack players.

This game is covered inChapter 1 of Making Games with Python & Pygame

YouTube video explaining the Quoridor rules

UPDATE: If youd like to make some more advanced games, I highly recommend you watch the talkJuice it or lose it – a talk by Martin Jonasson & Petri Purhoon some simple tweaks and tricks that turn a simple pong game into a really polished looking pong game.

Description:The board is filled with seven different types of jewels. The player can swap two adjacent jewels to form a three-in-a-row, causing the jewels to disappear and the jewels on top of them to fall down. Creating chain reactions gives bonus points.

Description:Missiles are shot up from the ground to hit falling meteors before they hit cities. The missiles must be timed so that they reach their target at the same time that the meteor is there.

Description:Dice rolling game where the players try to achieve specific patterns of rolls.

Variants:Having different weapons and an occasional UFO that shoots directly at the player.

Description:A tennis game where players bounce a ball passed the other.

Variants:Wikipedia hasa list of mancala games.

Description:Ducks fly around the screen and the player must click on them to shoot them. The player has limited ammo.

Variant: Different board sizes. Walls inside the board that appear when the spaces beneath them are filled.

Download Python Source: slidepuzzle.py

Description:A puzzle game where the player must roll over a 2×1 brick to an exit point on the map. The brick cannot be moved off the edge of the board, and since it can only be flipped end over end and not slid around, the 2×1 nature restricts the types of moves it can make.

Variant: Several Tetris variants are listed on Wikipedia.

Variants:You can increase the board size and the number of types of pieces.

Description:The player must slide a target car through an exit, but other cars are blocking the way. Cars can only be moved vertically or horizontally depending on their starting orientation. Level designs can be copied from existing games.

Variants:Angry Birds is a version of this game that adds a physics engine instead of hills. Different weapon types besides the standard cannonball can be added. Several UI improvements can be made over the original game (using the mouse to enter the angle and velocity, displaying the previous turns angle and velocity, etc.) Destructible terrain and being able to move the tanks adds a new dimension to the game.

This game is covered inChapter 10 of Making Games with Python & Pygame.

Description:A 4×4 board of numbered tiles has one missing space and is randomly set up. To win the game, the player must slide tiles over to put the tiles back in order.

Description:A game where several different tasks in sequence must be managed simultaneously. Diner Dash has a restaurant theme, but other themes could be applied.

Variants:Add walls to the level, instead of just a blank rectangle. Add power ups that the worm can pick up. Add bad guys that move around the board that the worm must avoid. Have two worms that the player must control simultaenously. Tron (see below) is a two-player variant of this game.

Variants:Some variants are listedon the Wikipedia page for Draughts.

Variants:The flight patterns of the ducks/objects can be changed.

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.

Variants:Different enemy types (slow moving, armored ships or fast moving airplanes) and weapons can be added. Add different strength walls to build.

Description:A grid of six colors of tiles starts off randomly. The player can do a flood fill on the top left tile, changing the color of any adjacent tiles of thesame color. The player wins if they are able to make the entire board a single color within a certain number of moves.

Variants:Power ups gained when a certain tile is changed.

Variants:Variants of Blackjack arelisted on the Wikipedia page.

Description:Colored bubbles begin to appear from four sides of the board. The player can assume the color of the bubbles, and then destroy bubbles of a similar color. The game ends if the bubbles fill up one side of the board.

This game is covered inChapter 20 of Invent with Python

This game is covered inChapter 10 of Making Games with Python & Pygame.

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.

These games are described in these free Python programming books and their source code is available. However, you can make your own variants.

Leave a Reply