Unity

Sicherlich findet sich der eine oder andere von euch Spielern in folgender Situation wieder: Ihr spielt gerade ein Spiel und denkt euch, dass die Idee ganz gut ist, aber die Umsetzung lässt zu Wünschen übrig. Oder vielleicht anders herum, Optik und Audio stimmen, aber irgendwie passt das Ganze nicht zur Handlung. Ihr selbst würdet das viel besser können, nur leider habt ihr keine Ahnung vom C und XCode, weswegen euere Ideen in die hinterste Ecke eures kreativen Kopfes versteckt bleiben. Vieles würden wir anders machen, können es aber nicht. Damit ist jetzt Schluss, jetzt werden wir alle zu Spieleprogrammierern, und das, ohne wochenlang erst C zu lernen.

Die dänische Firma OverTheEdgeentertainment (kurz OTEE, Stand 2010: Unity Technologies) hat mit dem Programm „Unity“ ein Tool veröffentlicht, mit dem man auch als Laie recht schnell ein brauchbares Spiel erstellen kann. Zur Verwendung kommt hierbei eine eigens entwickelte Engine auf Basis von OpenGL, die es erlaubt, auch plattformübergreifend Spiele zu erstellen. Aber damit noch nicht genug, als Bonbon kann man auch Spiele für das Dashboard oder Browser entwickeln. Die Ageia-Physik-Engine von Novodex sorgt für das korrekte Fallen von Objekten und eine ausgereifte Sammlung von Shadern für die grafischen Highlights. Einem grafisch wie spielerisch opulentem Spiel steht also nichts mehr im Weg. Alles was ihr braucht ist etwas Basiswissen in JavaScript, und schon kann es losgehen.

Ganz alleine kann man „Unity“ aber nicht benutzen, denn Texturen und 3D-Objekte müssen irgendwo herkommen, auf Software Dritter ist man also angewiesen. Bei den Modelling-Programmen werden die Formate .3ds und .fbx unterstützt, daher kommen Cinema4D, Maya und Cheetah3D in Frage. Letzteres kostet 99 Euro und strapaziert den Geldbeutel nicht zu sehr. Ganz umsonst geht es mit Blender, dessen Bedienung aber sehr gewöhnungsbedürftig ist. Für Texturen kann man auf Adobe Photoshop, Gimp oder ähnliche Applikationen zurückgreifen, außerdem gibt es diverse Bibliotheken im Internet, wo es kostenlose Texturen zum Download gibt. Bleibt nur noch der Audiobereich. Selber aufnehmen wird man wohl nicht alles können, bleibt also nur der Griff zu Samplern und/oder zu einem Synthesizer, zum Beispiel GarageBand.

Die Oberfläche von „Unity“ erinnert sehr stark an gängige Grafikprogramme auf dem Mac, ist aber frei konfigurierbar. Auf der linken Seite befinden sich ein oder mehrere Ansichten der Spielumgebung. Wie in 3D-Programmen kann man sich in der 3D-Ansicht frei bewegen und sein Werk von allen Seiten begutachten. Das ist sehr nützlich, weil man nicht nur mit Text und Zahlen umgeht, sondern schon etwas sehen kann. In einem speziellen „GameView“ kann man bereits das Spiel testen, zum Beispiel seine Figur steuern. Alle Einstellungen zu den Objekten und eine Liste mit allen Objekten findet man auf der rechten Seite. Das gesamte Material, welches man verwendet wird in so genannten Assets verwaltet. Das Schöne an diesen Assets ist, dass man sie nicht aktualisieren muss: Ändere ich eine Textur in Photoshop und wechsle wieder zu „Unity“ haben sofort alle Objekte mit dieser Textur das neue Aussehen.

