Firefox web browser - Faster, more secure & customizable

Firefox Mobileの開発者のひとりであるAlon Zakai氏がオープンソース版のシューティングゲーム「DOOM」をブラウザへ移植したことを発表した。Emscriptenと呼ばれるLLVM-to-JavaScriptコンパイラを使い、CのソースコードをJavaScriptへ変換して実現している。特別な実装は使用されておらず、標準のWeb技術のみを組み合わせて実現したと説明がある。なお、執筆現在、記事に掲載されているJavaScript版のDOOMのページはアクセスできなくなっている。

実行速度を引き上げるための実装上の工夫として、通常の配列ではなく型付けされた配列を使っていることも紹介されている。JavaScriptの型付けされた配列を利用する事例はここ数ヵ月で特に増えている。型付けされた配列はそうでない配列と比較して処理の高速化が容易で、Webアプリケーションの性能を引き上げやすい。

DOOMはFPS(First Person Shooters、ファーストパーソンシューティングゲーム)と呼ばれるジャンルのゲーム。プレーヤは主人公の視点でゲーム内空間を移動しながらアクションを行う。DOOMはFPSの草分け存在であり、FPSという言葉が浸透する以前はFPSという意味でDOOMという言葉が使われることもあった。

EmscriptenはLLVMのバイトコードをJavaScriptへコンパイルするコンパイラ。このため、C/C++に限らずLLVMバイトコードに変換できる言語であればどの言語でも利用できる。Alon Zakai氏が発表したこの取り組みはネイティブアプリケーションをWebアプリケーションに変換する手法のひとつとして興味深い。