Bouncing Balls

By Thomas Jebson
(Created: October 2024, Updated: April 2026 - Finished)
Academic Project
Back to portfolio

Skills & Technologies Used

C++ SFML GitHub Visual Studio Visual Studio Code

Supported Platforms

Windows

Links


About

Bouncing Balls is a 2D single player game based on Puzzle Bobble developed by the Japanese video game producer Taito in 1994. The objective of the game is to arrange balls into groups of at least three, as this causes the whole group to pop earning the player points. The aim of the game is to pop all the balls before the anvil falls to the bottom of the screen. The player takes the form of a cannon, which can be used to aim and fire new randomly colored balls into the existing arrangement. This game features two playable game levels.

This game does not feature any assets taken from the original game. In fact, most of the assets in this game were created by me!

Credits

This game was designed and programmed by Thomas Jebson exclusively, using the following third-party assets:

Fonts

Reflection

This was my first game produced for my BSc Games Programming course at The University of Northampton. Initially I was struggling to find inspiration for how to design the game - and wanted something that paid homage to the original game. On a trip to EGX/Comicon with the university in London, there was a talk about the applications of games in therapy, and ultimately this would inspire the designs for this game. The hand-drawn dragons seen in some of the game menus were a nod to the original game, who's cover artwork is displayed below (image courtesy of Taito):
Original Puzzle Bobble poster artwork by Taito.
When starting work on the development for a game, I like to try and identify what would be the hardest problem to solve - and begin to pick away at it whilst getting the easier work done in the meantime. In the case for this game, the hardest problem I identified was determining how to traverse the arrangement of balls and determine which ones to pop. Ultimately, the solution I developed required spreading a 'flag' to all connected balls of the same color, and keeping a total of how many flags were placed. Then if the number of flags exceeds the threshold (in this case 3) - a more traditional array iteration process goes through and destroys all the balls with a flag.

Overall, this game ended up being reasonably sucsessful and met all the points outlined in the assignment brief. However, this game was developed prior to my extensive exploration into games optimisation and could benefit from being optimised further - particularly the flag speading algorithm, as this will limit the expansion of the game to further levels due to the increasing number of balls required. Finally, further exploration into different mechanics - like locked balls/colors could elevate the game should further development be considered. At this time there are no plans to continue to develop the game - but the option remains open.

Images

Main Menu Level One Start Level One Mid-Play Level Two Level Complete End Menu Win Menu Pause Menu