OK, here is my entry into the 4K game competition. It’s actually 8K now with the Mochi services added.
Neon Bricks 4K is take on the classic game of Breakout. The basic rules are no different than Breakout: destroy all the bricks to advance to the next level.
The game was designed using some of the same methods that the original Atari 2600 programmers used to create the first console version. For instance, he paddle is split into sections, and if ball hits one of those sections, the angle is altered.
However, in addition to the classic rules of Breakout, some additional features have been added. First of all, there are multiple level designs for the bricks. Since there was not enough to actually create level designed, a few other another Atari 2600 programming techniques were used.
First off, the levels are built off a polynomial sequence. This is the same method that David Crane used to create multiple screens for Pitfall and also for River Raid (he gave the idea to Carol Shaw). Using this method, you find a sequence of numbers that never changes, and then use the bits in those numbers to decided what the levels look like. After playing around with many different sequences, I settled on using the level number as the source for the polynomial sequence.
The second method incorporated from the days of 2600 was using a mirrored-background. The Atari 2600 only had the ability to create a background image for 1/2 the screen. The image was then mirrored and placed on the other side of the screen to make a full background. I took this basic idea, and used it to create the placement of bricks. I split the screen into 4 sections, each containing 36 possible bricks placement. I check a bit in the polynomial sequence, and then place the brick on the screen in each of the 4 sections, relative to how the screen would be flipped (upper-left: no flip or mirroring, bottom-lef: flipped, upper right: mirrored, lower-right: mirrored and flipped.
By doing this I was able to create 16+ unique level designs. More bricks would have led to more levels designs (but a slower game). To add challenge, as each level progresses, lines of bricks are added that must be hit multiple times (signified by a different color). As an artifact from the polynomial sequence, some of the levels above 16 are a bit different than they appeared in the first set. When you add the increasing difficult of each level, there seem to be at least 48 distinct levels before the game levels-out in difficulty. Defining 48 distinct levels would have taken at least 6912 bytes if done the traditional way of one-byte per block, and much more if using XML more properties were defined for each class (i.e numbers of hits, contains a shot).
Other features:
-Extra ball at each 250 points
-Paddle gets smaller as the levels progress.
-The ability to pause the game
-Shooting: You collect shots by hitting the bricks with the yellow balls in them (2 shots per brick). You lose all your shots if you lose your ball, so be careful using them.