Mozillaのasm.jsを使った初の商用ゲームDungeon Defendersが登場

あまりにも長年、Webのゲームといえば、それがブラウザ上でスムーズに動くためには必ず何らかの(往々にして怪しげな)プラグインをインストールしなければならなかった。最近はWebGLなどの新しい技術のおかげでやや変わってきたが、でもJavaScriptが元々スピード狂ではないために、プラグイン不要のゲームはなかなか普及しなかった。しかしMozillaは、この状況をasm.jsで変えようと努力してきた。このJavaScriptのサブセットは、Firefox上できわめて高速に動き、そして今日の発表によると、asm.jsを使った初めての商用製品としての3Dゲームがローンチの運びとなった。

その最初の作品はTrendy EntertainmentDungeon Defenders Eternity、同社の人気シリーズの最新作で、タワーディフェンス系にRPGの要素も加味したゲームだ。Webバージョンにアクセスするためには、Steamでデスクトップバージョンを買うか、今夜あたりAndroidバージョンを買うかしなければならない。そうすれば、playverse.comでWebバージョンを遊べる。

Mozillaによると、Webバージョンはビジュアルもゲームプレイもネイティブのデスクトップバージョンとまったく同じだ。 スピードもasm.jsのおかげでネイティブに近い。asm.jsのほかに、3DグラフィクスにはWebGL、位置感のあるオーディオはWeb Audioを使っている。

Trendy EntertainmentのCEO Darrell Rodriquezはこう言う: “Webはすでにカジュアルゲームでは大きな世界だが、でもMozillaのasm.jsがあれば、プラグインを使わないWeb上の本格的なゲームが可能だ。Dungeon Defendersは、URLをクリックしてからロードまでほんの数秒だから、ゲーマーたちも十分満足するスピードだ”。

今のところは一つだけだが、asm.jsとプラグイン要らずのゲームには業界全体の期待と取り組みがある。昨年はMozillaが初めて、asm.jsを使用する3Dゲームをデモした。でも本格的に普及するためには、主なブラウザのほとんどがasm.jsをサポートする必要がある。しかしGoogleは、今のところ無関心だ(ベンチマークにはasm.jsを含めたから、気にはしているらしいが)。Microsoftのstatus.modern.ieには、asm.jsの名前すら登場しない。当面はサポートする気がないのだろう。

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


人気トップのゲームエンジンUnityがWebGL + Mozilla asm.jsでWebへポート

UnityMozillaが今日(米国時間3/18)、 WebGLとMozillaのasm.jsを使ってUnityのゲームエンジンをWebに持ち込む、と発表した

200万名あまりのユーザのいるUnityは、今もっとも人気の高いゲームエンジンの一つだ。

今日サンフランシスコで行われるGame Developer’s Conferenceで両者は、人気の3DシューティングゲームDead Trigger 2のWebポートをFirefox上でデモする。今のところ、asm.jsをサポートしているブラウザはFirefoxだけなのだ。今年の終り頃リリースされるUnity 5.0で、WebGLのサポートが、Unityのアーリーアクセスベータのアドオンとして可利用になる。

これまでは、Unityをブラウザ内で使うにはプラグインが必要だった。そのプラグインはきわめて有能でとても人気があるが、今後はますます、ブラウザ内でネイティブに動く(プラグイン不要の)アプリケーションが主流になる。asm.jsはJavaScriptのサブセットだし、WebGLは現代的なブラウザのすべてがサポートしているから、asm.js向けに最適化されているゲームでも、そのほかのブラウザで動かせる。やや遅くはなるが。

Mozillaの技術部長でWebGLの作者でもあるVlad Vukicevicが今週初めにぼくに語ったところによると、UnityとMozillaはUnityをWebに持ち込むために密接に協力してきた。これまでの2年間、MozillaとUnityのチームが週末や勤務時間外に頻繁に会って、UnityのWeb化に努めてきた。Mozillaでゲームプラットホームを担当しているMartin Bestによると、両者が一つの目標の実現に向けて協力してきた。

彼によると、これまで多くのデベロッパがUnityのWebGLポートを求めてきたし、いつごろ実現するのかと何度も何度も聞かれた。ただし今回の発表ぶんはあくまでも最初の第一歩であり、WebGLに関してもasm.jsに関しても、今後まだまだやるべきことは多い、と。

Unity TechnologiesのシニアデベロッパRalph Hauwertも同様のことを述べ、でも最初のバージョンが出たら、その後の開発はUnityとMozillaだけでなく、デベロッパのコミュニティが参加して進められるだろう、と言う。

