New Project: Spaceship in trouble!

Endlich ist es wieder so weit, ein neues Projekt steht in den Startlöchern! „Spaceship in trouble!“ schwirrt zwar schon seit einer Weile im Raum herum, aber so wirklich vorwärts ging es da die letzten Wochen nicht. Ursprünglich wollte ich das Projekt in HTML5 mit JavaScript, bzw. dann später TypeScript umsetzen, um zu demonstrieren, dass die Web-Technologien durchaus spieletauglich sind (github). Im Laufe des Projektes hat sich dies zwar mehr als bestätigt (die FPS auf den verschiedenen Umgebungen waren dank CocoonJS sehr zufriedenstellend), dennoch bin ich zu einem möglicherweise anderem Schluss gekommen, als ursprünglich beabsichtigt…

HTML 5 für Games?

Gerade mit dem jüngsten Anouncement von Apple in IOS 8 auch endlich WebGL mit zu unterstützen sind, sind die HTML5-Games weiter auf dem Vormarsch. Technisch gibt es auch keine all zu grossen Einschränkungen bezüglich dessen was möglich wäre.

Cross Plattform, genügend Performance, einfache aber mächtige Sprache, mit TypeScript auch durchaus mit dem gewohnten Support der IDE und Typsicherheit möglich.

Also letztendlich perfekt, oder :)?

Jein… Wenn man komplett alles selber schreiben will, würde ich sogar tatsächlich JavaScript/Web-Technologien der Alternative in C++ vorziehen, einfach weil es noch viel besser Cross-Plattform ist, und ich mich nicht mit den verschiedenen Render-Techniken und APIs herumschlagen muss. Auch für einfache oder sehr spezielle Projekte ist sicherlich dieser Weg eine gute Wahl.

Jedoch muss man ja heutzutage nicht mehr bei Null anfangen, und auch wenn JavaScript-GameEngines bereits gute Dienste leisten, sind sie noch lange nicht auf dem Level wie eine Unity oder Unreal Engine… In ein paar Jahren mag das schon wieder anders aussehen, wenn die JS-GameEngines aufgeholt haben, aber bislang sind da noch Welten dazwischen.

Ein hoch auf die „echten“ GameEngines

Mit Unity hatte ich vor einiger Zeit ja bereits ein wenig rumgespielt (siehe alte Blogposts), Unreal Engine 4 hatte ich mir seit dem Release einmal intensiver angeschaut und ein paar Tests gemacht.

Beide Engines vereinfachen den Workflow des Spieleprogrammierens ungemein. Man kann sich wirklich auf die wichtigen Details konzentrieren und muss nicht ein tausendstes Mal das Rad neu erfinden. Die einzelnen Komponenten der GameEngine (Grafik, Physik, Effekte, Rendering, …) sind perfekt aufeinander abgestimmt und angenehm zu bedienen.

Eigentlich will ich ja auch Games programmieren, und keine GameEngines, deshalb habe ich mich nun nach langem Abwägen tatsächlich dazu entschieden, Unity als GameEngine zu benutzen und damit auch wirklich mal ein Game über den Prototyp-Status hinaus zu bringen.

Unity vs Unreal Engine

Warum nun aber Unity und nicht Unreal Engine? Primär liegt das daran, dass Unity „reifer“ ist. Unreal Engine ist eine geniale Engine und mit UDK ja auch schon älter und erfahren. Dennoch kommen in Unreal Engine 4 jetzt viele neue Konzepte zum Einsatz, zu denen noch nicht die Mengen an Dokumentation existieren, wie dies bei Unity der Fall ist.

Auch der AssetStore ist bei Unreal Engine 4 mehr noch ein Wunschdenken, bei Unity gibt es hier bereits tausende gebrauchsfertiger Assets. Auch der Scripting-Prozess in Unity mit C# oder JS hat mich sehr überzeugt und ging in der Praxis auf Anhieb einfacher von der Hand als das C++ Scripten in der Unreal engine.

Jedoch sollte man das in ein paar Monaten noch einmal untersuchen. Unreal Engine ist auf einem extrem guten Weg, die Engine ist äusserst vielversprechend und bietet teilweise auch wirklich geniale Features. Und die Github-Integration mit vollem Source-Access ist natürlich auch ein geniales Feature.

Schmankerl

🙂 Noch nichts wirklich spannendes, aber allein zum Festhalten und dokumentieren quasi „ab der ersten Minute“ hier mal noch ein Video aus dem aktuellen Projektstand. Demnächst dann mehr!

2 Gedanken zu „New Project: Spaceship in trouble!

Schreibe einen Kommentar

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