Experiment

Google portiert Spieleemulator MAME für Chrome

2. Jänner 2012, 11:36

Als Test für den eigenen "Native Client" - Portierung in vier Tagen vorgenommen und dokumentiert

Mit dem "Native Client" will Google EntwicklerInnen die Möglichkeit bieten, performante aber trotzdem Betriebssystem-unabhängige Web-Anwendungen zu entwickeln. Gerade in den letzten Monaten hat man hier signifikante Fortschritte gemacht, so gibt es nicht nur bereits die ersten Web-Umsetzung nativer Spiele, selbst andere Programmierumgebungen wie das freie .Net Mono werden mittlerweile unterstützt.

Fallstudie

Eines der erklärten Ziele von Google ist es dabei die Portierung bestehender, in C, C++ oder C# geschriebener, Programme möglichst einfach zu machen. Wie dies funktionieren kann, dokumentiert Google nun selbst anhand eines Experiments: Innerhalb von vier Tagen hat man den Multiple Arcade Machine Emulator (MAME) für Google Chrome portiert. Damit sollten sich tausende Spieleklassiker direkt im Browser nutzen lassen - zumindest theoretisch.

Einschränkungen

Google versteht die Portierung nämlich mehr als Fallstudie denn als vollständig unterstützte Lösung, entsprechend bietet man MAME auch "nur" im Pack mit dem Spiel "Robby Roto" über den Chrome WebStore an. Auch wenn sich darüber noch weitere Spiele nutzen lassen sollen - so man denn die nötigen Module aus den Weiten des Internets auftreibt - einen umfassenden Support wie auf anderen Plattformen verspricht man nicht.

Details

Wesentlich wichtiger als die eigentliche Umsetzung nimmt man die Dokumentation der für die MAME-Portierung vorgenommenen Schritte. Diese sei relativ herausfordernd gewesen, resümiert man in der Dokumentation, insgesamt mussten rund 1.200 Zeilen Code angepasst werden. (red, derStandard.at, 02.01.12)

MovGP0
00
C#

also C# beherrscht der Chrome Native Client nicht.

Es ist jedoch über Umwege möglich. Dazu muss der C# Code erst in die Common Intermediate Language (CIL) übersetzt werden. Dies geht natürlich nicht nur mit C#, sondern mit jeder .NET Sprache.

Anschließend wird der CIL-Code mit dem Mono Native Compiler (NaCl) in C-Code übersetzt, welcher im Chrome Native Client ausgeführt wird.

Das Verfahren ist jedoch eher experimentell als ausgereift.

MovGP0
00

obwohl ich das eigentlich schade finde. .NET/CIL als first-citizen Sprache wie JavaScript zu unterstützen wäre nämlich echt innovativ.

C R3
00

Relativ herausfordernd?
Klar, drum haben sie auch ganze 4 Tage dazu gebraucht...

Wenn das relativ herausfordernd ist ...

schniggschnagg
 
12
Nun ja...

...offensichtlich sind Sie in dieser Branche nicht tätig... denn 4 Tage für ein Entwickler-TEAM (schließlich hockt da nicht eine einzelne Person am Projekt) sind nicht wenig. Das entspricht einer ganzen Arbeitswoche, in der 3, vielleicht 5 oder mehr Entwickler einen Code portiert haben. Zur Erinnerung: Der gesamte Source Code ist bekannt, lediglich "umschreiben" mußte man ihn - und da sind 4 Tage fast schon ne Ewigkeit... Rechnen Sie sich das mal in Mannstunden um, wenn's davon ausgehen, daß ein Mitarbeiter ca 25 €/h kostet (minimum).

suka
00

Die Einschätzung musst du aber schon den EntwicklerInnen selbst lassen ;) Von denen stammt diese Aussage nämlich. Zitat von der Seite:

"The port of MAME was relatively challenging; combined with figuring out how to port SDL-based games and load resources in Native Client, the overall effort took us about 4 days to complete."

YoungManKlaus
00
WE NEED MORE LAYERS OF INDIRECTION!!!

Die Kommentare von Usern und Userinnen geben nicht notwendigerweise die Meinung der Redaktion wieder. Die Redaktion behält sich vor, Kommentare, welche straf- oder zivilrechtliche Normen verletzen, den guten Sitten widersprechen oder sonst dem Ansehen des Mediums zuwiderlaufen (siehe ausführliche Forenregeln), zu entfernen. Der/Die Benutzer/in kann diesfalls keine Ansprüche stellen. Weiters behält sich die derStandard.at GmbH vor, Schadenersatzansprüche geltend zu machen und strafrechtlich relevante Tatbestände zur Anzeige zu bringen.