どこかで聞いたような話だなぁ、と思われた読者もおられると思うが、実は先週Mozillaは、EpicのUnreal Engine 4がWebGLとasm.jsをサポートする、と発表したばかりだ。たしかに、JavaScriptをネイティブに近いまでに高速化するソリューションであるasm.jsに対しては業界全体としての支持もあり、またゲームデベロッパたちも、自分たちのゲームがプラグイン不要でWeb上で動くことには、並々ならぬ関心がある。

しかしなぜか、ハイエンドのゲームをブラウザに持ち込む方法としてNative Clientに賭けているGoogleからは、最近音沙汰がない。

Unity 5.0とそれが提供する機能の詳細は、本誌の別記事に書かれている。

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


EpicとMozillaが共同でUnreal Engine 4をWebにポート, Webゲームの高速化いよいよ本番

EpicとMozillaが今日(米国時間3/12)、Unreal Engine 4をWebにポートすると発表した

昨年のGame Developers ConferenceでMozillaは、Unreal Engine 3のポートを発表し、多くのトリプルAゲームの基盤になっているグラフィクスエンジンがブラウザ上でも動くことを見せつけた。それは多くのデベロッパにとって目覚まし時計が鳴る音になり、数年前までにはWebとブラウザには不可能だった高度なゲーム体験を、今やプラグインなしで提供できることを自覚させた。

それを可能にするMozilla側のツールが、JavaScriptを高速化したasm.jsと、C/C++のコードをasm.jsのコードにコンパイルする(==どのブラウザでも動くようにする)コンパイラEmscriptenだ。いずれももちろん、WebGLが必要である。Firefoxの今の安定バージョンはasm.jsをサポートしているので、コンパイル後のC++のコードをネイティブで動かす場合の1.5倍のスピードをブラウザ上で実現できる。

Mozillaの技術部長でWebGLを作ったVladimir Vukicevicによると、1年前のUnreal Engine 3のデモはまさに単なるデモだったが、今回のUnreal Engine 4でEpicは、Webをゲーム開発のためのメインのプラットホームにしてしまうエンジンとしてデベロッパたちに紹介するつもりだ。今のところは文字通りのデモがあるだけだが、もうすぐデベロッパが実際に利用できるようになる。

MozillaのCTOで技術担当SVPでもあるBrendan Eichは今日の声明の中で、“これからはWebのリンクをクリックしてすぐに遊べるゲームと、時間をかけてダウンロードしインストールしなければならないゲームが、見分けがつかないほどのほぼ同じ体験になる。Emscriptenを使ってCやC++をasm.jsへコンパイルすると、ブラウザ上にネイティブに近いスピードが実現するので、Webをそのほかのプラットホームと同格に遇することができる”。

以下は、EpicがGame Developers Conferenceで見せたデモのビデオだ(SoulとSwing Ninja):

【中略】

asm.jsで実際に商用開発を行っている企業の一つがTrendy Entertainmentで、そのゲーム事業部の名前はNomNom。NomNomが初めてデモしたWebベースのゲームMonster Madnessは、昨年12月にリリースされた。今では同ゲームのユーザの半数がWebバージョンをプレイしている。

Googleは、ハイエンドの3Dグラフィクスをブラウザに持ち込むための技術として、Native Clientを押している。Mozillaのasm.jsがJavaScriptであるのに対し、Googleはネイティブコードをブラウザ内で動かそうとする。でもこの技術は、ほかのブラウザがサポートしていないだけでなく、Chromeでもデフォルトではoffだ。

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


Mozillaのasm.jsがさらにネイティブコードのスピードに近づく

Mozillaのasm.jsはJavaScriptの厳密なサブセットだが、Firefox上の処理系/実装系はそれを、通常のJavaScriptのコードよりも相当高速に動かせる。すなわち、Firefoxが内蔵しているJavaScriptエンジンにはOdinMonkeyと呼ばれるモジュールがあって、そのおかげで今年の3月にはasm.jsのコードがネイティブコードの約2倍の所要時間で動くことを実証した*。そして今週のMozillaの発表 では、多くのベンチマークにおいて、ネイティブの1.5倍以下という遅さ(速さ?)にまで接近した。〔*: 約2倍;ネイティブよりもちろん遅いのだけど相当接近した、という意味。2倍よりは1.5倍の方が、もちろん速い。〕

