Incom ist die Kommunikations-Plattform der Technische Hochschule Augsburg Gestaltung

In seiner Funktionalität auf die Lehre in gestalterischen Studiengängen zugeschnitten... Schnittstelle für die moderne Lehre

Tutorial - Toon Tanks

Ein kleines Unreal Game bei dem man mit einem Panzer andere Tower abschießen muss um zum Goal zu gelangen. Bei dem Projekt ging es darum die Grundlagen der C++ Programmierung in Unreal zu lernen. Zusätzlich wollte ich einen Überblick gewinnen wie die einzelnen Komponenten in Unreal zusammen arbeiten (Wie C++, Blueprints, Maps, Widgets, PlayerController etc.).


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.


Gameplay Video

Ein Projekt von

Fachgruppe

Interaktive Mediensysteme

Art des Projekts

Freies Projekt

Zugehöriger Workspace

TKCS 22w

Entstehungszeitraum

Wintersemester 2022 / 2023