Der Einstieg gelingt mit den zwei beigelegten Tutorials relativ leicht. Das erste Tutorial widmet sich den grundlegenden Fragen bei der Spielentwicklung: Wie steuert man eine Figur und wie platziert man Objekte und Texturen? Kurz angerissen wird auch die Physik-Engine und ein paar essentiell wichtige Scripte wie Punktanzeige und Timer. Innerhalb einer Stunde hat man so ohne Vorkenntnisse eine kleine Murmelbahn erstellt. Im zweiten Tutorial widmet man sich einem einfachen Rennspiel und lernt, wie man Wegpunkte setzt und Gegner mit einer einfache Intelligenz diese Punkte abfahren lässt. Die ersten Erfolge stellen sich schnell ein und können sofort getestet werden, eine Kompilierung der Änderungen ist nicht notwendig. Ein echter Fortschritt, da man ansonsten zum Testen jeder Änderung das ganze Programm neu kompilieren lassen musste.

Die Unterstützung des Users ist bei „Unity“ vorbildlich, selbst ohne Vorkenntnisse findet man sich in den Menüs schnell zurecht und die Optionen zu den einzelnen Objekten sind selbsterklärend. Für die ersten Schritte muss man nicht einmal etwas programmieren, kann sich aber dennoch schon in seiner 3D-Welt umschauen. Einen Grundschatz an 3D-Objekten bringt „Unity“ außerdem schon mit, die Beleuchtung der Szene ist auch schnell realisiert und mit Physik und Partikeleffekten bringt man etwas Leben in die Welt. Aber zu einem echten Spiel gehört natürlich mehr, die Erfolge des Spielers müssen irgendwie gemessen werden und der Spieler muss gegen Computergegner oder die Zeit antreten auf Aufgaben lösen. Das tiefere Spielgeschehen wird mittels JavaScript, C# oder Boo gesteuert. Zumindest JavaScript hat eine relativ flache Lernkurve und ist dem einen oder anderen vielleicht schon bei der Erstellung einer Webseite über den Weg gelaufen.

Bereits enthalten sind Scripte zum Verhalten und zu Steuerung von Autos und Charakteren, sowie einige Kamerascripte, um das Spielgeschehen auch immer in der Mitte des Schirms zu haben. Die Steuerung ist frei konfigurierbar und auch die Nutzung eines Joysticks ist möglich. Dazu liefert „Unity“ vorgegebene Routinen, mit denen man die Bewegungen des Spielgerätes auslesen und verarbeiten kann. Bei den Eingabegeräten ist „Unity“ allerdings etwas wählerisch, so funktioniert die Maussicht bei mir nur mit der originalen Apple-Maus, nicht aber mit meiner Logitech MX 510. OTEE ist dieses Problem aber bekannt. An der Behebung werde gearbeitet, so kann man im Forum nachlesen.

Besonders Augenmerk verdient sicherlich auch die Ageia Physik-Engine, mit der sich im Handumdrehen Kisten wie echte Kisten verhalten und Autos wie echte Autos. Nicht nur Kräfte wirken hier, sondern auch Reibung und Dämpfung. Nicht umsonst wird Ageia auch von anderen Entwicklern genutzt, das kommende Unreal Tournament wird dieselbe Engine benutzen. Hier zahlt es sich wieder besonders aus, dass ich alle Einstellungen sofort testen kann.

Für die grafische Pracht sind vor allem die Shader und Texturen verantwortlich. Beim Import von Texturen kann man Mip-Maps erstellen lassen oder eine Bump-Map generieren lassen. Damit sehen Texturen in unterschiedlicher Entfernung immer optimal aus und bekommen auch eine räumliche Struktur. Mit den Shadern sind dann beeindruckende Wasserflächen und Leuchteffekte möglich. Mit den vorhandenen Shadern konnte ich schon viele Effekte erzielen, wer sich aber mit der Programmierung von Shadern auskennt, dem steht Tür und Tor offen.

