Wegfindungs-Projekt
Überblick
Hier präsentiere ich ein privates Projekt, welches ich in Einzelarbeit innerhalb der Semesterferien zwischem dem vierten und dem fünften Semester in Angriff genommen habe. Die Motivation, ein grid-basiertes Wegfindungs-Werkzeug für die Unity-Engine zu schreiben, war zum einen sicherlich darin begründet, dieses auch für tatsächliche Spiel-Projekte zu benutzten, zum anderen ist es jedoch auch von vorne herein als freiwillige Programmier-Übung angedacht gewesen. Und nicht zuletzt Stand auch der Hintergedanke, das eigene Portfolio weiter aufzubauen, im Raum.
Man sieht einen Beispiel-Level, in welches mit dem Werkzeug ein Grid "gebaked" wurde. Hierbei wird der Level quasi über Raycasts und Kollisions-Checks abgetastet und so wird ermittelt, welche Bereiche begehbar sind und welche geblockt sind. Diese Information wird gespeichert und in dem Controller-Skript referenziert, welches letztlich während dem Spiel die Informationen verarbeiten kann und so für verschiedene Objekte mit verschiedenen Bedingungen Pfarde in dem Level berechnen kann. Der Algorithmus wurde soweit optimiert, dass er die Pfarde in einem für die meisten Anwändungsfälle annehmbaren Umkreis in Echtzeit errechnen kann.
Zusätzlich wurde über Hilfs-Skripte die Darstellung des Grids innerhalb des Levels realisiert. Auch einfache Skripte zum Kontrollieren der Kammera, sowie den Spieler-Einstellungen wurden angelegt und mit einem schmucklosen Benutzer-Inferface verbunden, sodass eine fertige Demo-Version erstellt werden konnte.
Persönliches Fazit
Zweifellos ist das Wegfindungs-Projekt das komplexeste Programmier-Projekt, das ich bis jetzt (Mai 2016) in Angriff genommen habe. Dies bedingte, dass ich an vielen Stellen für lange Zeit nicht weiter kam und mir immer wieder Hilfe von Kommilitonen und Dozenten holen musste. Letztlich habe ich aber eine Menge lernen können und auch wenn der Code noch lange nicht bereit ist, tatsächlich in einem Spiel angewandt zu werden, ist es dennoch sicherlich eine solide Basis, die ich benutzten kann, wenn ich ein System wie dieses Mal verwenden wollen sollte. Vor allem in den Bereichen der Serializierung, der Engine-Physik und natürlich der Wegfindung waren meine Lernfortschritte in diesem Projekt enorm und haben mir bei folgenden Projekten schon mehrfach sehr geholfen. Und wer weiß - vielleicht werde ich den Code ja irgendwann doch noch ausgraben und für ein tatsächliches Spiel verwenden.
Weitere Quellen
Tutorial-Reihe zum A*-Algorithmus: https://www.youtube.com/watch?v=-L-WgKMFuhE&list=PLFt_AvWsXl0cq5Umv3pMC9SPnKjfp9eGW
Technische Daten
Game-Engine: Unity 5
Entwicklungs-Jahr: 2015 (Sem.-Ferien: 4.-5. Semester)
Platform: PC