Vom Games- zum 3D-App-Development

Vom Games- zum 3D-App-Development

Warum hat ein Programmierer irgendwann mal die Nase voll, Spiele zu entwickeln und warum findet man dann Freude an 3D-Apps?

Der Übergang vom Games- zum Application-Development mag wie ein langer Sprung erscheinen, aber kann in der Tat recht schnell gehen. Ein Grund zu wechseln kann sein, dass die Spieleindustrie ein recht umkämpfter Markt ist. Das Umfeld ist nie richtig konsistent genug und es gibt kein festes Endziel.

Beispielsweise gibt es oft haufenweise Ideen die sich grandios in der Theorie anhören - aber nach der Implementierung dann ziemlich lustlos rüberkommen. Andere Projekte hingegen drehen sich um 180 Grad und die Absicht, ein Mobile 2D Game für Android zu entwickeln, führte zu einem 3D Computerspiel.

Nach einer Zeit hat man dann einfach genug. Nicht, weil Spiele zu entwickeln nicht aufregend ist, meist will man einfach etwas Herausfordenderes und frischen Wind. Dieser Artikel soll hier ein paar Einblicke geben.

Die undankbare Arbeit eines Game Devs

Einer der irritierendsten Aspekte bei der Arbeit im Game Development war die ungeordnete Entwicklungsumgebung. Manchmal gibt es das Gefühl, dass unsere Zeit und Anstrengungen verschwendet wurden. Man schreibt oft viele Zeilen Code, die später gar nicht verwendet werden. Es gibt ja eine breite Palette an kreativen Ideen, welche umzusetzen sind: Fliegende Monster, schwimmende Monster, vierbeinige Monster, große Monster, kleine Monster. Man arbeitet ein paar Wochen wie wild an diesen Dingen, wird fertig dann sagt ein Product Owner: „Weißt du was... diese ganzen Monster sind doch irgendwie dumm. Die nehmen wir doch nicht mehr.“

Qualität über Quantität

Vielleicht kennen es ander Game Developer auch, der Ansatz Quantität über Qualität führt recht schnell zu sehr unordentlichen Code. Manchmal so verdreht und unübersichtlich, dass andere Entwickler im Team es oft kaum einen Durchblick haben (können). Es müssen dann auf diesen undurchsichtigen Haufen Code noch viele neue Features und Spielemechaniken – wahrscheinlich in auch noch möglichst kurzer Zeit – draufgebastelt werden. Da bleibt kaum Zeit für das Refactoring.

Bei der App-Entwicklung sieht das aber meist ganz anders aus. Sauberer, lesbarer und übersichtlicher Code ist hier oft ganz weit oben bei den Prioritäten. Das macht das Leben eines Developers auch viel einfacher.

Weiterbildung

App-Development ist ein ständiges Lernen. Es ist ein sehr wertvolles Privileg, großartige Mentoren und Führungskräfte zu haben, welche die persönliche Entwicklung schätzen. Wenn es die Zeit erlaubt – und das ist öfters der Fall – kann man sich mit Themen beschäftigen, welche sowohl für die neuesten Tech-Trends, als auch für die persönliche Weiterbildung relevant sind.

Bei der Entwicklung von irgendwelchen Handyspielen ist es meistens der Fall so schnell wie möglich nacheinander an vielen Projekten zu arbeiten. Wenn die User ein Projekt als ansprechend empfinden, bleibt man als Developer vielleicht mal etwas länger dabei – aber von irgendwelcher Weiterbildung oder Vertiefung ist sehr selten die Rede. Der Ablauf ist fast immer so: der Game Designer hat eine Idee, das Team diskutiert ein paar Tage darüber, dann versuchen die Developer das Projekt so schnell wie möglich umzusetzen. Rinse and Repeat.

Unity im „Non-Game-Development“

Unity ist eine Spiele-Engine welche gerne zum Erstellen von Mobile Games verwendet wird, aber für jegliche Art von 3D Anwendung funktioniert. Die Engine unterstützt mehrere Plattformen und ist nicht auffallend schwer zu erlernen. Um einige grundlegende Dinge zu tun, benötigt man nicht einmal Programmierkenntnisse. Es ist zwar leicht anzufangen, aber schwer es zu meistern – es gibt viel zu lernen. Mit einigen anderen Engines steht man relativ schnell an und kommt nicht mehr weiter. Mit Unity geht es nach zwei Wochen erst so richtig los.

Ein User Interface zu gestalten kann recht einfach sein, wenn man keine besonderen Ansprüche hat. Aber ein komplett individuelles User Interface benötigt schon etwas mehr Arbeit. Die hauptsächlich verwendete Programmiersprache ist C#, aber der Umstieg kann relativ leicht sein, wenn man bereits andere Skills mit Java oder C++ hat.

Spannende und sinnvolle Projekte

Die Arbeit im App-Development ist meist viel interessanter und anspruchsvoller als in der Spieleentwicklung. Beispielsweise eine Applikation, welche dabei helfen soll sich in großen Gebäuden wie Einkaufszentren, Flughäfen oder Krankenhäusern zurechtzufinden: das gesamte Kartenmaterial sollte dem Benutzer möglichst unkompliziert und schnell beim Betreten des Gebäudes zur verfügung stehen. Es müssen räumliche Koordinaten festgelegt werden, Points of Interest sind auf der Karte zu platzieren und der Standort des Benutzers muss stets korrekt berechnet werden. Eines der Hauptanliegen - und gleichzeitig einer der größten Punkte des Projekts - ist eine stabile Softwarearchitektur für das gesamte Projekt, welches auch über Jahre hinweg gewartet werden kann.

Zusammenfassend

Die oben beschriebenen Punkte sind keinesfalls eine vollständige Abhandlung zu dem Thema sein, vielmehr wollten wir mit diesem Artikel ein paar interessante Eckpunkte etwas illustrieren.

Natürlich ist der gesamte Umstieg vom Game- zum App-Development ein längerer Weg und man lernt ständig neue Dinge. Die Arbeit in der 3D-App-Entwicklung kann einem Team viele Möglichkeiten eröffnen. Ja, es gibt Herausforderungen auf dem Weg. Aber hey! Wer mag keine Herausforderungen?

Technologien in diesem Artikel