Wir entwickeln ja viel in 3D und haben unsere Pipeline im Griff. Das heisst aber nicht, dass wir immer wieder rechts und links schauen und uns überlegen, was wir besser machen können. Diemal haben wir uns Unity 3D angesehen.
Unity 3D ist eine integrierte Entwicklungsumgebung, in erster Linie für Spiele gedacht, durchaus auch für 2D, aber hauptsächlich für 3D.
Natürlich haben wir uns hauptsächlich für die 3D-Pipeline interessiert. Wie wird modelliert? Wie kann man Materialien bearbeiten? Wie beschreibt man Verhalten?
Und so viel vorweg: In so einer Entwicklungsumgebung geht vieles deutlich einfacher als zu Fuß.
(Der Panzer musste sein - nur dann ists ein richtiges Spiel ;-)
Man startet mit einer Lichtquelle und einer Kamera, die man direkt in einem gut zu bedienenden 3D Editor sieht. Aus einem Asset Store kann man dann beliebig Assets in die Szene ziehen und dort manipulieren, also verschieben, drehen, skalieren, usw.
Auch Materialien werden einfach aus einer Bibliothek auf ein Objekt gezogen. Die komplizierteren PBR Parameter kann man dann in einem Inspektor noch verändern.
Und weil wir von Spielen reden, ist es natürlich auch einfach, den Objekten eine Physik zu geben. Also Kollisionserkennung, Masse usw.
Es ist bei all dem sehr hilfreich, immer sofort zu sehen, was sich verändert.
Verhalten bringt man den Objekten in C#-Scripten bei. Ob man ein Objekt programmatisch duplizieren möchte oder bewegen, man schreibt einfach ein Script, dass die mächtige API von Unity nutzt. Besonders angenehm: public-Variablen des Scripts lassen sich direkt im Editor anpassen.
Ist die 3D-Anwendung fertig, kann man sie für eigentlich jede denkbare Plattform kompilieren: Windows, IOS, Android, Spielekonsolen und eben auch fürs Web. Unity macht das mittels emscrypten, und zwar sehr gut. Unsere Testanwendungen liefen - bis auf einige Kleinigkeiten bei Eingabefeldern auf mobilen Plattformen - problemlos. Kleine Anwendungen wiegen dabei inkl. Assets rund 7 MB, 4 dafür entfallen aufs Framework.
Der Test war zu kurz, um die Plattform als Ganzes zu beurteilen. Natürlich eignet sich Unity hervorragend für die Spieleentwicklung. Bei der Entwicklung von 3D-Anwendungen fürs Web haben wir allerdings gern ein wenig mehr Freiraum und man muss sich auch die Lizenzbedingungen der ausgelieferten Anwendungen genau ansehen.