MozillaとEpic GamesがUnreal Engine 3をWeb化, Web 3DゲームのFlash不要化へ

2011年にEpicは、好評なUnreal Engine 3の技術をFlashにポートして、ブラウザでもかなり高度な3Dゲームができることを示した。しかし2013年の今では、Flashはもう人気のプラットホームではない。そこで、現代的なブラウザではプラグイン不要でどれだけのことができるかをゲームデベロッパたちに示すために、MozillaとEpicが協力してUnreal Engine 3をWebにポートした。Flashプラグイン全盛の2011年には、考えられなかったことだ。

Mozillaの技術部長でWebGLの発明者でもあるVladimir Vukicevicが今週の初めに語ったところによると、MozillaはWebを現代的なゲームにとって十分有効なプラットホームにしたいと考えている。約半年前にMozillaは、そのemscriptenコンパイラを使ってCやC++のコードをJavaScriptのサブセットであるasm.jsにポートすることができるようになった。それによってJavaScriptのコードはネイティブコードの約2倍近い速さになり、この方法による最適化はFirefox Nightlyの最新バージョンがサポートしている。現代のゲームとゲームエンジンは複雑だから、ネイティブに近い速度をWeb上でも実現できることは、たとえばEpicの有名なデモCitadelやUnreal Tournamentを動かすことに欠かせない。今日行われたGame Developers ConferenceでMozillaは、Unreal Tournamentをブラウザ内でネイティブに動かして見せた。

Unreal 3 Engineの全体をWebに移植するのにEpicは4日を要し、その後小さな調整作業も行った、とVukicevicは述べている。Epicが同社のゲームエンジンをWebに持ち込むのはこれが初めてではないが、それにしても上々の結果だった。デモは数週間後にお目見えする。それまでは、最新のFirefox Nightlyの上でMozilla作のBananaBreadデモを見て我慢しよう。Web用のUnreal Engine 3をEpicが商用製品として提供するのか否かについては、まだ不明だ。

Mozillaのゲームプラットホーム担当Martin Bestによると、今回の作業の結果はすべて、MozillaのAndroid用モバイルブラウザと、そしてもちろんFirefox OSに実装される。モバイルでもゲームはネイティブの2倍近い速さで動くとMozillaは予想しており、それを示す社内的なデモもすでにある。一般公開は、まだ先のようだが。

これらの技術を使った商用製品を作っていくことに関してBestは、MozillaはすでにDisneyやElectronic Arts、ZeptLabなどと共同で作業を進めている、と言った。ZeptLabはすでに、Microsoftとの協働によりCut The RopeのHTML5バージョンを作ってWeb上に持ち込んでいる。Bestによると、このような協働案件を打診すると最初はどの企業も疑心暗鬼であるが、“一週間もするととても熱心なパートナーになってしまう”そうだ。

Googleも、ブラウザをネイティブの速さに近づけることに、Native Clientを通じて努力している。これは、デベロッパが作ったWebアプリケーションがコンパイルされたネイティブコードをブラウザ内で実行できる、という技術だ。GoogleのChrome Web Storeには、そのようなゲームがすでにかなりある。しかしMozillaのCTOでJavaScriptの作者でもあるBrendan Eichの言では、Firefoxがそのような技術をサポートすることは短期的にはない。むしろ彼の考えではJavaScriptの今後の進化でネイティブに近いパフォーマンスが達成されるだろう、という。Eichの見方では、Native Clientは“Webとは別のもの”だ。APIも、WebのAPIとは言えない。だからそれは、Mozillaが志向しているものとは違う。Mozillaは、Webそのものを前進させることにのみ、関心がある。

Asm.jsのコードの良いところは、それがあくまでもJavaScriptであることだ。だからどのブラウザでもそれは動く。しかしAsm.js向けに最適化されたブラウザなら、相当に速い。Eichによると、いずれはどのベンダも〔Googleも?〕、遅かれ早かれ、その最適化を実装するだろう、とのことだ。

[原文へ]
(翻訳:iwatani(a.k.a. hiwa))