ゲーム開発のためのツール
このページにはゲーム開発ツールに関する記事へのリンクがまとまっています。ゆくゆくはフレームワークやコンパイラー、デバッグ用ツールもカバーすることを目指しています。
- 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 へコンパイル) |
| ネットワーク | WebRTC や WebSockets |
| ストレージ | 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 にコンパイルします。
まずは、以下をご覧ください。
- Emscripten について(英語)では、概要や大まかな詳細を含む。
- ダウンロードとインストール(英語)では、ツールチェーンのインストール方法について解説しています。
- Emscripten チュートリアル(英語)では、使い始め方を解説するチュートリアルを提供しています。