A modern, Windows-friendly desktop reimagining of the classic arcade game Breakout, built with HTML5 Canvas, TypeScript, and Electron.
This project elevates the traditional brick-breaking formula with an escalating 15-level campaign, intense multi-phase FSM boss encounters, a physics-driven combo system, and immersive arcade juice. Packaged as a native Windows desktop application via electron-builder, it features a locked 800x600 arcade-style resolution, custom iconography, a robust local file-based data persistence system, and dynamic audio-visual feedback.
- Persistent High Scores & Boss Progression: Implemented a lightweight, zero-dependency Node.js file storage system (
game_data.json) via Electron IPC. The app tracks top pilot high scores and records lifetime boss kill counts securely without requiring native C++ database bindings. - 15-Level Campaign & FSM Boss Fights: Progressive difficulty scaling, culminating in challenging Finite State Machine (FSM) boss encounters featuring 4 distinct attack patterns (Radial Bursts, Shield Minions, Orbital Strikes, and Gravity Orbs) across dual phases.
- Dynamic Visuals & Arcade Juice: Features a continuous parallax starfield, neon ball motion trails, impact-driven Screen Shake, juiced-up Scaling Score Popups with dynamic combo color coding, and bright Wave-Clear Screen Flashes.
- Physics & Combo System: Angle-based ball deflection, hit-stop mechanics on impact, and score multipliers for consecutive brick destructions.
- Power-Up Arsenal:
- 🟦 Wide: Expands paddle width.
- 🟩 Multi: Spawns additional active balls.
- 🟪 Slow: Temporarily reduces ball velocity.
- 🟥 Laser: Equips the paddle with dual-firing lasers to melt through bricks and bosses.
- 🟨 Magnetic: Catches and holds the ball on the paddle for tactical relaunching.
- 💗 Extra Life: Grants a 1-Up.
- Audio & Options Customization: Fully integrated Options Menu allowing pilots to toggle SFX audio on or off dynamically with instant feedback.
- Native Windows Integration: Built-in IPC communication bridge between the Electron main process and the game engine, packaged cleanly for standalone execution.
- Core Engine: TypeScript, HTML5 Canvas API (No external game engines)
- Build Tooling: Vite
- Desktop Environment: Electron, Node.js
fsIPC storage module
- A / D or Left / Right Arrows: Move Paddle
- Mouse: Move Paddle (Alternative)
- Space / Enter / Left Click: Launch Ball / Start Game / Next Level / Confirm
- W / S / Up / Down Arrows: Navigate Menus / Options
- Escape: Pause Game
- M: Toggle Audio Mute
To run this project locally, modify the source code, or compile your own Windows installer, you will need Node.js installed.
-
Clone the repository:
git clone https://github.com/yourusername/breakout-game.git cd breakout-game -
Install dependencies:
npm install
-
Run Web Version (Vite):
npm run dev
-
Run Desktop App (Electron):
npm run app:dev
-
Compile Windows Installer (.exe):
npm run app:build
The compiled installer will be generated inside the
/releasedirectory.