Galaxy on Fire 2 kommt fürs iPhone, iPad und Nokia – Entwicklertagebuch Teil 1

In den letzten Monaten brodelte es in der galaktischen Gerüchteküche und wir wurden häufig gefragt, ob und wann wir Galaxy on Fire™ 2 fürs iPhone und iPad rausbringen. Die gute Nachricht zuerst: Ja, wir bringen GoF 2 aufs iPhone und iPad und auf die neuen Nokia Smartphones und wir arbeiten seit Oktober letzten Jahres mit Hochruck daran. Allerdings werden wir auch noch eine ganze Weile brauchen, denn GoF 2 ist ein unglaublich komplexes und reichhaltiges Game – und unser Qualitätsanspruch an das, was wir Euch bieten wollen, wie immer hoch. Um die Wartezeit etwas zu versüßen und Euch einen Eindruck davon zu vermitteln, wie umfangreich die Arbeit ist und an welchen Details wir feilen, wollen wir Euch ab sofort regelmäßig innerhalb unseres Entwicklertagebuchs schildern. Damit das Ganze etwas lockerer daherkommt, lassen wir die Hauptverantwortlichen kurzer Hand selber in Interviews zu Wort kommen.

Los geht’s mit Hans-Christian Kühl, aka HCK, dem Chefentwickler von Galaxy on Fire™:

Wie kam es ursprünglich zur Idee für die GoF-Serie?

Die Idee hatte ich, nachdem wir mit einigen kleineren Spielen wie „Motoraver“ und „Robot Alliance“ fertig waren. Ich dachte damals „mal gucken, was mit 512kb geht“ [Speicherbegrenzung vom Sony Ericsson K700i] und habe angefangen, eine Techdemo zu machen, die ich dann weiter ausgebaut habe. Danach kamen recht schnell mehr Leute aus den Bereichen Grafik und Konzept an Bord und das Projekt war geboren.

War es schwierig, die Inhaber Christian Lohr und Michael Schade von dem Konzept zu überzeugen, oder waren die Beiden von Anfang an begeistert?

Ich glaube sie fanden es von Anfang an gut , insbesondere weil es im Vergleich zu Projekten wie „Motoraver“ oder „Cloud Commander“ so offen und frei war, die auf eine einzelne Straße oder einen Canyon begrenzt waren. Bei GoF 1 hatten wir bereits 500 verschiedene Planeten und 100 Systeme, was sich bei einem Handyspiel damals kaum jemand vorstellen konnte.

…und vollzogen damit den Schritt weg vom linearen Leveldesign hin zur Sandbox, also zur offenen Welt?

Ja, es waren erst einmal 13 Mission, die man durchspielen musste. Danach wurde das System geöffnet und man konnte überall hinfliegen – das war damals die große Neuerung.

Beim Spielen von GoF werden Erinnerungen an klassische Titel wach, insbesondere an Origins „Wing Commander“ Serie und ihr Sequel „Privateer“. In wie weit haben solche Titel die Entwicklung von GoF beeinflusst?

Privateer“ war ja sozusagen „Wing Commander“ mit Handelssystem und mehr Freiheiten. „Freelancer“ aber war der erste Titel, der das Beste aus allen bisherigen Weltraumspielen nahm und vereinte – nämlich eine gute Story, ein großes Universum mit verschiedenen Fraktionen, ein Handelssystem, Schiffsmodifikationen, Erz-Abbau, generische Missionen und sehr, sehr viel zu entdecken. Definitiv eine Inspiration. Eine zusätzliche Inspirationsquelle in Bezug auf die Herstellung von Produkten anhand von Bauplänen war außerdem „Eve Online“.

Was macht den Großteil der Arbeit bei der Portierung von GoF 2 fürs iPhone, iPad und die neuen Nokia Smartphones aus?

Es wird: die ersten Screenshots der Alpha-Version von GoF2 fürs iPhoneDerzeit arbeiten wir an 3D-Modellen von Schiffen, Waffen, Asteroiden sowie verschiedenen Hangarszenen und der Bar, in der man neue Aufträge bekommt. Gleichzeitig macht Marc Nagel, unser Art Director, 2D-Konzepte für neue Schiffsmodelle. Ich versuche dann, das Ganze zusammenzubringen. Demnächst werden mich dann Marc Hehmeyer, unser CTO, und andere dabei unterstützen, das volle Potential unter OpenGL ES 2.0 nutzen zu können. Sie werden sich hauptsächlich um die Shader kümmern, damit das Ganze auch entsprechend hochwertig aussieht. Natürlich dürfen wir auch den Sound nicht vergessen. Das ist noch eine Menge Arbeit, die da auf uns zukommt, gerade weil sich Smartphones in ihren Sound-Fähigkeiten teilweise gravierend unterscheiden.

Welche Anpassungen sind nötig bei der Portierung von GoF 2 für iPhone, iPad und kommenden Smartphones?

