- Introduction
- Screenshots
- Features
- Getting Started
- Level Specification
- Level-Sets File Format
- Development Notes
- Dependencies
The Arkanoid Game is a multi-level, Java-based game developed as part of the semester project in the 2nd semester of the 1st year at BIU. Designed without the use of Java's GUI Built-In objects, this game uses a custom GUI implementation which is included in this repository. Unique to its design, the game runs on a single thread, offering a unique take on classic game programming. Users have the flexibility to choose from different levels or even create their own.
- Multiple levels with varying difficulty.
- An opening menu screen for game interactions: start a new game, view high scores, or quit.
- Customizable level sets for personalized gameplay.
- Level specifications separate from the core code.
- Block and level definitions that are human-readable and easy to understand.
- Ensure you have Java SE 10 or higher installed on your machine.
- Download and unzip the code repository.
- Optionally, create your own Level-Set (See "Level Specification" below) or proceed with the default set.
- In the command line, type
make jar
. - Run the game by either double-clicking the
ass7game.jar
file or typingjava -jar ass7game.jar
in the command line. - Enjoy the game!
- Level and block definitions are based on human-readable text files.
- Each block has properties like width, hit-points, appearance, and more.
- Levels define properties like paddle size, level name, and block layout.
- Different level-sets can be chosen at the start, which are simply different level specification files. Modify the
level_sets.txt
file in the resources folder to customize these sets.
a:level 1 name
path-to-level-1-file
b:level 2 name
path-to-level-2-file
...
- Odd-numbered lines are level names with the format
k:description
. - Even-numbered lines provide the filenames for level specifications. Ensure these filenames are relative to the classpath.
- This project went through 5 stages, reflecting the semester-long journey of refining and enhancing the code. Parts of it were revisited to further improve OOP practices and Java language proficiency.
- This game is built without relying on Java's built-in GUI objects but instead, utilizes a GUI implementation found in this repository. This offers a different experience for both the developer and the player.
- While most games of this nature might use multi-threading, our Arkanoid game stands out by running on a single thread.
- If compiling and running the source code, ensure to also include the provided
biuoop-1.4.jar
which is crucial for the game's GUI functionality.