Please note, this is a STATIC archive of website developer.mozilla.org from November 2016, cach3.com does not collect or store any user information, there is no "phishing" involved.

Web用のゲーム開発入門

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

モダン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が実現できる味付けの全体リストです:

フルスクリーン API
このシンプルな API では、あなたのゲームが全画面を占めることができます、その結果プレイヤーがアクションに没頭できます。
ゲームパッド API
ユーザがあなたのゲームで動作するゲームパッドや他のゲームコントローラを使用できるようにしたい場合、この API が必要になるでしょう。
HTMLCSS
この2つのテクノロジーは一緒になって、ゲームのUIを作成、スタイル、レイアウトする事ができます。HTMLの一部分は <canvas> 要素であり、これは2次元グラフィックスの1つの方法になります。
HTML オーディオ
<audio> 要素では、シンプルなSEと音楽を簡単に演奏できます。要望がもっと専門的な場合、リアルオーディオ処理のパワーのある Web Audio API を確認してください!
IndexedDB
ユーザデータを、ユーザ自身のコンピュータや端末に保持するパワフルなデータストレージAPIです。ゲームの状態とその他の情報をローカルに保存する良い方法で、必要な時に毎回ダウンロードする必要がなくなります。またユーザがWebに接続していない時 (何時間もずっと飛行機に載っているような時) であっても、ゲームを遊べるようにするのにも役立ちます。
JavaScript
JavaScript (Webで使われるプログラミング言語) は、モダンなブラウザでは劇的に高速で、ずっと高速化されてきています。あなたのゲームのコードを記述するのにリンク先を使うか、既存のゲームを簡単に移植するには EmscriptenAsm.js などのテクノロジーの使用を見てみます。
ポインターロック API
ポインターロック API では、ゲームのインターフェイス内でマウスやその他のポインティングデバイスをロックし、その結果として絶対カーソル位置の代わりに、ユーザが行っている事についての座標の差分を受け取ることができて、ユーザ入力がたまたま別のどこかに送られてしまい、その結果重要なアクションを見失うのを防ぎます。
SVG (Scalable Vector Graphics)
Lets you build vector graphics that scale smoothly regardless of the size or resolution of the user's display.
Typed Arrays
JavaScript typed arrays give you access to raw binary data from within JavaScript; this lets you manipulate GL textures, game data, or anything else, even if it's not in a native JavaScript format.
Web オーディオ API
This API for controlling the playback, synthesis, and manipulation of audio from JavaScript code lets you create awesome sound effects as well as play and manipulate music in real time.
WebGL
Lets you create high-performance, hardware-accelerated 3D (and 2D) graphics from Web content. This is a Web-supported implementation of OpenGL ES 2.0.
WebRTC
The WebRTC (Real-Time Communications) API gives you the power to control audio and video data, including teleconferencing and transmitting other application data back and forth between two users. Want your players to be able to talk to each other while blowing up monsters? This is the API for you.
WebSockets
The WebSocket API lets you connect your app or site to a server to transmit data back and forth in real-time. Perfect for multiplayer gaming action, chat services, and so forth.
Web Workers
Workers give you the ability to spawn background threads running their own JavaScript code, to take advantage of modern, multi-core processors.
XMLHttpRequest and File API
The combination of XMLHttpRequest and the File API lets you send and receive any kind of data you want (don't let the "XML" throw you!) from a Web server. This is a great way to do anything from downloading new game levels and artwork to transmitting non-real-time game status information back and forth.

 

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

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