Space Shooter
- C++
- SFML
- CMake
Kleines 2D-Spiel in C++, entstanden im Rahmen einer Uni-Aufgabe.
Der Spieler weicht zwei Gegnertypen mit unterschiedlichem Verhalten aus und schießt sie ab.
Gameplay


Gegner-Typen
Rote Gegner (Schnell)
- • 1 Lebenspunkt (sofort zerstört)
- • Hohe Bewegungsgeschwindigkeit
- • Häufige, schnelle Schüsse
- • Aggressive Angriffsstrategie
Blaue Gegner (Tank)
- • 3 Lebenspunkte (mehrere Treffer nötig)
- • Langsame Bewegung
- • Weniger häufige, langsamere Schüsse
- • Taktische Bedrohung
Architektur & Design
Entity-System: Das Spiel nutzt eine klassische ECS-ähnliche Struktur. Die Game-Klasse verwaltet zentral den Player, alle Enemies und Bullets als Vektoren. Jede Entity hat eigene Update- und Draw-Methoden, die vom Game-Loop aufgerufen werden. Das ermöglicht einfaches Hinzufügen neuer Gegnertypen durch verschiedene Constructor-Parameter.
Delta-Time Movement: Bewegung ist frameunabhängig — die Spielgeschwindigkeit hängt nicht vom FPS ab. Alle Bewegungen nutzen dt (Delta Time), damit das Spiel auf 60 FPS und 120 FPS gleichartig läuft.
Collision Detection: Kollisionen werden mit getGlobalBounds().intersects() berechnet — schnell und zuverlässig für ein 2D-Spiel. Bullets gegen Enemies, Enemies gegen Player.
Enemy Spawning: Ein globaler spawnClock regelt die Gegner-Spawnrate. Die Schwierigkeit steigt nicht über Zeit (klassisches Design, fokussiert auf Skill statt RNG).
Steuerung
A / D: Spieler links/rechts bewegen
Leertaste: Schießen (tippen oder gedrückt halten)
Ziel: Alle Gegner zerstören, ohne dass sie an dir vorbeikommen. Starten mit 50 Lebenpunkten.
Warum SFML?
SFML ist leicht, direkt und modern genug für ein 2D-Shooting-Spiel. Im Gegensatz zu Unity/Godot hatte ich volle Kontrolle über die Rendering Pipeline und den Game Loop — perfekt für ein Uni-Projekt, das zeigen soll, wie Spiele unter der Haube funktionieren.