ゲームは、大量のリソースと複雑なコンピューティングを要求するタスク。このため、ゲームは、ハードウェアの特性にあわせた専用 OS 向けに、ネイティブコードで書かれるのが普通だ。だが、Mozilla の JavaScript 高速化プロジェクトにより、高いパフォーマンスを持つブラウザゲームの実現が、現実味を帯びてきた。

Mozilla、Firefox 22 にブラウザゲームを高速化する JavaScript「asm.js」を搭載

米国 Mozilla は3月27日、ゲームエンジン「Unreal Engine」を開発した Epic Games と協働していることを発表した。この共同プロジェクトは、Unreal Engine 向けのゲームを、Web ブラウザ内で動作可能にすることを目指すもの。「asm.js」と「emscripten」クロスコンパイラ技術を活用するものだ。

Firefox のエンジニアリングディレクターであり、WebGL の開発者でもある Vladimir Vukicevic 氏は InternetNews.com に対し、ゲームは Web プラットフォームでの重要なターゲットの1つだと述べた。その重要性は、スマートフォン OS である「Firefox OS」では、さらに高まるという。

Mozilla のゲームへの取り組みの中心にあるのは、「asm.js」 JavaScript プロジェクト。これが、Web ブラウザ上でハイパフォーマンスゲームの実行を実現可能にする。asm.js を利用すれば、ネイティブコード並みの速度でコードを実行できるのだ。

Epic Games と Mozilla は、Unreal Engine 向けゲームを Web ブラウザ向けに変換するために、「emscripten」コンパイラを利用する。Vukicevic 氏は次のように説明する。

「これにより、Unreal Engine 向けのゲームが Web でも実行できるようになる。ゲーム利用者は、開発者が意図したパフォーマンスを、Web ブラウザ上で体験可能だ」

「Emscriptem」は C で書かれたコードを、どの Web ブラウザでも動作する JavaScript に書き換えるクロスコンパイラ。Mozilla CTO であり、JavaScript の開発者でもある Brendan Eich 氏は InternetNews.com に対し、emscriptem を利用すれば、開発者が Web フレンドリーな新しいタイプの開発へ移行することが、より容易になると説明した。

Mozilla のゲームプラットフォーム戦略を担当する Martin Best 氏は InternetNews.com に対し、asm.js コードは、JavaScript 言語の中核要素を使用すると述べた。基本的には、asm.js を意識して書かれたコードのみが高速化されることになる。だがこの技術には後方互換性があり、Best 氏によれば、ブラウザが asm.js をサポートしていない場合であっても、開発者は非常に効率の高いコードを書けると述べている。

asm.js コードは Firefox 22 リリースで導入される予定だ。オープンソースプロジェクトであるため、コードはすべてのブラウザベンダーが利用することができる。

Mozilla と Epic Games との協働は、商業的な提携というわけではない。Vukicevic 氏は、彼のチームは emscriptem コンパイラにフォーカスしていることを強調した。Mozilla 側のメリットは、asm.js のパフォーマンスをゲームの世界で試せることと、Web における JavaScript のパワーを、世界中の利用者に示せることだ。Eich 氏は次のように述べる。

「我々は、Web 技術の利用を、さらに拡大させたい」

Sean Michael Kerner
Sean Michael Kerner は、InternetNews.com の主任編集者。