I built this game with some friends in 10th grade, for my final project in AP Computer Science. This Java-based game has slick graphical effects, multiple levels, explosions, and sound effects. In December 2010, I converted this to a Facebook game with a scoreboard that allows you to compete against your friends’ high scores. It’s based on the popular PSP game “Lumines: Puzzle Fusion,” but includes extra power-ups!
For my final AP Computer Science project in June 2008, I worked with Brandon Liu and Yuzhi Zheng to develop FINALE, a falling block game based on the PSP game Lumines. The object of the game is to match colored blocks into squares, which are cleared away when the “time bar” passes them. Clearing more squares in each pass of the time bar gives an exponentially larger number of points.
Here are some screenshots. (I’m happy to say our graphical presentation was spectacular, with all graphics, backgrounds, and game pieces custom designed in Inkscape.)
This was a great experience in team software development, and we spent many weeks designing the class architecture in UML. Once all the groundwork was finished, coding it was remarkably straightforward–simply filling in the blanks to implement each class’s duties.
Throughout this project I discovered that even a simple concept can pose many game rule problems. Fortunately, because FINALE was based on an existing game, all we had to do when we had a question was to whip out the PSP and start playing a little. This allowed us to focus on implementing the game very well, rather than designing a new one from scratch.
After many late nights at my house filled with coding, playtesting, pizza, and soda, we finished the game with time to add some fun embellishments. I designed an animation framework so we could easily add fades, zooming squares, and even particle-based explosions for block destruction. There were “power-ups” that, when matched to other blocks, produced special effects such as stopping the time bar. High scores, for instance, are protected with a 1024 bit hash of the score, the name, and a secret key, so that they cannot be modified. There are also cheat keys to ease our playtesting, but we made sure to disable recording of high scores if they were used.