Das Erstellen eines 2D Character Controllers für einen Plattformer ist unter Unity denkbar einfach. Ein paar Klicks und wenige Zeilen Code reichen um eine Spielfigur zum Leben zu erwecken. Aber ganz so einfach ist es dann leider doch nicht.
Rigide Body
Sucht man im Netz nach Tutorials für einen 2D Character Controller stößt man fast ausschließlich auf Varianten, welche auf den Einsatz eines Rigide Bodies setzen. Eigentlich nicht verwunderlich, da diese Technik den geringsten Programmieraufwand erfordert. Das Einwirken der Physik auf den Charakter hat viele Vorteile, der Preis dafür ist aber leider hoch. Eine sich direkt anfühlende Steuerung, wie man sie von Klassikern wie Super Mario, Sonic oder Meat Boy kennt, ist so nicht möglich.
Character Controller
Wem das Verhalten von Rigide Bodies trotz zahlreicher Konfigurationsmöglichkeiten nicht zusagt und wer nach Alternativen sucht stößt schnell auf eine weitere Steuerungsvariante. Der unityeigene Character Controller, welcher eigentlich für 3D Spiele gedacht ist, lässt sich auch wunderbar für 2D Plattformer einsetzen. Der Programmieraufwand für diese Variante ist schon etwas höher. Dafür wird man aber mit einer wesentlich präziseren Steuerung belohnt. Leider hat das Ganze dann aber doch wieder einen Haken: Ein Character Controller verwendet unter Unity immer einen Capsule Colider.
Für manche Spiele mag das kein Problem darstellen. Wer seine Spielfigur auf der Kante tanzen lassen möchte wird glücklich werden. Präzise Sprünge von Kante zu Kante sind so leider trotz Feintuning nicht möglich. Was muss man also tun um eine richtig präzise Old School Steuerung zu erhalten?
Lösung 1: Asset Store
Eine Möglichkeit wäre es einen fertigen Character Controller aus dem Unity Asset Store zu kaufen. Für Entwickler, welche unter Zeitdruck stehen ist das bestimmt eine Option. Für 40€ bekommt man hier tolle Controller, die sich mit nur wenigen Klicks anpassen lassen. Reichen die vorgegebenen Parameter nicht, muss man aber erst wieder selbst Hand anlegen. Warum also nicht gleich einen Open Source 2D Character Controller verwenden und diesen an seine Wünsche anpassen?
Lösung 2: Open Source Controller
Begibt man sich auf die Suche nach einem Open Source 2D Character Controller für Unity stößt man schnell auf den “Character Controller 2D” welcher auf GitHub frei verfügbar ist. Wer keine ausgefallenen Wünsche hat wird hier bestens bedient. Alle anderen können den vorbildlich gut dokumentierten Code erweitern.
Lösung 3: Handarbeit
Nachdem ich mich intensiv mit dem Thema beschäftigt habe bin ich zu folgendem Entschluss gekommen: Wer seinen Spielern ein einzigartiges Spielerlebnis bieten will, der braucht auch eine einzigartige Steuerung. Vorgefertigte Scripts sind immer nur ein Kompromiss. Wer die Zeit und die Programmierkenntnisse hat, sollte seinen Character Controller selbst schreiben.
Lesson learned
Nachdem ich all die oben beschriebenen Wege beschritten habe (Ausgenommen Lösung 1) kommt für mich nur eine Lösung in Frage: In den sauren Apfel beißen und alles selber von Hand programmieren. Dabei lernt man nicht nur viel, sondern erhält auch genau die individuelle Steuerung die man für seinen Character haben möchte und das ganz ohne Abstriche machen zu müssen.
Wie die Umsetzung meines individuellen Character Controllers aussieht, auf welche Probleme ich dabei gestoßen bin und wie ich diese gelöst habe verrate ich euch sobald mein Controller fertig ist.
2 Gedanken zu „2D Character Controller mit Unity“