Auffällig ist ja meistens erst einmal die Grafik. Für mich als Programmierer ist allerdings der Umstieg von Java auf C der Riesenschritt. Da gibt es leider kein Tool, bei dem man auf den Knopf drückt und alles ist umformatiert. Dafür muss man ganze Konzepte neu gestalten. Und bei so einem Riesenspiel wie GoF 2 war das bereits bei der Java-Version nicht einfach. Die Java-Version von GoF 2 basierte ja noch auf einem Vorgänger, „Deep“ – ein Unterwasserspiel, das wiederum auf GoF 1 basierte. Das heißt hier gab es bereits zwei Zwischenschritte an Entwicklung und Verbesserung. Diesen Riesenhaufen auf C zu portieren war ziemlich schwierig. Da wir GoF 1 bereits für das iPhone auf C hatten, musste ich mir erst einmal überlegen, ob ich die GoF 1 Version in C nehme und diese zu GoF 2 mache oder die GoF 2 Java-Version nehme und nach C portiere. Allein für diese Überlegung habe ich bestimmt zwei Wochen gebraucht. Letztendlich habe ich mich entschieden, dass Java Projekt komplett in C umzuwandeln, und das war auch ganz gut so. Das ist natürlich nur der technische Teil der Programmierung. Bei der Grafik muss man eigentlich alles anpassen, da bleibt kein Stein auf dem Anderen.

Wird durch diese Arbeit an GoF 2 die Arbeit an kommenden Projekten erleichtert?

Natürlich fällt immer etwas ab. Für GoF 2 arbeiten wir zum Beispiel momentan viel mit Geometrie- und Texture-Shadern unter OpenGL ES 2.0 für kommende Maemo Smartphones von Nokia, die wir sicherlich in zukünftigen Projekten wiederverwenden können. Auch andere Bestandteile des Spiels, wie die Darstellung des Weltalls mit Nebeln und der simultanen Darstellung einer großen Zahl von Objekten, lassen sich wiederverwenden. Aber den größten Mehrwert haben wir natürlich, wenn wir eine Fortsetzung des eigentlichen Titels entwickeln oder Ergänzungen wie In-App-Purchases einbauen, die neue Level oder Ausrüstung freischalten.

Für die Portierung von GoF 2 kam aus auch zu einer Umstellung von „Integer“ auf „Float“. Warum? Was sind die Vorteile?

Alle neueren Endgeräte benutzen einen Float-Prozessor. Float-Operationen [mathematische Berechnungen in Fließkommazahlen] werden in der Hardware ausgeführt. Für die älteren Java-Geräte haben wir Projekte in Integer, d.h. in Ganzzahlen, realisiert, weil das schneller lief und diese keinen eigenen Float-Prozessor in der Hardware hatten. Damit kommen einige Erleichterungen ins Spiel: Man muss zum Beispiel nicht mehr alles groß rechnen, um es hinterher wieder klein zu rechnen, um auf diese Weise kleine Zahlen zu realisieren. Eigentlich könnten wir jetzt auch das ganze Spiel viel kleiner komprimieren, sodass die Längeneinheiten kleiner sind. Vorher musste ein Schiff schon mal 1000 Längeneinheiten groß sein, damit es sich flüssig bewegen konnte. Jetzt kann ein Schiff theoretisch aus lediglich einer Einheit bestehen. Visuell wird man die Veränderung im Spiel dadurch wahrnehmen, dass es bei Kameradrehungen und beim Navigieren nichts mehr ruckelt.

Reduziert die Möglichkeit „Float“ zu benutzen auch den Programmieraufwand?

Für GoF 2 natürlich nicht, da es hier vor allen Dingen um die Portierung geht. In diesem Fall war die Umstellung eher aufwändig. Aber für zukünftige Produktionen ist es natürlich gut, dass wir auf Float zurückgreifen können.

Was war darüber hinaus bis jetzt besonders schwierig umzusetzen?

Mehr Texturspeicher auf dem iPhone bekommt besonders den Details der Raumstationen gutDas Speichermanagement von Java und C ist völlig unterschiedlich. Es können immer wieder unvorhersehbare Probleme auftauchen. Da spielt man zwei Stunden und plötzlich stürzt das Spiel ab und man weiß im ersten Moment nicht warum – das liegt dann vielleicht daran, dass man irgendwo irgendwann einmal etwas nicht freigegeben hat, was bei Java eben alles automatisch passiert ist. Außerdem haben wir jetzt viel mehr Texturspeicher auf dem iPhone und vor allem den neuen Nokia Smartphones zur Verfügung. Da fordern besonders die Grafiker, dass alles ganz toll aussieht. Aber beim iPhone haben wir dann halt doch „nur“ 10 – 20MB Texturspeicher zur Verfügung. Zum Vergleich: Damals bei Java mussten wir mit einer 512er-Textur und für das gesamte Spiel mit Code, Grafik und Sound mit ca. 1 MB klar kommen. Da haben alle im Team gesagt: „Oh, da muss alles reinpassen, das müssen wir irgendwie ausnutzen!“ Jetzt kommen gerade die Grafiker und sagen: „Auf dem iPhone muss aber alles viel besser aussehen und wir brauchen noch fünf 1024er-Texturen…!“ Am Ende sitzen wir also doch wieder da und müssen schauen, dass wir nicht zu viele Inhalte in das Spiel hineinpacken.

Fortsetzung folgt…

Werde Fan von FISHLABS auf Facebook für Neuigkeiten zu allen laufenden Projekten.

Tags: , , , , ,

439 views

Hinterlasse eine Antwort

Security Code: