このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

ゲーム開発のためのツール

このページにはゲーム開発ツールに関する記事へのリンクがまとまっています。ゆくゆくはフレームワークやコンパイラー、デバッグ用ツールもカバーすることを目指しています。

asm.js

asm.js は極めて限定された JavaScript のサブセットで、ahead-of-time (AOT) コンパイラーで最適化されて、通常の JavaScript コードよりも極めて高速に動作します。これはもちろん、ゲーム用に優れています。

Emscripten

LLVM から JavaScript へのコンパイラーです。これを利用することで、C++ や LLVM バイトコードを出力する言語のコードを、高速に動作する JavaScript へコンパイルすることができます。これはアプリをウェブに移植する優秀なツールです。有用な Emscripten のチュートリアルがウィキにあります。

Firefox プロファイラー

Firefox プロファイラーを使えば、コードのプロファイリングを行い、パフォーマンスの課題がどこにあるのかを特定できるため、ゲームを最高の速度で実行可能です。

ゲーム開発とデバッグのためのツールチェーン

通常のウェブアプリのデバッグとどう違うのでしょうか?どのような専用ツールが利用できるのでしょうか?この点については、Will がツール(英語)で網羅的に解説する予定ですが、ここでは、Will の記事へのリンクをつけて、ゲームのデバッグに役立つ実践的なツールチェーンのチュートリアルを紹介したいと思います。

  • 基本的なツールの概要
  • シェーダエディター(英語)
  • パフォーマンスツール(現在開発中、2014 年初頭予定)

ウェブ技術

ゲーム開発におけるウェブ技術とその役割
役割 技術
オーディオ ウェブオーディオ API
グラフィック WebGL (OpenGL ES 2.0)
入力 タッチイベント, ゲームパッド API, 端末のセンサー, WebRTC, 全画面 API, ポインターロック API
言語 JavaScript(または C/C++ で Emscripten を使用して JavaScript へコンパイル)
ネットワーク WebRTCWebSockets
ストレージ IndexedDB または「クラウド」
ウェブ HTML, CSS, SVG(その他たくさん)
フェッチ API

ウェブサーバーとの間で、新しいゲームのステージやアートワークのダウンロードから、非リアルタイムのゲームステータス情報の送受信に至るまで、あらゆる種類のデータを自由にやり取りできます。

全画面 API

全画面でゲームをプレイします。

ゲームパッド API

ゲームパッドやその他のゲームコントローラーを使用します。

HTML および CSS

ゲームのインターフェイスを構築し、スタイル設定やレイアウトを設定します。

HTML audio

単純な効果音や音楽を簡単に再生できます。

IndexedDB

ユーザーデータを各自のコンピューターや端末に格納します。

JavaScript

ゲームのコードを書くための高速なウェブプログラミング言語です。 既存のゲームを簡単に移植するには、Emscripten または Asm.js をご利用ください。

ポインターロック API

ゲームのインターフェイス内に、マウスやその他のポインティングデバイスをロックします。

SVG (Scalable Vector Graphics)

ユーザーのディスプレイのサイズや解像度に関係なく、スムーズに変倍されるベクターグラフィックを作成します。

型付き配列

JavaScript で生のバイナリーデータにアクセスし、GL テクスチャやゲームデータなど、何らかのデータを操作できます。

ウェブオーディオ API

音声の再生、合成、および加工をリアルタイムで制御します。

WebGL

高性能でハードウェアアクセラレーション対応の三次元(および二次元)グラフィックを作成します。OpenGL ES 2.0 です。

WebRTC

音声と映像データを制御するためのリアルタイム通信。これには、テレビ会議や、チャット同様に 2 人のユーザー間でアプリケーションデータをやり取りする機能などが含まれます。

WebSocket

アプリやサイトをサーバーに接続して、データをリアルタイムでやり取りしましょう。マルチプレイヤーゲームやチャットサービスなどに最適です。

ウェブワーカー

マルチコアプロセッサー向けに、独自の JavaScript コードを実行するバックグラウンドスレッドを生成します。

ネイティブゲームをウェブに移植する

ネイティブ開発者(例えば、C++ でゲームを開発している方)で、自分のゲームをウェブに移植する方法に関心があるなら、当社の Emscripten について詳しく知っておくことをお勧めします。これは LLVM から JavaScript へのコンパイラーであり、LLVM バイトコード(例:Clang を使用して C/C++ から生成されたもの、あるいは他の言語から生成されたもの)を受け取り、ウェブ上で実行可能な asm.js にコンパイルします。

まずは、以下をご覧ください。