Tutorials
Programmierung
Für die Programmierung des Spiels wurde ein Tutorial aus einem Udemy Kurs benutzt.
Dissolve Material
Um den Todeseffekt eines Towers zu verschönern habe ich noch ein Dissolve Material aus diesem Tutorial hinzugefügt.
Inhalte des Udemy Kurses
BasePawn
Der BasePawn ist dafür zuständig die einzelnen Komponenten (Collider, Meshes und Spawnpoints) zu erstellen. Außerdem kümmert er sich um das verbleibende Leben, das Schießen von Projektilen und die Rotation.
Tank
Der Tank basiert auf dem BasePawn. Er verarbeitet den PlayerInput und erweitert den BasePawn so das sich der Tank auch bewegen kann.
Tower
Ach der Tower basiert auf dem BasePawn. Er muss sich jedoch nicht bewegen können, dafür muss er den Spieler auf dem Feld finden und ihn angreifen sobald dieser in Reichweite ist.
Projectile
Das Projectile ist relativ einfach gehalten. Es merkt sich von wem es geschossen wurde und bewegt sich einfach solange in eine Richtung bis die Lebenszeit abgelaufen ist oder etwas getroffen wurde.
Eigenregie
Hit Force
Ich wollte das der Spieler mit einem Panzer durch einen Parkour fahren muss. Damit der Spieler aber von dem Parkour abweichen kann musste ich eine Kraft hinzufügen die den Panzer ein bisschen weg drückt sobald er getroffen wurde.
Gravitation
Damit der Panzer dann auch von seinem Weg herunterfallen konnte musste ich Gravitation hinzufügen. Im Kurs war es vorgesehen das sich der Panzer immer nur auf einer Ebene bewegt weshalb dies nicht behandelt wurde. Da es darum ging C++ zu lernen wurde im Kurs auch nicht das Unreal eigene Physik System benutzt um den Panzer zu bewegen. Deshalb lonnte die HitForce und die Gravitation auch nicht einfach über das Physik System laufen.
Healthbar
Jeder Tower und der Panzer haben eine eigene Healthbar bekommen um dem Spieler ein Feedback über das verbleibende Leben zu geben. Die Healthbars der Tower erscheinen auch nur wenn sich der Panzer in deren Reichweite befindet.
AimHelper
Da es gar nicht so einfach war mit den Projektilen zu treffen habe ich einen AimHelper hinzugefüht. Das ist ein Niagara System welches durch ein C++ Skript den Start und Endpunkt zugewiesen bekommt. So lässt sich einfacher auf Tower zielen.
Feuer, Rauch und Explosions Effekte
Die Projektile haben einen Feuerschweif bekommen. Außerdem entsteht eine Explosion wenn diese irgendwo auftreffen. Dies sind auch beides Niagara Systeme. Zusätzlich kommt Rauch aus der Mündung des Towers oder Panzers wenn ein Projektil abgeschossen wird. Das ist ein normales Cascade Partikel System.
Camera Shake
Die Kamera bekommt jedes mal wenn ein Projektil abgeschossen wird, der Panzer getroffen wird oder ein Projektil in der nähe aufkommt einen Camera Shake. Dieser schwächt sich auch ab je nach dem wie weit das Projektil vom Panzer entfernt explodiert ist.
Sound
Alle Effekte haben einen 3D Sound bekommen. Außerdem wird ein Fahrgeräusch am Panzer abgespielt welches lauter oder leiser wird je nach dem wie schnell sich der Panzer bewegt.
UI
Zum Schluss habe ich noch ein Start, Game Over und Game Won Menü hinzugefügt.
Fazit
Der Kurs war wirklich gut um die Grundlagen der C++ Programmierung zu erlenen. Besonders Hilfreich war es jedoch als ich verstanden habe wie C++ und Blueprints miteinander funktionieren. Es ist super angenehm wenn man die gesamte Spiellogik effizient in C++ programmieren kann und danach die Artists einfach in den Blueprints Sounds, Camera Shake, Meshes und Effekte ändern und anpassen könnnen.
Unreal Version
Das Spiel wurde mit der Unreal Engine 5.0.3 gemacht.
Links zum Projekt
Github
Hier Kann das Projekt als gesamtes heruntergeladen werden. In dem Repository befindet sich auch die Zip Datei dazu.
Spiel
Hier Kann eine .exe Datei heruntergeladen werden wenn man das Spiel spielen möchte.