https://github.com/noumanic/spaceship-battle-assembly
A real-time text-based space shooting game developed in Assembly Language using Irvine32 library.
https://github.com/noumanic/spaceship-battle-assembly
assembly-language console-game educational-project game-development irvine32 masm noumanic space-shooter spaceship visual-studio x86-assembly
Last synced: 15 days ago
JSON representation
A real-time text-based space shooting game developed in Assembly Language using Irvine32 library.
- Host: GitHub
- URL: https://github.com/noumanic/spaceship-battle-assembly
- Owner: noumanic
- Created: 2025-09-08T17:58:30.000Z (about 1 month ago)
- Default Branch: main
- Last Pushed: 2025-09-08T18:27:52.000Z (about 1 month ago)
- Last Synced: 2025-09-11T01:51:39.914Z (about 1 month ago)
- Topics: assembly-language, console-game, educational-project, game-development, irvine32, masm, noumanic, space-shooter, spaceship, visual-studio, x86-assembly
- Language: Assembly
- Homepage: https://noumanic.github.io/spaceship-battle-assembly
- Size: 11.3 MB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# đ Space Ship Battle - Assembly Language Game
A real-time, text-based space shooter game built with Assembly Language using the Irvine32 library. Command your spaceship through three challenging levels of intense space combat!
## đŽ Game Overview
Space Ship Battle is an educational and entertaining console game that demonstrates core Assembly programming concepts including input handling, cursor manipulation, loops, procedures, and game logic implementation.
### đ¯ Objective
Control your spaceship and destroy enemy vessels before they reach your position. Progress through three increasingly difficult levels to achieve victory!
## đšī¸ Controls
| Key | Action |
|------------|-------------------------------|
| `â` `â` | Move spaceship left/right |
| `Spacebar` | Fire bullets |
| `ESC` | Exit game |
| `P` | Pause game |## đ¨ Game Elements
| Symbol | Element |
|-------------|-------------|
| `^` or `<^>`| Player Ship |
| `V` or `*` | Enemy Ship |
| `\|$` | Bullet |
| ` ` | Empty Space |
| `@` | Super health|## đ Game Levels
### đĸ Level 1: Beginner
- **Enemies to defeat:** 5
- **Difficulty:** Easy
- **Features:** Slow enemy movement, minimal enemy fire### đĄ Level 2: Intermediate
- **Enemies to defeat:** 10
- **Difficulty:** Medium
- **Features:** Faster enemies, side-to-side movement, enemy bullets### đ´ Level 3: Advanced
- **Enemies to defeat:** 15
- **Difficulty:** Hard
- **Features:** Rapid enemy spawning, random movement patterns, intense enemy fire## đ ī¸ Technical Requirements
- **Platform:** Windows
- **IDE:** Visual Studio
- **Assembler:** MASM (Microsoft Macro Assembler)
- **Library:** Irvine32
- **Architecture:** x86/x64 compatible## đĨ Installation & Setup
1. **Clone the repository:**
```bash
git clone https://github.com/noumanic/SpaceShip-Battle-Assembly.git
cd SpaceShip-Battle-Assembly
```2. **Prerequisites:**
- Visual Studio (with MASM support)
- Irvine32 library installed
- Windows operating system3. **Build and Run:**
- Open `SpaceShipBattle.sln` in Visual Studio
- Ensure Irvine32 library is properly linked
- Build the project (Ctrl+Shift+B)
- Run the executable from Debug folder## đĩ Audio Features
The game includes immersive sound effects:
- Welcome sound
- Menu navigation
- Shooting effects
- Victory/defeat sounds## đ Project Structure
```
SpaceShipBattle/
âââ main.asm # Main game source code
âââ Debug/ # Compiled game + sound files
â âââ SpaceShipBattle.exe # Ready-to-run game!
â âââ *.wav # Audio files (required for gameplay)
âââ assets/
â âââ images/
â â âââ screenshots/ # Complete UI flow screenshots
â â âââ concept_art/ # Level design concepts
â âââ sounds/ # Audio file references
âââ docs/ # Comprehensive documentation
âââ SpaceShipBattle.sln # Visual Studio solution
âââ Scores.txt # High score data
```## đ§ Assembly Concepts Demonstrated
- **Input/Output Operations:** Keyboard input handling, console output
- **Memory Management:** Data structures and memory allocation
- **Control Flow:** Loops, conditional statements, procedure calls
- **System Calls:** Irvine32 library functions
- **Real-time Programming:** Game timing and synchronization
- **Modular Design:** Structured programming with procedures## đ Learning Outcomes
This project helps understand:
- Low-level programming principles
- Assembly language syntax and structure
- Console application development
- Game loop implementation
- Real-time user interaction
- Procedural programming in Assembly## đ¤ Contributing
Contributions are welcome! Please feel free to submit pull requests or open issues for:
- Bug fixes
- Performance improvements
- New features
- Documentation updates## đ License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## đ Educational Purpose
This game was developed as an educational project to demonstrate Assembly language programming skills and game development concepts at the low level. It serves as an excellent resource for students learning:
- Assembly language programming
- Game development fundamentals
- Console application design
- Real-time input handling## đ¸ Screenshots
đ highest_score_screen10.png [.png] (264.4 KB)
đ instructions_screen4.png [.png] (314.1 KB)
đ level1_screen6.png [.png] (266.8 KB)
đ level2_screen7.png [.png] (263.5 KB)
đ level3_screen8.png [.png] (296.4 KB)
đ menu_screen3.png [.png] (290.7 KB)
đ name_input_screen5.png [.png] (262.5 KB)
đ player_stats_screen9.png [.png] (313.6 KB)
đ spaceship_battle_screen2.png [.png] (274.8 KB)
đ thankyou_screen11.png [.png] (270.0 KB)
đ welcome_screen1.png [.png] (283.7 KB)## đ Features
- â Three progressive difficulty levels
- â Real-time keyboard input
- â Sound effects and audio feedback
- â Score tracking system
- â Player statistics
- â Smooth console-based graphics
- â Collision detection
- â Enemy AI patterns## đ Future Enhancements
- [ ] Power-ups and special weapons
- [ ] Boss battles
- [ ] Multiplayer support
- [ ] Enhanced graphics
- [ ] More levels and challenges---
**Made with â¤ī¸ and Assembly Language**
*If you found this project helpful, please consider giving it a â!*