I managed to cobble together a mildly playable version of my game in time for the end of the Ludum Dare 48 Game Development competition this weekend.
It’s a concept that I had been toying with this past week, jotting down some ideas and refining it along the way. Quite simply, it’e the game Breakout, only with a twist. In regular Breakout, you move the paddle back and forth on the bottom to keep the ball from falling off the screen. At the same time, you are trying to use the ball to destroy all the bricks on the screen. In my game the computer plays the part of the paddle and you instead try to defend a goal at the top of the screen by placing bricks.
It’s a neat idea, but I by no means was able to implement all my ideas. The number one thing that was lacking is multiple types of bricks. This version only has two: normal and 2X Hit. As you can probably guess, normal takes one hit to be destroyed and 2X Hit takes two. I wanted to add more bricks that did weird and interesting things when the ball hit it, like explode or eat it.
You build your wall of bricks by buying them from money you’ve earned while playing. So far, the only two ways you can earn money is to play, where you get one credit every so many seconds, or when the computer misses the ball with the paddle and it goes off the bottom of the screen. Eventually you’ll be able to get money by doing other things.
One thing that doesn’t seem to work very well is the collision. The ball seems to react well when it hits the top or the bottom of the bricks, but if it hits the side of two bricks, it can sometimes bounce in a way that causes it to go ‘inside’ the wall. I have a few ideas on fixing that but I didn’t have enough time to implement them.
The AI could be improved, letting it think ahead instead of having it just react to the current position of the ball. If I project the location it will be at when it gets to the bottom, I could have the paddle waiting for it.
There are no skill levels implemented. Smarter AI, less money and multiple bouncing balls would make it more challenging and could be set to differing degrees.
I also didn’t do any sounds for it, as the compo requires that all resources be generated within the 48 hours and my recording soundcard is not quite working. I will create some for the post-compo version of the game. Same for music.
I tested it on the Sun JVM 1.6.0, though it should work on on JVM 1.5.0. It will not work on the JVM 1.4.2, as it requires System.nanoTime() that was introduced in JVM 1.5.0.
I programmed it in Eclipse 3.3.2, and used Photoshop for the graphics.
You can download the game here or the source code here.
[update: changed the above link to the .zip file. The jar just wasn’t handling some class-pathing stuff well and I don’t have time to troubleshoot it right now.]