My second completed game created as part of the 20 Games Challenge.
This project was developed in Unity 6 using C#, featuring a custom collision system, pixel-perfect rendering and hand-drawn pixel art.
- Custom ball collision system
- Multiple levels
- Combo score system
- Progressive ball speed
- High Score persistence using PlayerPrefs
- Lives system
- Pause system
- Pixel-perfect rendering
- Hand-drawn pixel art created in Aseprite
- Keyboard and Touch controls
- Brick break particle effects
- WebGL Build
| Action | Input |
|---|---|
| Move Paddle | A / D |
| Launch Ball | Space |
| Pause | Pause Button |
| Touch Controls | Screen Halves |
- Unity 6
- C#
- Unity Input System
- TextMeshPro
- Aseprite
- Scriptable Objects
This project helped me practice and understand:
- Designing a custom collision and bounce system
- Event-driven programming using C# events
- Delegates, Subscribe and Unsubscribe
- Invoking events between gameplay systems
- Custom ball reflection and angle control
- Building a custom physics solution without relying on Unity Physics
- Pixel Perfect workflow
- Pixel Snap and Sub Pixel rendering
- Drawing sprites in Aseprite
- Basic use of Scriptable Objects
- Creating reusable UI systems using sprites
- Managing multiple levels
- Combo and score systems
- Lists and object collections
- Coroutines
- Touch controls using a custom Input Composite
- Basic use of Unity's Particle System
- Better GameManager architecture
The goal of this project was not to recreate Breakout perfectly, but to practice architecture, custom gameplay systems and pixel art while improving code quality compared to the previous project.
This project was created for educational purposes as part of the 20 Games Challenge.

