A modern brick-breaking arcade game built with vanilla HTML5 Canvas, CSS, and JavaScript.
- 🎮 20 levels with increasing difficulty
- 💥 Power-ups: Expand paddle, Multi-ball, Slow motion, Laser, Shrink
- 👾 Boss levels every 5 levels
- ✨ Particle effects with radial glow
- 🔊 Sound effects via Web Audio API
- 📱 Responsive design — works on desktop and mobile
- 🖱️ Multiple controls: Keyboard, Mouse, Touch
| Input | Action |
|---|---|
← / → |
Move paddle |
Space / Enter |
Launch ball / Start game |
| Mouse | Move paddle |
| Click | Launch ball |
Visit the live game: jubayerarefin.github.io/PaddleBall
-
Clone the repository:
git clone https://github.com/jubayerarefin/PaddleBall.git cd DXBall -
Open
index.htmlin your browser (or use a local server):# Python python -m http.server 8080 # Node npx serve
-
Navigate to
http://localhost:8080
dx-ball/
├── index.html # Game HTML + canvas setup
├── dx-ball.js # Main game engine & loop
├── dx-ball.css # Styles & responsive layout
├── ball.js # Ball physics & collision
├── paddle.js # Paddle movement & controls
├── bricks.js # Brick & Level management
├── powerups.js # Power-up system
├── particles.js # Particle effects
├── sound.js # Audio via Web Audio API
└── .github/
└── workflows/
└── deploy.yml # GitHub Pages CI/CD
- HTML5 Canvas — 60fps rendering
- CSS3 — Responsive layout, transitions, media queries
- Vanilla JavaScript — No frameworks, no dependencies
- Web Audio API — Procedural sound synthesis
- GitHub Pages — Hosting via Actions workflow
| Level Range | Description |
|---|---|
| 1–4 | Standard brick grids (8–11 columns) |
| 5 | Boss fight |
| 6–9 | Larger grids + multi-hit bricks |
| 10 | Boss fight |
| 10+ | Increasing difficulty: more bricks, more hits, faster ball |
Scores are saved locally via localStorage and displayed on Game Over when beaten.
MIT