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
Museum of Human Art ist ein Rätselspiel, bei dem man durch das Lösen neue Räume, weitere Rätsel und Vor allem die Kunst von IA-Studenten freischaltet!
Man spielt einen Hausmeister eines Museums. Dieser stellt fest, dass die Hauptattraktion des Museums, ein riesiger Ausgestopfter Vogel nicht beleuchtet wird. Da dies eigentlich nicht so sein sollte begibt man sich auf den Weg zum Generatorraum. Um überhaupt dort hin zu gelangen, löst man verschiedenste Rätsel und gelangt so die Räume weiter.
Mein erstes Rätsel ist ein Pipe Puzzle. 20 Pipes werden am Anfang des Spiels random um sich selbst rotiert. Mit einem Klick auf eine Pipe dreht sich diese um 90 Grad. Man versucht also einen Weg von der Pipe links oben zu der Pipe rechts unten durch das Verbinden der Pipes zu finden.
Dieses Rätsel war das komplexeste und auch frustrierenste Rätsel in meinem Spiel. Die Pipes werden random Rotiert. Danach wird ein 4x5 grid aus diesen 20 Pipes erstellt, und jede Pipe bekommt eine IntPoint Variable mit (x, y) zugewiesen. Dafür gibt es eine Funktion Register Pipe. In dieser wird in ein Int Point Array die aktuelle Pipe mit allen Daten aus einem Struct „SPipe Data“ gespeichert. Das Struct hat folgende Parameter: (Pipe Mesh, Position X, Position Y, Pipe Type und Rotation Index).
Danach wird gecheckt, zu welchem PipeType die aktuelle Pipe gehört. Zur Auswahl gibt es TPipe, Curved Pipe und Straight Pipe. Dann wird festgelegt in welche Richtungen die Pipe überall Öffnungen hat, wenn die Pipe keine Rotation besitzt. Mit einer weiteren Funktion GetNeighborPipe und GetOppositeDirection wird gecheckt ob die NachbarPipe zur jetzigen Pipe hin geöffnet ist. Wenn das für alle Pipes vom Start bin zum Ende der Fall ist, hat das Rätsel logischerweise einen fertigen Weg bekommen und öffnet somit die Tür.
Leider ist die Rotationsfunktion von Unreal etwas komisch, wodurch manchmal das Mesh etwas komisch oder erst nach einem 2. Klick Rotiert. Jedoch rotieren sie danach immer zum nächsten 90 Grad Ziel, sodass das Rätsel zu jederzeit Lösbar bleibt
Anbei sind Bilder der Funktionen. Als Letztes ist das gelöste Rätsel, falls man es nicht selbst schaffen sollte.
Das Simon Says Rätsel ist ebenfalls etwas komplexer, jedoch wesentlich einfacher gewesen zu Implementieren. Das ganze System habe ich so gebaut, dass es Modular jederzeit erweiterbar ist. Man kann unendlich viele Farben und unendlich viele Level hinzufügen, bis das Rätsel wirklich gelöst ist und kann die einzelnen Level ebenfalls nach belieben anpassen.^
Ich habe mich in meinem Fall für 3 Level mit 4 Farben entschieden. Erst muss man sich 3, dann 4 und dann 6 Farben merken. Ich habe hinzugefügt, dass es möglich ist, einzustellen ob sich Farben wiederholen können. Wenn dies Ausgestellt ist, kann man maximal n zu merkende Farben bei n Farben angeben bzw. wird dies auf n zu merkende Farben umgestellt, sollte man eine Zahl größer gleich n+1 angeben. Das ganze habe ich ebenfalls mithilfe eines Structs umgesetzt. Ich kann leider keine Ultimative Lösung angeben, da die zu merkenden Farben immer unterschiedlich sind, aber ich habe ein Bild von Details Panel der Klasse BP_Simon angefügt, in dem man sich die Level selbst einstellen kann sollte es zu schwer sein.
Anbei wieder Bilder meines Codes.
Das Druckplatten Rätsel war sehr simpel. Sobald irgendwas Die Druckplatte berührt, öffnet sich mit einer Timeline die Tür. Sobald sie nichts mehr berührt schließt sie sich. Es ist nicht möglich schnell genug zur Tür zu gelangen wenn man selber auf der Druckplatte stand. Deshalb holt man sich aus dem Generator den Blumentopf und schiebt ihn auf die Druckplatte.
Für dieses Rätsel habe ich nichts aufwendiges Programmiert. Der Blumentopf simuliert Physics und ich habe die Masse so lange angepasst bis es sich richtig angefühlt hat.
Ich habe ein Speichermenü eingestellt, bei dem man seine Position speichern und wieder laden kann. Außerdem habe ich ein komplettes Settings Menü erstellt. Bei diesem kann man Schatten, Texturen und die Resolution einstellen.
Sollte es einem zu dunkel sein, kann man die Schatten ausmachen, damit wird das Spiel hell. (Das habe ich ebenfalls für alle meine Screenshots benutzt)
W - Oben
A - Links
S - Unten
D - Rechts
E - Interagieren, Kunst ansehen, Dialoge schließen
Q - Dance
Esc / P Pause
Die Kunst besteht aus Werken von IA Studenten. Der Hauptgrund, wieso dieses Spiel existiert ist, damit man sich erstellte Dinge welche über den Verlauf des bisherigen Studiums entstanden sind ansehen und würdigen kann. Hauptsächlich besteht sie aus Kunst des aktuellen IA - 3 Jahrgangs. Allerding geht ein Besonderer Dank an Melanie Springer, welche mir ihre Bachelorarbeit zur Verfügung gestellt hat. Diese dient in meinem Spiel als Hauptattraktion und Story Grundpfeiler.
Mit E kann man sich die Kunst genauer ansehen und sieht auch von wem sie gemacht wurde.
Obwohl ich bereits etwas wenig Unreal Erfahrung hatte, habe ich in diesem Projekt einiges gelernt. Das richtige Anwenden von Structs und Enums sowie die Erstellung eines Menüs, Einstellungen und eines Speichersystems. Auch die Verwendung von Instance Editable Variablen habe ich sehr zu schätzen gelernt. Vieles habe ich bereits ein oder zweimal verwendet aber dadurch konnte ich das ganze noch einmal festigen. Ich fühle mich auf jeden Fall confident zukünftige Projekte ebenfalls in der Unreal Engine anzugehen.