Diese Woche konnten wir endlich Gameplay und Leveldesign verbinden. Diese beiden Disziplinen haben wir bisher erst separat ausgearbeitet aber noch nicht wirklich kombiniert.
Leveldesign
(von Marcel)
Leveldesign stellte sich diese Woche als ein sehr iterativer Prozess heraus. Zusammen mit Nadja erstellte ich nämlich diese Woche zwei Versionen des Levels in Unity. Dabei zeigten beide Versionen Probleme auf, welche in einer späteren Iteration angegangen werden müssen. Doch dazu später mehr. Im Folgenden ist eine Übersicht der zweiten Version des Levels aufzufinden.
Die Spieler*in beginnt im Start Room und wird dort mit der Kampfmechanik vertraut gemacht, denn dort befindet sich bereits ein erster Gegner. Im weiteren befindet sich nach dem Startraum einen Abzweiger in die «Dark Zone» welche die Spieler*in erst später betreten werden kann. Mit dieser Abzweigung wollen wir der Spieler*in diese Mechanik des Levels bereits zeigen, auch wenn sie noch nicht wirklich damit Interagieren kann.
Der einzige andere Weg aus dem Start Room führt über einen kleinen Vorsprung tiefer in die Höhle. Ist die Spieler*in einmal über diesen Vorsprung gehüpft, gibt es keinen Weg zurück, sie muss das Level bestreiten um die Höhle wieder verlassen zu können.
Unmittelbar nach dem Vorsprung befindet sich ein Speicherpunkt, der den Charakter heilt und alle Gegner neu spawnt. Zudem startet die Spieler*in an dieser Stelle, falls sie während dem Level sterben würde.
Es folgt der Split Room aus welchem ein Weg in den Puzzle Room führt sowie ein Weg in den End Room. Der Weg zum den End Room ist zu dieser Zeit jedoch noch nicht sonderlich hilfreich, da die Spieler*in zuerst zum Buddy Room muss, um sich durch die Dark Zones bewegen zu können.
Auf dem Weg zum Puzzle Room muss sich die Spieler*in gegen immer grössere Gruppen von Gegnern behaupten. Das Puzzle ist direkt lösbar und ermöglicht das Vordringen in die hinteren Teile der Höhle. Es folgen danach einige weitere Gegner sowie ein Speicherpunkt.
Nach diesem findet die Spieler*in ein Monster Gefährte, den sie auflesen kann und somit eine neue Fähigkeit freischaltet. Diese Fähigkeit kann verwendet werden, um Gegner auf Distanz zu bekämpfen und ermöglicht das Durchqueren der Dark Zones.
Vom Buddy Room fühlt ein Weg zurück zum Eingang, von wo die Höhle wieder verlassen werden kann. Natürlich befinden sich auf diesem Weg noch mehrere Gruppen von Gegnern, um die Durchquerung zu erschweren.
Puzzle Implementation
(von Jonas)
Aus dem Prototyp fehlt noch das Puzzle, also wird das auch in die neue Version rübergeportet. Das NavMesh-Problem, dass die Begleiter nicht über die bewegenden Plattformen folgen (Siehe Woche 4) konnte durch einen etwas umständlichen, aber nützlichen Fix behoben werden: Über ein Editor-Skript werden nun auf jeder möglichen Kristall-Position im Rätsel zwei Elemente generiert: Eins, was im NavMesh beim Baken einen begehbaren Boden erstellt, und ein weiteres, welches diesen Boden blockiert. Sobald ein Kristall und (somit der Boden) verschoben wird, wird der Blocker an dieser Stelle einfach abgestellt. So kann man das NavMesh immer im Editor neu baken und muss sich keine Sorgen machen, dass es falsch generiert wird.
Zusätzlich gab es noch einige kleinere Änderungen wie unsichtbare Plattformen, welche dem Spieler helfen, sich nach dem gelösten Rätsel tatsächlich auf die andere Seite zu begeben, und eine smoothere Animation beim Verschieben der Kristalle. Das ganze Konstrukt kann nun auch als Prefab in eine Szene geladen werden, womit es schon problemlos in das Level fürs Playtesting eingefügt werden konnte.
Funktionalität
Nach dem Einbauen des Leveldesigns, sowie dem Implementieren des Puzzles mussten verschiedene kleinere Programmieraufgaben erledigt werden, um das Level komplett spielbar zu machen. Beispielsweise mussten wir die Navigation so anpassen, dass die Begleiter der Spieler*in auch über Abgründe folgen können. Es mussten Respawn Zonen für das Fallen von Klippen definiert werden, sowie der Code für den Respawn der Spieler*in nach dem Tod entwickelt werden.
Playtesting
Auch diese Woche gab es wieder einige Playtesting Sessions, die uns dabei helfen konnten, den aktuellen Stand des Projektes besser zu verstehen und weitere Schritte planen zu können.
Wir konnten damit vor allem viele Mängel im Leveldesign ausfindig machen. Einige dieser Mängel werden wir hier aufzeigen. Hierbei handelt es sich um den aktuellen Stand, diese Probleme gilt es also in den kommenden Wochen anzugehen.
- Die Speicherpunkte sind noch nicht optimal verteilt, es muss entweder einen Speicherpunkt vor dem Puzzle oder einen unmittelbar danach geben.
- Viele Spieler*innen waren über den Zugang in die Dark Zone direkt am Anfang verwirrt. Wir möchten den Weg zwar zeigen, müssen ihn anfangs aber vermutlich unzugänglich machen.
- Die Darstellung des Buddy Rooms erinnert stark an einen Boss Room, alle Playtester*innen haben den Kommentar «Oh, jetzt kommt ein Boss» gemacht.
- Das Puzzle hat aktuell noch nicht in einem Screen Platz und ist somit noch optimal lösbar.
Natürlich konnten wir noch weiteres Feedback sammeln, die oben beschriebenen sind jedoch relevant fürs Leveldesign.
Environment
(von Nadja)
Ich wechselte von Substance Painter zu Substance Designer, um mich mit Materialien vertraut zu machen und um ein Material für das Terrain zu erstellen. Dafür installierte ich in Unity ein Plugin, dass mir das Importieren der Materialien vereinfacht. Im Substance Designer kann ich zusätzlich noch Variablen definieren und „veröffentlichen“, das heisst, dass ich diese Parameter dann auch in Unity noch verändern kann. Schwierigkeiten gibt es trotzdem, da das Material im Substance Designer immer etwas anders aussieht wie in Unity. Das scheint vor allem die Oberflächenspieglung zu betreffen. Für den Höhlenboden habe ich ein schwarz-weiss Steinpattern in Photoshop mit AI generieren lassen. Dieses habe ich dann in den Substance Designer geladen und mit vielen Nodes bearbeitet. Mit „random“ Funktionen, die mir die einzelnen weissen Steine in unterschiedliche Grautöne einfärben, habe ich versucht ein endless-material zu schaffen, bei dem die Wiederholungen nicht auffallen da je nach dem was für ein Grauton der Stein hat, höher oder tiefer liegt und eine andere Farbe hat. Leider funktioniert das aber noch nicht. Das ist ein Problem, um das ich mich in der Polishingphase kümmern werde.
Wichtiger ist es, alle Assets fertig aufgeräumt in Unity zu haben, damit wir nächste Woche unsere Szene befüllen können. Dem habe ich diese Woche etwas zu wenig Zeit gewidmet. Marcel und mir ist aufgefallen, dass Unity eckige Assets automatisch etwas abrundet, was die High-Poly-Objekte überfällig macht. So fing ich an alle Assets nochmals als Low-Poly zu produzieren, um Ressourcen zu sparen. Einzig bei den Steinen funktioniert das nicht, weil Unity die Steine so abrundet, dass sie keine markanten Kanten mehr haben und somit mehr wie unförmige Kugeln aussehen.
Weiteres Vorgehen
Während Leveldesign und Code langsam zusammenkommen, müssen wir uns in den nächsten Wochen stark auf die visuelle Seite des Spiels fokussieren. Zum einen müssen Geschehnisse besser kommuniziert werden. Dafür werden wir Partikel-Effekte einsetzen. Zum anderen müssen schlicht Models und Assets noch eingebaut werden.
Zusätzlich gibt es diverse Stellschrauben zu justieren, um das Gamefeel auf den bestmöglichen Stand zu bringen.