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

View in English Always switch to English

ゲーム開発テクニック

このページでは、オープンウェブ技術を使用してゲームを開発したい人のために、必要不可欠なコア技術をリストアップしています。

asm.js の非同期スクリプト

全ての中~大規模ゲームでは、コンパイル処理を最適化してブラウザーを最大限柔軟にする、非同期スクリプトとして asm.js コードをコンパイルします。 Gecko では、非同期コンパイルによって、ゲームの読み込み時に JavaScript エンジンがメインスレッド外で asm.js をコンパイルし、生成した機械語コードをキャッシュして、それ以降の読み込み時にコンパイル不要となります(Firefox 28から)。違いを見るには、about:configjavascript.options.parallel_parsing を反転させてください。

WebRTC データチャネル

WebRTC (Web Real-Time Communications、ウェブリアルタイム通信) API は、主に音声や動画の通信に対応していることで知られていますが、ピアツーピアのデータチャネルも提供されています。この記事では、このことについて詳しく説明し、ゲームにデータチャンネルを搭載するためにライブラリーを使用する方法を紹介します。

ウェブゲーム用の音声

音声はゲームの重要部分です。つまりこれはフィードバックと雰囲気を与えます。ウェブベースの音声は早くから成熟していますが、まだ多くのブラウザーに案内すべき違いがあります。ゲームエクスペリエンスにとってどの音声パーツが重要で、どれがあっても良いけど不要なものかを決めて、それに従って戦略を決めるのが必要となる事がよくあります。この記事ではウェブゲーム用の音声を実装するための詳細なガイドを提供し、現在なるべく広い範囲のプラットフォームで動作するものを観察します。

ウェブ上の三次元ゲームの概要

ウェブでのリッチなゲーム体験を実現するためには、HTML の canvas 上にレンダリングされる WebGL が武器となります。 WebGL は基本的にウェブ用の OpenGL ES 2.0 であり、リッチでインタラクティブなアニメーションや、もちろんゲームを構築するためのツールを提供する JavaScript API です。ハードウェアアクセラレーションによる JavaScript で、動的な三次元グラフィックを生成し、レンダリングすることができます。

ゲームパッド API を使用したコントロールの実装

この記事では、ゲームパッド API を使用してウェブゲーム用の効果的なクロスブラウザー制御システムを実装し、ゲーム機のゲームコントローラーを使用してウェブゲームを制御できるようにします。 Enclave Games によって作成されたケーススタディゲーム Hungry Fridge を掲載しています。

ゲーム制御機構の搭載

ゲーム開発プラットフォームとしての HTML5 の主な利点の 1 つは、さまざまなプラットフォームおよび端末上で実行できることです。端末間の違いを合理化することは、特に異なるコンテキストに適切なコントロールを提供するときには、複数の課題を生み出します。このシリーズの記事では、タッチ画面のスマートフォン、マウス、キーボード、そしてゲームパッドなどのあまり一般的ではないメカニズムを使用してプレイできるゲームの構築方法について説明します。

三次元の衝突検出

この記事では、三次元環境で衝突検出を実装するために使用されるさまざまなバウンディングボリューム手法の概要を説明します。後続の記事では、特定の 3D ライブラリーに搭載されたものを取り上げる予定です。

二次元の衝突検出

二次元ゲームでの衝突を判定するアルゴリズムは、衝突する図形の種類に依存します(例:矩形と矩形、矩形と円、円と円など)。一般的には、「ヒットボックス」として知られる実体に応じたシンプルな汎用図形を保有することになるので、たとえ衝突がピクセル単位で完璧でなくても、十分に見栄えが良く、複数の実体にわたってパフォーマンスを発揮することができるのです。この記事では、二次元ゲームで衝突判定を提供するために使用される最も一般的なテクニックのレビューを提供します。