この翻訳は不完全です。英語から この記事を翻訳 してください。

モダンWebは、魅力的でクオリティの高いゲーム作りだけでなく、より重要な、そうしたゲームを配信するための、価値あるプラットフォームに急変身しました。

作成できるゲームの範囲は、デスクトップやネイティブ相当と同じレベルです。モダンWebテクノロジーと最近のブラウザがあれば、Web用に魅力的で最高級のゲームを作ることも完全に可能です。かつてFlashRを使って作られたシンプルなカードゲームやマルチ・プレイヤーのソーシャルゲームについて述べているのではなく、スゲェ3Dアクションシューティングや、RPGや、その他について述べています。JavaScript JITコンパイラテクノロジーと新APIの充実したパフォーマンス改良のおかげて、 ブラウザ (やFirefox OSベースの端末のようなHTML5パワー端末上) で動作するゲームを、妥協することなしに製作できます。

HTML5 ゲームプラットフォーム

本当に、Webをあなたのゲーム用のより優秀なターゲットプラットフォームだと考えることができます。気に入った言い方をすると、"Webはプラットフォームです"。Webプラットフォームのコアを見ていきましょう:

機能 テクノロジー
オーディオ Web Audio API
グラフィック WebGL (OpenGL ES 2.0)
入力 Touch events, Gamepad API, 端末センサー, WebRTC, Full Screen API, Pointer Lock API
言語 JavaScript (あるいは Emscripten を使って JavaScript にコンパイルする C/C++ )
ネットワーク WebRTC と/あるいは WebSockets
ストレージ IndexedDB あるいは "クラウド"
Web HTML, CSS, SVG, Social API (ともっとたくさん!)

ビジネスの場合

ゲーム開発者としては、個人でも大規模ゲームスタジオであっても、次のゲームプロジェクトでWebをターゲットにすることの意味あいを知りたいでしょう。Webがどう便利になるか見ていきましょう。

  1. Web のリーチは巨大です; つまりあらゆる場所です。HTML5で製作されたゲームは、スマートフォン、タブレット、PC、スマートTVで動作します。
  2. マーケティングと配信しやすさが改良されます。他の誰かのアプリストアで宣伝することに限定されません。その代わりに、他のメディア同様にWeb全体でゲームを広告・宣伝できて、Webに備わっているリンクやシェアのしやすさを利用して、新しい顧客にリーチできます。
  3. 大事な事も管理できます: 支払いの事です。ゲームが他人のエコシステム内にあるだけで、収益の30%以上を渡す必要はありません。その代わりに、希望する金額で、気に入った支払い処理サービスを使用できます。
  4. もっと管理について、希望するいかなる時にでも、ゲームを更新できます。他の会社の誰だかわからない人が、あなたの重大なバグ修正のリリースが今日になるか明日になるか決めるのを、ハラハラしながら承認待ちする必要はありません。
  5. アナリティクスを管理しましょう! あなたがどのアナリティクスを必要とするかについて他人が決めるのに頼るのでなく、自分自身 (や最も気に入ったサードパーティを選んで) で、売上やゲームのリーチを集めることができます。
  6. 顧客との関係(CR)をより密接に、自分の方法で管理するようになります。アプリストアの限定された仕組みでフィルタリングされた顧客フィードバックはもうたくさんです。望む方法で、中間業者なしに、顧客を引きつけてください。
  7. プレイヤーはゲームをいつでも、どこでもプレイできます。Webはユビキタスであるため、顧客は電話や、タブレットや、家のノートPCや、職場のデスクトップや、その他何によっても、ゲームの状況をチェック可能です。

ゲーム開発者用のWebテクノロジー

テクノ民のみなさん、Webがゲーム開発者のテーブルに運んでくるAPIを掘り下げましょう。こちらがWebが実現できる味付けの全体リストです:

Full Screen API
このシンプルな API では、あなたのゲームが全画面を占めることができます、その結果プレイヤーがアクションに没頭できます。
Gamepad API
ユーザがあなたのゲームで動作するゲームパッドや他のゲームコントローラを使用できるようにしたい場合、この API が必要になるでしょう。
HTMLCSS
この2つのテクノロジーは一緒になって、ゲームのUIを作成、スタイル、レイアウトする事ができます。HTMLの一部分は <canvas> 要素であり、これは2次元グラフィックスの1つの方法になります。
HTML オーディオ
<audio> 要素では、シンプルなSEと音楽を簡単に演奏できます。要望がもっと専門的な場合、リアルオーディオ処理のパワーのある Web Audio API を確認してください!
IndexedDB
ユーザデータを、ユーザ自身のコンピュータや端末に保持するパワフルなデータストレージAPIです。ゲームの状態とその他の情報をローカルに保存する良い方法で、必要な時に毎回ダウンロードする必要がなくなります。またユーザがWebに接続していない時 (何時間もずっと飛行機に載っているような時) であっても、ゲームを遊べるようにするのにも役立ちます。
JavaScript
JavaScript (Webで使われるプログラミング言語) は、モダンなブラウザでは劇的に高速で、ずっと高速化されてきています。あなたのゲームのコードを記述するのにリンク先を使うか、既存のゲームを簡単に移植するには EmscriptenAsm.js などのテクノロジーの使用を見てみます。
Pointer Lock API
ポインターロック API では、ゲームのインターフェイス内でマウスやその他のポインティングデバイスをロックし、その結果として絶対カーソル位置の代わりに、ユーザが行っている事についての座標の差分を受け取ることができて、ユーザ入力がたまたま別のどこかに送られてしまい、その結果重要なアクションを見失うのを防ぎます。
SVG (Scalable Vector Graphics)
ユーザのディスプレイサイズを気にすることなく、スムーズに拡大縮小するベクター画像を作ることができます。
Typed Arrays
JavaScriptの型付き配列はJavaScriptから生のバイナリデータに対するアクセスを提供します。GLテクスチャ、ゲームデータまたはその他のものを、ネイティブなJavaScript形式でなくても操作することができます。
Web Audio API
JavaScriptコードからオーディオの再生、合成、操作の制御するこのAPIを使うと、素晴らしい音声効果を作成したり、リアルタイムに音楽の再生、操作をすることができます。
WebGL
ウェブコンテンツからハイパフォーマンスで、ハードウェア・アクセラレーションを行う3D(または2D)グラフィックスを作成することができます。これはウェブでサポートされているOpenGL ES 2.0の実装です。
WebRTC
WebRTC (Real-Time Communications) APIを使用すると、音声会議や二者間でほかのアプリケーションデータのやり取りなど、オーディオとビデオを制御することができます。モンスター攻撃中にプレイヤー同士で会話をさせたいですか?これはそんなあなたのためのAPIです。
WebSockets
WebSocket APIを使用すると、あなたのアプリやサイトをサーバーと接続し、リアルタイムにデータのやり取りを行うことができます。マルチプレイヤーゲームアクションやチャットサービスなどに最適です。
Web Workers
Workerを使用すると、モダンでマルチコアなプロセッサを利用し、独自のJavaScriptコードを実行して、バックグラウンドのスレッドを生成することができます。
XMLHttpRequest と File API
XMLHttpRequestとFile APIを組み合わせることで、様々な種類のデータを送受信が可能になります("XML"という言葉にとらわれないでください!)。これは、新しいゲームレベルやアートワークのダウンロードから、非リアルタイムのゲームステータス情報のやり取りに至るまで、あらゆることをするためのすばらしい方法です。

ドキュメントのタグと貢献者

 このページの貢献者: shuuji3, tomgoodsun, Uemmra3, ikkou
 最終更新者: shuuji3,