Skip to content

avishay377/bricker-game

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

Bricker Game — Java OOP Project

A small 2D brick-breaker game implemented as an academic project, focusing on clean object-oriented design and basic game architecture.

Features

  • Classic brick-breaker gameplay: ball, paddle, bricks, lives, and win/lose conditions.
  • Custom game loop with collision handling, reflection-based ball physics, and simple UI (numeric & graphic hearts).
  • Multiple brick behaviors implemented via the Strategy pattern (extra ball/puck, bonus paddle, bonus heart, camera focus, and combinations via a double-strategy).
  • Reuse of single strategy instances across all bricks for better memory usage, consistent behavior, and easier maintenance.

Design Notes

  • The game manager (BrickerGameManager) is responsible for adding and removing game objects, keeping object-lifecycle logic centralized.
  • Collision strategies receive a reference to the game manager and use tags to recognize the main ball, puck balls, and main paddle.
  • Additional entities (puck ball, bonus paddle, bonus heart) extend existing game-object classes when there is a clear is-a relationship.

Project Structure

  • src/bricker/main – game entry point (BrickerGameManager)
  • src/bricker/gameobjects – core game objects (ball, paddle, brick, hearts display, etc.)
  • src/bricker/brick_strategies – collision strategies and the double-strategy logic
  • assets – images and sound files used by the game

Running the Game

This project was originally built and run in IntelliJ IDEA with the academic danogl framework on the classpath.

  1. Open the project in IntelliJ (or any Java IDE).
  2. Ensure the danogl library is configured as a dependency.
  3. Run the BrickerGameManager class in the bricker.main package.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages