Arkanoid is a classic brick–breaker game recreated using Java 25 and JavaFX, built with Object-Oriented Programming (OOP) principles and clean architectural design.
The project demonstrates structured game development, UI management, animation handling, and a modular system supporting upgrades, skins, and levels.
- Programming Language: Java 25
- Framework: JavaFX
- Game Type: Breakout / Brick Breaker
- Architecture: OOP-based, event-driven, modular game engine
- Core Concepts Used:
- Encapsulation
- Inheritance
- Polymorphism
- Composition
- Basic design patterns (Factory, Singleton, Strategy applied in smaller modules)
- Smooth paddle movement with real-time collision detection
- Brick-breaking mechanics with dynamic ball physics
- Level progression with increasing difficulty
- Multiple skins for both the ball and paddle
- Purchasable using score-based currency
- Persisted across sessions
- Beneficial and harmful items dropped from bricks
- Each power-up affects:
- Ball speed
- Paddle size
- Player health
- Scoring multiplier
- Real-time sound effects (collision, item pickup, UI interactions)
- Stores player name and high scores
- Displays top 8 highest-scoring players
|
|
|
|
- ← / → – Move paddle left/right
- Space – Launch the ball
- Mouse – Navigate UI menus and buttons
| Power-Up | Effect | Rarity |
|---|---|---|
| Paddle Size Up | Paddle increases by 25% | Common |
| Ball Slowdown | Ball speed reduced by 30% | Common |
| Heal | +1 life | Rare |
| Score Multiplier ×2 | Doubles current score | Very Rare |
| Power-Up | Effect | Warning |
|---|---|---|
| Paddle Size Down | Paddle shrinks by 25% | Dangerous |
| Ball Speed Up | Ball speed increases by 40% | Very Dangerous |
| Global Slowdown | Slows paddle, ball, and effect duration | Caution |
| Instant Death | Player loses immediately | EXTREMELY DANGEROUS |
The Arkanoid Project is not only a fun arcade-style game but also a solid demonstration of applying OOP principles in a real-world project.
Through this implementation, the team successfully practiced key concepts such as:
- Encapsulation
- Inheritance
- Polymorphism
- Modular code architecture
- Basic design patterns and game-loop structures
This project serves as a strong foundation for more advanced Java game development and OOP-based system design.