A console-based recreation of the classic arcade game with additional features.
GamePlay.mp4
Space Invaders is a C++ implementation of the classic arcade game that includes both single-player and two-player PVP modes. The game features user account management, save/load functionality, and a leaderboard system.
- Single-player mode with progressive difficulty levels
- PVP mode allowing two players to compete against each other
- User account system for player authentication
- Save/load functionality to preserve game progress
- Leaderboard system to track high scores
- ASCII art graphics for visual representation
- Shield mechanics for player protection
- Special enemy ships that provide bonus points
The game follows a modular architecture organized into several core systems:
- Game Loop
- PVP Mode
- Input Handler
- Player Ship
- Enemies
- Special Ship
- Shields
- Missiles
- User Accounts
- Save/Load System
- Leaderboard
- Main Menu
- Pause Menu
- ASCII Art Assets
In single-player mode, you control a ship at the bottom of the screen and must defeat waves of alien invaders. The game features:
- Progressive difficulty levels
- Increasing enemy speed and shooting frequency
- Shield protection
- Special bonus ships
The competitive PVP mode allows two players to face each other:
- Two players controlling ships at opposite ends of the screen
- Defensive barriers for each player
- Lives system to determine the winner
- W/S: Move up/down in menu
- Enter: Select option
- A/D: Move left/right
- Space: Shoot
- ESC: Pause game
- W/S: Navigate options
- Enter: Select option
The game includes a comprehensive user account system:
- Username and password authentication
- Account creation with validation
- Persistent storage via text files
Players can save and resume their progress:
- Score
- Level
- Time played
- Remaining lives
The leaderboard ranks players based on:
- Level reached (higher is better)
- Time taken (lower is better)
- Score (higher is better)
- Console-based rendering with ASCII graphics
- Color-coded entities using ANSI escape sequences
- Frame-rate controlled rendering (60 FPS)
- Dynamic enemy behavior system
- Collision detection
- Clone the repository
- Compile the source code using a C++ compiler
- Run the executable
This project is licensed under the MIT License - see the LICENSE file for details.
Developed by Aryan Ghasemi & Seyed Sadra Seyed Tabai
