
2D Space Shooter Game (using SDL)
Project Title: 2D Space Shooter Game using SDL (C++)
Project Summary
This project is a fast-paced 2D Space Shooter Game built using C++ and SDL (Simple DirectMedia Layer). Players control a spaceship, shoot down incoming enemies, avoid obstacles, and collect power-ups. The game focuses on real-time action, collision detection, scoring, and responsive gameplay.
Core Components
Player Ship Controls
- Allows movement in all directions using keyboard input.
- Firing bullets or lasers using keys (spacebar or mouse click).
- Movement and actions handled using SDL event system.
Enemy Spawning and Behavior
- Enemies spawn at intervals and follow predefined or random movement paths.
- Some enemies shoot back or move faster over time.
Projectile and Collision System
- Bullets fired by player and enemies are managed in lists.
- Collision detection for player vs enemies, bullets vs enemies, and obstacles.
Power-Ups and Health System
- Collect items to restore health, upgrade weapons, or gain temporary invincibility.
- Health bar displayed on-screen.
Score and Level System
- Points awarded for destroying enemies and collecting items.
- Levels increase difficulty by changing enemy speed, number, or types.
Game Loop and Rendering
- Game loop handles input, updates game objects, renders frames.
- Uses SDL2 for rendering images, playing sounds, and managing timing.
UI Elements
- Display score, lives, power-up timers, and game over screen.
- Simple menus for start, pause, and restart.
Technologies Used
- C++
- SDL2 (graphics, input, audio, and timers)
- SDL_image and SDL_mixer (for textures and sound)
- Object-Oriented Design (Player, Enemy, Bullet, GameManager classes)
Learning Outcomes
- Mastery of SDL and 2D game development
- Understanding real-time rendering and game loop mechanics
- Implementation of collision detection algorithms
- Object-oriented design in C++ for game entities
- Handling input, timing, and audio in a low-level graphics library
Possible Enhancements
- Add boss battles with unique attack patterns
- Implement gamepad/controller support
- Add parallax scrolling background for depth
- Include a weapon upgrade system
- Save high scores using file I/O or databases