(57)【特許請求の範囲】
【請求項１】
複数のキャラクターを表す、単一のプレイヤー制御のアイコンを含む、ロールプレイングゲーム中のマップシーンを表示するステップと、
前記マップシーン上の場所に前記単一のプレイヤー制御のアイコンを移動させるユーザーのリクエストを受け取るステップと、
前記単一のプレイヤー制御のアイコンが前記マップシーン上の前記場所へ入ることに応答して、前記マップシーン上の前記場所の複数の異なるエリアを含む前記マップシーン上の前記場所のより近いビューを表示するステップと、
前記複数のキャラクターの各々の嗜好情報にアクセスするステップと、
前記嗜好情報の少なくとも一部に基づいて、前記マップシーン上の前記場所の異なるエリアに前記複数のキャラクターを自動的に分散させるステップと、
前記異なるエリアの少なくとも一つにおける制御のために前記複数のキャラクターの選択された最初の１つのユーザー指示を受け取るステップと、
前記異なるエリアの少なくとも一つの第１の対話中に第１のキャラクターを含むステップと、
前記第１のキャラクターを含む前記第１の対話を記録するステップと、
前記第１の対話に続いて、前記複数のキャラクターの第２のキャラクターへ制御を切り替えるためのユーザーコマンドを受け取り、前記第２のキャラクターの視点から前記第１の対話を続けるステップと、
第２の対話の前記第２のキャラクターを含むためのユーザーコマンドを受け取るステップと
をコンピュータに、ビデオゲーム内で実行させるコンピュータ実行可能命令を格納するコンピュータ可読媒体。
【請求項２】
前記第１の対話に続いて、前記複数のキャラクターの第２のキャラクターに制御を切り替え、前記第２のキャラクターの視点から前記第１の対話をリプレイするために時間を戻すユーザー要求を受け取るステップをさらに備えたことを特徴とする請求項１のコンピュータ可読媒体。
【請求項３】
前記第２のキャラクターに前記第１の対話の以前の結果を変えさせるユーザーコマンドを受け取るステップをさらに備えたことを特徴とする請求項２のコンピュータ可読媒体。
【請求項４】
第３のキャラクターを使用して前記第２の対話をリプレイするための他のユーザー要求を受けとり、前記他のユーザー要求に応答して前記第２の対話をリプレイするステップをさらに備えたことを特徴とする請求項３のコンピュータ可読媒体。
【請求項５】
コンピュータのプロセッサが、
第１のプレイヤー制御のキャラクターおよびコンピュータ制御のキャラクターを有するシーンを表示するステップと、
プレイヤーコマンドに応答して、前記第１のプレイヤー制御のキャラクターと前記コンピュータ制御のキャラクター間の対話を表示し、前記対話を記録するステップと、
ユーザーコマンドに応答して、プレイヤーの制御を第２のキャラクターに切り替えるス
テップと、
前記第２のキャラクターの視点を通して前記対話をリプレイするステップと、
ユーザーコマンドに応答して、マップシーンを通して、複数のキャラクターを表すアイ
コンを移動させるステップと、
前記マップシーン内の既定のエリアに前記アイコンが入ることに応答して、前記複数のキャラクターを表す複数のアイコンに前記アイコンを、自動的に分散させるステップと
をコンピュータに、ビデオゲーム内で実行させるコンピュータ実行可能命令を格納するコンピュータ可読媒体。  
【請求項６】
前記第２のキャラクターの行動に応答して、前記記録された対話の結果を変化させるステップをさらに備えたことを特徴とする請求項５のコンピュータ可読媒体。
【請求項７】
前記変えられた結果を有する前記リプレイされた対話を記録するステップをさらに備えたことを特徴とする請求項６のコンピュータ可読媒体。
【請求項８】
第３のキャラクターにプレーヤー制御を変更するユーザーコマンドを受けとり、前記第３のキャラクターの視点から前記リプレイされた対話をリプレイするステップをさらに備えたことを特徴とする請求項７のコンピュータ可読媒体。
【請求項９】
前記リプレイするステップの後に、前記第１のプレイヤー制御のキャラクターに制御を切り替えるための追加のユーザーコマンドを受け取るステップをさらに備えたことを特徴とする請求項５のコンピュータ可読媒体。
【請求項１０】
前記リプレイするステップの後に、第３のキャラクターにプレーヤー制御を切り替える追加のユーザーコマンドを受け取るステップをさらに備えたことを特徴とする請求項５のコンピュータ可読媒体。
【請求項１１】
前記自動的な分散は、前記キャラクターの格納された嗜好データに基づくことを特徴と
する請求項５のコンピュータ可読媒体。
【請求項１２】
前記既定のエリアは、前記ゲーム内の町を表すことを特徴とする請求項５のコンピュータ可読媒体。
【請求項１３】
コンピュータのプロセッサが、
ディスプレイデバイスを介して、第１のプレイヤー制御のキャラクターおよびコンピュータ制御のキャラクターを有するシーンを表示するステップと、
前記第１のプレイヤー制御のキャラクターと前記コンピュータ制御のキャラクター間の対話を表示し、前記対話を記録するステップと、
ユーザーコマンドに応答して、プレイヤーの制御を第２のキャラクターに切り替えるス
テップと、
前記第２のキャラクターの視点を通して前記対話をリプレイするステップと、
ユーザーコマンドに応答して、マップシーンを通して、複数のキャラクターを表すアイ
コンを移動させるステップと、
前記マップシーン内の既定のエリアに前記アイコンが入ることに応答して、前記複数のキャラクターを表す複数のアイコンに前記アイコンを、自動的に分散させるステップと
を実行することを特徴とするビデオゲーム方法。
【請求項１４】
前記第２のキャラクターの行動に応答して、前記記録された対話の以前の結果を変化させるステップをさらに備えたことを特徴とする請求項１３の方法。
【請求項１５】
前記変えられた結果を有する前記リプレイされた対話を記録するステップをさらに備えたことを特徴とする請求項１４の方法。
【請求項１６】
第３のキャラクターにプレーヤー制御を変更するユーザーコマンドを受けとり、前記第３のキャラクターの視点から前記リプレイされた対話をリプレイするステップをさらに備えたことを特徴とする請求項１３の方法。
【請求項１７】
前記リプレイするためのステップの後に、前記第１のプレイヤー制御のキャラクターに制御を切り替えるための追加のユーザーコマンドを受け取るステップをさらに備えたことを特徴とする請求項１３の方法。
【請求項１８】
前記自動的な分散は、前記複数のキャラクターの格納された嗜好データに基づくことを特徴とする請求項１３の方法。
【請求項１９】
前記既定のエリアは、前記ゲーム内の町を表すことを特徴とする請求項１３の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
コンピュータによるＲＰＧ（Ｒｏｌｅ−Ｐｌａｙｉｎｇ  Ｇａｍｅｓ）は、最も人気のあるビデオゲームの種類として、ビデオゲーム産業において、それらの安定した位置を有する。アトラクションは、通常、ゲームの中で伝えられる全体的なストーリー（または複数のストーリー）と、基礎となるゲーム構造との混在（たとえば、どのようにキャラクターがゲームの進行中で強化されるか、どのように戦闘が行われるかなどによってもたらされる）。
【背景技術】
【０００２】
いくつかのＲＰＧにおいて、プレイヤーは、ストーリーのメインキャラクターの制御を与えられ、さらなる脇役キャラクターは、ストーリーの進行として、メインキャラクターに加わってもよい。脇役キャラクターは、その展開として、ストリーリに重要であってもよく、ＲＰＧの開発者は、通常、（メインおよび脇役の両方の）キャラクターに考慮し得る思考および配慮を与え、それらに固有の体裁およびそれらの歴史を説明する背景ストーリーを与える。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかし、通常のＲＰＧは、メインキャラクターに焦点を当て続ける。いくつかのＲＰＧは、ゲームが行われる世界を描くマップシーンを使用し、メインキャラクターは、マップシーン内に表示される。プレイヤーは、マップシーンに示される環境を通してそれらのメインキャラクターを動かし、シーン内の様々な生物、キャラクター、およびまたはオブジェクトと対話してもよい。メインキャラクターが１または複数の脇役キャラクターを伴う場合、パーティーを形成し、脇役キャラクターはマップシーン内で重要な役割を行わず、多くの注目は与えられない。メインキャラクタ（またはパーティ）がマップシーンを介して移動し、町などのシーンの場所に入るとき、プレイヤーはメインキャラクターを制御したままで、この場合も、パーティーの脇役キャラクーをほとんど無視する。
【課題を解決するための手段】
【０００４】
この課題を解決するための手段は、詳細な説明内の以下にさらに説明する概念の選択を簡略化された形式で紹介するために提供される。この課題を解決するための手段は、特許請求の範囲の主題の鍵となる機能または重要な機能を識別することを意図しない、また特許請求の範囲とされた主題の範囲の決定の補助として使用されることを意図しない。
【０００５】
上記のように、ＲＰＧは、マップシーン上に、ゲームが行われる環境、およびプレイヤーのキャラクターが対話する１つまたは複数の生物、キャラクター、および／またはオブジェクトと共に、第１のキャラクターを表示するかもしれない。マップシーン上に表示された第１のキャラクターは、キャラクターのパーティー全体を表して、立っているかもしれない。いくつかの態様において、パーティーの各キャラクターは、ゲーム内の他の生物／キャラクター／オブジェクトに影響を与えるかもしれない、興味、嫌悪、体裁、装備などの個々の特質を有すようにプログラムされている。
【０００６】
プレイヤーはマップシーンに表示されている第１のキャラクターの動きを制御し、マップシーン内の場所に入ると（たとえば、町へ入ること）、パーティーの様々なキャラクターは、彼らの個々の特質による場所へ自動的に分散するかもしれない。
【０００７】
プレイヤーは、その場所にいる間制御するための、パーティーのキャラクターの一人を選択するオプションを与えられるかもしれない。キャラクターが選択された後、プレイヤーは場所をナビゲートし、選択されたキャラクターを使用して、場所において他の生物／キャラクター／オブジェクトと対話するかもしれない。そしてこれらの対話は、（対話する生物／キャラクター／オブジェクトの特質と共に、）選択されたキャラクターの特質によるかもしれない。
プレイヤーは、選択されたキャラクターから、パーティーからの異なるキャラクターへ制御を切り替えるオプションも与えられるかもしれない。プレイヤーは、ゲームの生物／キャラクター／オブジェクトと対話し、異なる状況を扱うのに、異なるキャラクターの特質を活用するかもしれない。
【０００８】
ゲームは、プレイヤーの選択したキャラクターの動作および行動を記録するようプログラムされていて、異なるキャラクターへの切り替え、および異なるキャラクターの視点からの同じ対話のリプレイのオプションをプレイヤーに与えるかもしれない。この方式において、プレイヤーは、ゲーム内で時間を遡って旅をしてきて現れ、最初に選択されたキャラクターの対話を変えるために異なるキャラクターを使用するかもしれない。
これらおよび他の態様は、より楽しめる体験をプレイヤーに提供するのを助けるかもしれず、それは本書でより詳細な記述される。
【発明を実施するための最良の形態】
【０００９】
様々な態様の以下の記述において、これに関する一部を形成し、実行されるかもしれないとして本書で説明される様々な機能を示す目的で示される、添付の図面を参照する。他の実施形態が使用されてもよく、構造的および機能的修正がなされてもよいことを、理解されたい。
【００１０】
図１は、コンピュータゲーム、ビデオゲーム、および他の電子ゲーム（本書ではまとめて、コンピュータゲームと呼ぶ）がプレイされるのに適したゲームシステム環境１００の一例を示す。ゲームシステム環境１００は、適当なコンピュータ環境の一例に過ぎず、本書に説明される使用の範囲または機能の機能性としてのあらゆる制限を提案することを意図しない。または、ゲームシステム環境１００は、ゲームシステム環境１００の具体的な動作において示される構成要素の任意の1つまたは組合せに関して、依存性または必要性を有するとして解釈されるべきでない。
【００１１】
本書で説明される態様は、他の多くの一般的な目的、あるいは特別の目的コンピューティングシステム環境または構成で動作可能である。使用に適した、よく知られたコンピューティングシステム、環境、および／または構成の例は、パーソナルコンピュータ、サーバコンピュータ、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ａｓｓｉｓｔａｎｔ）、タブレットＰＣ、またはラップトップＰＣなどのポータブルおよび携帯型デバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラム可能な家電、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、任意の上記システムおよびデバイスを含む分散コンピュータ環境である電子ゲームコンソールなどを含むが、それに制限されない。
【００１２】
本書の態様は、コンピュータによって実行されるプログラムモジュールなどの、コンピュータ実行可能命令の一般的なコンテキストにおいて説明される。一般に、プログラムモジュールは、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含み、そしてそれは、特定のタスクを実行するか、または特定のオブジェクトデータタイプを実装する。本書で説明される機能は、タスクが通信ネットワークを介してリンクされる遠隔処理デバイスによって実行される分散コンピューティング環境においても実行されてもよい。分散コンピューティング環境において、プログラムモジュールは、ローカル、およびメモリストレージデバイスを含む遠隔のコンピューターストレージメディアの両方に位置づけられるかもしれない。
【００１３】
図１は、ゲームシステム１００の一例を示す。ゲームシステム１００は、ゲームコンソール１０２、コントローラ１０４（１）および１０４（２）で表される複数のコントローラを含んでもよい。ゲームコンソール１０２は、内部のハードディスクドライブ、および光学ストレージディスク１０８によって表されるような、ポータブルストレージメディアの様々な形式をサポートするポータブルメディアドライブ１０６を装備している。適合するポータブルストレージメディアの例は、ＤＶＤ，ＣＤ−ＲＯＭ、ゲームディスクなどを含む。
【００１４】
ゲームコンソール１０２は、最大４つのコントローラをサポートするために、その前面に４つのスロット１１０を有すが、スロットの数および配置は修正されるかもしれない。電源ボタン１１２および取り出しボタン１１４もまた、ゲームコンソール１０２の前面に位置づけられる。電源ボタン１１２は、ゲームコンソールの電力を切り替え、取り出しボタン１１４は、ストレージディスク１０８の挿入及び取出すための、ポータブルメディアドライブ１０６のトレイを交互に開閉する。
【００１５】
ゲームコンソール１０２は、Ａ／Ｖインターフェースケーブル１２０を通して、テレビまたは他のディスプレイ（示されていない）へ接続してもよい。電源ケーブル１２２は、ゲームコンソールに電力を提供する。ゲームコンソール１０２はさらに、インターネットなどのネットワークへのアクセスを促進するケーブルまたはモデムコネクタ１２４によって表されるように、ブロードバンドネットワーク機能で構成されてもよい。
【００１６】
各コントローラ１０４は、有線または無線インターフェースを通って、ゲームコンソール１０２と結合されてもよい。示された実装において、コントローラは、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）互換であり、ＵＳＢケーブル１３０を通って、コンソール１０２と接続される。コントローラ１０２は、任意の多種多様のユーザー対話装置を装備してよい。図１に示されるように、各コントローラ１０４は、２つの親指スティック１３１（１）および１３２（２）、方向パッド１３４、ボタン１３６（たとえば、「Ａ」、「Ｂ」、「Ｘ」、「Ｙ」）、および２つのトリガ１３８を有する。これらの構造は、単に典型で、他の既知のゲームの構造は、図１に示されるものに代えられる。
【００１７】
ＭＵ（Ｍｅｍｏｒｙ  Ｕｎｉｔ）１４０は、追加およびポータブルストレージを提供するためにコントローラ１０４に挿入されてもよい。ポータブルメモリユニットは、ユーザーが、ゲームパラメータおよびユーザーのアカウントを格納、および他のコンソール上でのプレイを移植できるようにする。ヘッドセット１４２は、オーディオ通信機能を提供するために、コントローラ１０４またはゲームコンソール１０２に接続されるかもしれない。ヘッドセット１４２は、音声インプットのためのマイクロフォンおよび音声出力のための１または複数のスピーカを含むかもしれない。
【００１８】
ゲームシステム１００は、たとえば、ゲーム、音楽、およびビデオのプレイを可能である。異なるストレージの提供で、タイトルは、ハードディスクドライブあるいはドライブ１０６内のポータブルメディア１０８から、オンラインソースから、またはメモリユニット１４０から、プレイできる。セキュリティのため、いくつかの実施形態において実行可能なコードは、ポータブルメディア１０８からのみ実行できる。ゲームシステム１００が再生可能なものの例には、ＣＤおよびＤＶＤディスクから、ハードディスクドライブから、またはオンラインソースから再生されるゲームタイトル、ポータブルメディアドライブ１０６のＣＤから、ハードディスクドライブ上のファイル（たとえばＷＭＡ（Ｗｉｎｄｏｗｓ  Ｍｅｄｉａ  Ａｕｄｉｏ）フォーマット）から、またはオンラインストリーミングソースから再生されるデジタル音楽、ポータブルメディアドライブ１０６のＤＶＤディスクから、ハードディスクドライブ上のファイルから（たとえば、アクティブストリーミングフォーマット）、またはオンラインストリーミングソースから再生されるデジタルオーディオ／ビデオを含む。
【００１９】
図２は、ゲームシステム１００の機能的な構成要素をより詳細に示す。ゲームコンソール１０２は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２００、および、プロセッサが、フラッシュＲＯＭ（読取り専用メモリ）、ＲＡＭ（Ｒａｎｄａｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０６、ハードディスクドライブ２０８、およびポータブルメディアドライブ１０６を含む様々な種類のメモリにアクセスすることを促進するメモリコントローラ２０２を有する。ＣＰＵ２００は、一時的にデータを格納し、従ってメモリアクセスサイクルの回数を減らし、これによって、処理スピードとスループットを改善するために、レベル１キャッシュ２１０およびレベル２キャッシュ２１２を装備する。
【００２０】
ＣＰＵ２００、メモリコントローラ２０２、および様々なメモリデバイスは、シリアルおよびパラレルバス、メモリバス、周辺機器バス、および、バスアーキテクチャの任意の種類を使用するプロセッサまたはローカルバスを含む、１つまたは複数のバスを介して、相互接続される。例えば、そのようなアーキテクチャは、ＩＳＡ（Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、ＭＳＡ（Ｍｉｃｒｏ  Ｃｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、ＥＩＳＡ（Ｅｎｈａｎｃｅｄ  ＩＳＡ）バス、ＶＥＳＡ（Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ）ローカルバス、およびＭｅｚｚａｎｉｎｅバスとも知られるＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔｓ）バスを含むことができる。
【００２１】
１つの好適な例として、ＣＰＵ２００、メモリコントローラ２０２、ＲＯＭ２０４、およびＲＡＭ２０６は、共通モジュール２１４に統合される。この実装において、ＲＯＭ２０４は、メモリコントローラ２０２およびＲＯＭバス（示されていない）に接続されるフラッシュＲＯＭとして構成される。ＲＯＭ２０６は、分離しているバス（示されていない）を解して、メモリコントローラ２０２によって独立して制御される複数のＤＤＲ  ＳＤＲＡＭ（Ｄｏｕｂｌｅ  Ｄａｔａ  Ｒａｔｅ  Ｓｙｎｃｈｒｏｎｏｕｓ  Ｄｙｎａｍｉｃ ＲＡＭ）として構成される。ハードディスクドライブ２０８およびポータブルメディアドライブ２０６は、ＰＣＩバスおよびＡＴＡ（ＡＴ  Ａｔｔａｃｈｍｅｎｔ）バス２１６を介してメモリコントローラに接続される。
【００２２】
３Ｄグラフィックプロセシングユニット２２０およびビデオエンコーダ２２２は、グラフィック処理の高スピードおよび高解像度のためのピデオプロセッシングパイプラインを形成する。データは、デジタルビデオバス（示されていない）を介して、グラフィックプロセシングユニット２２０からビデオエンコーダ２２２へ運ばれる。オーディオプロセッシングユニット２２４およびオーディオコーデック（コーダ／デコーダ）２２６は、ハイファイおよびステレオ処理と対応するオーディオプロセッシングパイプラインを形成する。オーディオデータは、通信リンク（示されていない）を介して、オーディオプロセッシングユニット２２４およびオーディオコーデック２２６の間に運ばれる。ビデオおよびオーディオプロセッシングパイプラインは、テレビまたは他のディスプレイへの送信のために、Ａ／Ｖ（Ａｕｄｉｏ／Ｖｉｄｅｏ）ポート２２８へ、データを出力する。示された実装において、ビデオおよびオーディオプロセッシングコンポーネント２２０−２２８は、モジュール２１４に搭載される。
【００２３】
また、モジュール２１４上に実装されるのは、ＵＳＢホストコントローラ２３０およびネットワークインターフェース２３２である。ＵＳＢホストコントローラ２３０は、バス（例えば、ＰＣＩバス）を介して、ＣＰＵ２００およびメモリコントローラ２０２と結合され、および周辺機器のコントローラ１０４（１）〜１０４（４）のためのホストの役目をする。ネットワークインターフェース２３２は、ネットワークへのアクセスを提供し（たとえば、インターネット、ホームネットワークなど）、イーサーネット（登録商標）カード、モデム、Ｂｌｕｅｔｏｏｔｈモジュール、ケーブルモデムなどの多種多様な有線または無線インターフェースコンポーネントの任意であってよい。
【００２４】
ゲームコンソール１０２は、２つのデュアルなコントローラサポートのサブアセンブリ２４０（１）および２４０（２）を有し、それぞれのサブアセンブリは２つのゲームコントローラ１０４（１）〜１０４（４）をサポートする。フロントパネルＩ／Ｏサブアセンブリ２４２は、電源ボタン１１２およびイジェクトボタン１１４、ならびに任意のＬＥＤ（Ｌｉｇｈｔ  Ｅｍｉｔｔｉｎｇ  Ｄｉｏｄｅｓ）または他のゲームコンソールの外側の表面上にある他の表示器の機能をサポートする。サブアセンブリ２４０（１）、２４０（２），および２４２は、１つまたは複数のケーブルアセンブリ２４４を介して、モジュール２１４へ結合される。
【００２５】
８つのメモリユニット１４０（１）〜１４０（８）は、４つのコントローラ１０４（１）〜１０４（４）に接続可能であるとして示されている。つまり、各コントローラに２つのメモリユニットである。各メモリユニット１４０は、ゲーム、ゲームパラメータ、および他のデータが格納されるかもしれない追加のストレージを提供する。コントローラに挿入されるとき、メモリユニット１４０は、メモリコントローラ２０２によってアクセスされうる。
【００２６】
システムパワーサプライモジュール２５０は、ゲームシステム１００のコンポーネントウェ電力を提供する。ファン２５２は、ゲームコンソール１０２内の回路を冷やす。
【００２７】
ゲームコンソール１０２は、一貫したユーザインターフェース、および様々なエンターテイメントエリアを通してユーザーを動かすナビゲーション階層を提供する一定のメディアポータルモデルを実装する。ポータルモデルは、ポータブルメディアドライブ１０６に挿入されたメディアタイプに関わらず、ゲームデータ、オーディオデータ、ビデオデータなどの複数のメディアタイプからコンテンツにアクセスする便利な方法を提供する。
【００２８】
一定のメディアポータルモデルを実装するためにコンソールＵＩ（Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）アプリケーション２６０は、ハードディスクドライブ２０８に格納される。ゲームコンソールの電源が入ると、コンソールアプリケーション２６０の様々な部分は、ＲＡＭ２０６および／またはキャッシュ２１０、２１２にロードされ、ＣＰＵ２００上で実行される。コンソールアプリケーション２６０は、ゲームコンソール上で利用可能な異なるメディアタイプをナビゲートするとき一定のユーザー体験を提供するグラフィカルユーザインターフェースを表す。
【００２９】
ゲームシステム１００は、システムをテレビまたは他のディスプレイに単に接続することによって、スタンドアロンシステムとして動作してもよい。このスタンドアロンモードにおいて、ゲームシステム１００は、一人または複数のプレイヤーが、ゲームをプレイする、映画を見る、または音楽を聴くことを可能にする。しかし、ブロードバンド接続性がネットワークインターフェース２３２を介して利用可能とされると、ゲームシステム１００はさらに、より大きいネットワークゲームコミュニティにおける参加者として動作してもよい。ネットワークゲーム環境は次に説明される。
【００３０】
図３は、ネットワーク３０２を介して、複数のゲームシステム１００（１）、…、１００（ｇ）を相互接続する例示的ネットワークゲーム環境３００を示す。ネットワーク３０２は、多種多様の任意のデータ通信ネットワークを表す。それは、パブリック部（たとえばインターネット登録商標）ならびにプライベート部（たとえば、宅内のＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ））、ならびにパブリックおよびプライベート部の組合せを含んでもよい。ネットワーク３０２は、有線および無線メディアの両方を含む多種多様の従来の通信メディアの任意の１つまたは複数を使用して実装されてもよい。多種多様の通信プロトコルは、ネットワーク３０２を介して、パブリックおよび私有のプロトコルの両方を含むデータを通信するのに使用できる。そのようなプロトコルの例は、ＴＣＰ／ＩＰ、ＩＰＸ／ＳＰＸ、ＮｅｔＢＥＵＩなどを含む。
【００３１】
ゲームシステム１００に加えて、１つまたは複数のオンラインサービス３０４（１）、…、３０４（ｓ）は、ネットワーク３０２を介してアクセス可能であってよく、オンラインゲームのホスティング、ダウンロード可能な音楽またはビデオファイルの提供、ゲーム対戦のホスティング、ストリーミング音声／ビデオファイルの提供などのような、様々なサービスを参加者のために提供する。ネットワークゲーム環境３００は、鍵配布センタ３０６をさらに伴う。個々のプレイヤーおよび／またはゲームシステム１００の互いに、ならびにオンラインサービス３０４の認証の役割を果たす。配布センタ３０６は、有効な参加者のための鍵とサービスチケットを配布し、それはその後、複数のプレイヤーの間のゲームを形成し、オンラインサービス３０４からのサービスを購入するのに使用されてもよい。
【００３２】
ネットワークゲーム環境３００は、個々のゲームシステム１００に利用可能な別のメモリソースを導入する−オンラインストレージ。ポータブルストレージメディア１０８、ハードディスクドライブ２０８、およびメモリユニット１４０に加えて、ゲームシステム１００は、オンラインサービス３０４におけるリモートストレージ３０８によって例示されるように、ネットワーク３０２を介して、リモートストレージロケーションで利用可能なデータファイルにもまた、アクセスできる。
【００３３】
図４は、他のオンラインゲーム環境４００（たとえばワシントン州レドモンドのマイクロソフト社によるＸＢＯＸ（商標登録）ＬＩＶＥ）を示すブロック図である。複数のゲームコンソール４０２（１）、４０２（２）、…、４０２（ｎ）は、ネットワーク４０６を介して、セキュリティゲートウェイ４０４と結合する。各ゲームコンソール４０２は、たとえば図１または図２のゲームコンソール１０２とすることができる。ネットワーク４０６は、１または複数の種類の従来型データ通信ネットワークを表す。ネットワーク４０６は、通常、パケット交換ネットワークを含むが、回線交換ネットワークもまた含むだろう。ネットワーク４０６は、有線および／または無線部を含むことができる。一つの例示的実装において、ネットワーク４０６は、インターネットを含み、１つまたは複数のＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）および／またはＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）を随意的に含んでもよい。少なくともネットワーク４０６の一部は、パブリックネットワークであって、公衆にアクセス可能であるネットワークのことをいう。実質的に、誰もが、パブリックネットワークへアクセスできる。
【００３４】
いくつかの状況において、ネットワーク４０６は、ゲームコンソール４０２およびセキュリティゲートウェイ４０４の間に位置づけられたルーティングデバイスと共に、ＬＡＮ（たとえば、ホームネットワーク）を含む。このルーティングデバイスは、ＮＡＴ（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｉｏｎ）を実行してもよく、ＬＡＮ上の複数のデバイスがインターネット上で同じＩＰアドレスを共有することを可能にし、インターネットを介して悪意または害のあるユーザーによるアクセスから、ＬＡＮ上のデバイスを保護するためのファイアウォールとしても動作する。
【００３５】
セキュリティゲートウェイ４０４は、パブリックネットワーク４０６およびプライベートネットワーク４０８の間のゲートウェイとして動作する。プライベートネットワーク４０８は、ローカルエリアネットワークなどの広い種類の任意の従来型ネットワークであってよい。プライベートネットワーク４０８ならびに以下でより詳細に述べられる他のデバイスは、セキュリティゾーンとして動作するデータセンタ４１０内にある。データセンタ４１０は、信頼できる通信を介して、信頼できるデバイス通信で構成されている。このように、セキュリティゾーン４１０内での暗号化および認証は必要ない。ネットワーク４０８の非公開特性（Ｐｒｉｖａｔｅ  Ｎａｔｕｒｅ）は、ネットワーク４０８の制限されたアクセス可能性のことをいう−ネットワーク４０８へのアクセスは、ある個人のみに制限されている（たとえば、データセンタ４１０の所有者またはオペレータによって制限される）。
【００３６】
セキュリティゲートウェイ４０４は、１つまたは複数のセキュリティゲートウェイコンピューティングデバイスのクラスタである。これらのセキュリティゲートウェイコンピューティングデバイスは、セキュリティゲートウェイ４０４をまとめて実装する。セキュリティゲートウェイ４０４は、セキュリティゲートウェイコンピューティングデバイスによって処理される要求をそれらのコンピューティングデバイスの適切な１つへ向けるよう動作する１または複数の従来型ロードバランスデバイスを随意的に含む。このディレクティングおよびロードバランシングは、様々なセキュリティゲートウェイコンピューティングデバイス上の負荷のバランスを、概して同じに、（または代わりに、いくつかの他の基準によって）とろうとする方式で実行される。
【００３７】
データセンタ４１０内も、１または複数のモニタリングサービス、１つまたは複数のプレゼンスおよび通知フロントドア４１４、１つまたは複数のプレゼンスサーバ４１６、通知サーバ４１８、プロフィールストア４２８（まとめてプレゼンスおよび通知サービスまたはシステム４３０を実装する）、１つ又は複数のマッチフロントドア４２０、１つまたは複数のマッチサーバ４２２（まとめてマッチサービスを実装する）、１つまた複数の統計フロントドア４２４、および１つ又は複数の統計サーバ４２６（まとめて、統計サービスを実装する）がある。サーバ４１６、４１８、４２２、および４２６は、ゲームコンソール４０２へサービスを提供し、このようにサービスデバイスといわれうる。他のサービスデバイスもまた、サーバ４１６、４１８、４２２、および４２６に追加しておよび／または代わりに、含まれてもよい。追加して、図４においてたった１つのデータしか示されていないが、代わりに複数のデータセンタが存在してもよく、ゲームコンソール４０２が通信できる。これらのデータセンタは、独立して動作してもよく、または代わりに、まとめて動作してもよい（たとえば、ゲームコンソール１０２、４０２に利用可能なひとつの大きいデータセンタを作ること）。
【００３８】
ゲームコンソール４０２は、データセンタ４１０から離れて置かれ、ネットワーク４０６を介してデータセンタへアクセスする。データセンタ内の１つまたは複数のデバイスと通信することを望むゲームコンソール４０２は、データセンタへログインし、コンソール４０２とセキュリティゲートウェイ４０４間のセキュア通信チャネルを構築する。ゲームコンソール４０２およびセキュリティゲートウェイ４０４は、行ったり来たりするデータパケットを暗号化し認証し、これにより、データパケットが、暗号を破ることなしにデータパケットをとらえ、またはコピーするかもしれない他の任意のデバイスによって理解されることなし、それらの間で、セキュアに送信されることを可能にする。ゲームコンソール４０２からセキュリティゲートウェイ４０４、またはセキュリティゲートウェイ４０４からゲームコンソール４０２へ通信される各データパケットは、そこの埋め込まれたデータを有することができる。この組み込まれたデータは、コンテンツまたはパケットのデータコンテンツとよばれる。追加の情報は、パケットの種類に基づくパケット内に本来的に含まれる（たとえば、ハートビートパケット）。
【００３９】
コンソール４０２とセキュリティゲートウェイ４０４の間のセキュア通信チャネルは、セキュリティチケットに基づく。コンソール４０２は、鍵配布センタ４２８に対してそれ自身およびコンソール４０２の現在のユーザーを認証し、鍵配布センタ４２８からセキュリティチケットを取得する。コンソール４０２はその後、セキュリティゲートウェイ４０４とのセキュアな通信を確立するためにこのセキュリティチケットを使用する。セキュリティゲートウェイ４０４とのセキュアな通信チャネルの構築の際、ゲームコンソール４０２およびセキュリティゲートウェイ４０４は、お互いにそれら自身を認証し、特定のゲームコンソール４０２およびセキュリティゲートウェイ４０４のみに知られているセションセキュリティ鍵を構築する。このセションセキュリティ鍵は、ゲームコンソール４０２とセキュリティゲートウェイ４０４間、およびセキュリティゲートウェイクラスタ４０４で送信されるデータを暗号化するのに使用され、他のデバイス（他のゲームコンソール４０２を含む）は、データを読むことができない。セションセキュリティ鍵もまた、データパケットによって送信元であると主張するセキュリティゲートウェイ４０４またはゲームコンソール４０２からのものであるとして、そのデータパケットを認証するために使用される。このように、そのようなセションセキュリティ鍵を使用することで、セキュア通信チャネルが、セキュリティゲートウェイ４０４および様々なゲームコンソール４０２間で構築できる。
【００４０】
セキュア通信チャネルが、ゲームコンソール４０２とセキュリティゲートウェイ４０４間で構築されると、暗号化されたデータパケットは、２者間でセキュアに送信されうる。ゲームコンソール４０２がデータセンタ４１０内の特定のサービスデバイスへデータを送ることを望むならば、ゲームコンソール４０２は、データを暗号化し、データパケットによる目的とされる特定のサービスデバイスへ転送されることを要求するセキュリティゲートウェイ４０４へそれを送る。セキュリティゲートウェイ４０４は、データパケットを受信し、データペットを認証および復号化した後、プライベートネットワーク４０８を介して適切なサービスへ送るために、パケットのデータコンテンツを他のメッセージへカプセル化する。セキュリティゲートウェイ４０４は、データパケットによって目的とされる要求されたサービスに基づいて、メッセージのための適切なサービスを決定する。
【００４１】
同様に、データセンタ４１０のサービスデバイスが、ゲームコンソール４０２へデータを通信することを望むとき、データセンタは、プライベートネットワーク４０８を介してセキュリティゲートウェイ４０４へメッセージを送り、それは、ゲームコンソール４０２へ送られるデータコンテンツ、ならびにデータコンテンツが送られる特定のゲームコンソール４０２の指示を含む。セキュリティゲートウェイ４０４は、データコンテンツをデータパケットへ組み込み、その後、データパケットを暗号化するので、特定のゲームコンソール４０２によってのみ復号化され、セキュリティゲートウェイ４０４からのデータパケットの認証もする。
【００４２】
ゲームコンソール４０２とセキュリティゲートウェイ４０４間で、主として暗号化データパケットを通信することとして本書で述べられているが、代わりに、いくつかのデータパケットが部分的に暗号化されてもよい（データパケットのいくつかの部分は暗号化される一方で、他の部分が暗号化されない）。データパケットのどの部分が暗号化され、どの部分がされないかは、データセンタ４１０および／またはゲームコンソール４０２の設計の要望に基づいて変えることができる。たとえば、設計者は、ボイスデータがコンソール４０２の間で通信することを可能にすることを選択してもよいので、コンソール４０２のユーザーは、お互いに話すことができる−設計者はさらに、パケットの任意の他のデータが暗号化されている間、ボイスデータが暗号化されないことを可能にすることを選択してもよい。さらに、他の代替において、いくつかのデータパケットは、暗号化されている部分を有さなくてもよい（つまりデータパケット全体は暗号化されていない）。データパケットが暗号化されるか、または部分的に暗号化されていたとしても、データパケットのすべては、まだ認証することは可能であることを理解されたい。
【００４３】
ゲートウェイ４０４の各セキュリティゲートウェイデバイスは、通常、１または複数のゲームコンソール４０２とのセキュアな通信チャネルに関与し、このように各セキュリティゲートウェイデバイスは、１つまたは複数のゲームコンソールの管理または扱いに関与するよう見ることができる。様々なセキュリティゲートウェイデバイスは、それぞれ他と通信し、お互いにメッセージを通信してもよい。たとえば、管理に関与しないゲームコンソールへデータパケットを送る必要のあるセキュリティゲートウェイデバイスは、そのゲームコンソールへ送られるデータと共に、すべての他のセキュリティゲートウェイデバイスへメッセージを送ってもよい。このメッセージは、そのゲームコンソールの管理に関与し、適切なデータをそのゲームコンソールへ送るセキュリティゲートウェイデバイスによって受け取られる。代わりに、セキュリティゲートウェイデバイスは、どのゲームコンソールが、どのセキュリティゲートウェイデバイスによって扱われているかを知ってもよい−これは、各セキュリティゲートウェイデバイスが、他のセキュリティゲートウェイデバイスによって扱われるゲームコンソールのテーブルを保持する明示的、または変わりにゲームコンソールの識別子に基づいてどのセキュリティゲートウェイデバイスが特定のゲームコンソールに関与するかを決定するような潜在的なものであってもよい。
【００４４】
モニタリングサービス４１２は、利用可能なゲームコンソール４０２または利用不能なセキュリティゲートウェイ４０４のセキュリティゲートウェイデバイスのデータセンタ４１０内のデバイスを知らせるために動作する。ゲームコンソール４０２は、ハードウェアまたはソフトウェアの障害、データセンタ４１０のログアウトなしにコンソールの電源が落ちること、コンソール４０２へのネットワーク接続ケーブルがコンソール４０２へ接続されていないこと、他のネットワークの問題（たとえば、コンソール４０２が故障中）などのような、様々な異なる理由で利用不能となることがある。同様に、セキュリティゲートウェイ４０４のセキュリティゲートウェイデバイスは、ハードウェアまたはソフトウェアの障害、デバイスの電源が落ちること、デバイスへのネットワーク接続ケーブルがデバイスから接続されていないこと、他のネットワークの問題などのような、様々な異なる理由で利用不能となることがある。
【００４５】
セキュリティゲートウェイ４０４の各セキュリティゲートウェイデバイスは、１つまたは複数のモニタリングサーバ４１２によって監視され、それは、いつセキュリティゲートウェイのうちの１つが利用可能になったかを検知する。セキュリティゲートウェイデバイスが利用不能となる場合に、モニタリングサーバ４１２は、データセンタ４１０における他のデバイス（サーバ、フロントドアなど）のそれぞれにセキュリティゲートウェイデバイスがもはや利用可能でない旨のメッセージを送る。他のデバイスのそれぞれは、適切と思われるようにこの情報に基づいて動作できる（たとえば、セキュリティゲートウェイサービスによって管理されている特定のゲームコンソールは、もはやデータセンタ４１０と通信せず、それによって様々なクリーンアップ動作を実行すると仮定してもよい。）。代わりに、あるデバイスだけは、モニタリングサーバ４１２からそのようなメッセージを受け取ってもよい（たとえばセキュリティゲートウェイデバイスが利用かどうかに関するこれらのデバイスのみ）。
【００４６】
セキュリティゲートウェイ４０４は、個々のゲームコンソール４０２を監視し、ゲームコンソール４０２の１つが利用不能となるときに検知する。セキュリティゲートウェイ４０４が、ゲームコンソールがもはや利用可能でないことを検知するとき、セキュリティゲートウェイは、利用不能なゲームコンソールを識別するモニタリングサーバ４１２へメッセージを送る。応答して、モニタリングサーバ４１２は、データセンタ４１０の他のデバイスのそれぞれに（または代わりに、選択されたデバイスのみに）ゲームコンソールがもはや利用可能でない旨のメッセージを送る。他のデバイスのそれぞれは、適切と思われるようにこの情報に基づいてそれらを動作できる。
【００４７】
プレゼンスサーバ４１６は、オンラインゲームのために、データセンタ４１０へログインした所与のユーザーのログインの状態またはプレゼンスに関するデータを維持し、処理する。通知サーバ４１８は、データセンタ４１０へログインしたプレイヤー宛の出力
メッセージの複数の通知キューを保持する。プレゼンスおよび通知フロントドア４１４は、セキュリティゲートウェイ４０４およびサーバ４１６、４１８間で中継として動作する１または複数のサーバデバイスである。１または複数のロードバランシンングデバイス（示されていない）は、フロントドア４１４として動作する複数のサーバデバイス間で、負荷のバランスをとるために、プレゼンスおよび通知フロントドア４１４に含まれてもよい。セキュリティゲートウェイ４０４は、サーバ４１６、４１８のためにフロントドア４１４へメッセージを通信し、フロントドア４１４は、どの特定サーバ４１６または特定サーバ４１８とメッセージが通信するかを識別する。フロントドア４１４を使用することによって、どのユーザーに関して、どのサーバがデータを管理するのに関与するかなどの、サーバ４１６および４１８の実際の実装は、セキュリティゲートウェイ４０４から抽象化される。セキュリティゲートウェイ４０４は、プレゼンスおよび通知サービスを目的とするメッセージを、プレゼンスおよび通知フロントドア４１４へ単に転送し、サーバ４１６およびサーバ４１８の適切な１つにメッセージを向けるために、フロントドア４１４に依存する。
【００４８】
マッチサーバ４２２は、オンラインプレイヤーをお互いにマッチすることに関するデータを持ち、処理する。オンラインユーザは、ゲームの様々なキャラクターとともに、プレイすることが利用可能であるゲームを公表することができる（たとえば、フットボールゲームがプレイできるだろう場所、日中または夜にゲームがプレイされるかどうか、ユーザーの技術レベルなど）。これらの様々なキャラクター特徴はその後、ゲームを一緒にプレイする異なるオンラインユーザと対戦する基準として使用されうる。マッチフロントドア４２０は、１つまたは複数のサーバデバイス（、および随意的にロードバランシングデバイス）を含み、サーバ４１６およびサーバ４１８を抽象化するフロントドア４１４と類似の方法で、セキュリティゲートウェイ４０４からマッチサーバ４２２を抽象化するために動作する。
【００４９】
統計サーバ４２６は、オンラインゲームのための様々な統計に関するデータを持ち、処理する。特定の統計サーバは、ゲーム設計者の希望に基づいて変えることができる（たとえば、トップ１０のスコアと時間、そのゲームのすべてのオンラインプレイヤーの世界ランキング、もっともアイテムを見つけたユーザーまたはもっともプレイに時間を費やしたユーザーのリストなど）。統計フロントドア４２６は、１つまたは複数のサーバデバイス（、および随意的にロードバランシングデバイス）を含み、サーバ４１６およびサーバ４１８を抽象化するフロントドア４１４に類似の方法で、セキュリティゲートウェイ４０４から統計サーバ４２６を抽象化するために動作する。
【００５０】
このように、セキュリティゲートウェイ４０４は、信頼性のないパブリックネットワーク４０６から、データセンタ４１０のセキュアゾーン内のデバイスを保護するために動作することを理解されたい。データセンタ４１０のセキュアゾーン内の通信は、データセンタ４１０内のすべてのデバイスは信頼性があるので、暗号化される必要がない。しかし、セキュリティゲートウェイクラスタ４０４を通って、データセンタ内のデバイスからゲームコンソール４０２へ、任意の情報が通信され、それは、情報によって目的とされるゲームコンソール４０２によってのみ復号化されうるような方式で、暗号化される。
【００５１】
本書で説明される１つまたは複数の機能は、ＲＡＭメモリ２０６、不揮発性メモリ１０８、２０８、３０８、またはゲームコンソール１０２上の他の任意の常駐メモリに格納されるコンピュータ実行可能命令（つまり、ソフトウェア）に組み込まれてもよい。一般に、ソフトウェアモジュールは、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含み、特定のタスクを実行するか、コンピュータまたは他のデバイスのプロセッサによって実行されるとき、特定のオブジェクトデータタイプを実装する。コンピュータ実行可能命令は、１つまたは複数のハードディスク２０８、リムーバブルストレージメディア１０８（たとえば、ＣＤ−ＲＯＭ、ＤＶＤ、ディスクなど）、半導体メモリ、ＲＡＭ２０６などのような、コンピュータ可読メディア上に格納されてもよい。当業者によって理解されるように、ソフトウェアモジュールの機能性は、様々な実装に望まれるように、結合または分配されてよい。さらに、機能性は、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）などの、ファームウェアまたはハードウェア環境に、全部または一部で実装されてよい。
【００５２】
本書の態様は、コンソールコンピューティング環境に限られない。本当に、これらの態様は、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｍｐｕｔｅｒ）上で動作するビデオゲームにもまた、実装してよい。図５は、本書で説明される機能を実装してもよい適合するコンピューティングシステム環境５００の例を示す。コンピューティングシステム環境５００は、適合するコンピューティングシステムの一例にすぎず、本書で説明される使用の範囲または機能の機能性に関して、制限を提案することを意図しない。また、コンピューティングシステム環境５００が、例示的コンピューティングシステム環境５００に示される構成要素の任意の１つまたは組合せに関する任意の依存または要求を有すとして解釈されるべきでもない。
【００５３】
本書の機能は、多くの他の一般的な目的または特定の目的のコンピューティングシステム環境または構成で動作できる。使用に適していてもよい、よく知られているコンピューティングシステム、環境、および／または構成の例は、パーソナルコンピュータ、サーバコンピュータ、携帯またはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラム可能な家電、ネットワークＰＣ、マイクロコンピュータ、メインフレームコンピュータ、上記のシステムまたはデバイスの任意を含む分散コンピューティング環境などを含むが、これらに限られない。
【００５４】
本書の機能は、コンピュータによって実行されるプログラムモジュールなどのコンピュータ実行可能命令の一般的なコンテキストで説明されてもよい。一般的に、プログラムモジュールは、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含むみ、特定のタスクを実行するか、特定のオブジェクトデータタイプの実装をする。機能は、タスクが通信ネットワークを通ってリンクされるリモート処理デバイスによって実行される、分散コンピューティング環で実行されてもよい。分散コンピューティング環境において、プログラムモジュールは、メモリストレージを含む、ローカルおよびリモートコンピュータのストレージメディアの両方に位置づけられてよい。
【００５５】
図５を参照すると、本書で説明される機能を実装するための例示的システムは、コンピュータ５１０の形式で、一般的な目的のコンピューティングデバイスを含む。コンピュータ５１０のコンポーネントは、プロセッシングユニット５２０、システムメモリ５３０、および、システムメモリを含む様々なシステムコンポーネントをプロセッシングニット５２０に結合するシステムバス５２１を含んでもよいが、それらに限られない。システムバス５２１は、メモリバスまたはメモリコントローラ、周辺機器バス、および様々なバス構造の任意を使用するローカルバスを含む多くの種類のバスの任意であってよい。例えば、そしてそれに限られず、そのようなバス構造は、ＩＳＡ（Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、ＭＳＡ（Ｍｉｃｒｏ  Ｃｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、ＥＩＳＡ（Ｅｎｈａｎｃｅｄ  ＩＳＡ）バス、ＶＥＳＡ（Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ）ローカルバス、およびＭｅｚｚａｎｉｎｅバスとも知られるＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔｓ）バスを含む。
【００５６】
コンポーネント５１０は、様々なコンピュータ可読メディアを含む。コンピュータ可読メディアは、コンピュータ５１０によってアクセス可能な任意の利用可能メディアとすることができ、揮発性と不揮発性メディアの両方、リムーバブルおよびリムーバブルでないメディアを含む。例えば、そしてそれに限られず、コンピュータ可読メディアは、コンピュータのストレージメディアおよび通信メディアを構成してもよい。コンピュータのストレージメディアは、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報のストレージのための任意の方法および技術で実装される、揮発性と不揮発性の両方、リムーバブルおよびリムーバブルでないメディアを含む。コンピュータのストレージメディアは、ＲＡＭ、ＲＯＭ，ＥＥＰＲＯＭ、フラッシュメモリまたは他のメモリ技術、ＣＤ−ＲＯＭ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）または他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、あるいは他の磁気ストレージデバイス（単数または複数）、または望む情報を格納するのに使用され、コンピュータ５１０によってアクセスされうる他の任意のメディアを含むが、それらに限られない。通信メディアは、通常、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを、搬送波または他の伝送メカニズムなどの変調データ信号内に組み込み、任意の情報を運ぶメディアを含む。「変調データ信号」という言葉は、信号内に符号化された情報に関するそのような方法で設定または変えられるその特徴の１つまたは複数を有する信号を意味する。例によって、そしてそれに限られず、通信メディアは、有線ネットワークまたは直接有線接続などの有線メディア、およびアコースティック、ＲＦ、赤外線、および他の無線メディアなどの無線メディアを含む。上記の任意の組合せも、コンピュータ可読メディアの範囲内に含まれるべきである。
【００５７】
システムメモリ５３０は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）５３１およびＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）５３２などの、揮発性および／または不揮発性メモリの形式でコンピュータのストレージメディアを含む。スタートアップの間などのコンピュータ５１０内の要素間での情報を送るのを助ける基本のルーチンを含むＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）５３３は、通常、ＲＯＭ５３１に格納される。ＲＡＭ５３２は、通常、すぐにアクセス可能で、および／またはプロセッシングユニット５２０によって現在動作されているデータおよび／またはプログラムモジュールを含む。
【００５８】
コンピュータ５１０は、他のリムーバブル／リムーバブルでない、揮発性／不揮発性のコンピュータのストレージメディアもまた含む。例のみによると、図５は、リムーバブルでなく不揮発性の磁気メディアから読み出しまたは書き込むハードディスクドライブ５４１、リムーバブルで不揮発性の磁気ディスク５５２から読み出しまたは書き込む磁気ディスクドライブ５５１、ＣＤＲＯＭまたは他の光メディアなどのリムーバブルで不揮発性の光ディスク５５６から読み出しまたは書き込む光ディスクドライブ５５５を示す。例示的動作環境内で使用されうる、他のリムーバブル／リムーバブルでない、揮発性／不揮発性のコンピュータのストレージメディアは、磁気テープカセット、フラッシュメモリーカード、ディジタル多目的ディスク、ディジタルビデオテープ、半導体ＲＡＭ、半導体ＲＯｍなどのようなものを含むがそれらに限られない。ハードディスクドライブ５４１は、通常、インターフェース５４０などのリムーバブルでないメモリインターフェースを通して、システムバス５２１へ接続され、磁気ディスクドライブ５５１および光ディスクドライブ５５５は、通常、インターフェース５５０などのリムーバブルメモリインターフェースによってシステムバス５２１へ接続される。
【００５９】
上記で述べられ、図５で示されたドライブおよびそれらに関連したコンピュータのストレージメディアは、コンピュータ可読命令、データ構造、プログラムモジュール、および他のコンピュータ５１０のためのデータのストレージを提供する。図５において、たとえば、ハードディスクドライブ５４１は、オペレーティングシステム５４４、アプリケーションプログラム５４５、他のプログラムモジュール５４６、およびプログラムデータ５４７を格納するとして示される。これらのコンポーネントは、オペレーティングシステム５３４、アプリケーションプログラム５３５、他のプログラムモジュール５３６、およびプログラムデータ５３７と同じか、または異なるかどちらにでもなり得ることに留意されたい。オペレーティングシステム５４４、アプリケーションプログラム５４５、他のプログラムモジュール５４６、およびプログラムデータ５４７は、最小でそれらが異なるコピーであることを示す異なる番号を与えられる。ユーザーは、キーボード５６２およびポインティングデバイス５６１、一般にマウスとよばれる、トラックボールまたはタッチパッドなどの入力デバイスを介して、コンピュータへコマンドおよび情報を入力してもよい。他の入力デバイス（示されていない）は、マイクロフォン、ジョイスティック、ゲームパッド、衛星放送受信アンテナ、またはそのようなものを含んでもよい。これらおよび他の入力デバイスは、システムバスへ連結されるユーザー入力インターフェース５６０を介してプロセッシングユニット５２０へしばしば接続されるが、パラレルポート、ゲームポート、またはＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）などの他のインターフェースおよびバスによって接続されてもよい。モニター５９１または他の種類のディスプレイデバイスもまた、ビデオインターフェース５９０などのインターフェースを介して、システムバス５２１へ接続される。モニターに追加して、コンピュータもまた、スピーカー５９７、プリンター５９６などの他の周辺機器の出力デバイスを含んでもよく、それは出力の周辺機器インターフェース５９５を介して接続されてもよい。
【００６０】
コンピュータ５１０は、リモートコンピュータ５８０などの１つまたは複数のリモートコンピュータへの論理接続を使用してネットワーク化された環境で動作してもよい。リモートコンピュータ５８０は、パーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピアデバイス、または他の一般的なネットワークノードであってよく、通常は、図５にはメモリストレージデバイス５８１のみが示されているが、コンピュータ５１０に関する上記の多くまたはすべての要素を含む。図５に描かれている論理接続は、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）５７１およびＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）５７３を含むが、他のネットワークを含んでもよい。そのようなネットワーキング環境は、オフィス、企業規模のコンピュータネットワーク、イントラネット、およびインターネットにおいて、一般的である。
【００６１】
ＬＡＮネットワーキング環境において使用される場合、コンピュータ５１０は、ネットワークインターフェースまたはアダプタ５７０を介してＬＡＮ５７１へ接続される。ＷＡＮネットワーキング環境で使用される場合、コンピュータ５１０は、通常、モデム５７２、またはインターネットなどのＷＡＮ５７３上の通信を確立するための他の方法を含む。内部または外部であってよいモデム５７２は、ユーザー入力インターフェース５６０または他の適当なメカニズムを介して、システムバス５２１に接続されてもよい。ネットワーク化された環境において、コンピュータ５１０に関連して描かれたプログラムモジュール、またはその一部は、リモートメモリストレージデバイスに格納されてもよい。例えば、そしてそれに限られず、図５は、メモリデバイス５８１に在るとして、リモートアプリケーションプログラム５８５を示す。示されるネットワーク接続、およびコンピュータ間の通信リンク確立の他の方法を使用してもよいことが理解されるだろう。
【００６２】
図６はＲＰＧなどのビデオゲームのマップシーン例を示す。マップシーン６０１において、プレイヤーのキャラクターを表すアイコン６０２を表示してもよい。アイコン６０２は、ゲームのストーリー内の個々のキャラクターを表してもよく、またはパーティーを形成する複数のキャラクターを表してもよい。インディシア（ｉｎｄｉｃｉａ）６０２は、プレイヤーによって制御され、シーン６０１内を動き回り、ゲーム環境内の様々な要素との対話を行ってもよい。例えば、マップシーン６０１は、第１の町を表すアイコン６０３、第２の町を表す第２のアイコン６０４、森を表す第３のアイコン６０５、要塞を表す４番目のアイコン６０６のように、ゲーム世界内の様々な場所を表す複数のアイコンを含んでもよい。ストーリーの中身によって、任意の数のアイコンがマップシーン６０１に示されてもよい。
【００６３】
キャラクター６０２はプレイヤーの制御の下、マップシーン６０１を動き回ることができる。例えば、コントローラ１０４上の方向ボタンを押すと、キャラクター６０２は、シーン６０１内の対応する方向に移動し、１または複数の場所（たとえば、アイコン６０３〜６０６）に、その場所に入るために近づくことができる。
【００６４】
町６０４などの場所に入ると、ＲＰＧは、図７に示されるように、シーンが変更され、ロケーションシーン７００が表示されるかもしれない。ロケーションシーン７００は町６０４をより近づいて、より詳しく示してもよく、町６０４内でプレイヤーのキャラクターが対話できるエリアを表すアイコン７０２〜７０４を含んでもよい。上記のように、プレイヤーのパーティーは複数のキャラクターで構成されており、場所に入ると、パーティーは分散してもよい。図７に示されるように、複数のアイコン７０１ａ〜ｄが表示され、プレイヤーのパーティー内の様々なキャラクターに対応し、例えばアニメーションやフェード効果などによって、様々なキャラクターが町６０４内の様々なエリアに分散されるのを示してもよい。
【００６５】
分散は、個々のキャラクターの属性に基づいてもよい。例えば、大酒飲みのキャラクターは自動的に町のパブやバーに向かうかもしれない。信仰心の厚いキャラクター７０１Ｃは町の寺院７０３に向かうかもしれない。キャラクターの様々な嗜好や傾向は、ＲＡＭ２０６、ディスクドライブ２０８、システムメモリ５３０などのゲーム装置のメモリ内にデータ構造として格納されてもよい。データ構造は任意の形式でよく、図８で示すような種類のデータを保持してもよい。例えば、プレイヤーのパーティーにいる４人のキャラクターそれぞれのデータレコード（８０１〜８０４）があってよい。レコードはキャラクター識別子８０１ａ（キャラクター名など）を格納するかもしれない。レコードは、キャラクターの興味８０１ｂ情報を格納してもよく、例えば、キャラクターを惹きつけるオブジェクトの種類、エリア、生物、人格などの、キャラクターの特有の興味を識別してもよい。興味の情報は、興味の種類、ならびに興味の度合い（興味が弱い、興味が強いなど）を識別してもよい。同様に、レコードは、嫌悪情報８０１ｃも記憶可能で、例えばそのキャラクターが嫌いなオブジェクトの種類、エリア、生物、人格などのキャラクターの嫌悪を識別し、また嫌悪の度合い（嗜好性が弱い、嗜好性が強いなど）もまた識別してもよい。レコードは、（肌の色、髪、目など）のキャラクターの身体の体裁を識別する容姿情報８０１ｄ、キャラクターによって所持および／または装備されている装備品を識別する装備情報８０１ｄ、キャラクターの他の望ましい属性を識別する他の情報８０１eもまた格納してもよい。
【００６６】
ＲＰＧは、町エリアのような場所にある様々な要素の属性を識別するデータ構造８０５・８０６も格納してもよい。例えば、第１の場所８０５が寺院７０３に対応してもよく、場所のデータ構造は、この場所の種類を示してもよい。キャラクターの属性を場所の属性と比較し、町に入った際に、特定のキャラクターが訪れたい場所またはエリアを自動的に決定してもよい。
【００６７】
キャラクター６０２が町６０４などの場所に入ると、プレイヤーは、パーティーから制御するキャラクターを選択するオプションが与えられてもよい。例えば、プレイヤーは利用可能なキャラクターのリストを表示されてもよく、プレイヤーは、町にいる間、制御するキャラクターを選ぶことができる。その場所または町にいる間、パーティー内の別の一人のキャラクターへ動的に制御を切り替えてもよい。例えば、システムは、パーティーのキャラクターをリストアップするキャラクターデータ構造８０７を格納してもよく、コントローラ１０４の既定のボタンを押すことによって、リストの次のキャラクターに制御を切り替えてもよい。
【００６８】
キャラクター間の制御を切り替えることは、プレイヤーが、別の視点からイベントを体験することを可能にする。例えば、第１のキャラクターを使用して、障害に出くわす場合、プレイヤーは、その状況を助けるために別のキャラクターに制御を切り替えることができる。図９ａ〜ｄは、このような状況が起きる時の一連の画面一例である。第１に、図９ａにおいて、プレイヤーのキャラクター９０１が避けて通れない敵の守衛９０２と遭遇するかもしれない。第２のキャラクター９０３に制御を切り替えることによって、図９ｂに示すように守衛９０２の注意をそらすため第２のキャラクター９０３をその場面に連れてくることができる。プレイヤーは、図９ｃに示すように、守衛９０２をその持ち場から離れるように、第２のキャラクター９０３を仕向けてもよい。守衛９０２が持ち場を離れたら、プレイヤーは、第１のキャラクター９０１に制御を切り替えて戻し、守衛９０２に邪魔されずに第１のキャラクター９０１を通過させる。
【００６９】
図９ａ〜ｄで示される例において、プレイヤーがキャラクターを切り替えた後の時間でシーンが進行し続けた。キャラクターの切り替え後、第１のキャラクター９０１は、プレイヤーがそのキャラクターの制御に切り替えて戻すまで、単に同じ位置のままでもよい。代わりに、プレイヤーがキャラクターを切り替える際に、プレイヤーは、時間を戻って、前に起きたシーンを再生することを選択してもよい。例えば、プレイヤーが、キャラクター９０１を使用して守衛９０２をすり抜けようとし、失敗（たとえば、守衛がキャラクター９０１を捕え、拘禁する）した場合、プレイヤーは、別のキャラクター９０３に制御を切り替え、第１のキャラクター９０１の失敗の試みを目撃し、その結果を変えるためにその失敗の試みを、試すおよび介入するために、時間を戻すオプションを与えられてもよい。
【００７０】
これは、第１の対話の試みにおいて、第１のキャラクター９０３と守衛９０２によってとられる様々なアクションを識別する第１の記録データによって達成されてもよい。次にプレイヤーがキャラクター９０３に切り替えるとき、システムは、前回の対話中のキャラクター９０１と守衛９０２が表示するために、この記録されたデータをロードでき、プレイヤー（第２のキャラクター９０２を制御中）は、移動し、前回記録されたシーンと対話できる。もちろん、記録されたシーンは、第１の時とまったく同じに起こる必要はなく、キャラクター９０１および／または守衛９０２は、第２のキャラクター９０３のとった新規の行動に対応することができる。例えば、２回目の対話の間、プレイヤーは守衛９０２がキャラクター９０１を捕えようとしているところにキャラクター９０３を出会わせ、その後キャラクター９０３を逃走させる。守衛９０２がキャラクター９０１を捕え続ける代わりにキャラクター９０３を追ってきたら、プレイヤーは次に、プレイヤー９０１に制御を戻して、そのキャラクターにゲートを通過させるよう移動させてもよい。
【００７１】
図１０は本書で説明する１または複数の機能を実装する方法の一例を示す。ステップ１００１において、プレイヤーは、キャラクターのパーティーを表すアイコン６０２を制御し、マップシーン６０２を介してアイコンを動かし、町６０４などの町に入ってもよい。ステップ１００２において、プレイヤーは、町にいる間パーティーのどのキャラクターを制御したいかの選択のオプションが与えられてもよい。たとえば、利用可能なキャラクターのリストをユーザーに表示し、一人の選択を受け取ることによって、これはなされる。
【００７２】
プレイヤーは、制御するキャラクターを選ぶと、システムは、ステップ１００３に進み、パーティー内のキャラクターの分散を示してもよい。プレイヤーによって制御するよう選択されていないキャラクターは、キャラクターの嗜好（上で述べたような興味や嫌悪など）に最も合致した町のエリアに自動的に向かう。次にステップ１００４において、プレイヤーは、選択したキャラクターを制御し、プレイヤーの制御の下、町中を移動させてもよく、プレイヤーの望むように、様々な生物／キャラクター／オブジェクトと対話する。この対話の間、プレイヤーは最初に選択したキャラクターの視点からイベントを見るだろう。
【００７３】
ステップ１００５（代替的にステップ１００４の一部として行うことも可能）において、プレイヤーおよび選択したキャラクターの様々な行動は、システムのメモリに記録されてもよい。この記録は、コマンド、方向、およびプレイヤーが操作するキャラクターおよびプレイヤーが対話した様々な生物／キャラクター／オブジェクトの行動を格納してもよい。
【００７４】
ステップ１００６において、システムは、キャラクターを変更することおよび時間をさかのぼることが望まれることを示すコマンドを、プレイヤーが入力したかどうかを確認してもよい。これは、例えばプレイヤーが別のキャラクターの視点から以前のシーンをリプレイしたい場合に起きるかもしれない。プレイヤーがそのような変更をしたいと望む場合、プレイヤーは、ステップ１００７において次のキャラクターを選択することができる。ステップ１００８において、システムは、プレイヤーの前の対話の、前に記録されたデータ（上記のように、キャラクター９０１の守衛９０２を通り抜けようとする試みの失敗したことなど）をロードするかもしれない。前の対話のロードと共に、処理はステップ１００９に移動してもよく、そこでプレイヤーは、別のキャラクターの視点から、以前のシーンをリプレイする機会を有する。例えば、シーンのリプレイ中にプレイヤーは別のキャラクターを制御してそのシーンに介入したり結果を変えたりできる（上で説明した守衛９０２の注意をそらすことなど）。
【００７５】
シーンの巻き戻しおよびリプレイは複数回起きてもよい。ステップ１０１０において、システムは、プレイヤーがさらに別のキャラクターの視点からシーンをもう一度試したいかどうか確かめてもよい。例えば、前のステップ１００９は、前回のシーンの記録と、初期の試み（たとえば、ステップ１００４から）、ならびに、別のキャラクターの試み（たとえば、ステップ１００９から）も含むこともできる。ステップ１０１０において、プレイヤーが別のキャラクター（たとえば、ステップ１００４で使用したのと同じキャラクター、または完全に別のキャラクター）に切り替えたい場合、システムは、ステップ１００７に戻って別のキャラクターの視点からそのシーンをやり直すことができる。
【００７６】
ステップ１０１０において、プレイヤーが時間を巻き戻すことを望まない場合、システムは、ステップ１０１１において、プレイヤーが、キャラクターを切り替え、現在のタイムラインを続行することを望んだかどうかを決定するためにチェックしてもよく、これによって、その現在の位置からそのシーンを続行する。プレイヤーが、そのような変更をすることを望む場合、処理は、ステップ１００４に戻ってそのシーンを続行してもよい。プレイヤーがキャラクターの変更を望まない場合、その後、処理はステップ１０１２に進んでもよく、プレイヤーが与えられたシーンで終了するかどうかを決定する。プレイヤーが終了する場合、処理は終了する。プレイヤーが終了しない場合、処理は、ステップ１００４に戻ってそのシーンを続行する。
【００７７】
ステップ１００６において、プレイヤーが時間を巻き戻すことを望まない場合、処理はステップ１０１３に進み、プレイヤーがキャラクターを変更し、そのシーンを続行したいかどうかをチェックしてもよい。プレイヤーが続行したい場合、処理は、ステップ１００４に戻ってそうしてもよい。プレイヤーが続行したくない場合、ステップ１０１２に移動し、プレイヤーが上記のように、現在のシーンを終了するかどうか決定してもよい。
【００７８】
プレイヤーがキャラクター間で切り替えられることによって、ＲＰＧはプレイヤーにとってさらに魅力的な体験を提供することができる。これを促進するために、ゲームソフトウェアは、多くの異なるキャラクターの視点からの単一の対話またはイベントを示すカットシーンデータを含んでもよい。システムは、制御されたキャラクターの個性によってカットシーンを単に選択してもよい。以前の対話の対話的なリプレイを可能にするため、システムは、対話がリプレイされるとき変更が許可されるような方式で前の対話を格納してもよい。例えば、システムは、シーン内にいるキャラクターのために既定された挙動アルゴリズムを格納してもよく、初期の対話としての実行を引き起こすコマンドを格納してもよい。その後、対話がリプレイされるとき、同じコマンドが、挙動アルゴリズムに供給されてもよいが、プレイヤーが、第２のキャラクターにそれらのコマンドを妨害または変更を引き起こす場合、結果の挙動（および妨害）が応答して変化するだろう。
【００７９】
上述の機能は、パーソナルコンピュータやビデオゲーム機などの演算装置で実行できる実行可能命令としてコンピュータソフトウェアにエンコードされるのが望ましく、図で示される画面で表示される結果となる。実行可能命令は、１または複数のコンピュータディスク、ＲＡＭ、ＣＤ−ＲＯＭ、ＤＶＤ、ゲームカートリッジなどのコンピュータ可読媒体上に格納されてもよい。また、様々な機能が上で説明されてきたが、それらすべて同じ実施形態で実行する必要はない。代わりに、様々な組合せおよび副結合は、望むように実装でき、本発明の本当の範囲は、請求項によってのみに制限されるべきである。
【００８０】
主題は構造的機能および／または方法論的行為に特定した言語で説明されてきたが、添付の請求項で定義された主題は、上記の特定の特または行為に制限される必要性はない。むしろ、上記の特定の機能および行為は、特許請求の範囲の実装の例示的形式として開示される。
【図面の簡単な説明】
【００８１】
【図１】本書で説明する１または複数の機能と実行するかもしれないゲームシステムを示す。
【図２】図１で示されるゲームシステムのブロック図を示す。
【図３】本書で説明する１または複数の機能を実装するかもしれないネットワークゲームシステムのブロック図を示す。
【図４】本書で説明する１または複数の機能が実装されるかもしれないオンラインゲーム環境のブロック図である。
【図５】本書で説明する１または複数の機能が実装されるかもしれない一般的なコンピュータシステムのブロック図である。
【図６】主要なキャラクターを示すマップシーンの一例を示す。
【図７】プレイヤーのパーティーが、マップシーンシから入った場所に分散するロケーションシーンの一例を示す。
【図８】本書で説明する１または複数の機能を促進するために格納されるかもしれないデータ構造およびコンテンツの一例を示す。
【図９ａ】プレイヤーがキャラクター制御を切り替える画面の一例を示す。
【図９ｂ】プレイヤーがキャラクター制御を切り替える画面の一例を示す。
【図９ｃ】プレイヤーがキャラクター制御を切り替える画面の一例を示す。
【図９ｄ】プレイヤーがキャラクター制御を切り替える画面の一例を示す。
【図１０】本書で説明する１または複数の機能を採用する方法の一例を示す。
【図１】
0005129940.tif 000002
【図２】
0005129940.tif 000003
【図３】
0005129940.tif 000004
【図４】
0005129940.tif 000005
【図５】
0005129940.tif 000006
【図６】
0005129940.tif 000007
【図７】
0005129940.tif 000008
【図８】
0005129940.tif 000009
【図９ａ】
0005129940.tif 000010
【図９ｂ】
0005129940.tif 000011
【図９ｃ】
0005129940.tif 000012
【図９ｄ】
0005129940.tif 000013
【図１０】
0005129940.tif 000014