WebGL: WebAssembly と今後のロードマップについて

6月 18, 2015 : Technology

昨日、Chrome, Edge と Firefox の開発会社である GoogleMicrosoft および Mozilla が、WebAssemblyという新しいクロスブラウザテクノロジーについて発表しました。これはとてもエキサイティングなニュースで、なぜならUnityのWebGL向け機能におけるユーザー体験を大きく向上させるものだからです。

WebAssemblyは技術的には新しい、独立した標準として定義されていますが、私たちから見ればこれは要するに asm.js という JavaScript サブセットのバイトコード版と言えます。(asm.jsはUnityのコードをWebGLで動作させるために使用されています)現在のテキストベースの表現と比較すると、バイトコードを使用できることでサイズを圧倒的に小さくすることができます。これはコードをダウンロードする速度を改善するだけでなく、JavaScript上でのコードのコンパイルもより速く、少ないメモリで出来るようになることを意味します。コードのコンパイル速度およびメモリ使用量は、現在UnityのWebGL機能を利用している開発者には、いくつかあるよく知られた問題の一つです。
私たちは、ブラウザがサポートをし次第、UnityのWebGL出力をWebAssemblyバイトコードに切り替える予定です。この機能をネイティブでサポートしないブラウザについては、バイトコードはJavaScriptを使ってブラウザ上で大変効率よくテキストベースのasm.jsに変換出来るため、そのような対応にする予定です。 – その場合でも、ダウンロードサイズが小さくなることで、最終的にコンテンツをロードするまでの時間はほとんどのケースで改善するでしょう。

私たちがWebAssemblyフォーマットを実験してみたところ、AngryBotsを使ったデモではasm.jsを使ったケースでは、生成されたコードは19.0MB ( gzipに圧縮後は4.1MB ) であったのに対し、WebAssembly バイトコードでは6.3MB ( gzip圧縮後は3.0MB ) まで小さくなりました。これはどう言うことかというと、ブラウザが処理しなければならないデータ量は1/3になり、さらにダウンロードサイズはおよそ3/4にすることが出来たというわけです。当然、削減効率自体はプロジェクトによって左右しますが、UnityのWebGL機能をつかうプロジェクトでは、全体的に同傾向の改善が見られることを期待しています。
WebAssemblyについてさらに知りたい場合は、こちらのFAQをご覧下さい。

このアナウンスメントに続いて、現在のWebGLに対する開発の状況や、次の一年間のうちに私たちが期待しているエコシステムの変化についても共有したいと思います。
たとえば、私たちは現在、さらなるビルドサイズの改善、SIMD.js対応、 Shared Array Buffers 対応 ( JavaScriptにマルチスレッド機能を提供します ) そしてWebGL 2.0 などに取り組んでいます。もっと詳しくお知りになりたい方は、ぜひ WebGL Roadmap フォーラム もチェックしてみてください。そちらにはより多くの情報を掲載しています。

もし、来週欧州で行われる Unite アムステルダム にお越しの方は水曜日の私のWebGLに関するセッションにご参加頂くか、ハンズオンラボに来て質問をいただければと思います。

コメント (3)

コメントの配信登録
  1. Dave Voyles

    6月 18, 2015 5:07 pm /  返信

    I love that Unity continues to adopt and implement the latest web features. Makes the life of us web devs much easier, but also forces the browser creators to continue to evolve.

    As much as 3x improvement in size? That’s incredible. And the power you get from WebGL (and specifically asm) is staggering. With WebGL 2.0 in the future I’m confident we’ll continue to close the game between native vs. web performance.

    Keep doing what you’re doing Unity, love it.

  2. Thrawn

    6月 18, 2015 11:51 am /  返信

    Impressive! Looking forward to those WebAssemblies!!!

  3. Dylan

    6月 18, 2015 9:53 am /  返信

    Awesome!

返信する

あなたのメールアドレスは公表されません。

これらの HTML タグや属性を使用できます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>