DevLog 02
Leveleditor und Hauptmenü.

Michael Schöffel
30. September 2024
5 Min. Lesezeit
Überarbeitung Roadmap
Letzte Woche, als ich das Hauptmenü implementiert habe, ist mir aufgefallen, dass meine bisherige Roadmap nicht so gut zu meinem Workflow passt. Bevor ich einen Spieler in deine Szene setzen kann, brauche ich erst ein Level. Also habe ich die Aufgaben, die mit Levels zu tun haben, weiter nach oben in der Roadmap verschoben und die Aufgaben, die mit Charakteren, Speichern oder Multiplayer zu tun haben, weiter nach hinten.
Hauptmenü
Ich habe mir die Zeit genommen, weiter am Hauptmenü zu arbeiten. Zuerst habe ich das gesamte Menü visuell überarbeitet und statt der Pixelgrafik habe ich mich für ein Hintergrundbild mit "glasähnlichen" Buttons entschieden. Außerdem habe ich das Einstellungsmenü erstellt. Aber hier fingen die Probleme an. Das UI habe ich in Unity mit dem neu integrierten UI Toolkit erstellt. Dies ist eigentlich für Entwickler und Entwicklerinnen gedacht, die einen Hintergrund in der Webentwicklung haben. XML-ähnliche Elemente werden platziert und mittels Eigenschaften angepasst. Die Eigenschaften der Elemente können dann über Stylesheets und Klassen angepasst werden. Ganz ähnlich wie bei HTML und CSS. Nur ist das ganze UI Toolkit sehr rudimentär. Eigentlich sollte das Toolkit für mich mit mehr als 8 Jahren Erfahrung in der Webentwicklung genau richtig sein, aber es ist im Vergleich zu HTML und CSS enorm abgespeckt und viele wichtige Funktionen fehlen oder sind nur mit Workarounds umsetzbar. Das einfachste Beispiel ist das Styling des Drop-Downs. Hier ist es nicht sinnvoll möglich, das Feld optisch an die anderen UI-Elemente anzupassen. Der Focus State funktioniert nicht richtig und wird von Unity selbst wieder überschrieben, beim Auswahlmenü kann der Hintergrund des Hover Elements nicht angepasst werden und die Dokumentation des ganzen ist nahezu nutzlos. Ähnlich sieht es bei einfachsten Eingabeelementen wie Checkboxen oder Slidern aus. Insgesamt ist das UI Toolkit eine deutliche Verschlechterung gegenüber HTML und CSS. Daher habe ich das Menü im Großen und Ganzen vorerst so belassen und werde den visuellen Feinschliff erst vornehmen, wenn das UI Toolkit weiter überarbeitet und ausgereifter ist. Für den jetzigen Stand ist es aber völlig ausreichend. Der Hauptpunkt mit der Sprachauswahl funktioniert auch. Die verfügbaren Sprachen werden im Drop-Down aufgelistet und können dann ausgewählt werden. Mit der Auswahl ändern sich auch alle Elemente und die Sprache des Spiels.

Leveleditor
Nach dem Menü habe ich angefangen, einen Leveleditor in Unity zu erstellen. Dieser soll es mir erleichtern, die einzelnen Level des Spiels zu gestalten. Später soll es neben den prozedural generierten Levels auch Level mit selbst erstellten Layouts geben. Dafür ist der Leveleditor eine große Hilfe. In Unity lässt sich so etwas sehr schön und einfach umsetzen. Zuerst wird eine Datenstruktur erstellt, die mir die Struktur im Leveleditor abbildet und persistiert. Aus dieser kann später der eigentliche Level generiert werden. Diese Struktur beinhaltet die typischen Elemente um die Datenstruktur eines Graphen abzubilden. Node Klassen für Räume, eine Klasse für die Raumtypen und Verbindungen und eine Editor Klasse für den Editor selbst. Im Editor ist es dann möglich Räume hinzuzufügen, deren Typ auszuwählen und diese zu verbinden. Zusätzlich wurden Nice-to-have Funktionen wie Validierungen, Drag & Drop und das Löschen von Räumen und Verbindungen eingebaut. Ich bin mit dem Editor sehr zufrieden. Sollten später noch komplexere Räume oder Strukturen möglich sein, kann ich diese einfach in den Editor einbauen. Zum Beispiel sind derzeit leider noch keine Schleifen möglich. Das soll sich aber in Zukunft noch ändern, ist aber für den aktuellen Stand nicht weiter wichtig. Hier sind zwei Bilder des Editors. Es ist gut zu erkennen, wie Räume erstellt und miteinander verbunden werden können und so ein Dungeon entsteht.


Die kommende Woche
Nächste Woche werde ich mich an die Hauptszene für das Spiel machen. Außerdem versuche ich, die ersten Räume zu generieren, so dass kleine, mittlere und große Räume aus Tilemaps erstellt werden können.
Weitere Beiträge
Kontaktiere mich
Kontaktiere mich
Haben Sie Fragen an mich oder möchten Sie mit mir in Kontakt treten?
- Name
- Michael Schöffel
- Telefonnummer
- Telefonnummer auf Anfrage
- Wohnort
- Deutschland, Wohnort auf Anfrage
- [email protected]
Senden Sie mir eine Nachricht
* Durch Betätigung der 'Senden' Schaltfläche stimmen Sie einer notwendigen Roboteranalyse mittels Google reCAPTCHA zu. Hierbei werden Cookies gesetzt und das Nutzungsverhalten ausgewertet. Andernfalls senden Sie mir bitte direkt eine E-Mail. Folgende Richtlinien von Google gelten: Datenschutz & Nutzungsbedingungen.