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
- Host: GitHub
- URL: https://github.com/canreader/brokeout
- Owner: CanReader
- Created: 2024-07-31T23:10:18.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-08-01T09:28:07.000Z (almost 2 years ago)
- Last Synced: 2024-08-01T10:57:43.569Z (almost 2 years ago)
- Language: C++
- Size: 13.2 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
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




## 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