c't 12/2018
S. 40
News
Flash-Konvertierungen

Der lange Abschied

Automatisierte Konvertierung von Flash in HTML5

Spätestens 2020 zieht Adobe bei Flash den Stecker. Entwickler wie der Hamburger Spiele-Entwickler InnoGames arbeiten an Methoden, um mit Flash entwickelte Web-Apps mit dem Open-Source-Compiler HAXE in HTML5-Anwendungen zu konvertieren.

Mit dem Open-Source-Compiler HAXE übersetzen die InnoGames-Entwickler den Flash-Code von „Forge of Empire“ in HTML5, JavaScript und C++.

Seit 1996 vertreibt Adobe seine Flash-Technik, die Browser-Nutzer regelmäßig vor den Kopf stößt, mit häufigen Updates, Abstürzen und Schlupflöchern für Schadcode. Steve Jobs monierte bereits 2010, dass Flash für Mobilgeräte ungeeignet sei und selbst in der ehemaligen Flash-Trutzburg YouTube sieht man seit 2015 Videos im HTML5-Format. So wie HTML5 in den vorigen Jahren seine Tauglichkeit als grundlegender Web-Code bewiesen hat, zeigt WebGL hochwertige 3D-Grafiken in Browsern, und mit OpenFL existiert eine günstige und verlässliche Plattform für die Spiele-Entwicklung.

Und dennoch: Flash geistert weiterhin als Zombie durchs Netz, nicht zuletzt in Form alter Flash-Games, deren Konvertierung in HTML5 eine Menge Arbeit, Zeit und Geld kosten würde.

Verfallsdatum

Bereits in gut zwei Jahren stellt Hersteller Adobe die Unterstützung von Flash ein. Daher müssen Entwickler entweder den Code ihrer Spiele neu schreiben oder sie wagen die Konvertierung. Der Hamburger Games-Anbieter InnoGames erwog erstmals im Herbst 2015, sein Städtebau-Strategiespiel „Forge of Empires“ in eine zeitgemäße Sprache zu übersetzen. Der technische Teamleiter André Keller wählte den programmierbaren Cross-Compiler HAXE, um den Flash-Code von „Forges of Empires“ vollautomatisiert in HTML5 und JavaScript zu übertragen; da InnoGames in der Mobil-Entwicklung Unity verwendet, hofft Keller auf eine Verbindung von Unity zu HAXE in der näheren Zukunft.

Keller lobt die geschmeidige Handhabung und das einfache Erlernen von HAXE, die ergiebige Dokumentation und die OpenFL-Anbindung. Die Entwickler schufen eine proprietäre Pipeline, durch die alle Flash-Daten flossen. Am Ende sammelten sie alle Fehlermeldungen in einer Datei, um die Fehler abzuarbeiten.

Einfach war die Arbeit nicht, denn InnoGames entwickelten „Forge of Empires“ seit 2012 als Browser-Spiel in der Flash-Sprache ActionScript 3. Unter anderem wegen Apples Flash-Abstinenz entstand die iOS-Version als Neufassung in C++, die als Basis für die Android-Version im Jahre 2015 diente. Hier kamen laut Keller rund zehn Programmierer zum Einsatz, während das aktuelle HAXE-Team aus vier Leuten besteht. „Forge of Empires“ erwirtschaftete mit weltweit rund 70 Millionen Spielern 2017 rund die Hälfte seines Umsatzes mit den Browser-Versionen – deshalb war die sukzessive Umstellung im laufenden Betrieb wichtig.

Zwei Jahre Entwicklung

Zwei Jahre dauerte es vom ersten HTML5-Protoypen bis zum Release-Kandidaten. Ein großes Problem beim Einsatz von HAXE stellte der Sound dar. Kellers Team achtete darauf, die gleichen Dateien für die Flash- und die HTML5-Version zu verwenden. Zur Konvertierung aller Spielfunktionen entwickelten Sie eigene Tools für HAXE.

Im InnoGames-Archiv auf Github stellt der Hersteller die offiziellen Tool-Versionen per Pull-Request zur Verfügung, womit InnoGames zum Open-Source-Contributor von OpenFL, Lime und Starling geworden ist.

Bei den internen Tests kommt als unterstes Referenzsystem ein schlichter 200-Euro-Laptop mit Onboard-Grafikchip zum Einsatz, wie er bei vielen Kunden zu finden ist. Seit Anfang 2018 können Spieler die HTML5-Betaversion ausprobieren. Die Umwandlung der Daten von ActionScript 3 via HAXE zum HTML5-Endprodukt dauert etwa zwei Minuten pro Build. Nach der Veröffentlichung bekommt der Spieler den gewählten Client im Browser angezeigt: entweder die alte Flash- oder die neue HTML5-Version.

Die HTML5-Beta-Version läuft zumindest auf dem Referenz-Laptop stabil, schnell und in ungefähr gleicher grafischer Qualität wie in Flash. Nutzer von Safari, Firefox, Opera, Chrome werden kaum einen Unterschied feststellen – lediglich auf Microsofts Browsern läuft die HTML5-Version nicht in der gewünschten Qualität. „Nur etwa fünf bis zehn Prozent der Nutzer wechseln wieder zurück zu Flash“, erklärte Keller.

Auf Mobil-Browsern kann es unter HTML5 jedoch zu Verbindungsabbrüchen mit dem Online-Server kommen. Auf Smartphones und Tablets stehen deshalb weiterhin die in C++ programmierten App-Versionen zur Verfügung. Allerdings fehlt diesen gegenüber der Browser-Variante der Spielmodus „Guild vs Guild“. Keller hofft, die HTML5-Probleme auf Mobilgeräten bis zum Ende des Jahres zu beheben und die Flash-Version möglichst bald in Rente zu schicken. (hag@ct.de)