Mozilla a pour objectif d'innover sur le web, une mission mise en oeuvre de plusieurs manières, qu'il s'agisse d'optimiser les performances du navigateur ou de repenser les usages du web. A cet effet, la fondation continue ses travaux sur le domaine du jeu en ligne en partenariat avec Epic.
Mozilla annonce via son blog officiel avoir planché sur les performances d'exécution JavaScript de Firefox. Plus précisément les ingénieurs ont développé un module baptisé OdinMonkey permettant d'optimiser le chargement des JavaScripts. Il en résulterait des performances largement améliorées sans pour autant devoir reposer sur un plugin tiers de type Flash ou Silverlight.
Mozilla précise avoir développé « une version très optimisée de JavaScript qui rajoute un turbo dans le code d'un jeu au sein du navigateur afin d'activer des expériences visuellement époustouflantes, rapides et en 3D sur le web ». Pour ce faire, les développeurs de Mozila ont mis au point asm.js, un sous-ensemble de JavaScript pouvant être exécuté à bas niveau et compilé en langage natif C/C++ avec Emscripten avant exécution.
Asm.js se positionne donc face à Native Client (NaCl) de Google proposant également d'amincir les frontières entre les applications web et locales. Google met à disposition des API permettant d'écrire des modules en C ou C++ capables de communiquer avec les éléments HTML ou Javascript au sein du navigateur. Mozilla explique que contrairement à NaCl, asm.js fonctionne dès à présent : « les moteurs d'exécution JavaScript optimisent très bien déjà ce genre de code ». Et d'ajouter : « un autre avantage : c'est plus simple à implémenter ». Les performances seraient simplement deux fois inférieures à une compilation purement native du code C ou C++.
Ces travaux ont encouragé Mozilla à porter la plateforme Unreal Engine 3, ce qui signife que les éditeurs de jeux seront en mesure de rendre leurs titres disponibles sur le web. D'ailleurs, ce n'est pas la première fois que Mozilla s'intéresse au secteur du jeu vidéo. En septembre 2010, la fondation avait ouvert son laboratoire Labs Gaming. Au mois d'août dernier, la fondation présentait le FPS BananaBread codé en C++ et OpenGL puis compilé en JavaScript et WebGL grâce à Emscripten et tirant parti des API Fullscreen.
OdinMonkey est disponible au sein des dernières versions expérimentales nightly. Ce composant sera activé par défaut dans Firefox 22 alpha (sur le canal Aurora) il sera présent mais désactivé dans la bêta et la version finale.