In seiner Funktionalität auf die Lehre in gestalterischen Studiengängen zugeschnitten... Schnittstelle für die moderne Lehre
In seiner Funktionalität auf die Lehre in gestalterischen Studiengängen zugeschnitten... Schnittstelle für die moderne Lehre
Dokumentation des eigenen Spiels „Schneckegeddon“, welches die Semesterabgabe für TKCS ist
„Du bist eine Nacktschnecke, die mit vielen normalen Schnecken befreundet ist und ihr lebt ein glückliches, langsames Leben in Harmonie.
Doch dann kam da dieser Deal. Immer mehr Menschen wollten von Schnecken gejagt werden für Geld. Den Menschen war es jedoch egal, dass dadurch die Schnecken versklavt wurden und sie von ihren Familien und Freunden getrennt wurden. Von jetzt auf nachher, war nichts mehr wie es einmal war.
Da du eine Nacktschnecke bist, musstest du niemanden jagen, nur deine Schneckenfreunde waren gewollt. Du hast mit angesehen wie deine Freunde versklavt und gefoltert werden, bis du es einfach nicht mehr aushalten konntest. Die Menschen sollten bezahlen.
Du schnappst dir die nächstbeste Waffe und machst dich auf den Weg die Menschheit zu vernichten. Lange genug sind sie auf euch herumgetreten und nun war es an der Reihe ihnen das heimzuzahlen.
Befreie deine Schneckenfreunde, töte die Menschen, leite das Schneckageddon ein.“
Dies ist die Vorgeschichte unserer kleinen Schnecke die sich nach Blut sehnt. Sie startet ihre Reise in einem kleinen Irrgarten, in welchem 5 ihrer Freunde festgehalten und gefoltert werden, mit dem Ziel sie zu befreien und alles und jeden zu vernichten die in ihrem Weg steht.
UE 5 wird meist für 3D Spiele verwendet, jedoch habe ich mich für eine 2D Welt entschieden. Dies liegt daran, dass ich sehr gerne einfache 2D Games spiele, wie z.B. The Binding of Isaac und dies einfach gerne mal selbst ausprobieren wollte.
Da in meinem Spiel jede Textur verpixelt ist hat zwei Gründe. Der erste liegt auch mal wieder an The Binding of Isaac, welches auch mit Pixelart arbeitet. Dazu finde ich das Spiel „Voices of the Void“ mit den sehr simplen Grafiken sehr interessant.
Somit habe ich mir auch das Leben ein wenig einfacher gemacht, indem ich mir gratis Fotos aus dem Internet ziehen konnte, dessen Auflösungen reduziert habe und somit ganz leicht eine verpixelte Grafik bekommen habe.
In „Schneckageddon“ gibt es eigentlich nur zwei Mechaniken die, die Schnecke ausführen kann: Laufen und angreifen.
Laufen kann man ganz simpel mit WASD, während der Angriff mit der Leertaste ausgeführt wird.
Um das Spiel zu starten, zu wiederholen oder zu beenden, wird jedoch die Maus benötigt um die jeweiligen Widgets anzuklicken.
Die Schnecke namens „Schnegge“, hat wie man sieht eine ganz einfache Grafik, welche flach als Sprite im Viewport liegt. Die Hitbox ist nur etwa ein drittel der Schnecke groß, da man sonst viel zu oft Schaden nimmt.
Im Blueprint selbst wird vieles gemacht, wie z.B. schauen wie viele Freunde noch gerettet werden müssen, die Axt rotieren lassen, natürlich Schaden nehmen und sterben können, Schleim spawnen und vieles mehr.
Die Hauptelemente als Auflistung:
Die Act ist die einzige Waffe der Schnegge, mehr braucht sie aber auch nicht, wo sollte sie diese denn auch lagern?
Die Kollision habe ich hier nur an die Klinge gemacht, da dies realistisch am meisten Sinn macht.
Die Axt selbst verarbeitet nicht viel:
Die Gegner habe ich in drei verschiedenen Varianten, während sie jedoch alle von einem Abstammen.
Der Typische kann nur hoch und runter laufen, während der spaßige Gegner von Seite zu Seite läuft.
Die schlimmsten Gegner sind jedoch die gemeinen Omis, welche Salz auslegen um dir zu schaden. Diese können jeweils hoch und runter oder links und rechts laufen.
Der Code vom Hauptgegner enthält:
Der Code vom Spaßigen:
Hier wird nur die Achse auf welcher er sich bewegt im Setup geändert
Der Code von der Omi:
Der restliche Code ist für ihr Salz auslegen da. Der Timer wird verwendet, damit sie immer zufällig in einer Zeitspanne das Salz legt. Dazu hat sie eine Maximalanzahl an Salz das sie auslegen kann, welches hier auch abgefragt wird. Die Omi hat auch noch eine Vererbung an die Horizontale Omi, welch wie der Name sagt auch horizontal laufen kann.
Die Freunde sind einfache Schnecken die von den Menschen in Käfige weggesperrt wurden. Diese kann man nur mit den Schlüsseln der Freundschaft öffnen, welche auf der Map verteilt sind.
Der Code des Freundes:
Der Code des Schlüssels:
Der Code des Käfigs:
Die Items unterteilen sich in zwei Kategorien: Welche die die Schnecke heilen und welche ihr Schaden bereiten.
Für mich haben Items die Schaden machen nur Sinn gemacht, welcher einer Schnecke wirklich Schaden machen würden. Deshalb habe ich mich für Salz und Blaukorn entschieden.
Das Blaukorn erbt vom Salz ab, kann jedoch auch die Schnecke vergiften und macht ihr mehr Schaden.
Der Code vom Salz:
Hier passiert nicht viel, da es nur überprüft ob die Schnecke das Salz berührt, ihr dann Schaden macht und sich dann selbst löscht
Der Code vom Blaukorn:
An den heilenden Items habe ich mich daran orientiert was Schnecken gerne essen, weshalb ich mich für den typischen Salatkopf und einen Apfel entschieden habe. Sie tun eigentlich das gleiche, der einzige Unterschied liegt darin, dass der Apfel nicht so viel heilt wie der Salat.
Der Code vom Salat:
Was ist eine Schnecke ohne ihren typischen Schleim?
Als Schleim habe ich ganz einfache Kreise verwendet, welche nach gewisser Zeit verschwinden. Der Schleim macht die Gegner langsamer wenn diese in ihn treten.
Wenn die Schnegge jedoch vergiftet ist, sondert sie giftigen Schleim ab, welchem den Gegner Schadet. Die Schnegge hat diese Fähigkeit doch nur wenn die vom Blaukorn genascht hat und sich seitdem nicht mehr geheilt hat. Man muss sich also entscheiden, mehr Damage und dafür weniger Leben und eine höhere Chance zu sterben, oder weniger Damage und dafür auf der Sicheren Seite sein? Die Entscheidung liegt beim Player.
Der Code vom Schleim:
Hier wird nur alle paar Sekunden die Größe vom Schleim verringert, bis dieser verschwindet
Der Code vom giftigen Schleim:
Hier wird auch nur noch der Damage am Gegner verursacht, falls dieser reintreten sollte
In „Schneckageddon“ gibt es ein paar Widgets, wie z.B. die ganzen Screens, wie die Info am Anfang, wenn man Gewinnt und Verliert. Kleinere Widgets sind z.B. die Healthbars von der Schnecke und den Gegnern oder auch der Counter von den Freunden. Manche Widgets werden nur für ein paar Sekunden angezeigt, wenn man z.B. keinen Schlüssel hat oder keinen weiteren mehr tragen kann.
Viel Code ist in den eignen Widgets nicht, das meiste wird von außen angesteuert.
Kein Projekt kommt ohne Probleme, da ist „Schneckegeddon“ keine Ausnahme.
Da ich vorher noch nie mit Unreal gearbeitet habe, war dies das größte Hindernis für mich. Ich bin kein Fan von visueller Programmierung, konnte aber auch kein C++, weshalb ich leider mit den Nodes arbeiten musste.
Da ich das Spiel 2D gemacht hab und die Engine normalerweise für 3D Spiele verwendet wird, habe ich mir auch hier ein Bein gestellt, da man für 2D viel weniger Tutorials und Antworten auf Fragen bekommt als für 3D.
Die Freunde konnte ich auch nicht in die Welt spawnen ohne, dass sie nicht min. 2 Tiles von einer Wall entfernt waren. Dadurch musste ich meine Map nochmal umbauen, was mich echt genervt hat, da ich das Level nicht so verschlungen machen konnte wie ich es mir vorgestellt hatte.
Manchmal wenn man gegen eine Hitbox rennt, verschwinden andere Objekte. Ich weiß bis heute nicht warum und konnte dies leider auch nicht fixen.
Wenn man auch hinsieht, sieht man das der Schleim über der Schnegge spawned und manchmal die Axt durch die Schnecke clipped. Das liegt daran in welcher reinfolge die Sprites gemalt werden, jedoch kann ich bis heute nicht sagen wo man das einstellt, außerhalb von Widgets.
Auch das mit der Teleportation der Axt ist nicht schön gelöst. Ich hätte dies bestimmt auf eine bessere Weise machen können, ist mir nur leider nicht bis zu diesem Zeitpunkt eingefallen.
Dazu ist die Rotation der Axt nicht vom Delta abhängig, weshalb sie sich manchmal verscheiden schnell dreht. Leider konnte ich dies auch nicht mehr ändern.
Ich wollte auch vieles anders machen, wie z.B. dass die Gegner auf einen zu laufen. Hier hat dann leider nur die Flipbook Animation nicht funktioniert, weshalb es so aussah als würden die Gegner leblos auf einen zu schweben. Bei diesem Problem habe ich auch den Prof. Rist gefragt, welcher mir auch eine Antwort geben konnte, welche ich aber in der Zeit leider nicht mehr umsetzen konnte.
Ich wollte auch mehr Gegner, Items und Level hinzufügen, wofür nur leider keine Zeit mehr geblieben ist.
Auch die Tilemap hätte schöner aussehen können, mit Bäumen, Wasser, Zäunen uvm.. Aber auch hier ist keine Zeit mehr dafür geblieben.
Ein Gedanke war auch mehrere Enden zu haben, wie z.B. ein Pazifist Ende zu haben, welches auch noch im Code steht (die Pinken Boxen). Dies hat nur leider nicht direkt so geklappt wie ich wollte, weshalb ich mich dann auf andere Sachen konzentriert habe.
Je länger ich an diesem Spiel saß, desto mehr Ideen kamen mir, mehr als ich hier auflisten kann.
Trotz der ganzen Frustration hat es doch schon Spaß gemacht an einem Spiel zu arbeiten, auch wenn ich wahrscheinlich wieder zu Godot wechseln werde, statt Unreal zu verwenden.
Freundet euch mit Schnecken an, nicht mit Unreal