Unity 3.5 ist draußen – zumindest als Beta. Das muss ich natürlich genau unter die Lupe nehmen. Weniger, weil ich so unbeschreiblich heiß auf die neuen Features bin, sondern mehr, weil ich einigen davon eher mit Skepsis gegenüber stehe.Allem voran diese fest integrierte Pathfinding-Geschichte. Was, wenn der neue Content merkwürdig umgesetzt ist, nicht alle speziellen Bedürfnisse erfüllen kann und dann vielleicht auch so fest in der Engine verankert ist, dass er als unnötiger Ballast jedes Projekt ein Stück nach unten zieht, während es redundant zum mühevoll selbst erstellten System ist? Also gleich mal ausprobiert. Gehen tut das nur mit der Pro-Version, was Unitys Lizenzkonzept ein bisschen ins Wackeln bringt. Bisher waren alle Pro-only-Features nämlich Sahnehäubchen in Sachen Grafik oder Bonusmöglichkeiten für Spielkonzepte. In den meisten Fällen konnte man aber sagen: Bau dein Spiel schon einmal mit der Unity Basic Version, dann kannst du immer noch die Professional Version kaufen und alles auf Hochglanz polieren. Hat man allerdings die Indie und will sich ein Spiel mit Pathfinding bauen, so muss man sich auch für den Prototypen schon ein Ersatz-Pathfinding-System programmieren, das man dann ggf. ersetzen müsste, wenn man auf Pro umsteigen will.
Gehen wir also in Sachen Pathfinding erst einmal von einer bereits vorhandenen Pro-Version aus.Die Dokumentation ist noch etwas dünn und so muss ich mir von MonoDevelop sagen lassen,
was die Schnittstelle des NavMeshAgents alles anbietet. NavMeshAgents ist die Komponente, welche einer Figur gehören muss, damit sie sich selbst einen Weg suchen kann.
Aber halt, stopp - MonoDevelop?Bisher habe ich immer UniScite benutzt, und das wollte ich auch weiterhin. Leider überschreibt die Neuinstallation von Unity den Data/Tools/-Ordner und weg ist die UniScite.exe. Von daher gebe ich MonoDevelop jetzt doch gezwungenermaßen eine Chance. Der kennt die Schnittstellen zumindest besser als die Scripting Reference, die zwar teilweise schon 3.5-Features kennt, aber die wirklich wichtigen Dinge erst einmal auslässt.
Nach etwas rumsuchen finde ich dann heraus: Mit GetComponent(NavMeshAgents).destination kann man einen Vector3 übergeben und diesem versucht sich der Agent so gut wie möglich auf einem NavMesh zu nähern. Schicke Sache, und nach dem Generieren des NavMeshes (was soweit erstmal sehr schnell geht) funktioniert das auch recht gut. Ein Test mit mehreren dutzend Agenten und einem sich bewegenden Ziel zeigt: Der Algorithmus funktioniert gar nicht so schlecht. Man sollte die Performance auf jeden Fall bei Zeiten mal auf einem schwachen Rechner testen.
Aber weiter geschaut, was gibt es denn noch alles Neues? Wie sieht es denn mit HDR-Rendering aus? Ich schnappe mir eine Kamera und setze ein Häckchen bei der neuen HDR-Eigenschaft. Nichts passiert. Ich regle am Licht, an den Image Effects und an den Positionen. Noch immer nichts.
Dann fällt mir ein, dass ich vielleicht ein neues Projekt erstellen sollte – Unity 3.5 macht zwar das berühmt-berüchtigte Projekt-Upgrade, aber die Shader und Scripts sind wohl noch die von 3.4. Und tatsächlich, so ist es. Die neuen Image Effect Scripts sind tatsächlich auf die Nutzung der HDR-Möglichkeiten ausgelegt, und die alten sind damit etwas obsolet. Wie viel sich mit HDR und Tone Mapping tatsächlich erreichen lässt, bleibt abzuwarten. Funktionieren tut das System aber offenbar schon.
Was ist also mit dem neuen Partikelsystem "Shuriken"? Es ist ganz interessant, scheint aber noch Verbesserungsbedarf zu haben. Das ganze System ist sehr viel variabler als vorher. Der 3.4-ParticleAnimator konnte "Farben animieren". Da kann man dann 5 Farben einstellen, die der Reihe nach gleich lang durchgeschaltet werden. Sechs oder vier Farben funktionieren dabei nicht. Das ist nicht so schön.
Mit Shuriken bekommt man dafür einen Gradiant-Editor, kann also belieblig viele Farben zu bestimmten Zeitpunkten setzen. Oder man lässt es sein und bedient sich der vielen neuen Möglichkeiten, seine Partikel zu manipulieren. Damit bei diesem Ansatz der Überblick nicht verloren geht, besteht ein Partikelsystem aus mehreren Modulen, also keinen Komponenten im klassischen Unity-Sinne. Es gibt nur noch eine Komponente im Inspektor zu sehen, diese hat allerdings eine aufwändige Editor-GUI spendiert bekommen, in der man dann Partikelsystem-Komponenten hinzufügen, bearbeiten und wieder löschen kann. So kann man jede Menge verschiedene Sachen mit Partikeln anstellen.
Animationskurven für die Richtung bzw. Geschwindigkeit der Partikel während der Lebenszeit? Kein Problem.
Rotation in Abhängigkeit der Geschwindigkeit? Nichts einfacher als das.
Eigene Module scripten? Scheint nicht zu gehen.
Aber die Möglichkeiten sind auf den ersten Blick sowieso schon einmal groß genug, sodass man sich darüber erst einmal nicht beschweren kann.Welche weiteren neuen Features gibt es?Flash Export - könnte nett sein, aber das interessiert ja erst, wenn das Spiel schon etwas weiter ist. Webcam- und Mikrofon-Support könnte auch lustig sein, vielleicht mal einen Blick darauf werfen. Für’s erste aber werde ich wohl die NavMesh-Geschichte etwas ausreizen und dann sehe ich weiter. Bis dahin kann man sich ja nach eigenem Ermessen durch die ellenlange Featureliste von von Unity 3.5 wühlen. Viel Spaß dabei.