Doom3 が WebAssembly を使ってブラウザで動く

Doom3 が WebAssembly を使ってブラウザで動く

Doom WebGL Browser

あのDoom3ゲームがWebAssemblyを使ってブラウザ上で動く – Gabriel Cuvillier氏とのQ&A

D3Wasm:id Tech 4 -Doom3エンジンのWebAssemblyへの移植

OpenGL ES 2.0のWebGLサブセットとGLSLシェーダーを使用してバックエンドレンダラーが作り直され、今年初めにリリースされた初期バージョンと比較してパフォーマンスが大幅に向上し、ゲームデータの読み込み/キャッシュが改善され、安定性が修正され、ローカルのsavegamesがサポートされています。 

最初の制約は、何よりもまず、WebAssemblyが低レベルの仮想マシンである、ということです。最終的にはバイトコードが専用プログラムによって解釈されるのですから、独自のネイティブ命令セットを実行する汎用CPUのパフォーマンスには歯が立ちません!Just-In-Timeコンパイラを使用しない場合、これによるパフォーマンスヒットは少なくとも2倍になります(これはもちろん、私の個人的な観察による経験的数値です。このトピックに関しては、もっと正確な学術的研究があるかも知れません)。

"外の世界"で起きることは多かれ少なかれ … JavaScript,最終的にはブラウザとそのセキュアなサンドボックスに拘束されています。"外の世界"には、グラフィックスやオーディオAPIも含まれます。つまり、WasmコードがグラフィックAPIを呼び出しても、ネイティブビルドで使用されるグラフィックカードドライバが直接呼び出されるのではなく、正しい"Web API"を呼び出すための小さなJavascriptレイヤが毎回関与して、いくつかのチェックや検証を行った末に、ブラウザがそのWeb API呼び出しをグラフィックドライバ呼び出しに変換し、転送するのです。"安全なサンドボックス"を抜け出すには、コストが必要です。

コメントを残す

メールアドレスが公開されることはありません。

Next Post

Pythonでプログラミングするときに間違っている5つのこと

月 5月 2 , 2022
Pythonでプログラミングするときに間違っている5つのこと