Dafür sorgt der sehr flexible und leistungsfähige Unterbau von „Unity“, der auch für hohe Polygonanzahlen ausgelegt wurde. Auch der Einsatz von Shadern ist von Beginn an vorgesehen, somit sind auch grafisch aufwändigere Projekte möglich. Das von OTEE veröffentlichte Spiel „GooBall“ ist nur ein kleiner Vorgeschmack auf das, was alles möglich ist. Meiner Meinung nach geht „Unity“ den richtigen Weg, fördert die Kreativität und behindert den User nicht mit komplexen Programmierproblemen. Nur so kommen Projekte auch zum Abschluss. Zumindest bei mir ist es so, dass viele gute Ideen wegen Problemen bei der Umsetzung nie das Licht der Welt erblicken. Für Großprojekte wird es aber dennoch unverzichtbar bleiben, sich mit Programmiersprachen und OpenGL bis in die Tiefen auseinander zu setzen.

Die einfache Handhabung erleichtert vor allem Einsteigern die ersten Schritte, das Konzept stößt aber bei komplexeren Szenerien auch an seine Grenzen. Außerhalb der Scripte ist es nicht möglich, wirklich in die Tiefen der Engine vorzudringen und hier Änderungen zu machen. Erst mit der teuren Pro-Version sind C/C Plug-Ins möglich. Wenn „Unity“ also eine Funktion noch nicht hat, dann muss man als Entwickler warten, ob OTEE diese Funktion implementieren wird. Derzeit ist dies zum Beispiel ein Objekt, das Nebel oder dynamische Schatten erzeugt. Sehr hervorzuheben ist aber die Community von „Unity“. Neueinsteiger bekommen hier schnell Hilfe und „alte Hasen“ zeigen ein paar ihrer Tricks. Leider ist die Community noch nicht sehr groß und bis auf die zwei Tutorials, die OTEE-Referenz und das Forum gibt es keinerlei Informationsquellen.

Beim Preis gibt es zwei Versionen: Die Indie-Version ist für private Anwender, die mit „Untiy“ ihr Spiel entwickeln wollen, damit aber nicht planen, große Umsätze zu machen. Mit 199 Euro ist die Version teurer als der Konkurrent „Torque Engine“, bietet dafür aber weitaus mehr Funktionen und ist leichter zu bedienen. Außerdem können mit der Indie-Version nur Applikationen für Mac OS X, Dashboard und das Browser-Plugin erstellt werden. Windows-Versionen seiner Spiele kann man erst mit der Pro-Version erstellen, die mit 749 Euro schon deutlich teurer ist. Dafür erhält man aber auch mehr Funktionen, wie Zugriff auf OpenGL-Befehle und C/C Plug-In Support.

Um die Fähigkeiten von „Unity“ zu demonstrieren, habe ich eine kleine Demo erstellt. Diese beinhaltet diverse Objekte, mit denen der Spieler interagieren kann. Außerdem finden sich verschiedene Texturen wie Bump-Maps und Alpha-Maps. Dazu kommen Shader und eine simple Animation mit Partikeleffekten zum Einsatz. Erwartet nicht zu viel – es ist kein wirkliches Spiel, sondern nur eine Demonstration der „Unity“-Fähigkeiten. Immerhin kann man ein bisschen Ballern und Kisten über den Rand der Welt befördern. Das Programm ist rund 10 MB groß und kann unter diesem Link heruntergeladen werden.

Fazit:

Um Spiele zu entwickeln, muss man meist bereits Erfahrung im Programmieren mit bringen. Bei „Unity“ kann man aber auch mit sehr wenigen Vorkenntnissen Ergebnisse erzielen. Das Konzept hat seine Schwächen, die für den Einsteiger aber keine allzu große Bedeutung haben werden. Für die Zukunft haben die Entwickler von „Unity“ außerdem viele neue Funktionen versprochen und gehen dabei auch ganz gezielt auf Wünsche der Nutzer ein.

Felix Gelpke

Verfügbarkeit

Zu haben ist das Produkt bei Unity Technologies.

Bilder (klicken für mehr)

[flickr album=72157623650086697 num=5 size=Square]

Habt Ihr eigene Bilder dazu? Schickt sie uns!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

For security, use of Google's reCAPTCHA service is required which is subject to the Google Privacy Policy and Terms of Use.