A Diamonds Clone
Right around the time I was in my first or second year of undergrad I found a game for the Macintosh called Diamonds. The concept was really simple, a ball is bouncing up and down on its own and all you have to do is use the left and right arrow keys to control its lateral movement. Using these two keys you had to move the ball to clear bricks on the screen while avoiding the skulls of death. I don't know if I can say that I spent hours playing the game, but I did waste a fair amount of time.
Over the last 10 years or so I have tried several times to find either the original game, or a clone of it for Linux or Windows with no luck. Each time I would make a feeble attempt to write my own version of the game. The first time was in Java 1.0 but the rendering proved to be too slow. About two years ago I tried another version of it using C++/Qt but rendering on Linux was still too slow. In the middle of 2006 I decided to give it another try, this time using C++/SDL. I could have selected Python/SDL (pygame) but I really wanted something which was easy to install and a platform on which I could learn some of the boost libraries I was interested in.
As of October 2006 the game is mostly finished. I have a few extra features to add but they are mostly graphic changes and very little actual code updates. You can find its homepage at:
You can download the source or a win32 binary build at sourceforge:
Although I plan on releasing a 1.0 version in the near future I am likely going to take a pause on its development after that. I have plans for a 1.5 and a 2.0 version, but at this moment in time I'm in no rush to get there.
2006-12-01 - Update
Okay, I was doing a search last night and found, much to my own amazement, the following port of the real Diamonds game: http://takegame.com/arcade/htm/diamonds.htm
I am totally floored! I downloaded the game and gave it a try on my Win32 box and it seems to work quite nicely. On startup the game says that it is/was "Published by WizardWorks, from the Varcon Game Collection. Windows Version Written by Carl Torkelson." I think their game is a much closer reimplementation of the original Macintosh game than mine is. I should mention here that I never actually owned the original game as it required a 13" monitor and I had one of those lame 12" monitors that came with the Macintosh LC.
Some of the differences that I can tell so far are:
| ||Original Macintosh Game||Windows Diamonds Game||Rebound Game (mine)|
|License||Commercial License||I can't find any info about the license, but the link I used claimed it was a free download.||Creative Commons - with some rights reserved.|
|Source Available||No, not that I can find||No, not that I can find||Yes|
|Number of levels shipped with the game||A lot, I can't remember how many||70||14 as of 2006-12-01|
|Background Images||Multiple, each level had its own background.||One background for the entire game.||Multiple, each level can have its own background.|
|Background Sound||I believe so.||Yes||No|
|Brick images||8 bit images.||Matches the original game exactly.||Similar in function, but totally unique.|
|Platforms||Macintosh||Windows||Linux, Windows, and likely Macintosh if I can find someone to compile it.|
|Diamond bricks||I can't recall if you had to clear all the other bricks first.||Requires you to clear all the other bricks before you can start to remove the diamond bricks.||Does not require you to clear all the other bricks before you can remove the "gold" bricks.|
|Reverse brick||Again, I can't recall if they disappeared after you hit them.||Disappear after you touch them.||Do not disappear ever, can hit multiple times.|
|Key brick||Sorry, I don't recall on this one either.||Disappear after you touch them. But you retain the key after you lose a ball or touch a different color.||Do not disappear after you touch them, but you lose the key if you touch a different color or lose a ball. Also, Rebound has a unique key and lock for each color, which I don't think the Windows version has.|
|Color border||Changed colors when you hit a paint brush.||Changes colors when you hit a paint brush.||What border? I decided not to have one.|
|Language written in.||I'm going to guess it was the Macintosh tool kit in C.||I don't know, but it seems to support real buttons so some sort of tool kit is being used.||SDL in C++ with no tool kit for buttons.|
|High Score screen.||Yes||Yes||No, not yet.|
|Built in level editor||Yes||Yes||No, but a simple syntax for editing a txt file.|
There are several other differences as well between mine and the windows version. For example, the ball bounce is much bigger and the ball appears to move much faster. The Windows game also appears to be using 16 bit colors. All in all I am very impressed by what Carl has done but I don't think I am going to change my game to try and match his, even if his follows the original game closer than mine does.