This game is designed to be an arcade-style shooter game that was programmed in Java. It incorporates different sprites to represent the player, many enemies, bosses for all levels, laser beams, and power-ups. The player is supposed to fight against waves of alien invaders, collect power-ups, and battle bosses across multiple levels. The game features visual effects, sound effects, and a variety of enemy types.
- Multiple Levels: Progress through three increasingly difficult levels, each with its own enemy formations and boss battles.
- Boss Fights: Each level ends with a unique boss, featuring distinct movement patterns, attack styles, and phase transitions with visual and audio effects.
- Power-Ups: Collect Spread Shot, Rapid Fire, and Laser power-ups to enhance your firepower for short durations.
- Dynamic Visual Effects: Includes screen shake, overlays, lighting effects, explosions, and particle trails for immersive gameplay.
- Sound Effects & Music: Rich audio experience with background music and sound effects for actions, power-ups, and boss phases.
- Score Tracking: Tracks current score and high score, with detailed end-level and victory summaries.
- Customizable Controls: Key bindings for movement, shooting, pause, and menu navigation.
- Thread-Safe Game Objects: Uses a thread-safe list for managing game entities, ensuring smooth performance.
- Movement: Use arrow keys or WASD to move the player ship.
- Shooting: Press SPACE to shoot. Power-ups modify shooting behavior.
- Power-Ups: Power-ups spawn periodically and grant temporary abilities:
- Spread Shot: Fires multiple bullets in a spread pattern.
- Rapid Fire: Reduces shooting cooldown for faster firing.
- Laser: Grants powerful laser shots for a brief time.
- Boss Phases: Bosses change appearance, attack patterns, and music as their health decreases.
- End-Level Summary: After each level, view stats including score, lives, power-ups collected, and time survived.
| Action | Default Key |
|---|---|
| Move Left | Left Arrow / A |
| Move Right | Right Arrow / D |
| Move Up | Up Arrow / W |
| Move Down | Down Arrow / S |
| Shoot | Space |
| Pause | P |
| Start Game | Enter |
| Exit | Esc |
- Images: Located in
resources/images/and includes sprites for player, enemies, bosses, bullets, and power-ups. - Sounds: Located in
resources/sounds/and includes music and sound effects for gameplay events.
src/entities/: Game objects such as Player, Enemy, Bosses, Bullets, PowerUps, Particles, and Explosions.src/game/: Core game loop, rendering, input handling, and state management.src/ui/: User interface components like the intro menu, end-level summary, and boss phase effects.src/sound/: SoundManager for music and sound effects.src/settings/: Game settings and key bindings.src/utils/: Utility classes for thread-safe lists and score management.resources/: Images and sounds used in the game.
- Ensure you have Java installed (JDK 8+ recommended).
- Compile the project:
javac -d bin src/**/*.java
- Run the game: java -cp bin main.Main
- The game starts with an intro menu. Click "Play Game" to begin.
- This game will continue to grow over time based on specifications listed in the issues tabs that represent game feature updates/requests.