An open API service indexing awesome lists of open source software.

https://github.com/canreader/brokeout

A breakout game made with C++/OpenGL
https://github.com/canreader/brokeout

Last synced: about 1 month ago
JSON representation

A breakout game made with C++/OpenGL

Awesome Lists containing this project

README

          

# Brokeout
A 3D breakout game made with OpenGL and GLFW. This project is initialized for learning the path of OpenGL.

## Functionalities
- 3 levels with increasing difficulty and unique brick layouts
- There are 3 hearts which represented as 3 re-try (and can be increased)
- Combo scoring system - hit bricks in quick succession for up to 5x score multiplier
- Angle-based ball bouncing - ball direction depends on where it hits the paddle
- Power-ups drop from broken bricks (wide paddle, extra life, slow/fast ball)
- Pause/resume with P key
- When ball hits to a block, firstly it is get cracked, if it hits again then break animation applied
- Block textures are designed as Minecraft blocks
- Cross-platform compatible (Linux, macOS, Windows)

## Controls
| Key | Action |
|-----|--------|
| LEFT / RIGHT | Move paddle |
| SPACE | Launch ball |
| P | Pause / Resume |
| ESC | Exit game |

## Used technologies
- Visual Studio 2022 / CMake 3.28.0-rc1
- Assimp
- Glad
- Glfw/Glm
- stb image

## In Game Screenshots
![Brokeout1](https://github.com/user-attachments/assets/69e4423f-c48c-4dd9-b475-76f02aa09211)
![Brokeout5](https://github.com/user-attachments/assets/7bdd4fdf-d2eb-41ee-a88e-561be6dccc90)
![Brokeout4](https://github.com/user-attachments/assets/e728d4d9-3ef4-41fe-bf1e-fe771d21b83e)
![Brokeout6](https://github.com/user-attachments/assets/f9131b45-0870-4c55-951c-9338b75f9651)

## To Do:
- ✅ Add more smooth ball bouncing effect
- ✅ Make blocks able to rotate
- ✅ Add animation after break
- ✅ Add multiple levels
- ✅ Add pause functionality
- ✅ Improve ball physics
- ✅ Cross-platform support
- ⬜ Apply multithreading rendering
- ⬜ Add menu
- ⬜ Fix texture blending on crack
- ⬜ Add more levels (expand to 5+)
- ⬜ Fix skybox bug