
Space Invaders Game
Project Title
Space Invaders Game (using Angular)
Project Summary
The Space Invaders Game is a classic arcade-style shooting game built using Angular. The player controls a spaceship at the bottom of the screen and must shoot down waves of alien invaders descending from the top. The objective is to eliminate all enemies before they reach the bottom or destroy the player's ship. The game tests the player’s reflexes, coordination, and strategy.
Core Features
- Player Movement: The spaceship can move left and right using keyboard controls.
- Shooting Mechanism: Players can shoot projectiles upward to destroy incoming aliens.
- Enemy Waves: Alien invaders move horizontally and gradually descend toward the player.
- Collision Detection: Detects hits between bullets and enemies, and between enemies and the player.
- Score Tracking: Increases the player’s score with each enemy destroyed.
- Lives System: The player has a limited number of lives or health points.
- Game Over Condition: The game ends if all lives are lost or enemies reach the player.
- Responsive Design: Ensures gameplay works well on various screen sizes.
Technologies Used
- Angular: Manages the UI, game state, and interactions.
- RxJS: Handles real-time game updates such as movements, shooting, and enemy advancement.
- Angular Services: Maintains game logic including enemy movement, collision handling, and score updates.
- CSS/SCSS: Styles the game layout, player ship, alien sprites, bullets, and background.
- HTML5 Canvas (optional): Can be used to render game graphics smoothly and efficiently.
Learning Outcomes
- Building a real-time game with Angular’s reactive framework.
- Implementing keyboard controls and custom game mechanics.
- Managing animations and object movement using RxJS timers and observables.
- Handling collision detection between dynamic elements.
- Organizing code using Angular’s component and service architecture.
Possible Enhancements
- Add sound effects and background music.
- Include different enemy types with varied behaviors.
- Introduce power-ups and weapon upgrades.
- Implement multiple levels with increasing difficulty.
- Track high scores using local storage or a backend database.
- Add a boss fight after certain waves.