🔗 https://alobuuls.github.io/arkanoid-game/
Note
Arkanoid Game JS is a browser-based arcade game built with HTML, CSS, JavaScript, and the Canvas API.
The project recreates the classic Arkanoid / Breakout gameplay experience, where players control a paddle to keep the ball in play and destroy every brick on the screen. The game includes collision physics, sound effects, animations, and a complete win/lose system.
Before running the project, make sure you have:
- 🌐 A modern web browser (Chrome, Firefox, Edge, Safari)
- 📦 Git (optional)
Check that Git is installed:
git --versiongit clone git@github.com:alobuuls/arkanoid-game.git
cd arkanoid-gameImportant
No dependencies or package installation are required.
You can simply open:
index.html
or run the project using Live Server in Visual Studio Code.
Open the index.html file directly in your browser.
Note
The game is built using Vanilla JavaScript and the Canvas API, following a real-time game loop architecture.
Responsible for:
- Main game loop
- State updates
- Win/Lose conditions
- Frame management
Handles:
- Ball-to-brick collisions
- Ball-to-wall collisions
- Ball-to-paddle interactions
- Bounce calculations
Manages:
- Sprite rendering
- Background drawing
- Brick generation
- Canvas updates
Controls:
- Keyboard input
- Paddle movement
- User interactions
- Gameplay responsiveness
- 🎮 Classic Arkanoid gameplay
- 🧱 Destructible brick system
- ⚡ Real-time collision detection
- 🎯 Angle-based ball rebounds
- 🌈 Random-colored bricks
- 🔊 Sound effects for gameplay events
- 🏆 Win and lose conditions
- 🎬 Animated victory screen
- 📊 Real-time FPS counter
- ⌨️ Keyboard controls
- 🚀 Lightweight implementation without frameworks
| Key | Action |
|---|---|
| ← / A | Move Left |
| → / D | Move Right |
| Technology | Purpose |
|---|---|
| HTML5 | Structure |
| CSS3 | Styling |
| JavaScript (ES6+) | Game Logic |
| Canvas API | Rendering Engine |
| requestAnimationFrame | Game Loop |
| Keyboard Events | Player Input |
| Audio API | Sound Effects |
arkanoid-game/
├── index.html
├── main.js
├── styles.css
├── README.md
├── images/
│ ├── preview.gif
│ ├── bkg.png
│ ├── bricks.png
│ └── sprite.png
- Game loop architecture
- Separation of responsibilities
- Collision abstraction
- Sprite-based rendering
- Event-driven input handling
- Real-time state updates
- Canvas rendering optimization
- Reusable game logic
- Clean code organization
- Framework-free implementation
Practice and strengthen game development fundamentals using JavaScript and the Canvas API:
- Game Loops
- Collision Detection
- Canvas Rendering
- Event Handling
- Animation Systems
- Physics Calculations
- State Management
- Real-Time Updates
- Keyboard Input Processing
- Interactive User Experiences
This project is intended for educational and portfolio purposes.
Created by Alondra Francisco Onofre.
