(57)【要約】【課題】代替コントローラおよびインタフェースでブラウザベースのゲームをプレイするための方法、システム、およびコンピュータプログラムを提供する。【解決手段】ある実施の形態はゲーム用に規定されたネイティブ入力の規定を受信する。ネイティブ入力はネイティブデバイスを起源とし、ゲーム中にアクションを生じさせることができる。さらに、ネイティブ入力の全ては持たない代替入力を検出する。ネイティブ入力は、ネイティブ入力から、代替デバイスからの代替入力へマッピングされる。マッピングにしたがって、代替デバイスによって生成された入力は対応するネイティブ入力に翻訳され、ゲーム中に対応するアクションを引き起こす。他の実施の形態は、ゲームをプレイするためにウェブページ内のゲームエリアが特定される。ゲームエリアのサイズを増加するとともにウェブページ内の他の要素のサイズを減少させることによって、ゲームエリアは拡大される。【選択図】図２Ａ
2011086293.tif 000002
【特許請求の範囲】
【請求項１】
ブラウザベースのゲーム用に規定され、かつ前記ゲーム内でアクションを引き起こすことのできるネイティブ入力であって、ネイティブデバイスで前記アクションと紐づけられている前記ネイティブ入力の規定を受信し、
前記ゲームにアクセスするときに、前記ネイティブ入力それぞれを持たない代替デバイスを検出し、
前記ネイティブデバイスからの複数の前記ネイティブ入力を、前記代替デバイスからの複数の代替入力にマッピングし、
前記ゲーム内で対応するアクションを引き起こすために、前記マッピングにしたがって、前記代替デバイスによって生成された入力を対応するネイティブ入力に翻訳し、
前記ゲーム内で対応するアクションを引き起こすために、前記代替入力用のマッピングは前記代替入力の翻訳のためにゲームプレイ中に維持されることを特徴とするブラウザベースのゲームをプレイする方法。
【請求項２】
プレイヤに使用されている別の代替デバイスを検出し、
前記ネイティブ入力を、前記別の代替デバイスからの代替入力に再マッピングすることをさらに含むことを特徴とする請求項１に記載の方法。
【請求項３】
ゲームをプレイするためのウェブページ内のゲームエリアを特定し、
前記ゲームエリアのサイズを増加するとともに、前記ウェブページ内の他の要素のサイズを減少することで前記ゲームエリアを拡大することをさらに含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記ネイティブデバイスは、一またはそれ以上のボタン、キー、タッチパッド、ジョイスティック、ローラーボール（ｒｏｌｌｅｒ ｂａｌｌ）、または光学モーションセンサを含むデータ入力デバイスであることを特徴とする請求項１に記載の方法。
【請求項５】
前記ネイティブデバイスは、キーボードまたはマウスで構成されるグループから選択されることを特徴とする請求項１に記載の方法。
【請求項６】
前記代替デバイスは、ゲームコントローラ、ゲームコントローラの動きを検出するカメラ、プレイヤの動きを検出するカメラ、音声命令を検出するマイクロフォン、リモコン、電話のキーパッド、またはタッチスクリーンで構成されるグループから選択されることを特徴とする請求項１に記載の方法。
【請求項７】
前記ネイティブ入力のマッピングは、
前記代替デバイスの入力レイアウトを受信し、
前記ネイティブ入力の規定中の前記ネイティブ入力それぞれについて、ネイティブ入力それぞれを前記代替デバイスの入力レイアウトからの別の代替入力にマッピングすることをさらに含むことを特徴とする請求項１に記載の方法。
【請求項８】
前記ブラウザベースのゲーム用にダウンロードした前記ゲームをセーブするオプションをウェブページ内に追加し、
前記ゲームをセーブするオプションが選択されたとき前記ゲームのステータスをセーブし、
前記ゲームのプレイを再開するために、前記ゲームのステータスを用いて前記ゲームを復元することをさらに含むことを特徴とする請求項１に記載の方法。
【請求項９】
前記ゲームを実行している計算機におけるウェブページに広告コンテンツを追加することをさらに含むことを特徴とする請求項８に記載の方法。
【請求項１０】
前記ゲームを実行しているコンソールにおいてプレイされたゲームの履歴とスコア結果とを保存することをさらに含むことを特徴とする請求項１に記載の方法。
【請求項１１】
前記履歴を中央ゲームサーバに送信し、
前記履歴をもとにゲームの統計情報を収集し、
プレイヤのコミュニティでゲームの統計情報を利用可能にすることをさらに含むことを特徴とする請求項１０に記載の方法。
【請求項１２】
前記コンソールにおいて、プレイされたゲームの履歴およびスコア結果を含むローカルなカスタムウェブページを作成し、
前記ローカルなカスタムウェブページを表示することをさらに含むことを特徴とする請求項１０に記載の方法。
【請求項１３】
前記ローカルなカスタムウェブページは、保存されたゲーム、お気に入りのゲーム、最も人気のあるゲーム、およびゲームの提案をさらに含むことを特徴とする請求項１２に記載の方法。
【請求項１４】
インターネット上で使用可能なゲームについての情報を収集し、
インターネット上のゲームを探すためのゲーム検索ウェブページを表示することをさらに含み、
前記ゲーム検索ウェブページは、ゲームサイト、ゲームのカテゴリ、新しいゲーム、最も人気のあるゲーム、推薦されたゲーム、または友達によってプレイされたゲームで構成されるグループから選択される検索オプションを含むことを特徴とする請求項１に記載の方法。
【請求項１５】
ブラウザベースのゲーム用の入力パラメータを受信し、
前記入力パラメータ用に、ネイティブ入力コントロールデバイス用に規定されているネイティブ入力キーを決定し、
前記ネイティブ入力キーを、ネイティブではないコントロールデバイスにマッピングし、
前記ネイティブではないコントロールデバイスからの入力を検出し、
前記検出した入力をネイティブ入力キーに翻訳することを含み、
前記ネイティブではないコントロールデバイスで前記ネイティブ入力コントロールデバイスをシミュレートするために、ゲームのプレイの間、前記ネイティブ入力キーへのマッピングは、前記検出した入力を翻訳するために維持されることを特徴とするブラウザベースのゲームをプレイする方法。
【請求項１６】
プレイヤによって使用されている、ネイティブではない別のコントロールデバイスを検出し、
前記ネイティブ入力キーを、前記ネイティブではない別のコントロールデバイスに再マッピングすることをさらに含むことを特徴とする請求項１５に記載の方法。
【請求項１７】
前記入力パラメータと、前記入力キーと、前記ネイティブではないコントロールデバイスからの入力との間のマッピングを特定する入力マッピングテーブルを規定することをさらに含むことをさらに含むことを特徴とする請求項１５に記載の方法。
【請求項１８】
ブラウザベースのゲーム中のアクションを引き起こすとともにネイティブデバイスでアクションと紐づけられている前記ゲーム用のネイティブ入力の規定を受信するゲーム情報検索モジュールと、
前記ネイティブ入力デバイスからの複数の前記ネイティブ入力を、前記ネイティブ入力を持たない代替デバイスからの複数の代替入力にマッピングする入力変換モジュールとを含み、
前記入力変換モジュールは、前記マッピングされたネイティブ入力にしたがって、前記代替デバイスで生成された入力を対応するネイティブ入力に翻訳することを特徴とするブラウザベースのゲームをプレイするためのシステム。
【請求項１９】
ウェブページに埋め込まれている前記ゲームをダウンロードするように構成されたインターネットブラウザをさらに含むことを特徴とする請求項１８に記載のシステム。
【請求項２０】
前記ゲームをプレイするための前記ウェブページ内のゲームエリアを特定し、
前記ゲームエリアのサイズを増加するとともに、前記ウェブページ内の他の要素のサイズを減少することによってゲームエリアを拡大し表示するように構成されたゲームプロセッサをさらに含むことを特徴とする請求項１９に記載のシステム。
【請求項２１】
前記入力変換モジュールは、
デバイステーブルであって、当該デバイステーブルの各エントリは対応するデバイスのための入力レイアウトを含むデバイステーブルと、
ゲーム入力テーブルであって、当該ゲーム入力テーブルの各エントリは前記ネイティブデバイスでプレイするためにブラウザベースのゲームのプロバイダによって作成された規定を含むゲーム入力テーブルと、
マッピングテーブルであって、当該マッピングテーブルの各エントリは対応するゲームをプレイするためにネイティブデバイスと代替デバイスとの間のマッピングを記述するマッピングテーブルをさらに含むことを特徴とする請求項１８に記載のシステム。
【請求項２２】
前記入力変換モジュールはアービタ（arbiter）をさらに含み、当該アービタは、
前記マッピングテーブルを検索して代替入力と一致するネイティブ入力を探し、
前記マッピングテーブルを用いて前記ネイティブ入力を前記代替入力に関連づけ、
マッピングされていないネイティブ入力をサーバから取得した情報でマッピングし、
前記代替入力用のグラフィカルなマッピング表現を表示するように構成されていることを特徴とする請求項２１に記載のシステム。
【請求項２３】
複数のウェブサイトから実行可能なウェブゲームの情報を収集し、
プレイされたゲームの結果を収集し、
前記収集した結果をもとに統計情報を生成するように構成されているサーバをさらに含むことを特徴とする請求項１８に記載のシステム。
【請求項２４】
前記サーバは、プレイヤによるゲーム評価を収集するようにさらに構成されていることを特徴とする請求項２３に記載のシステム。
【請求項２５】
コンピュータに読み込み可能な記録媒体に記録され、一またはそれ以上のプロセッサによって実行されたときブラウザベースのゲームをプレイするためのコンピュータプログラムであって、当該プログラムは、
前記ゲーム用に規定され、かつ前記ゲーム内でアクションを引き起こすことのできるネイティブ入力であって、ネイティブデバイスで前記アクションと紐づけられている前記ネイティブ入力の規定を受信するためのプログラム命令と、
前記ゲームにアクセスするときに、前記ネイティブ入力それぞれを持たない代替デバイスを検出するためのプログラム命令と、
前記ネイティブデバイスからの複数の前記ネイティブ入力を、前記代替デバイスからの複数の代替入力にマッピングするためのプログラム命令と、
前記ゲーム内で対応するアクションを引き起こすために、前記マッピングにしたがって、前記代替デバイスによって生成された入力を対応するネイティブ入力に翻訳するためのプログラム命令とを含み、
前記ゲーム内で対応するアクションを引き起こすために、前記代替入力用のマッピングは前記代替入力の翻訳のためにゲームプレイ中に維持されることを特徴とするコンピュータプログラム。
【請求項２６】
複数の前記ネイティブ入力を前記代替デバイスからの複数の代替入力へのマッピングをカスタマイズするためのプログラム命令をさらに含むことを特徴とする請求項２５に記載のコンピュータプログラム。
【請求項２７】
入力マッピングテンプレートであって、各テンプレートはひとつのゲームカテゴリに対応する入力マッピングプレートを規定するプログラム命令をさらに含むことを特徴とする請求項２５に記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ブラウザベースのゲームをプレイする方法、システム、およびコンピュータプログラムに関し、特に代替コントローラおよび改良されたインタフェースを用いてブラウザベースのゲームをプレイする方法、システム、およびコンピュータプログラムに関する。
【背景技術】
【０００２】
ブラウザゲームとは、ウェブブラウザ上でプレイするビデオゲームである。ブラウザゲームは、一般的には、ウェブブラウザの他にクライアントソフトウェアのインストールを要求されない点で他のビデオゲームやコンピュータゲームと異なる。あるゲームはＪａｖａＳｃｒｉｐｔ（登録商標）や、ＦＬＡＳＨ Ｐｌａｙｅｒ（商標または登録商標）またはＪａｖａ（登録商標）等の一般的なプラグインのようなクライアントサイドの技術にのみ依存し、またあるものはサーバサイドのスクリプトを使用する。サーバサイドの計算を使用するゲームは、マルチプレイヤゲームや、簡単な２人対戦のボードゲームを多く含む。これらのゲームにおいて、ユーザはサーバコンピュータまたは第２のプレイヤとプレイする。クライアントサイドのゲームは、一般的には、シングルプレイヤのゲームである。ウェブブラウザ内でプレイされるゲームは、しばしばブラウザベースのゲーム（a browser -based game （BBG））と呼ばれる。
【０００３】
ＢＢＧのひとつの重要な利点は、コンピュータ上のウェブブラウザでアクセスする大きなユーザコミュニティが存在する点である。ウェブブラウザはハードウェアに依存するため、高価なプラットフォームのカスタマイズをすることなく多くのタイプのコンピュータやハードウェアアーキテクチャでＢＢＧをプレイすることができる。加えて、インターネットを介してゲームは簡単にダウンロードされる。ゲームの複雑性が抑えられる傾向にあり、長い時間待つことなくゲームをダウンロードできる程度にファイルサイズが十分小さいからである。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
一方で、ＢＢＧには若干の欠点もある。ゲームは一般的なブラウザプラットフォーム用に設計されているため、そのブラウザによって提供される制限された機能にゲームの特性が拘束される。例えば、多くのＢＢＧはキーボードやマウスの入力を用いるが、それはシューティングゲームのようなある種のゲームには理想的とは言えない。さらに、ＢＢＧのユーザインタフェースはブラウザに拘束される。広告や他のウェブを特徴付けるものに囲まれるため、プレイエリアはしばしば小さなものとなる。これらのゲームの多くは無料であり、開発者はウェブサイトを維持するために広告収入に頼っているからである。
【０００５】
このような文脈から本発明の実施の形態は生まれた。
【課題を解決するための手段】
【０００６】
本発明の実施の形態は、代替コントロールおよびインタフェースでブラウザベースのゲームをプレイするための方法、システム、およびコンピュータプログラムである。当然のことながら、本発明は、プロセス、装置、システム、デバイス、またはコンピュータで読み取り可能なメディアにおける方法等の様々な手段で実装可能である。本発明の様々な実施の形態は以下に記述される。
【０００７】
ある実施の形態では、ゲーム用に規定された本来の入力の規定を受信する。本来の入力は本来のデバイスを起源とし、ゲーム中にアクションを生じさせることができる。さらに、本来の入力の全ては持たない代替入力を検出する。本来の入力は、本来の入力から代替デバイスからの代替入力へマッピングされる。マッピングにしたがって、代替デバイスによって生成された入力は対応する本来の入力に翻訳され、ゲーム中に対応するアクションを引き起こす。他の実施の形態では、コンピュータプログラムが上記方法の工程を実行する。
【０００８】
他の実施の形態は、ゲームをプレイするためにウェブページ内のゲームエリアが特定される。ゲームエリアのサイズを増加するとともにウェブページ内の他の要素のサイズを減少させることによって、ゲームエリアは拡大される。
【０００９】
さらに別の実施の形態は、ゲームのための入力パラメータを受信する工程を含む方法である。さらには、本来の入力コントロールデバイス用に規定されている、入力パラメータのための本来の入力キーが決定される。本来の入力キーは、本来のものではないコントロールデバイスにマッピングされ、本来のものではないコントロールデバイスからの入力が検出される。入力が検出された後、検出した入力を本来の入力キーに翻訳する。本来のものではないコントロールデバイスで本来の入力コントロールデバイスをシミュレートするために、ゲームのプレイの間、本来の入力キー用のマッピングは、検出した入力を翻訳するために維持される。
【００１０】
さらに別の実施の形態は、ゲーム情報検索モジュールと入力変換モジュールとを含むブラウザベースのゲーム（ＢＢＧ）をプレイするためのシステムである。ゲーム情報検索モジュールは、ゲーム用の本来の入力の規定を受信する。本来の入力はゲーム内でアクションを引き起こすことができ、本来のデバイスを通してアクションと紐付けされている。加えて、入力変換モジュールは、本来のデバイスからの本来の入力を、本来の入力を持たない代替入力からの複数の代替入力にマッピングする。これにより、入力変換モジュールは、マッピングされた本来の入力にしたがって、代替デバイスで生成された入力を対応する本来の入力に翻訳する。
【００１１】
本発明の別の態様は、本発明の実施例として示される添付の図面と併せて、以下の詳細な説明からより明白になるであろう。
【００１２】
本発明は、添付の図面と併せて以下の説明を参照することによって、最も良く理解することができる。
【図面の簡単な説明】
【００１３】
【図１】実施の形態に係るブラウザベースのゲーム（ＢＢＧ）をプレイするためのネットワーク環境を示す概略図である。
【００１４】
【図２】図２Ａから図２Ｃは、実施の形態に係るＢＢＧをプレイするためのクライアントアーキテクチャを示す図である。
【００１５】
【図３】実施の形態に係るＦＬＡＳＨ（登録商標）ゲームをプレイするためのゲームウェブページを示す図である。
【００１６】
【図４】本発明の実施の形態に係る、ウェブゲームをプレイするための修正されたウェブページを示す図である。
【００１７】
【図５】実施の形態に係る拡大されたゲームプレイエリアを含む修正されたウェブページを示す図である。
【００１８】
【図６】実施の形態に係る個人のＢＢＧポータルを示す図である。
【００１９】
【図７】実施の形態に係る代替入力デバイスから受信した命令を翻訳するための入力マッピングテーブルを示す図である。
【００２０】
【図８】実施の形態に係るＢＢＧ検索ページを示す図である。
【００２１】
【図９】本発明の実施の形態に係るＢＢＧをプレイするための処理の流れを示す図である。
【００２２】
【図１０】本発明の実施の形態に係るＢＢＧをプレイするのに使用し得るハードウェアおよびユーザインタフェースを示す図である。
【００２３】
【図１１】本発明の実施の形態に係る命令を処理するために使用し得る追加的なハードウェアを示す図である。
【００２４】
【図１２】本発明の実施の形態に係る、シーンＡからシーンＥとそれぞれ対応するユーザＡからユーザＥが、インターネットを介してサーバ処理と接続しているゲームクライアントで相互に交流する様子を例示する図である。
【００２５】
【図１３】実施の形態に係るインフォメーションサービスプロバイダのアーキテクチャを示す図である。
【発明を実施するための形態】
【００２６】
以下の実施の形態は、代替コントロールおよびインタフェースでブラウザベースのゲームをプレイするための方法および装置を記載する。しかしながら、本発明がこれらの具体的な詳細のいくつかまたは全てを用いずに実施されてもよいことは、当業者にとって明らかである。他の例において、周知のプロセス工程は、不必要に本発明を不明瞭にすることを避けるために詳述しなかった。
【００２７】
図１は、実施の形態に係るブラウザベースのゲーム（ＢＢＧ）をプレイするためのネットワーク環境を示す概略図である。ゲームプロバイダによってホストされたウェブサーバ１０２は、標準的なｈｔｔｐ（Hypertext Transfer Protocol）転送を用いて、ユーザ１１４ａからユーザ１１４ｃにウェブページを配信する。ウェブページは、ウェブブラウザの機能を用いて多くのデバイスのうちのひとつでＢＢＧをプレイするためのコードを含む。ユーザはインターネットをブラウジングするのには扱いにくい入力デバイスを持っている場合がある。例えば、ゲームコントローラを使うプレイヤは、アルファベット表示から一度に一文字選択するソフトウェアを用いてブラウザ中のウェブページアドレスを選択することができる。さらに、ゲームコントローラを使うプレイヤは、ゲームコントローラではＢＢをプレイすることができないであろう。ＢＢＧは、通常キーボードやマウス入力用に設計されているからである。
【００２８】
本発明の実施の形態によれば、プレイヤは、ウェブブラウザおよび多くの種類の入力デバイスを使ってＢＢＧに容易にアクセスしてプレイすることが可能となる。インターネット上の多くの異なるゲームウェブサイト１０２において、数千ものウェブベースのゲームが利用可能である。本発明の実施の形態は、ユーザが多くのこれらのウェブサイトを横断してゲームを探索および選択することを支援し、同様に、ユーザはブラウザベースのゲームの進行を保存できる。より具体的には、本実施の形態は、テレビやゲームコンソール、またはマウスやキーボードの入力デバイスを持たないであろう他のいかなる入力デバイス上でフラッシュ（ＦＬＡＳＨ）ベースのゲームをアクセスし、起動し、プレイすることを容易にする。
【００２９】
以下に記載される本発明の実施の形態はキーボードおよびマウス用の入力マッピングを用いるが、本発明の原理は任意のデバイスから他のデバイスへ入力を翻訳することに適用できる。例えば、ゲームコントローラでプレイするように設計されたゲームは、カメラで撮影したジェスチャに対応するゲームコントローラの入力に変換することでプレイできる。ここで、ゲームに期待されている入力を生成するデバイスを「ネイティブ（本来の）デバイス」と呼ぶ。標準的なデスクトップコンピュータの場合、ネイティブデバイスは通常キーボードやマウスである。ネイティブデバイスは、キーを押したりマウスをクリックしたりするような「ネイティブ入力」を生成する。さらに、デバイスであってその入力がゲームをプレイするために翻訳されるデバイスを、本明細書では「代替デバイス」と呼ぶ。代替デバイスは、「代替入力」を生成する。簡単のため、代替デバイスとしてジェスチャを行うプレイヤを、ジェスチャはカメラで撮影されコンピュータプログラムによって解釈される、ということがある。したがって、ここに示されている実施の形態は、排他的または限定的に解釈されるべきではなく、典型例または具体例と解釈されるべきである。
【００３０】
ウェブゲームサーバ１０４は、ＢＢＧに関する情報を提供する。ウェブゲームサーバ１０４で提供されるサービスのうちいくつかは、複数のウェブサイトの中でウェブゲームを探すための中心地を提供すること、ゲームの情報および評価を交換するためのコミュニティゲームサイトを作成すること、ウェブゲームサーバ１０４からゲームがダウンロードされるようにいくつかのウェブページをキャッシュすること、プレイヤのスコアをセーブすること、ユーザの統計情報を提供すること、広告のようなウェブゲーム用の追加的なコンテンツをダウンロードすること等を含む。当業者であれば、異なるウェブゲームサーバの実装で異なるサービスのセットを適用できることは理解できるであろう。ある実施の形態では、ゲームウェブサーバはゲームをプレイするための機能を提供することは要求されず、全ての改良されたゲームプレイのサービスはプレイヤが使用するクライアントデバイスから配信される。
【００３１】
おそらく、ブラウザゲームをプレイするための最もポピュラーなプラグインは、ウェブブラウザ内にアニメーションやムービーを表示させることができるアドビ（Ａｄｏｂｅ）社のフラッシュプレイヤ（ＦＬＡＳＨ Ｐｌａｙｅｒ）であろう。フラッシュプレイヤ、またはフラッシュプレイヤプラグインを持つブラウザはＳＷＦ拡張子のファイルを実行する。これらのＳＷＦファイルはアドビのフラッシュオーサリングツールのような、いくつものツールによって生成することができる。アドビ社のフラッシュ、または単にフラッシュはマルチメディアオーサリングプログラムとアドビフラッシュプレイヤとの両方を意味する。これは、ベクタおよびラスタグラフィック、アクションスクリプト（ＡｃｔｉｏｎＳｃｔｉｐｔ）と呼ばれるスクリプト言語、およびビデオと音声との双方向ストリーミングを利用する。フラッシュは、ウェブページにゲーム、アニメーション、およびＧＵＩ（Graphical User Interfaces）を埋め込むための共通フォーマットである。フラッシュプレイヤは、複数のハードウェアプラットフォームで、Ｍｏｚｉｌｌａ Ｆｉｒｅｆｏｘ、Ｏｐｅｒａ、Ｓａｆａｒｉ、およびＩｎｔｅｒｎｅｔ Ｅｘｐｌｏｒｅｒのような新しいバージョンのウェブブラウザ用のプラグインとして利用可能である。
【００３２】
プレイヤは、携帯電話１１８、ゲームコンソール１０６、ＰＣ（Personal Computer）１２６、ＰＤＡ（Personal Digital Assistants）、ラップトップ、ワークステーションのような、ブラウザを含む任意のデバイスを通してＢＢＧにアクセスすることができる。ＢＢＧはしばしばマウスとキーボードとの入力用に設計されているが、本発明の実施の形態によれば、プレイヤ１１４ａから１１４ｃは、キーボードやマウスを使うのと同様にゲームのインタフェースとして他の方法やデバイスを使うことができる。これらのデバイスはタッチスクリーンやテンキー、カメラ１１０（プレイヤの動きや音声を取得するため）、両手コントローラ（two-handed controller）１１４、片手コントローラ（single-hand controller）１１２、リモコン１２２等を含む。
【００３３】
ある実施の形態では、ゲームプロバイダは代替デバイス用のマッピングに関する情報を利用可能とすることができる。ゲーム開発者はユーザが代替デバイス選択のオプションを選択できるようにＢＢＧ用のプラグインアプリケーションを適用することが可能であり、そのプラグインは代替デバイス用のマッピングを特定する。例えば、ユーザはシステムに接続されているブルートゥース（登録商標）デバイスを用いることでワイヤレス接続経由で任意のコントローラを使用してもよい。さらに、代替デバイスは、ユーザがジェスチャによって入力を実行できるように、対応する動き検出用のソフトウェア付きカメラであってもよい。ゲーム開発者は、ユーザにジェスチャを使用するオプションを提供することができ、もしユーザがこのオプションを選択すると、ゲームのアクションを引き起こすことができるジェスチャがゲームによってユーザに示される。例えば、ゲームをプレイするためにプレイヤが動かす必要のある４つの手の動作が描画される。左に動かすためには、体から離れる方向に左手を動かし、右に動かすためには、体から離れる方向に右手を動かし、中断するためには、両手を顔の前に持ってくる等である。
【００３４】
図２Ａ−図２Ｃは、実施の形態に係るＢＢＧをプレイするためのクライアントアーキテクチャを示す図である。クライアント２０２はプレイヤ２４２からリクエストのあったブラウザベースのゲームをダウンロードするためにネットワーク２０６を介してゲームウェブサイト２０８にアクセスする。図１を参照して上述したように、ウェブゲームサーバ２０４は、クライアント２０２からゲームの情報を収集するだけでなく、クライアント２０２にさらなるゲームの情報を提供することができる。ユーザへのゲームオプションの提示、ＢＢＧのダウンロード、プレイのための拡張レイアウトでのＢＢＧのプレイ、ゲームのセーブ、またはウェブゲームサーバへのスコアのレポート等の、クライアント２０２内でのゲームに関連する異なる活動をゲームプロセッサ２２０が調整する。
【００３５】
ウェブブラウザ２１０は、ウェブサーバ上の情報リソースの検索、提示、および横断のための拡張されたブラウザである。ＢＢＧを含むウェブページはＨＴＴＰ（Hypertext Transfer Protocol）のような標準的なウェブプロトコルを用いてゲームウェブサイト２０８からダウンロードされる。ダウンロードされたウェブページはゲームデータベース２１２に格納することができる。ウェブブラウザ２１０はゲームデータベース２１２からウェブページおよびゲームを検索することができ、ウェブゲームサーバ２０４からダウンロードされた広告のような要素を、ゲームウェブサイト２０８からダウンロードされたウェブページに追加することができる。加えて、ゲームプロセッサ２２０は、ゲームを中断してゲームのステータスをゲームデータベース２１２に格納することができる。ゲームデータベース２１２には十分な情報が格納されるので、ゲームが中断されたときとまったく同じ状態でゲームを再開することができる。この状態は、フラッシュプレイヤの状態を含むウェブページのコンポーネントも含んでいる。
【００３６】
コンフィギュレーションマネージャ２１４は、ユーザプロファイルおよびユーザＩＤの作成、ＢＢＧウェブサイトの選択、ＢＢＧウェブサイト内のユーザのログインの保存、お気に入りのゲームの特定、ソーシャルネットワーク情報の記入、入力デバイスのカスタマイズ等の、ＢＢＧをプレイするための異なるオプションをユーザが設定できるようにする。ユーザデータベース２１８はユーザに関連する情報を格納するために使われる。ゲーム情報検索２１６モジュールは、ウェブゲームサーバ２０４およびゲームウェブサイト２０８からゲームに関連する情報を取得する。例えば、ゲーム情報検索２１６はゲームの統計情報、新しいゲーム、新しいウェブサイト、またはユーザのゲーム評価等のゲームに関連する情報を取得する。
【００３７】
ユーザ２４２からの入力は入力プロセッサ２３０で受信される。ユーザの入力は異なる種類となりうるので、入力プロセッサ２３０内のモジュールは異なるタイプの入力を扱うように規定されている。例えば、コントローラモジュール２３２はゲームコントローラを経由してユーザと接続し、モーションモジュール２３４はカメラまたは他の環境センシングデバイスによってユーザの動きを獲得し、ボイスモジュール２３６はマイクロフォンによってユーザからのボイスコマンドを受信し、キーボードおよびマウスモジュール２３８はキーボードおよびマウスの入力を処理し、タッチモジュール２４０は表示スクリーンやマウスパッドへの接触を処理する等である。
【００３８】
入力プロセッサ２３０は、入力を、入力変換モジュール２２２、ゲーム検索モジュール２２６、およびゲーム選択モジュール２２８に伝える。入力変換モジュール２２２は、ユーザの入力をゲームプロセッサ２２０とウェブブラウザ２１０とが用いる情報に変換する。例えば、コントローラにおけるボタンの動作は、キーボードの入力のみを受け付けるゲームをプレイするために、等価なキーボードの入力（左矢印キー等）に翻訳される。入力変換モジュール２２２は、各ゲームについてユーザからの入力をどのように翻訳するかを規定する入力変換メソッド２２４を含んでいる。入力変換メソッドに関するより詳細な説明は図２および図７を参照して後述される。
【００３９】
ゲーム検索モジュール２２６はゲームデータベース２１２、ゲームウェブサイト２０８、およびウェブゲームサーバ２０４内のゲームを検索するために用いられる。図８に、ゲーム検索モジュール用の簡単なインタフェースを示す。ゲーム選択モジュールはウェブやゲームデータベース２１２からダウンロード可能なゲームをプレイするための選択をするのに用いられる。図６に、ある実施の形態に係るゲーム選択ウェブページを示す。
【００４０】
図２Ｂは、実施の形態に係る入力変換モジュール２２２を示す図である。マッピングアービタ（arbiter）モジュール２５４は代替デバイスを用いてＢＢＧをプレイするために要求されるマッピングを決定する。入力変換モジュール２２２はデバイス、マッピング、およびゲーム入力テーブルを含む。デバイステーブルの各エントリは対応するデバイス用の入力レイアウトを含む。入力レイアウトはデバイスで実行可能となりうる入力の全部または一部を含む。例えば、キーボードデバイスは全ての大文字、小文字、スペース、コントロールキー等のリストを含みうる。ＰＳ３コントローラは全てのボタンやジョイスティックの動作等のリストを含みうる。
【００４１】
ゲームの入力はＢＢＧとネイティブデバイスとの各ペアのエントリ（entry）を持つ。これらのエントリは、ネイティブデバイスでプレイするためにＢＢＧの供給者によって付与された規定に対応する。マッピングアービタ２５４はマッピングテーブルのエントリを構築またはダウンロードする。各マッピングテーブルのエントリは、ゲームをプレイするために、ネイティブ入力と代替入力との間のマッピングを記述する。加えて、特定のゲームに縛られないふたつの異なるデバイス間の一般的なマッピングもあり得る。このように、一般的なマッピングは代替デバイスで新しいゲームをプレイするための開始点として使うことができる。図７に、ある実施の形態に係るマッピングテーブルを詳細に示す。
【００４２】
ある実施の形態では、マッピングアービタ２５４はウェブゲームサーバ２０４からあるゲーム用のマッピングのエントリをダウンロードする。プレイヤは好みに応じてマッピングを修正することができる。プレイヤはテーブル上の値を無効にしたり、別個のエントリを生成したりすることができる。別の実施の形態では、マッピングアービタ２５４は、プレイヤによって使用されている代替デバイスを検出して、デバイスの製造者のサイトからデバイスの設定をダウンロードする。ひとたびそのデバイスのレイアウトが分かれば、マッピングアービタ２５４は、検出した代替デバイスでＢＢＧをプレイするためのマッピングテーブルのエントリを構築する。ゲーム内で規定されている各アクションと対応するネイティブ入力とは、ダウンロードされたデバイスのレイアウトから選ばれた異なる入力に割り当てられる。ユーザがＧＵＩで設定を変更することができるように、入力レイアウトはグラフィカルな表現を含むことができる。
【００４３】
図２Ａおよび図２Ｂに示す実施の形態はＢＢＧをプレイするためのクライアントのモジュールコンポーネントの例示であることは理解されよう。他の実施の形態では、異なるモジュールを用いてもよいし、またコミュニケーションおよびインタフェースを様々な態様にアレンジしてもよい。図２Ａおよび図２Ｂに示す実施の形態は排他的または限定的に解釈されるべきではなく、典型例または具体例と解釈されるべきである。
【００４４】
図２Ｃは、ある実施の形態に係るネイティブ入力を代替入力に一致させる方法を示す。工程２７２において、入力変換モジュールはＢＢＧに関連づけられたネイティブ入力を特定し、ＢＢＧをプレイするためにネイティブデバイスからのネイティブ入力が用いられる。工程２７４において、ゲームをプレイするための代替デバイスが特定される。ひとたびネイティブ入力と代替デバイスが特定されると、入力変換モジュール内のアービタは、ＢＢＧ、ネイティブデバイス、および代替デバイス用のエントリがあるか否かを見るためにマッピングテーブルを検索する。もし特定のエントリが見つからない場合、アービタは一般的なゲームマッピングエントリも検索する。ある実施の形態では、アービタはそのネイティブデバイスと代替デバイスとを用いる他のゲーム用のエントリも検索する。工程２７８において、マッピングテーブルの検索結果を用いて、アービタはネイティブ入力を代替入力に関連づける。
【００４５】
本方法は、工程２８６において、まだマッピングされていないネイティブ入力があるか否かをチェックする。アービタは特定されたマッピングや、あるいはマッピングのリストの一部分も待っていないかも知れない。例えば、アービタはキーボードからの矢印キーをゲームコントローラの方向ボタンに一致させるが、アービタはキーボードからのスペースキーをコントローラの対応するボタンには一致させない。もしマッピングされていないネイティブ入力がある場合本方法は工程２８２に進み、そうでない場合は工程２８０に進む。
【００４６】
工程２８２において、アービタは、未だマッピングされていないネイティブ入力を一致させるために、サーバ、まはたサーバ群に問い合わせる。そのサーバはデバイスの製造者、ゲームの制作者、あるいはコンソールの製造者等に属している。ひとたびこの情報が収集されると、アービタはサーバから受信した情報を用いて未だマッピングされていないネイティブ入力をマッピングする。ある実施の形態では、アービタは代替デバイスに関する情報を単に受信するだけである。マッピング情報が存在しないからである。この場合、アービタはランダムなマッピングから始めて、ユーザにしかるべくカスタマイズさせる。他の実施の形態では、アービタはネイティブ入力と代替入力との間の所定の確率的な割り当てを用いる。アービタは、あるネイティブ入力を代替デバイスにおけるある代替入力にマッピングする確率が同じまたは同様のとき、どれを用いるかを決定するように規定されている。
【００４７】
アービタは、プレイされているゲームの種類とネイティブ入力の期待される使用および頻度とを考慮してもよい。アービタは同じ指や同じ手を用いる等のように、ネイティブ入力において同様のアクションを引き起こす代替入力を選択してもよい。アービタは、ある特定のゲームで最もよく使用されるボタンの知識に基づいて代替デバイス上のふたつのボタンのいずれを用いるかを決定してもよい。例えば、もし頻繁にボタンが押されることをゲームが要求する場合、アービタは人差し指の近くにあるボタンを用いる代わりに親指の近くの代替入力を選択してもよい。ゲームがドライビングゲームのように頻繁な動きと関係していて、代替デバイスがジョイスティックを持ち場合において、もしその代替デバイスがジャイロや重力センサなどのモーションセンシング機能を備えているときは、アービタは異なる割り当てを実行してもよい。この場合、アービタは、ユーザがハンドルのごとくコントローラを握れるように、コントローラの動きを用いてゲームのアクションに翻訳してもよい。
【００４８】
他の実施の形態では、アービタは、ブラウザがゲームの情報にアクセスしてダウンロードしている場所を特定するためにブラウザに接続する。続いて、アービタはゲームの種類を決定するために、ゲームＩＤだけではなくゲームプロバイダを解析してもよい。ひとたびアービタがゲームの種類を決定すると、アービタは、前述したように、このゲームの種類を関連づけ、ゲームの種類と最もマッチするマッピングの実行を開始する。
【００４９】
ひとたび全てのマッピングか完了すると、代替デバイスからネイティブ入力またはアクションへのマッピングが、リストまたは代替デバイスのグラフィカルな表現でユーザに表示され、代替デバイスによってどのように異なったネイティブ入力またはゲームアクションが生成されたかが示される。
【００５０】
図３は、実施の形態に係るフラッシュ（登録商標）ゲームをプレイするためのゲームウェブページを示す図である。ウェブページ３０２はコンピュータブラウザ上に表示され、いくつかの要素を含んでいる。メニューバー３０４によってユーザはコマンドを入力したり、ブラウザ関連の命令を実行するためのサブメニューにアクセスしたりすることができる。タブ３０６によってユーザはウェブページ内のオプションを選択したり、ウェブサイト内の異なるエリアを選択したり、あるいは異なるオプションのセットを選択したりすることができる。例えば、図３に示される実施の形態では、ゲームをプレイするためのページを選択するゲームタブ、ウェブサイト内のゲーム購入ページへ行くための購入タブ、およびマルチプレイヤゲームをプレイするためのエリアにブラウザを移動するためのマルチプレイヤタブが含まれている。
【００５１】
ウェブブラウザ用のコマンドを入力するために用いられるメニューバー３０４とは反対に、ゲームカテゴリ選択メニュー３０８によってユーザはウェブページに関連する命令を入力することができる。ゲームがプレイされるゲームエリア３１２はウェブページの中央の目立つ場所に位置している。ある実施の形態では、ゲームエリア３１２はフラッシュゲームをプレイするためのフラッシュファイルにリンクされている。広告エリア３１０は広告メッセージを表示し、ウェブページの左側、右側、下側、上側（図示せず）等、ページの異なる部分に配置される。広告メッセージはテキスト、グラフィックバナー、ビデオ表示、グラフィックアニメーション等のような異なるフォーマットで表示される。広告はゲームサーバと同じサーバまたは広告配信サーバからダウンロードされる。
【００５２】
ゲーム選択エリア３１４はゲームを選択するために用いられる。図３はテキストによる選択メニューの実施の形態を示すが、グラフィクス、アニメーション、プルダウンメニュー、スクロースバー等、他のメニュー領域も使用可能である。他の実施の形態では、ゲーム選択は別個のウェブページで実施され、ひとたびユーザによってゲームが選択されると、ゲームエリア３１２を含むページがダウンロードされる。
【００５３】
図３に示す実施の形態はＢＢＧページ用の例示的なレイアウトを示すものであることは理解されよう。他の実施の形態では、異なる領域を用いてもよいし、またページの要素を様々な態様にアレンジしてもよい。図３に示す実施の形態は排他的または限定的に解釈されるべきではなく、典型例または具体例と解釈されるべきである。
【００５４】
図３で見たように、プレイエリアはしばしば、プレイ体験にノイズを加える多くの要素によって囲まれる。いくつかのゲームは素早いタイミングや小さなアイテムを取り扱うことを要求する。これらの操作は小さな視野エリアで実行することは困難となり、その結果ゲームのプレイ体験は減少する。ゲームのプレイエリアが大きいほど、プレイ体験は向上するであろう。
【００５５】
図４は、本発明の実施の形態に係るウェブゲームをプレイするための修正されたウェブページを示す図である。拡張ウェブページ４０２は、図３に示すウェブページ３０２の要素に加えて、クライアントにおける拡張ブラウザで使用される追加の要素を含む。図４に示すようなある実施の形態では、ゲームエリア３１２のサイズを増加するために図３に示す要素の相対的な大きさが変更されている。ゲームプレイと関係しない他の要素は、例えば二分の一のような一定の比率でサイズが縮小されている。一定の比率は二分の一でなく他の比率も可能である。他の実施の形態では、全ての要素が同じ割合で縮小されない。例えば、ユーザがブラウザのコマンドに容易にアクセスできるように、メニューバー３０４は変更されない。さらに別の実施の形態では、表示面積を最大化し、かつゲームによって提供されたピクセル解像度の描画を最適化するために、ゲームエリアのスケールは対象となるディスプレイのスクリーンの解像度に基づく。
【００５６】
さらなる要素がクライアントデバイスの拡張ブラウザによって追加される。入力要約領域４０８がゲームをプレイするために選択された入力（コントローラ）とその入力デバイスを使うための指示を列挙する。図４に示す実施の形態はコントローラが入力デバイスとして選択されていることを示す。そのコントローラは両手コントローラまたはワンド（片手）コントローラとすることができる。ゲーム内の「発射」アクションはＸボタンを押すことで実行され、モーションはワンドコントローラを指し示すか、またはモーションキーを使うかのいずれでも実行することができる。
【００５７】
他の追加は、ユーザがゲームの進行をセーブすることを可能とするゲーム保存ボタン４０４である。ＢＢＧは状態やスコアをセーブの対象としていない。いくつかの基本的な機能はブラウザのクッキー（cookies）やサーバ上に情報をセーブすることで実現してもよい。ブラウザのクッキーはゲーム内で到達したレベルのような基本的な情報は格納できるが、後に取ってくることが可能な、ゲームの正確な状態をセーブするためには用いることができない。ウェブサーバに情報を保存することは一般的でない。これらのウェブサーバは何千、何百万ものゲームを供給する傾向にあり、ゲームのステータスの保存や検索はとてもコストがかかるであろうからである。ブラウザはしばしば強力なシステム上で実行されるので、ゲームのステータスを格納するのにこれらの強力なシステムを利用することが可能である。フラッシュゲームの場合、フラッシュプレイヤがゲームのプレイ中に一時的な停止を知覚する必要なしにゲームを後に復元することができるように要求される、完全なメモリの状態および他の関連情報を保存することを意味する。
【００５８】
他に追加される要素は追加広告領域４０６である。この領域は、ゲームサーバと同じサーバか、図１および図２に示す独立ウェブゲームサーバのような異なるサーバからダウンロードされた広告メッセージが置かれる。他の実施の形態では、ゲームエリア３１２はディスプレイにフィットするまで可能な限り引き伸ばされ、オリジナルのウェブページの要素のうちいくつかは、プレイ中に隠されてもよい。
【００５９】
図５は、実施の形態に係る拡大されたゲームプレイエリアを含む修正されたウェブページを示す図である。より大きなゲームエリアを確保するために、ゲームエリアは引き伸ばされる一方でページ内の他の全ての要素は縮小される。ゲームエリアをズームインするためにズーム効果が用いられ、一方他の要素は「ズームアウト」される。この結果、他の要素は変形されてゲームエリアから追い出される。
【００６０】
図６は、実施の形態に係る個人のＢＢＧポータルを示す図である。図２Ａに示すように、ある実施の形態では、個人のＢＢＧポータルはクライアントにおいて利用可能な情報を使ってクライアントにおいて生成される。他の実施の形態では、図２Ａのウェブゲームサーバ２０４のような中央サーバに個人のＢＢＧポータルが生成されるか、あるいは、クライアントにおける情報とウェブゲームサーバにおける情報との連携によって生成される。ＢＢＧメニュー領域６０４によってユーザは、ゲーム検索、ゲームの評価、他のプレイヤとのプレイ、オンライン上の友達の探索等のゲームに関連したオプションを選択することができる。最近プレイしたゲームの領域６０６からは、最近プレイした５つのゲームに素早くアクセスできる。それぞれのゲーム用のハイパーリンクによって、ユーザはＢＢＧが要求するページを素早く読み込むことができる。保存した全ゲームのリストは、保存したゲーム領域６１４に示される。この領域のスクロールバーによってユーザは保存したゲームを閲覧することができる。
【００６１】
お気に入り領域６１０はプレイヤがお気に入りリストに追加したゲームを提示する。もしお気に入りの数がスクリーンで表示可能な領域を超える場合、スクロールバーや他のナビゲーションボタンを追加することができる。加えて、スクリーン上に一度にさらなるゲームを提示するために、リスト形式でゲームを表示してもよい。任意のゲームをクリックすると、対応するゲーム用のページが読み出される。システムは新しいゲームをプレイヤに提案することもできる。新しいゲームの提案領域６１２はプレイヤのためのいくつかの考えられるゲームのアイデアをリストアップする。提案ゲームを選択するためのアルゴリズムは、ウェブで利用可能な新しいゲームの情報だけでなくプレイされたゲームの履歴情報にも基づく。アルゴリズムは、プレイヤに類似したゲームを提案するために、ゲームの種類（パズル、戦闘、ドライビング等）を考慮に入れる。アルゴリズムは、他のプレイヤによるゲームの人気や評価も考慮に入れる。加えて、アルゴリズムは提案するゲームの種類の多様性を増加するために、ランダムなゲームを追加してもよい。最もプレイされているゲーム領域６０８は、ソーシャルネットワーク（例えばＰｌａｙＳｔａｔｉｏｎ（商標または登録商標）ネットワーク）で最も頻繁にプレイされているゲームをリストアップする。
【００６２】
広告領域６１６はコマーシャルメッセージを表示する。  図４−図６に示す実施の形態は例示的なブラウザレイアウトを示すものであることは理解されよう。他の実施の形態では、異なる領域を用いてもよいし、またページの要素をハイパーリンク付きアイコンで置き換えるように様々な態様にアレンジしてもよい。図４−図６に示す実施の形態は排他的または限定的に解釈されるべきではなく、典型例または具体例と解釈されるべきである。
【００６３】
図７は、実施の形態に係る代替入力デバイスから受信した命令を翻訳するための入力マッピングテーブルを示す図である。前述したように、多くのＢＢＧはキーボードやマウス用に設計されている。ＢＢＧをプレイするための拡張クライアントは他のデバイスから受信した入力を、対応するＢＢＧが処理することができるキーボードやマウスの入力に変換する。ゆえに、ゲームをプレイするためにキーボードやマウスの入力はシステムによってエミュレートされる。ある実施の形態では、図２Ａに示すクライアント２０２内の入力変換モジュール２２２が入力変換を実行する。
【００６４】
典型的なＢＢＧは、ユーザにどのようにゲームをプレイするかを示すために説明（明示的に、あるいはゲームに埋め込んで）を含む。ゆえに、異なる入力が特定のゲームのアクションにマッピングされ、ゲームのステータスに応じてある入力がひとつ以上の異なるアクションをもたらすこともできる。入力マッピングテーブル７０２の第１列は異なる可能なゲームアクションを含み、残りの列は対応する入力デバイスでゲーム内にアクションを起こすために要求される入力を示す。キーボードの列はアクションを生成することのできるキーボードのキーを示す。例えば、「左に動く」というアクションは、「Ａ」を押すか、キーボードの左の矢印キーを押すことで起こすことができる。
【００６５】
続く各列は、特定の代替デバイス用の対応する入力セットを規定する。例えば、ボディランゲージ認識を用いるとき、プレイヤが空中にジャンプすることによってジャンプアクションを達成することができる。図７に示す実施の形態は、全てでないとしても、ほとんどのアクションはキーボードかマウスで実行できることを示すが、これはいつでも当てはまるわけではない。ゲームはしばしば、キーボードかマウスかのいずれかでプレイするように設計されているからである。これは、入力マッピングテーブル７０２内のいくつかのエントリは空白であることを表している。代替デバイスでゲームをプレイするために要求されることは、ＢＢＧ用に規定されている全てのアクションが代替入力デバイスで達成することができることである。さらに、もしひとつ以上の代替デバイスが使用されている場合には、ゲーム用に規定された各アクションが代替入力デバイスの少なくともひとつで達成できることも要求される。
【００６６】
連続的な入力あるいは入力の組み合わせによってアクションが起こされる場合もある。例えば、２倍のジャンプはスペースキーを連続的に素早く２回押すことで生成され、ゲームオブジェクトを有効にするにはマウスのふたつのボタンを同時にクリックすることで実行される。一般に、連続的な入力および入力の組み合わせは、等価なキーボードまたはマウスの順序および組み合わせにマッピングすることができ、ひとつの入力順序はひとつのキーボードまたはマウスの入力にマッピングすることができ、ひとつの動作（例えばコントローラのボタンを押すこと）はキーボードまたはマウスの一連の入力にマッピングすることができる。加えて、順序は組み合わせにマッピングすることができ、またその逆もできる。実際、翻訳中の入力を複数のアクションにマッピングすることができる。例えば、斜め方向ジェスチャを水平方向の動きと垂直方向の動きとにマッピングすることができる。ゆえに、ネイティブデバイスからの任意のひとつの入力、ひと続きの入力、または入力の組み合わせは、代替デバイスからの任意のひとつの入力、ひと続きの入力、または入力の組み合わせにマッピングすることができるし、その逆もできる。
【００６７】
ある実施の形態では、特定のゲーム用の入力マッピングテーブルはプロファイラ（profiler）によってひとたび生成されると、他のプレイヤはウェブゲームサーバから利用可能となる。プロファイラは代替入力デバイスを使ったゲームのプレイをテストし、入力処理のタイミングやスクリーンの解像度の問題（例えば、プレイヤの動きが遅すぎたり早すぎたりしてゲームが適切にプレイできないこと）のような問題がなくゲームが適切にプレイできることを確かめる。
【００６８】
入力マッピングテーブルはさらにユーザによってカスタマイズされる。マッピングを変更するために、分離したウェブページ、または同様のユーティリティがクライアントまたはウェブゲームサーバによって提供される。ある実施の形態では、システムがプレイヤに、ゲームが規定した全てのアクションを提示し、プレイヤは入力デバイスを選択する。各アクションについて、ユーザは所与のデバイス用の可能な全てのオプションをプルダウンメニューから選択する。ひとたびマッピングがアップデートされると、ユーザはゲームデータベースのようなクライアントデバイスにマッピングテーブルを保存し、その後のＢＢＧゲームはアップデートされたテーブルでプレイされる。他の実施の形態では、他のユーザが既になされた作業を享受できるように、ユーザは入力マッピングテーブルをコミュニティページに公開する。
【００６９】
ある実施の形態では、プロファイラは異なるゲームカテゴリ毎に一連の基本テンプレートを規定する。例えば、あるテンプレートはシューティングゲーム用に作成され、別のテンプレートはパズルゲーム用に作成され、さらに別のテンプレートは格闘ゲーム用に作成される等である。プレイヤが特定のＢＢＧのプレイを望むとき、そのＢＢＧをプレイする出発点としてプレイヤはテンプレートのうちひとつを選択する。前述したようにテンプレートはその後カスタマイズされ、最終結果がそのＢＢＧをプレイするために保存される。アップデートしたテンプレートを他のプレイヤが利用可能とすることは任意である。
【００７０】
他の実施の形態では、システムによってテンプレートの初期設定が提供される。ＢＢＧの複雑性は低または中程度なので、入力の数は限定的または一定の傾向がある。ＢＢＧはしばしばシンプルとなるように設計されており、学習曲線も小さい。その結果、非常に多くのＢＢＧは同じキーボードやマウスのコマンドでプレイされる。例えば、キーボードベースのゲームは矢印キー、スペースキー、およびエスケープキーだけ使う可能性が高い。マウスベースのゲームはマウスの動きとボタンひとつを使う可能性が高い。これらのシンプルなＢＢＧ用に、基本的なキーボードおよびマウスの入力をカバーする代替入力が入力マッピングテーブルの初期設定を利用することができる。
【００７１】
図８は、実施の形態に係るＢＢＧ検索ページを示す図である。検索ページは、プレイヤに複数の検索オプションを提示する。プレイヤは検索を実行するために一またはそれ以上の検索オプションを同時に選択してもよい。プレイヤはゲームサイト８０２を検索し、ひとつのウェブサイト、一群のウェブサイト、または全てのウェブサイトを選択する。カテゴリ８０４検索は、戦争、ボード、パズル等の特定のジャンル内でゲームを検索するために用いられる。プレイヤは、新着ゲーム８０６のみ、あるいは最も人気のあるゲーム（トップ４０（８０８））の中から検索することを要求することができる。さらに、プレイヤはゲームコミュニティ８１０から提案を受信することを望んでもよいし、友達８１２がプレイしているゲームについて学んでもよい。
【００７２】
並べ替え８１４オプションによってユーザは結果、ウェブサイト、リリースされた日付等の関連性で並べ替えられた結果を取得することができる。今すぐ検索ボタン８１８は、ランダムなゲーム検索を実行し、ページ上の全ての検索オプションを無視する。
【００７３】
検索は、図２Ａに示すゲームデータベース２１２、ウェブゲームサーバ２０４におけるデータベース、ゲームウェブサイト上の情報、あるいはこれらの組み合わせのようなローカルなデータベースを調べることで実施される。図８に示す実施の形態は例示であることは理解されよう。他の実施の形態では、異なる領域や異なる選択オプション（確認ボタン、プルダウンメニュー等）を用いてもよいし、領域を様々な態様にアレンジしてもよい。図８に示す実施の形態は排他的または限定的に解釈されるべきではなく、典型例または具体例と解釈されるべきである。
【００７４】
図９は本発明の実施の形態に係るＢＢＧをプレイするための処理の流れを示す図である。工程９０２において、ゲーム用に規定されたネイティブ入力の規定を受信する。これらのゲームの入力は、図７に例示したように、ゲーム内のアクションを生じることができる。ネイティブ入力はネイティブデバイスで生成される。ある実施の形態では、ネイティブデバイスはキーボードやマウスのような標準的なデスクトップコンピュータの入力デバイスである。
【００７５】
さらに、工程９０４において、ゲームにアクセスしたときに代替デバイスが検出される。代替デバイスはネイティブ入力を持たない。工程９０６において、ネイティブデバイスからの複数のネイティブ入力を代替デバイスからの複数の代替入力にマッピングする。代替デバイスで生成された入力は、工程９０８において対応するネイティブ入力に翻訳される。ゲーム内の対応するアクションを起こすために、事前に実行されたマッピングにしたがって変換が実行される。工程９１０において、代替入力用のマッピングはゲームプレイの間に代替デバイスの入力を翻訳するために維持され、ゲーム内の対応するアクションを引き起こす。
【００７６】
図１０は、本発明の実施の形態に係るＢＢＧをプレイするのに使用し得るハードウェアおよびユーザインタフェースを示す図である。図１０は、ソニー（登録商標）プレイステーション３（登録商標）エンターテイメントデバイスの全体的なシステムアーキテクチャを模式的に示す図である。これは本発明のある実施の形態に係るＢＢＧにおける代替入力を実装することができるコンソールである。システムユニット１４００はそれに接続可能な種々の周辺デバイスと共に提供される。システムユニット１４００は、Ｃｅｌｌプロセッサ１４２８、Ｒａｍｂｕｓ（登録商標）ダイナミックランダムアクセスメモリ（ＸＤＲＡＭ）ユニット１４２６、専用のビデオランダムアクセスメモリ（ＶＲＡＭ）ユニット１４３２を有するＲｅａｌｉｔｙ Ｓｙｎｔｈｅｓｉｚｅｒグラフィックユニット１４３０、およびＩ／Ｏ（入出力）ブリッジ１４３４を備える。また、システムユニット１４００は、Ｉ／Ｏブリッジ１４３４を介してアクセス可能な、ディスク１４４０ａおよび着脱可能なスロットインハードディスクドライブ（ＨＤＤ）１４３６から読み出すためのブルーレイ（登録商標）ディスクＢＤ−ＲＯＭ（登録商標）光ディスクリーダ１４４０も備える。任意選択で、システムユニット１４００は、同様にＩ／Ｏブリッジ１４３４を介してアクセス可能な、コンパクトフラッシュ（登録商標）メモリカード、メモリースティック（登録商標）メモリカードなどを読み出すためのメモリカードリーダ１４３８も備える。
【００７７】
また、Ｉ／Ｏブリッジ１４３４は、６つのユニバーサルシリアルバス（ＵＳＢ）２．０ポート１４２４、ギガビットイーサネット（登録商標）ポート１４２２、ＩＥＥＥ ８０２．１１ｂ／ｇ無線ネットワーク（Ｗｉ−Ｆｉ）ポート１４２０、および最大７つのブルートゥース（登録商標）接続に対応可能なブルートゥース（登録商標）無線リンクポート１４１８にも接続している。
【００７８】
動作時に、Ｉ／Ｏブリッジ１４３４は、１つ以上のゲームコントローラ１４０２−１４０３からのデータを含む、全ての無線、ＵＳＢ、およびイーサネット（登録商標）のデータを処理する。例えば、ユーザがゲームをプレイ中に、Ｉ／Ｏブリッジ１４３４はブルートゥースリンクを介してゲームコントローラ１４０２−１４０３からデータを受信して、これをＣｅｌｌプロセッサ１４２８に転送し、Ｃｅｌｌプロセッサ１４２８が適宜ゲームの現在の状態を更新する。
【００７９】
また、無線、ＵＳＢ、およびイーサネット（登録商標）の各ポートを介して、ゲームコントローラ１４０２−１４０３のほかに、他の周辺デバイスも接続することが可能となる。このような周辺デバイスには、例えば、リモコン１４０４、キーボード１４０６、マウス１４０８、ソニープレイステーションポータブル（登録商標）エンターテイメントデバイスなどのポータブルエンターテイメントデバイス１４１０、ＥｙｅＴｏｙ（登録商標）ビデオカメラ１４１２などのビデオカメラ、マイクロフォンヘッドセット１４１４などがある。このため、これらの周辺デバイスは、原則としてシステムユニット１４００に無線で接続されうる。例えば、ポータブルエンターテイメントデバイス１４１０はＷｉ−Ｆｉアドホック接続を介して通信し、マイクロフォンヘッドセット１４１４はブルートゥースリンクを介して通信しうる。
【００８０】
これらのインタフェースを提供することにより、プレイステーション３デバイスは、デジタルビデオレコーダ（ＤＶＲ）、セットトップボックス、デジタルカメラ、ポータブルメディアプレーヤ、ＶｏＩＰ電話、携帯電話、プリンタ、およびスキャナなどの他の周辺デバイスと場合によっては互換となりうる。
【００８１】
更に、ＵＳＢポート１４２４を介して旧式メモリカードリーダ１４１６をシステムユニットに接続することができ、プレイステーション（登録商標）デバイスまたはプレイステーション２（登録商標）デバイスで用いられていたタイプのメモリカード１４４８の読み出しが可能となる。
【００８２】
本実施の形態では、ゲームコントローラ１４０２は、ブルートゥースリンクを介してシステムユニット１４００と無線通信するように動作可能である。しかし、その代わりに、ゲームコントローラ１４０２−１４０３が、ＵＳＢポートに接続されてもよく、これにより、ゲームコントローラ１４０２−１４０３のバッテリに充電するための電力に接続される。ゲームコントローラ１４０２−１４０３はメモリ、プロセッサ、メモリカードリーダ、フラッシュメモリのような不揮発メモリ、点光源のような光源、ＬＥＤ、または赤外光、超音波通信用のマイクロフォンおよびスピーカ、音響室、デジタルカメラ、内部クロック、ゲームコンソールに対向する球状部のような認識可能な形状、およびブルートゥース（登録商標）、ＷｉＦｉ（商標または登録商標）等のプロトコルを用いた無線通信を含むことができる。
【００８３】
ゲームコントローラ１４０２は両手で使うように設計されたコントローラであり、ゲームコントローラ１４０３はボール取り付け部が付属する片手用コントローラである。ゲームコントローラは、１つ以上のアナログジョイスティックおよび従来の制御ボタンを有するほか、各軸の並進運動および回転に対応する６自由度の移動を感知する。したがって、従来のボタンまたはジョイスティックコマンドのほかに、またはこれらの代わりに、ゲームコントローラのユーザが行ったジェスチャおよび移動が、ゲームへの入力として変換されうる。任意選択で、プレイステーションポータブルデバイスなどの他の無線対応の周辺デバイスをコントローラとして使用することができる。プレイステーションポータブルデバイスの場合、追加のゲーム情報または制御情報（例えば制御命令またはライブの数）が、当該デバイスの画面に提示されうる。ほかの代替的または補助的な制御デバイスが使用されてもよく、これには、ダンスマット（図示せず）、ライトガン（図示せず）、ハンドルおよびペダル（図示せず）、あるいは、即答クイズゲームのための１つまたは複数の大型のボタン（これも図示なし）などの特注品のコントローラなどがある。
【００８４】
また、リモコン１４０４も、ブルートゥースリンクを介してシステムユニット１４００と無線通信するように動作可能である。リモコン１４０４は、ブルーレイディスクＢＤ−ＲＯＭリーダ１４４０の操作、およびディスクの内容の閲覧のために適した制御を備える。
【００８５】
ブルーレイディスクＢＤ−ＲＯＭリーダ１４４０は、従来の記録済みＣＤ、記録可能ＣＤ、およびいわゆるスーパーオーディオＣＤのほか、プレイステーションデバイスおよびプレイステーション２デバイスと互換のＣＤ−ＲＯＭを読み出すように動作可能である。また、リーダ１４４０は、従来の記録済みＤＶＤおよび記録可能ＤＶＤのほか、プレイステーション２デバイスおよびプレイステーション３デバイスと互換のＤＶＤ−ＲＯＭを読み出すように動作可能である。更に、リーダ１４４０は、従来の記録済みブルーレイディスクおよび記録可能ブルーレイディスクのほか、プレイステーション３デバイスと互換のＢＤ−ＲＯＭを読み出すように動作可能である。
【００８６】
システムユニット１４００は、Ｒｅａｌｉｔｙ Ｓｙｎｔｈｅｓｉｚｅｒグラフィックユニット１４３０を介して、プレイステーション３デバイスによって生成またはデコードされた音声およびビデオを、音声コネクタおよびビデオコネクタ経由で、ディスプレイ１４４４および１つ以上のラウドスピーカ１４４６を備えた表示および音声出力装置１４４２（モニタまたはテレビ受像機など）に提供するように動作可能である。音声コネクタ１４５０は、従来のアナログ出力およびデジタル出力を備える一方、ビデオコネクタ１４５２は、コンポーネントビデオ、Ｓ−ビデオ、コンポジットビデオ、および１つ以上の高品位マルチメディアインタフェース（ＨＤＭＩ）の出力などを種々備えうる。したがって、ビデオ出力は、ＰＡＬまたはＮＴＳＣ、あるいは７２０ｐ、１０８０ｉまたは１０８０ｐの高解像度などのフォーマットであってもよい。
【００８７】
音声処理（生成、デコードなど）はＣｅｌｌプロセッサ１４２８によって実行される。プレイステーション３デバイスのオペレーティングシステムは、ドルビー（登録商標）５．１サラウンドサウンド、ドルビー（登録商標）シアターサラウンド（ＤＴＳ）、およびブルーレイディスクからの７．１サラウンドサウンドのデコードに対応している。
【００８８】
本実施の形態では、ビデオカメラ１４１２は、１つの電荷結合素子（ＣＣＤ）、ＬＥＤインジケータ、およびハードウェアベースのリアルタイムデータ圧縮およびエンコード装置を備え、圧縮ビデオデータが、システムユニット１４００によるデコードのために、イントラ画像ベースのＭＰＥＧ（motion picture expert group）標準などの適切なフォーマットで送信されるようになる。カメラのＬＥＤインジケータは、例えば不利な照明条件を示す適切な制御データをシステムユニット１４００から受け取ると、発光するように配置されている。ビデオカメラ９１２の実施の形態は、ＵＳＢ、ブルートゥース（登録商標）またはＷｉ−Ｆｉの通信ポートを介して、システムユニット１４００にさまざまな方法で接続しうる。ビデオカメラの実施の形態は、１つ以上の関連するマイクロフォンを備えており、音声データを送信することができる。ビデオカメラの実施の形態では、ＣＣＤは、高解像度のビデオキャプチャに適した分解能を備えうる。使用時に、ビデオカメラによってキャプチャされた画像が、例えば、ゲーム内に取り込まれるか、またはゲームの制御入力として解釈されうる。別の実施の形態では、このカメラは赤外光を検出するのに適した赤外カメラである。
【００８９】
一般に、システムユニット１４００の通信ポートの１つを介して、ビデオカメラまたはリモコン等などの周辺デバイスとのデータ通信がうまく行われるように、デバイスドライバ等の適切なソフトウェアを提供する必要がある。デバイスドライバ技術は公知であり、本発明を不必要にわかりにくくすることのないよう、当業者であればデバイスドライバまたは類似するソフトウェアインタフェースが既述した本実施の形態で要求されることに気づくであろうということを除き、ここには詳しく記載することはしない。
【００９０】
図１１は、本発明の実施の形態に係る命令を処理するために使用し得る追加的なハードウェアを示す図である。Ｃｅｌｌプロセッサ１４２８は、１）メモリコントローラ１５６０およびデュアルバスインタフェースコントローラ１５７０Ａ，Ｂを含む外部入出力構造、２）パワープロセッシングエレメント１５５０と呼ばれるメインプロセッサ、３）シナジスティックプロセッシングエレメント（ＳＰＥ）１５１０Ａ〜Ｈと呼ばれる８基のコプロセッサ、４）エレメント相互接続バス１５８０と呼ばれる上記のコンポーネントに接続している環状データバス、の４つの基本コンポーネントを備えたアーキテクチャを有する。Ｐｌａｙｓｔａｔｉｏｎ ２のエモーションエンジンが６．２ギガフロップスであることと比較して、Ｃｅｌｌプロセッサの総浮動小数点演算性能は、２１８ギガフロップスである。
【００９１】
パワープロセッシングエレメント（ＰＰＥ）１５５０は、３．２ＧＨｚの内部クロックで動作し、双方向同時マルチスレッディングＰｏｗｅｒ１４７０準拠のＰｏｗｅｒＰＣコア（ＰＰＵ）１５５５をベースにしている。ＰＰＥ１５５０は、５１２ｋＢのレベル２（Ｌ２）キャッシュと、３２ｋＢのレベル１（Ｌ１）キャッシュとを備える。ＰＰＥ１５５０は、クロックサイクルごとに８つの単一位置（single position）操作ができ、これは、３．２ＧＨｚで２５．６ギガフロップスに相当する。ＰＰＥ１５５０の主な役割は、演算作業負荷の大部分を処理するシナジスティックプロセッシングエレメント１５１０Ａ〜Ｈのコントローラとして機能することにある。動作時に、ＰＰＥ１０５０はジョブキューを保持し、シナジスティックプロセッシングエレメント１０１０Ａ〜Ｈのジョブをスケジューリングしており、その進捗を監視する。したがって、各シナジスティックプロセッシングエレメント１５１０Ａ〜Ｈはカーネルを実行し、その役割は、ジョブを取り出して、これを実行し、ＰＰＥ１５５０と同期することにある。
【００９２】
各シナジスティックプロセッシングエレメント（ＳＰＥ）１５１０Ａ〜Ｈは、シナジスティックプロセッシングユニット（ＳＰＵ）１５２０Ａ〜Ｈおよびメモリフローコントローラ（ＭＦＣ）１５４０Ａ〜Ｈをそれぞれ備え、ＭＦＣ１５４０Ａ〜Ｈは、ダイナミックメモリアクセスコントローラ（ＤＭＡＣ）１５４２Ａ〜Ｈ、メモリ管理ユニット（ＭＭＵ）１５４４Ａ〜Ｈ、およびバスインタフェース（図示せず）をそれぞれ備える。各ＳＰＵ１５２０Ａ〜Ｈは３．２ＧＨｚでクロック供給され、原則として４ＧＢまで拡張可能な２５６ｋＢのローカルＲＡＭ１５３０Ａ〜Ｈを備えたＲＩＳＣプロセッサである。各ＳＰＥは、理論的には単精度処理性能で２５．６ギガフロップスを示す。１つのＳＰＵは、１クロックサイクルに、４つの単精度浮動小数点数部（SPFPM:single precision floating point members）、４つの３２ビット数、８つの１６ビット整数または１６の８ビット整数を処理することができる。同じクロックサイクルで、メモリ操作も実行することができる。ＳＰＵ１５２０Ａ〜Ｈは、システムメモリＸＤＲＡＭ１４２６に直接アクセスすることはない。ＳＰＵ１５２０Ａ〜Ｈが作成した６４ビットアドレスがＭＦＣ１５４０Ａ〜Ｈに渡され、ＭＦＣ１５４０Ａ〜Ｈが、自身のＤＭＡコントローラ１５４２Ａ〜Ｈに対して、エレメント相互接続バス１５８０およびメモリコントローラ１５６０を介してメモリにアクセスするように指示する。
【００９３】
エレメント相互接続バス（ＥＩＢ）１５８０は、Ｃｅｌｌプロセッサ１４２８内部の論理的には環状の通信バスであり、上記のプロセッサエレメント（すなわち、ＰＰＥ１５５０、メモリコントローラ１５６０、デュアルバスインタフェース１５７０Ａ，Ｂ、および８基のＳＰＥ１５１０Ａ〜Ｈ、合計１２個のパーティシパント）を接続している。パーティシパントは、１クロックサイクルにつき８バイトの速度で、バスに同時に読み出しおよび書き込みを行うことができる。上で説明したように、各ＳＰＥ１５１０Ａ〜Ｈは、長い読み出しまたは書み込みのシーケンスをスケジュールするためのＤＭＡＣ１５４２Ａ〜Ｈを備える。ＥＩＢは、４つのチャネルを備え、そのうち２つは時計回り方向であり、残り２つは反時計回り方向である。したがって、１２のパーティシパントについて、２つのパーティシパント間のステップ方式の最長のデータフローは、適切な方向で６ステップとなる。このため、パーティシパント間でアービトレーションが行われて完全な利用度が実現されると、１２のスロットの理論上のピーク瞬間ＥＩＢ帯域幅は、１クロックにつき９６Ｂとなる。これは、３．２ＧＨｚのクロック速度で３０７．２ＧＢ／ｓ（ギガバイト／秒）の理論上のピーク帯域幅に相当する。
【００９４】
メモリコントローラ１５６０は、ラムバス社（Rambus Incorporated）によって開発されたＸＤＲＡＭインタフェース１５６２を備える。メモリコントローラは、２５．６ＧＢ／ｓの理論上のピーク帯域幅で、Ｒａｍｂｕｓ ＸＤＲＡＭ１４２６とインタフェースする。
【００９５】
デュアルバスインタフェース１５７０Ａ，Ｂは、Ｒａｍｂｕｓ ＦｌｅｘＩＯ（登録商標）システムインタフェース１５７２Ａ，Ｂを備える。インタフェースは、それぞれ８ビット幅の１２のチャネルに編成されており、このうち、５の経路が受信用、７つの経路が送信用である。これにより、Ｃｅｌｌプロセッサと、コントローラ１７０Ａを介してＩ／Ｏブリッジ７００間、およびコントローラ１７０Ｂを介してＲｅａｌｉｔｙ Ｓｉｍｕｌａｔｏｒグラフィックユニット２００間で、理論上のピーク帯域幅が６２．４ＧＢ／ｓ（送信３６．４ＧＢ／ｓ、受信２６ＧＢ／ｓ）が得られる。
【００９６】
Ｃｅｌｌプロセッサ１４２８によってＲｅａｌｉｔｙ Ｓｉｍｕｌａｔｏｒグラフィックユニット１４３０に送信されるデータには、通常、表示リストが含まれ、これは、頂点を描画したり、ポリゴンにテクスチャを貼り付けたり、照明条件を指定するなどための一連のコマンドである。
【００９７】
図１２は、本発明の実施の形態に係る、シーンＡからシーンＥとそれぞれ対応するユーザＡからユーザＥが、インターネットを介してサーバ処理と接続しているゲームクライアント１１０２で相互に交流する様子を例示する図である。ゲームクライアントは、ユーザがインターネットを経由してサーバのアプリケーションおよび処理と接続することを可能にするためのデバイスである。ゲームクライアントによって、ユーザは、これらに限定されることはないが、例えばゲーム、映画、音楽、および写真等のオンラインの娯楽コンテンツにアクセスして再生することが可能となる。加えて、ゲームクライアントはＶＯＩＰ、テキストチャットプロトコル、および電子メールのようなオンラインコミュニケーションへのアクセスを提供することができる。
【００９８】
ユーザはコントローラによってゲームクライアントとやり取りをする。ある実施の形態では、コントローラはゲームクライアント固有のコントローラであるが、一方他の実施の形態では、コントローラはキーボードとマウスとの組み合わせである。ある実施の形態では、ゲームクライアントはオーディオおよびビデオ信号を出力することができるスタンドアロンのデバイスであり、モニタ／テレビと関連するオーディオ環境を通してマルチメディア環境を生成する。例えば、ゲームクライアントは、シン・クライアント（thin client）、内部ＰＣＩエクスプレスカード、外部ＰＣＩエクスプレスデバイス、エクスプレスカードデバイス、内部、外部、またはＵＳＢデバイス、あるいはファイヤワイヤデバイス等とすることができるが、これに限定されない。他の実施の形態では、ゲームクライアントはテレビや、ＤＶＲ、Ｂｌｕ−Ｒａｙプレイヤ、ＤＶＤプレイヤ、あるいはマルチチャネルレシーバのような他のマルティメディアデバイスに統合されている。
【００９９】
図１２はにおけるシーンＡ内で、ユーザＡはゲームクライアント１１０２Ａとペアとなっているコントローラ１００を使ってモニタ１０６に表示されているクライアントアプリケーションと接続する。同様に、シーンＢ内で、ユーザＢはゲームクライアント１１０２Ｂとペアとなっているコントローラ１００を使ってモニタ１０６に表示されているクライアントアプリケーションと接続する。シーンＣは、ゲームを表示しているモニタとゲームクライアント１１０２Ｃによる友達のリストとを見ているユーザＣの後ろからの眺めを示している。図１２はひとつのサーバ処理モジュールを示しているが、ある実施の形態では、世界中の多数のサーバ処理モジュールがある。各サーバ処理モジュールは、ユーザセッションコントロール、シェアリング／コミュニケーションロジック、および負荷分散処理サービス用のサブモジュールを含む。さらに、サーバ処理モジュールはネットワーク処理および分散ストレージを含む。
【０１００】
ゲームクライアント１１０２がサーバ処理モジュールに接続するとき、ユーザセッションコントロールがユーザを認証するために用いられてもよい。認証されたユーザは関連する仮想化された分散ストレージと仮想化されたネットワーク処理とを持つことができる。ユーザの仮想化された分散ストレージの一部として格納することができるアイテムの例としては、ゲームや音楽等の購入したメディアを含むがこれに限定されるものではない。加えて、分散ストレージは、多数のゲームのゲームステータス、個々のゲームのカスタマイズされた設定、およびゲームクライアント用の一般的な設定を保存するために用いられる。ある実施の形態では、サーバ処理のユーザ地理位置情報モジュールがユーザの地理位置およびそれぞれのゲームクライアントを決定するのに用いられる。ユーザの地理位置情報は、地理位置情報と多数のサーバ処理モジュールへの処理要求とに基づいたパフォーマンスの最適化をするために、シェアリング／コミュニケーションロジックと負荷分散処理サービスとの両者に利用される。ネットワーク処理とネットワークストレージとの両方を仮想化することにより、ゲームクライアントからの処理タスクを利用されていないサーバ処理モジュールに移すことが可能となる。負荷分散は、ストレージからの再呼び出し、およびサーバ処理モジュールとゲームクライアントとの間のデータ転送との両者に関連する待ち時間を最小化するために用いられる。
【０１０１】
図１２に示したように、サーバ処理モジュールはサーバアプリケーションＡおよびサーバアプリケーションＢとのインスタンスを持つ。サーバ処理モジュールはサーバアプリケーションＸ１およびサーバアプリケーションＸ２によって示される複数のサーバアプリケーションをサポートすることができる。ある実施の形態では、サーバ処理は、クラスタ内の多数のプロセッサにサーバアプリケーションを処理させることができるクラスタコンピューティングアーキテクチャに基づく。他の実施の形態では、異なる種類のマルチコンピュータ処理スキームがサーバアプリケーションを処理するために適用される。これにより、多数のクライアントアプリケーションおよび対応するサーバアプリケーションを実行する膨大な数のゲームクライアントを受け入れるためにサーバ処理を拡大することができる。また、さらなるグラフィックやゲームの処理、ビデオの圧縮、あるいは複雑なアプリケーションによって必要とされる、拡大された計算の需要を受け入れるためにサーバ処理を拡大することもできる。ある実施の形態では、サーバ処理モジュールは、サーバアプリケーションによって処理の大部分を実行する。これにより、グラフィックプロセッサ、ＲＡＭ、および一般的なプロセッサのような比較的高価な部品を中央に配置して、ゲームクライアントのコストを低減することができる。処理されたサーバアプリケーションのデータは、モニタに表示するために、インターネットを経由して対応するゲームクライアントに送り返される。
【０１０２】
シーンＣはゲームクライアントとサーバ処理モジュールとによって実行されるアプリケーションの例を示すものである。例えば、ある実施の形態に係るゲームクライアント１１０２Ｃによって、ユーザＣはユーザＡ、ユーザＢ、ユーザＤ、およびユーザＥを含む友達リスト１１２０を生成して眺めることが可能となる。シーンＣに示すように、ユーザＣはモニタ１０６上のリアルタイムのイメージやユーザ個々のアバターを見ることができる。サーバ処理は、ゲームクライアント１１０２Ｃと、ユーザＡ、ユーザＢ、ユーザＤ、およびユーザＥの個々のゲームクライアント１１０２との個々のアプリケーションを実行する。サーバ処理はゲームクライアントＢで実行されているアプリケーションを知ることができるので、ユーザＡ用の友達リストはユーザＢがどのゲームをプレイしているかを示すことができる。その上さらに、ある実施の形態では、ユーザＡはユーザＢからの実際のゲーム映像を直接見ることができる。これは単に、ユーザＢ用に処理されたサーバアプリケーションのデータをゲームクライアントＢに加えてゲームクライアントＡに送信することで実現できる。
【０１０３】
友達の映像を見ることができることに加えて、コミュニケーションアプリケーションによって友達同士のリアルタイムなコミュニケーションが可能となる。前述の例に適用することによって、ユーザＡはユーザＢのリアルタイムな映像を見ている間に応援やヒントを提供することが可能となる。ある実施の形態では、２方向のリアルタイムな音声コミュニケーションがクライアント／サーバアプリケーションを通して確立される。別の実施の形態では、クライアント／サーバアプリケーションはテキストチャットを可能にする。さらに別の実施の形態では、クライアント／サーバアプリケーションは友達のスクリーン上に表示するために会話をテキストに変換する。
【０１０４】
シーンＤおよびシーンＥは、ゲームコンソール１１１０Ｄおよび１１１０Ｅそれぞれで交流しているユーザＤおよびユーザＥそれぞれを示している。各ゲームコンソール１１１０Ｄと１１１０Ｅはサーバ処理モジュールに接続され、サーバ処理モジュールがゲームコンソールおよびゲームクライアントの両者のために調整するネットワークを説明している。
【０１０５】
図１３は、実施の形態に係るインフォメーションサービスプロバイダのアーキテクチャを示す図である。インフォメーションサービスプロバイダ（Information Service Providers （ＩＳＰ））２５０は、多くの情報サービスを地理的に分離していてネットワーク２６６によって接続されているユーザ２６２に配信する。ＩＳＰは株価のアップデートのようなたった１種類の情報、または放送メディア、ニュース、スポーツ、ゲーム等の多様なサービスを配信することができる。加えて、各ＩＳＰによって提供されたサービスは動的、すなわち、任意の時点で追加されたり取り除かれたりすることができる。ゆえに、特定の種類のサービスを特定の個人に提供しているＩＳＰは時間とともに変化する。例えば、ユーザがホームタウンにいる間は、ユーザの近郊のＩＳＰからサービスを受け、ユーザが異なる町に旅行しているときは、ユーザは異なるＩＳＰからサービスを受けてもよい。ホームタウンのＩＳＰは新しいＩＳＰに要求された情報とデータとを転送するので、データをユーザにより近いものとしより簡単にアクセスさせるユーザ情報が、新しい町までユーザに「ついていく」ことになる。他の実施の形態では、ユーザのために情報を管理するマスタＩＳＰと、マスタＩＳＰからのコントロールの下でユーザと接続するサーバＩＳＰとの間でマスタ／サーバの関係が構築される。他の実施の形態では、ユーザにサービスを提供するよりよい位置にあるＩＳＰがそのサービスを配信するサーバとなるように、クライアントが世界中を移動するのにしたがって、あるＩＳＰから別のＩＳＰにデータが転送される。
【０１０６】
ＩＳＰ２５０はアプリケーションサービスプロバイダ（Application Service Provider（ＡＳＰ））を含み、これはネットワーク上の顧客にコンピュータベースのサービスを提供する。ＡＳＰモデルを使って提供されるソフトウェアはオンデマンドソフトウェアまたはＳａａＳ（software as a service ）とも呼ばれる。特定のアプリケーションプログラム（顧客関係管理（customer relationship management）等）にアクセスするための単純な形態は、ＨＴＴＰのような標準的なプロトコルを用いることである。アプリケーションソフトウェアは製造供給元のシステムに属し、ＨＴＭＬを使ってウェブブラウザを通じてユーザによって、製造供給元に提供された特別な目的のクライアントソフトウェアによって、あるいはシン・クライアントのような他の遠隔インタフェースによってアクセスされる。
【０１０７】
広範な地理的領域に渡って配信されるサービスはしばしばクラウドコンピューティングを使用する。クラウドコンピューティングは、動的に拡張可能でしばしば仮想化されたリソースが供給されるコンピューティングのスタイルである。ユーザは、ユーザをサポートする「クラウド」内のインフラの技術の専門家である必要はない。クラウドコンピューティングは、ＩａａＳ（Infrastructure as a Service）、ＰａａＳ（Platform as a Service）、およびＳａａＳ（Software as a Service ）等の異なるサービスを配信することができる。クラウドコンピューティングサービスは、ウェブブラウザからアクセスされる共通のビジネスアプリケーションをオンラインでよく提供するが、ソフトウェアとデータとはサーバ上に格納されている。クラウド（cloud、雲）という用語は、インターネットの比喩（metaphor）として用いられる。これはコンピュータネットワークのダイアグラム内でのインターネットの描写のされ方、およびそれが隠している複雑なインフラの抽象表現に基づいている。
【０１０８】
さらに、ＩＳＰ２５０は、ゲームクライアントによって一人または他人数のビデオゲームをプレイするために用いられるゲームプロセッシングサーバ（Game Processing Server（ＧＰＳ））２５４を含む。インターネットを通じてプレイされるゲームのほとんどは、ゲームサーバに接続して動作する。典型的には、ゲームはプレイヤからデータを収集し、他のプレイヤに分配する専用のサーバアプリケーションを用いる。これはピアツーピアのアレンジメントよりも効率的かつ効果的であるが、サーバアプリケーションのホストとなる別個のサーバが必要である。別の実施の形態では、集中型のＧＰＳに依存することなく、ＧＰＳはプレイヤと個々のゲームをプレイするデバイスの交換情報との間のコミュニケーションを確立する。
【０１０９】
専用のＧＰＳはクライアントとは独立に動くサーバである。そのようなサーバは、通常データセンターにある専用のハードウェア上で動作し、より広帯域かつ専用の処理パワーを提供している。ほとんどのＰＣベースのマルチプレイヤゲームにとって、ゲームサーバをホストする方法として専用のサーバがあるのは好ましい。専用のサーバ上で動作する膨大な数のマルチプレイヤオンラインゲームは、通常そのゲームタイトルを所有するソフトウェア会社によってホストされ、そのソフトウェア会社がコンテンツの制御とアップデートすることを可能としている。
【０１１０】
ブロードキャストプロセッシングサーバ（Broadcast Processing Serve（ＢＰＳ））２５６はオーディオおよびビデオ信号を視聴者に分配する。非常に狭い範囲の視聴者にブロードキャストすることは、ナローキャスティング（narrowcasting）と呼ばれることもある。ブロードキャストの最後の行程は、リスナーや視聴者がその信号をどのように取得するかであり、それはラジオ局やテレビ局からアンテナと受信機へと同じように空中を伝わってくるか、あるいは局やネットワークを直接経由してケーブルテレビやケーブルラジオ（または「ワイヤレスケーブル」）を通じてきてもよい。インターネットはラジオやテレビを受信者に届けてもよい。特に、マルチキャストによって信号と帯域とを共有させることが可能となる。歴史的には、ブロードキャストは国際放送と局地放送のような地理的領域によって区切られていた。しかしながら、高速なインターネットの広がりとともにブロードキャストは地形によって規定されず、コンテンツは世界中のほとんどの国に届く。
【０１１１】
ストレージサーバプロバイダ（Storage Service Provider（ＳＳＰ））２５８は、コンピュータストレージサービスと関連する管理サービスを提供する。ＳＳＰは定期的なバックアップおよびアーカイブも提供する。サービスとしてストレージを提供することにより、必要に応じてユーザはさらなるストレージをオーダーすることができる。他の重要な利点は、ＳＳＰはバックアップサービスを含み、仮にユーザのコンピュータのハードディスクが故障したとしてもユーザはデータを失わないという点である。さらに、複数のＳＳＰがユーザデータの全部または一部のコピーを持つことができ、ユーザのいる場所やデバイスがデータアクセスのために使用中であることに関係なく、ユーザは効果的にデータにアクセスることができる。例えば、ユーザが移動中に携帯電話内のファイルにアクセスできるのと同様に、家庭のコンピュータ内の個人的なファイルにアクセスすることができる。
【０１１２】
コミュニケーションプロバイダ２６０はユーザに接続を提供する。コミュニケーションプロバイダのひとつ種類は、インターネットへのアクセスを提供するインターネットサービスプロバイダ（Internet Service Provider （ＩＳＰ））である。ダイヤルアップ、ＤＳＬ、ケーブルモデム、無線まはた専用の高速な相互接続のようなインターネットプロトコルデータグラムを配信するための適切なデータ転送技術を用いて、ＩＳＰは顧客と接続する。コミュニケーションプロバイダは電子メール、インスタントメッセージ、およびＳＭＳテキストのようなメッセージサービスも提供することができる。コミュニケーションプロバイダの他の形式は、ネットワークサービスプロバイダ（Network Service provider（ＮＳＰ））であり、これはインターネットのバックボーンへの直接的アクセスを提供することで帯域やネットワークアクセスを販売する。ネットワークサービスプロバイダは、電話会社、データキャリア、無線通信プロバイダ、インターネットサービスプロバイダ、高速なインターネットアクセスを提供しているケーブルテレビ会社等で構成されうる。
【０１１３】
データ交換２６８はＩＳＰ２５３内のいくつものモジュールと相互接続し、これらのモジュールをネットワーク２６６を介してユーザ２６２と接続する。データ交換２６８は、ＩＳＰ２５０の全てのモジュールが近傍に存在する小さなエリアをカバーすることができ、また異なるモジュールが地理的に分散しているときは広範な地理的エリアをカバーすることができる。例えば、データ交換２６８はデータセンターのキャビネット内に高速ギガビットイーサネット（登録商標）、またはより高速のものや、大陸間仮想エリアネットワーク（intercontinental virtual area network（ＶＬＡＮ））を含むことができる。
【０１１４】
ユーザ２６２は、少なくともＣＰＵ、ディスプレイ、およびＩ／Ｏを含むクライアントデバイス２６４で遠隔サービスにアクセスする。クライアントデバイスはＰＣ、携帯電話、ネットブック、ＰＤＡ等とすることができる。ある実施の形態では、ＩＳＰ２５０クライアントに使われているデバイスの種類を認識し、採用しているコミュニケーションメソッドを調整する。その他、クライアントデバイスはＩＳＰ２５０にアクセスするために、ｈｔｍｌのような標準的なコミュニケーションメソッドを使用する。
【０１１５】
本発明の実施の形態は、携帯型装置、マイクロプロセッサシステム、マイクロプロセッサベースの、あるいはプログラム可能なコンシューマ向け電子機器、ミニコンピュータ、メインフレームコンピュータ他を含む他のコンピュータシステム構成で実施されてもよい。本発明は、ネットワークを通してリンクされている遠隔処理デバイスによってタスクが実行される分散コンピューティング環境において実施されてもよい。
【０１１６】
上述の実施形態を念頭において、本発明は、コンピュータシステムに格納されたデータに関わる様々なコンピュータ実装の操作を採用可能であることを理解されたい。これらの操作は、物理量の物理的な操作を必要とするものである。本発明の一部を形成する本明細書で述べた操作はいずれも、有用な機械動作である。本発明は、これらの動作を実行するデバイスまたは装置にも関連する。この装置は特別な用途のコンピュータのような、要求される用途のために特別に構成された装置であってもよい。特別な用途のコンピュータと定義されたとき、そのコンピュータは、他の処理、プログラムの実行、または特別な用途の一部ではないルーチンを実行することができ、特別な用途のために演算することもできる。あるいは、その演算は、コンピュータメモリ、キャッシュに格納されているか、またはネットワークを通して取得した一またはそれ以上のコンピュータプログラムによって選択的に起動あるいは設定された汎用コンピュータによって処理されてもよい。ネットワークを通してデータが取得されたときは、クラウドコンピューティングリソース等のネットワーク上の他のコンピュータによって処理されてもよい。
【０１１７】
本発明の実施の形態は、データをある状態から他の状態に変換する機械として定義することもできる。変換されたデータはストレージに保存されて、プロセッサによって操作される。プロセッサはこのようにしてデータをひとつのものから他のものへ変換する。さらに、ネットワークを通じて接続される一またはそれ以上の機械やプロセッサによってこの方法は処理されることができる。それぞれの機械はデータをある状態やものから別の状態やものに変換することができ、データの処理、ストレージへのデータの保存、ネットワークを通じたデータの送信、結果の表示、あるいは他の機械へ結果を通信することもできる。
【０１１８】
方法の演算を特定の順序で説明したが、所望の方法で演算が実行される限りにおいて、他のハウスキーピング処理が演算間で実施されてもよいし、演算がわずかに異なるタイミングで生じるように調整されてもよいし、処理に関連づけられた様々な間隔において処理される演算を生じさせることが可能なシステムに演算を分配してもよいことは理解されたい。
【０１１９】
上記では、理解を明確にするために本発明を詳細に説明したが、添付の請求の範囲内で特定の変更および修正を実施可能であることは明らかである。したがって、実施の形態は例示的なものであり限定を意味するものではなく、また、本発明は本明細書で述べた詳細に限定されることはなく、添付の特許請求の範囲およびその等価物の範囲で修正可能である。
【図１】
2011086293.tif 000003
【図２Ａ】
2011086293.tif 000004
【図２Ｂ】
2011086293.tif 000005
【図２Ｃ】
2011086293.tif 000006
【図３】
2011086293.tif 000007
【図８】
2011086293.tif 000008
【図９】
2011086293.tif 000009
【図１２】
2011086293.tif 000010
【図４】
2011086293.tif 000011
【図５】
2011086293.tif 000012
【図６】
2011086293.tif 000013
【図７】
2011086293.tif 000014
【図１０】
2011086293.tif 000015
【図１１】
2011086293.tif 000016
【図１３】
2011086293.tif 000017