Welcome to AsteroidsGameHu
, a modern take on the classic Asteroids arcade game, developed with a keen focus on object-oriented programming principles such as inheritance and polymorphism. This project is a testament to my dedication to crafting engaging gameplay experiences while adhering to clean code practices.
This project is made for COMP2011J course.
In AsteroidsGameHu
, Players pilot a spaceship through a field of asteroids, engaging in dogfights with intelligent UFO enemies and collecting power-ups to enhance their ship's capabilities. The game features a variety of levels with increasing difficulty, providing a challenging and immersive experience.
- Dynamic Gameplay: Start with basic asteroid destruction and progress to engaging combat with advanced enemy UFOs.
- Power-Ups: Destroying certain asteroids rewards players with bonuses like shields, double bullets, and enhanced thrusters.
- Progressive Difficulty: Each level increases in difficulty, introducing more hazards and stronger enemies.
- Intuitive Controls: Fully keyboard-driven controls for a seamless gaming experience.
- Accelerate: UP arrow
- Move Left: LEFT arrow
- Move Right: RIGHT arrow
- Fire: SPACE bar
- Hyperspace Jump: L/R SHIFT
- Play/Pause: p
- Object-Oriented Design: Leveraged OOP principles to structure game entities and mechanics, promoting code reusability and scalability.
- Minimalist Aesthetics: Despite the line-drawn graphics, meticulous attention to design elements like typography and UI ensures a futuristic ambiance and intuitive gameplay.
- Optimized Performance: Ensured smooth frame rates and responsive controls, optimizing for an engaging user experience without lags or glitches.
To run AsteroidsGameFX
, follow these steps:
- Ensure that Java 8 SDK is installed on your system.
- Clone the repository to your local machine.
- Open the project in IntelliJ IDEA.
- Navigate to the
Run/Debug Configurations
(as shown in the provided screenshot). - Make sure that the main class is set to
display.GameStart
. - Set the working directory to the root of the project directory.
- Run the
GameStart
configuration to start the game.
src
: Contains all source files for the game.data
: Includes classes for managing game data persistence.display
: Contains all UI-related classes, such as screens and menu controls.model
: Holds the core game logic and object models, including the player, asteroids, bullets, and UFOs.
out
: The output directory for compiled class files.README.md
: This file, providing documentation for the project.scores.txt
: A text file for persisting player scores.
I welcome contributions and suggestions to enhance the game. Feel free to fork the project, make your changes, and submit a pull request!