GoogleはNative ClientでWebアプリケーションが、コンパイラを通ったまさにネイティブのコードを実行することをねらっているが、MozillaはJavaScriptをネイティブに近い速さで動かす方に賭けている。両者のやり方は相当違うけど、共通しているのはどちらも、デベロッパがまずCやC++でコードを書き、それをブラウザ内で動かすことだ。Mozillaはそのために、LLVMからJavaScriptへのコンパイルを行うコンパイラEmscriptenを使用する。

ゲームエンジンはCやC++で書かれているものが多いので、asm.jsも主にゲームをねらっている。実際、Mozillaが初めて公開したasm.jsのデモの一つは、ブラウザ内でネイティブに走るEpicのUnreal Engine 3だった。

かつての2倍遅いから今回の1.5倍遅いへの改良は、asm.jsとコンパイラEmscripteの両方をすこしずついじって達成された、とMozillaのAlon ZakaiRobert Nymanが発表の中で言っている。また、FirefoxのJavaScriptエンジンの改良の効果も大きい。ZakaiとNymanによると、中でもとくにスピードアップに貢献したのは、一部の浮動小数点数演算のの最適化だ。

asm.jsが2倍とか1.5倍と言っている対照のネイティブコードは、C/C++によるオリジナルをgccやclangでコンパイルした結果である。それを、Emscriptenとasm.jsによるコードと比較している。

下図は、最新の結果だ:


〔ブラウザ~HTMLがサイズを縮小しているので、クリックして別画面で見ると原寸で(大きく)見れます。〕

asm.jsは今のところMozillaのプロジェクトだが、GoogleのChromeチームはかねてから気にしていて、最近そのOctaneベンチマークの一員に加えた。Chrome本体がasm.jsを近々サポートすることはないと思うが、asm.jsのコードは、ふつうのJavaScriptコードとしては今のどのJavaScriptエンジンでも動く。Firefoxの上ほど速くないけど。

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


Firefox 22安定版リリース―asm.jsとWebRTCをサポートでウェブ・アプリ開発全般にも大きな影響

今日(米国時間6/25)、MozillはFirefox 22リリースした。これはWebRTCプロトコルasm.js JavaScriptサブセットをサポートする最初の安定版Firefoxだ。

Microsoftの場合を除けば、現在、ブラウザのアップデートは日常的ルーチンになっている。しかし今回のWebRTCとasm.jsの追加は今後のウェブアプリの開発のあり方を大きく変える可能性がある。当面Firefoxをターゲットにしていないデベロッパーもこの変化には注目しておく必要があるだろう。

 

ビルトインWebRTCのサポート

デベロッパーはWebRTCを利用してビデオチャットや音声通話、ファイル共有などの機能をビルトインしたアプリを開発することができる。サードパーティのプラグインやソフトウェアを組み込む必要はない。Tokboxを始め多くの企業がWebRTCに社運を掛けている。しかし現在までWebRTCをサポートする有力ブラウザはGoogle Chromeだけだった。今回Firefox安定版がWebRTCをサポートしたことでスタートアップも既存大企業もこぞってこのテクノロジーの利用を始めるだろう。今のところMicrosoftだけがWebRTCとは異なる規格の採用を決めているが、将来Internet ExplorerにもWebRTCが採用される可能性は大いにある。

asm.js

asm.jsもゲームのルールを変える可能性のある重要なテクノロジーだ。われわれが3月の記事で詳しく紹介したとおり、asm.jsはJavaScriptのサブセットで、ウェブブラウザ内でネーティブアプリに匹敵する高速で作動する。MozillaのCTO、BrendanEichは私の取材に対して、「メモリが安全ではないC、 C++のような言語に対して安全なバーチャルマシンを構成できるJavaScript言語のサブセットだ」と説明した。EmscriptenのようなC and C++をasm.js向けにコンパイルできるツールのおかげで、デベロッパーは既存のC、C++プログラムをブラウザ内で安全に作動させることができるようになる。

この新機能はMozillaのBananaBreadゲーム・デモで試すことができる。このデモにはWebGL、Emscripten、asm.js、WebRTCが使われており、ハイエンドの3Dマルチプレイヤー・ゲームをブラウザ内で高速に作動させることができることを証明している。

その他Firexfox 22ではWebGLのレンダリングのパフォーマンスの向上などいくつかのマイナー・アップデートがある。詳細なリリースノートはこちら

[原文へ]

(翻訳:滑川海彦 Facebook Google+