Breakout game

In the Computer Systems 245 module at the University of Stellenbosch, I undertook a challenging solo project that involved coding the popular arcade game "Breakout" onto a development board using STM32 software. To achieve this, I utilized my extensive knowledge of key concepts such as interrupts, clocks, timers, serial communication (including UART, I2C, and SPI), and DMA. The movement of the paddle was done using 3 input methods, keyboard/joystick input, an adc input below the joystick and mouse tracking.

The project required a deep understanding of STM and microcontroller coding to achieve a functional and high-quality game. The game also utilizes some physic elements used to calculate the correct angles the ball should bounce of walls and the paddle itself. I went beyond the basic requirements by adding extra features such as audio and sprite animation, as well as power ups which further improved the overall gameplay experience. Please take note that the game has a glitch that could not be fixed, specifically when the ball hits the side and top of the bricks, due to time constraints.

Throughout the project, I demonstrated a high level of technical expertise and an ability to work independently to overcome challenges. I am proud of my accomplishments on this project, which served as an excellent opportunity to showcase my skills in microcontroller coding and game development.