Von C++ nach HTML 5: Opera portiert Videospiel mit Web-Standards

 –  123 Kommentare

Spätestens seit Verabschiedung des WebGL-Standards für die browserbasierte Ausgabe von 3D-Grafik ist klar, dass Browser sich auch für die Darstellung grafisch komplexerer Videospiele eignen. Von Mozilla gibt es dazu passend die Flight of the Navigator-Demo; auch Opera bastelt an einer Technikdemonstration. Nur wie sieht es in der Praxis aus, wenn zum Beispiel ein ganzes Videospiel auf Basis aktueller Web-Standards umgesetzt werden soll?

Was es bedeutet, ein Videospiel mit über 100.000 Zeilen Code von C++ nach HTML 5 zu portieren, zeigt Erik Möller bei Opera. Möller entwickelte Ende 2009 mit Emberwind einen Plattformer auf Basis der Programmiersprache C++, wechselte später dann als Core-Entwickler zu Opera Software. Hier stellte man ihm ein kleines Team aus Studenten zur Seite, um gemeinsam an einer Emberwind-Umsetzung nach HTML 5 zu arbeiten.

Abb. 1: Läuft auch im Firefox - Emberwind mit HTML 5 realisiert

Der aktuelle Entwickler-Snapshot läuft bereits plattformübergreifend unter Windows 7, Mac OS X, Ubuntu und iOS (mit aktuellen Versionen der Browser Opera, Internet Explorer, Firefox, Chrome und Safari). Abgeschlossen sei die Entwicklung damit aber noch nicht, räumt Erik Möller in seinem Blog ein. Zwar funktioniere bereits die automatische Erkennung, ob die Zielplattform WebGL unterstützt (und bietet anderenfalls einen Fallback auf 2D-Canvas an) und auch Google Web Fonts würden für die Textdarstellung schon eingebunden – bis zu einem befriedigendem Spielerlebnis habe man jedoch noch einige Wochen Testen und Entwicklung vor sich, so Möller. Unter anderem werde man das Trigger-System überarbeiten und die Audio-Engine implementieren. Letztere basiert auf dem <audio>-Element, das mit HTML 5 neu eingeführt wird und bei Emberwind gänzlich ohne Flash – und damit plattformübergreifend – funktionieren soll.

Wenn die Entwicklung wie geplant voranschreitet, dürfte Opera nicht nur einen publikumswirksamen Beweis antreten, das Web Standards wie HTML 5 – in Verbindung mit APIs wie WebGL, für den Zugriff auf hardwarebasierte Features – auf Augenhöhe mit nativen, in C++ entwickelten Anwendungen rangieren, sondern auch, dass plattformübergreifende Multimedia-Apps ohne Flash auskommen können. (rl)