Hi,
ich wollte euch gern mein erstes fertiges Spiel vorstellen:
Allgemeines
Das Spiel heißt Space-Pong und ist, wie man am Namen erkennen kann, ein Pong-Klon. Nachdem ich das Buch "C++ für Spieleprogrammierer" von Heiko Kalista durchgearbeitet habe, bin ich mit diesem Spiel angefangen und habe es jetzt nach ein paar Monaten fertiggestellt (gab aber zwischendurch auch mehrere Pausen
).
Das Spiel an sich ist ja nicht unbedingt komplex, ich habe trotzdem versucht, möglichst viele verschiedene Sachen mit einzubauen. Z.B. gibt es drei verschiedene Schwierigkeitsstufen im Singleplayer und man kann zwischen Fenstermodus und Vollbild wechseln. Die Einstellungen werden in einer seperaten Datei gespeichert und werden bei einem Neustart des Spiels wieder geladen.
Grafik
Ich habe alle Grafiken in dem Spiel selbst erstellt. Ich bin noch totaler Anfänger im Grafikdesign und habe auch kein Grafik-Tablet o.ä. Also das Spiel nicht unbedingt nach der Grafik bewerten, da habe ich auch nicht meinen Fokus drauf gesetzt. Zum erstellen der Grafiken hab ich übrigens Paint.net verwendet.
Steuerung
Man steuert das Spiel nur mit der Tastatur. Im Menü benutzt man die Pfeiltasten und die Entertaste zum bestätigen. Beim Spiel gegen den Computer steuert man sein Paddel mit Pfeiltasten nach oben und unten. Im Multiplayer steuert man das linke Paddel mit w und s und das rechte mit den Pfeiltasten.
Technik
Das Spiel ist in C++ geschrieben und als Grafik-Api benutzte ich die SDL, da diese auch im Buch von Kalista verwendet wurde. Zum Einblenden des Punktestandes wird die SDL-Erweiterung SDL-ttf genutzt, alle andern Schriften sind BMP-Dateien. Ich habe den komletten selbst geschrieben, bis auf die Sprite und die Singleton-Klasse, die habe ich aus dem Buch übernommen und z.T. etwas verändert. Für den Gamestate-Manager habe ich mich in einem Tutorial "inspirieren" lassen, ihn aber für meine Zwecke verändert.
Hier einmal alle Features im Überblick:
- Single- und Multiplayer
- Ball wird nach je 15 sec. ohne Punkt schneller
- bewegt sich das Paddel, während der Ball auftrifft, ändert sich der Winkel des Balls
- drei verschiedene Schwierigkeitsstufen (Easy, Medium, Hard)
- Wechsel zwischen Fenstermodus und Fullscreen (1920x1080, beim Wechsel gibt es aber manchmal einen Bug und man muss das Spiel neu starten)
- Einstellungen bleiben bei Neustart erhalten
Ich würde mich über eure Meinungen und Verbesserungsvorschläge freuen!
Den Sourcecode habe ich mal mit in den Ordner gepackt, falls ihn sich einer ansehen will. Ich hoffe, das alle benötigten DLL´s dabei sind, wenn nicht einfach melden.
Hier schonmal ein paar Screenshots:
EDIT: Hab die zlib1.dll jetzt auch hinzugefügt.