(57)【要約】【課題】  ゲームデータを扱うための方法および装置を提供する。【解決手段】  記録済みのレースが、オンラインゲームサービスからダウンロードされる。記録済みのレースは、ゲームプログラムに関連している。ゲームプログラムは、ゲームコンソール上で起動される。記録済みのレースは、記録済みのレースがコースを走行する第１の車両を制御するようにゲームコンソール上で実行されているゲームプログラムに適用される。ゲームコンソールに結合された入力デバイスから制御入力が受け取られる。制御入力は、コースを走行する第２の車両を制御する。【選択図】  図５
2004329950.tif 000002
【特許請求の範囲】
【請求項１】
オンラインゲームサービスからゲームプログラムに関連する記録済みのレースをダウンロードするステップと、
ゲームコンソール上で前記ゲームプログラムを起動するステップと、
コースを走行する第１の車両を制御する前記記録済みのレースを、前記ゲームコンソール上で実行されている前記ゲームプログラムに適用するステップと、
前記ゲームコンソールに結合された入力デバイスから前記コースを走行する第２の車両を制御する制御入力を受け取るステップと
を含むことを特徴とする方法。
【請求項２】
記録済みのレースをダウンロードする前記ステップに先立ってオンラインゲームサービスから利用可能な複数の記録済みのレースを識別するステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記ゲームプログラムは自動車レーシングゲームであることを特徴とする請求項１に記載の方法。
【請求項４】
前記記録済みのレースはレース全体の一部分であることを特徴とする請求項１に記載の方法。
【請求項５】
前記記録済みのレースはリーダーボード上のレーティングに関連していることを特徴とする請求項１に記載の方法。
【請求項６】
前記第１の車両と前記第２の車両を同時に表示するステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項７】
前記ゲームプログラムを起動する前記ステップは、前記記録済みのレースにおける設定に基づいて前記ゲームプログラムを構成することを含むことを特徴とする請求項１に記載の方法。
【請求項８】
請求項１に記載の方法を実行するようにプロセッサによって実行可能なコンピュータプログラムを含むことを特徴とする１つまたは複数のコンピュータ可読メモリ。
【請求項９】
オンラインゲームサービスからゲームプログラムに関連する記録済みのレースをダウンロードするステップと、
ゲームコンソール上で前記ゲームプログラムを起動するステップと、
コースを走行する車両を制御する前記記録済みのレースを、前記ゲームコンソール上で実行されている前記ゲームプログラムに適用するステップと、
前記ゲームコンソールに結合された入力デバイスから前記車両が表示される視点を制御する制御入力を受け取るステップと
を含むことを特徴とする方法。
【請求項１０】
前記車両が表示される前記視点は前記車両内部からであることを特徴とする請求項９に記載の方法。
【請求項１１】
前記車両が表示される前記視点は前記車両外部からであることを特徴とする請求項９に記載の方法。
【請求項１２】
前記記録済みのレースはリーダーボード上のレーティングに関連していることを特徴とする請求項９に記載の方法。
【請求項１３】
前記ゲームプログラムを起動する前記ステップは、前記記録済みのレースに格納された設定に基づいて前記ゲームプログラムを構成することを含むことを特徴とする請求項９に記載の方法。
【請求項１４】
オンラインゲームサービスから利用可能な複数の記録済みのゲームを識別するステップと、
前記オンラインゲームサービスからゲームプログラムに関連する前記複数の記録済みのゲームの１つをダウンロードするステップと、
ゲームコンソール上で前記ゲームプログラムを起動するステップと、
前記記録済みのゲームにおける設定に基づいて前記ゲームプログラムを構成するステップと、
前記記録済みのゲームを前記ゲームプログラムに適用するステップであって、前記ゲームプログラムが前記記録済みのゲームから制御入力を受け取るものと、
前記記録済みのゲームを前記ゲームプログラムに適用する前記ステップの結果を表示するステップと
を含むことを特徴とする方法。
【請求項１５】
前記ゲームコンソールに結合された入力デバイスから制御入力を受け取るステップをさらに含むことを特徴とする請求項１４に記載の方法。
【請求項１６】
前記ゲームコンソールに結合された入力デバイスから前記ゲームにおける特定のオブジェクトを制御する制御入力を受け取るステップをさらに含むことを特徴とする請求項１４に記載の方法。
【請求項１７】
前記ゲームコンソールに結合された入力デバイスから前記ゲームにおけるキャラクタを制御する制御入力を受け取るステップをさらに含むことを特徴とする請求項１４に記載の方法。
【請求項１８】
前記ゲームコンソールに結合された入力デバイスからゲームアクションが表示される表示視点を制御する制御入力を受け取るステップをさらに含むことを特徴とする請求項１４に記載の方法。
【請求項１９】
前記記録済みのゲームはゲーム全体の一部分であることを特徴とする請求項１４に記載の方法。
【請求項２０】
請求項１４に記載の方法を実行するようにプロセッサによって実行可能なコンピュータプログラムを含むことを特徴とする１つまたは複数のコンピュータ可読メモリ。
【請求項２１】
リーダーボードデータをゲームコンソールにおいて受信するステップであって、前記リーダーボードデータが複数のリーダーボードエントリに関連する保存済みのゲームデータを含み、かつ、オンラインゲームサービスから受信されるものと、
前記リーダーボードデータを前記ゲームコンソールのユーザに表示するステップと、
前記リーダーボードデータから特定の保存済みのゲームを選択するステップと、
前記オンラインゲームサービスからゲームプログラムに関連する前記特定の保存済みのゲームをダウンロードするステップと、
前記ゲームコンソール上で前記ゲームプログラムを起動するステップと、
前記ゲームコンソール上で実行される前記ゲームプログラムに前記特定の保存済みのゲームを適用するステップであって、前記ゲームプログラムが前記特定の保存済みのゲームから入力を受け取るものと
を含むことを特徴とする方法。
【請求項２２】
前記特定の保存済みのゲームからの前記入力は制御入力であることを特徴とする請求項２１に記載の方法。
【請求項２３】
前記ゲームコンソール上で前記ゲームプログラムを起動する前記ステップは、前記特定の保存済みのゲームにおける設定を使用して前記ゲームプログラムを構成することを含むことを特徴とする請求項２１に記載の方法。
【請求項２４】
オンラインゲームサービスからゲームプログラムを識別するオンラインチャレンジデータを受け取るステップと、
ゲームコンソール上で前記ゲームプログラムを起動するステップと、
前記受け取られたオンラインチャレンジデータを使用して前記ゲームプログラムを構成するステップと、
前記ゲームプログラムの結果を前記オンラインゲームサービスにアップロードするステップと、
前記オンラインゲームサービスからオンラインチャレンジレーティングを受け取るステップと
を含むことを特徴とする方法。
【請求項２５】
前記ゲームプログラムの前記結果が、前記ゲームプログラムの終了時に前記オンラインゲームサービスにアップロードされることを特徴とする請求項２４に記載の方法。
【請求項２６】
前記オンラインチャレンジレーティングは、前記オンラインチャレンジにおけるプレーヤの上位スコアを識別することを特徴とする請求項２４に記載の方法。
【請求項２７】
複数のオンラインチャレンジを識別するステップと、
オンラインチャレンジデータを受け取る前記ステップに先立って前記複数のオンラインチャレンジの１つを選択するステップと
をさらに含むことを特徴とする請求項２４に記載の方法。
【請求項２８】
前記オンラインチャレンジはプレーヤが参加することができる期間を有することを特徴とする請求項２４に記載の方法。
【請求項２９】
請求項２４に記載の方法を実行するようにプロセッサによって実行可能なコンピュータプログラムを含むことを特徴とする１つまたは複数のコンピュータ可読メモリ。
【請求項３０】
公衆ネットワークを介してオンラインゲームサービスと通信するように構成されたインターフェースと、
前記オンラインゲームサービスから記録済みのレースをダウンロードし、前記記録済みのレースに関連するゲームプログラムを起動するように構成され、前記実行中のゲームプログラムに前記記録済みのレースを適用するようにさらに構成された、前記インターフェースに結合されたプロセッサであって、前記記録済みのレースがコースを走行する第１の車両を制御し、プロセッサに結合された入力デバイスが前記コースを走行する第２の車両を制御するプロセッサと
を含むことを特徴とする装置。
【請求項３１】
前記記録済みのレースは前記オンラインゲームサービスによって保持されるリーダーボード上のレーティングに関連することを特徴とする請求項３０に記載の装置。
【請求項３２】
前記第１の車両と前記第２の車両を同時に表示することを特徴とする請求項３０に記載の装置。
【請求項３３】
１つまたは複数のプロセッサによって実行された際、前記１つまたは複数のプロセッサに、
オンラインゲームサービスから利用可能な複数の記録済みのゲームを識別させ、
前記オンラインゲームサービスからゲームプログラムに関連する前記複数の記録済みのゲームの１つをダウンロードさせ、
ゲームコンソール上で前記ゲームプログラムを起動させ、
前記記録済みのゲームにおける設定に基づいて前記ゲームプログラムを構成させ、
前記ゲームプログラムが前記記録済みのゲームから入力を受け取るように前記ゲームプログラムに前記記録済みのゲームを適用させ、
前記ゲームプログラムに前記記録済みのゲームを適用した結果を表示させるコンピュータプログラム
を格納していることを特徴とする１つまたは複数のコンピュータ可読媒体。
【請求項３４】
前記ゲームプログラムはカーレーシングゲームであることを特徴とする請求項３３に記載の１つまたは複数のコンピュータ可読媒体。
【請求項３５】
前記ゲームコンソールに結合された入力デバイスから制御入力を受け取ることをさらに含むことを特徴とする請求項３３に記載の１つまたは複数のコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書で説明するシステムおよび方法は、ゲームシステムに関し、より詳細には、記録済みのゲームデータを保存することと取り出すことに関する。
【背景技術】
【０００２】
従来、ゲームシステムは、１〜４名のプレーヤなど限られた数のプレーヤに対応していた。ゲームシステムの最近の傾向は、インターネットベースのオンラインゲームなど、ネットワークを介して複数のプレーヤ間でゲームを実施する能力を提供することである。それらのオンラインゲームシステムは、プレーヤが、プレーヤの地理的所在地にかかわらず他のプレーヤと競うことができるようにする。
【０００３】
ゲーム開発者およびパプリッシャーが直面している重要な課題は、相当な期間にわたって楽しむことができ、挑戦しがいのあるゲームを創ることである。最もよく売れるゲームは、しばしば、プレーヤが一度に数カ月間にわたってゲームをし続けるようにプレーヤに誘因を提供するゲームである。オンライン機能は、特定のゲームをし続けるようにプレーヤに誘因を提供することができる。例えば、特定のゲームに関する最高スコアなどのオンライン統計により、プレーヤは、世界のトッププレーヤの間で、または自らの友人の間で「自慢する権利」を競うことができるようになる。
【０００４】
したがって、ゲーマー（gamer）が特定のゲームをし続けるように促す追加のオンライン機能を提供することが望ましい。
【０００５】
【非特許文献１】Bruce・Schneier,・"Applied・Cryptography:・Protocols,・Algorithms,・and・Source・Code・in・C",・John・Wiley・&・Sons,・copyright・1994・(second・edition・1996)
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本明細書に説明するシステムおよび方法は、オンラインゲームシステム内のプレーヤの実力のランク付けであるレーティング（ratings）または他の場所から、記録済みのゲームデータまたはゲームハイライトなどのデータの取り出しを可能にする。他のプレーヤは、このデータをダウンロードして、トッププレーヤがどのようにして自らのレーティングを獲得したかを知ることができる。さらに、プレーヤは、例えば、他のプレーヤによって生成された記録済みのゲームデータをダウンロードし、自らの技量を向上させるようにその記録済みのゲームデータと競うことができる。別法として、プレーヤは、記録済みのゲームを閲覧して、トップランクのプレーヤ（top-rated・players）などの他のプレーヤがどのようにゲームを行っているかを見ることができる。
【課題を解決するための手段】
【０００７】
特定の実施形態では、記録済みのレースがオンラインゲームサービスからダウンロードされる。記録済みのレースは、ゲームプログラムに関連している。ゲームプログラムは、ゲームコンソール上で起動される。記録済みのレースは、記録済みのレースがコースを走行する第１の車両を制御するようにゲームコンソール上で実行されるゲームプログラムに適用される。制御入力はゲームコンソールに結合された入力デバイスから受け取られ、コースを走行する第２の車両を制御する。
【０００８】
すべての図で同様の符号を使用して同様のコンポーネントおよび／または特徴を示す。
【発明を実施するための最良の形態】
【０００９】
以下の説明は、オンラインゲームサービスを介して記録済みのゲームデータを保存するため、および取り出すためのシステムおよび方法を対象とする。この説明は、読者が、暗号化、復号化、認証、ハッシング、およびデジタル署名などの基本的な暗号法の原理に精通していることを前提としている。暗号法の基本的な概説については、参照により本明細書に組み込まれている非特許文献１を参照されたい。
【００１０】
本明細書の説明は、「レーティング」、「リーダーボード」、および「添付ファイル（attachments）」について述べている。レーティングは、ゲームプレーの何らかの局面の結果としてプレーヤまたはチームに割り当てられたスコアである。リーダーボードは、統計サービスの中に格納されたゲームプレーの何らかの局面からもたらされたレーティングのランク順の集合体である。添付ファイルは、統計リーダーボード上のレーティングに関連する任意のデータである。例えば、添付ファイルは、記録済みのゲーム、ゲームにおける保存済みのアクションまたは動き、ハイスコアがどのように達せられたかを説明するプレーヤの音声を含むオーディオファイル等とすることが可能である。
【００１１】
本明細書で使用する「記録済みのゲーム」、「保存済みのゲーム」、「記録済みのレース」、「保存済みのレース」、または同様の用語は、ゲーム全体（自動車レース全体などの）、またはゲーム全体の一部分（自動車レースにおける１周、または自動車レースにおける１周の一部分などの）を指すことが可能である。さらに、「レース」および「ゲーム」という用語は、練習セッション、トレーニングセッション、並びにゲームのプレーヤが別のプレーヤ、別の記録済みのゲーム、ゲームによって生成されたエンティティ、または任意の他の競争相手と競っていない他の活動を指すことも可能である。
【００１２】
図１は、例示的なオンラインゲーム環境１００のブロック図である。複数のゲームコンソール１０２（１）、１０２（２），．．．，１０２（ｎ）がネットワーク１０６を介してセキュリティゲートウェイ１０４に結合されている。ネットワーク１０６は、様々な従来のデータ通信ネットワークの任意の１つまたは複数を表わしている。ネットワーク１０６は、通常、パケット交換ネットワークを含むが、回線交換ネットワークも含むことが可能である。ネットワーク１０６は、有線部分および／または無線部分を含むことが可能である。１つの例示的な実装では、ネットワーク１０６は、インターネットを含み、任意選択で、１つ以上のローカルエリアネットワーク（ＬＡＮ）および／またはワイドエリアネットワーク（ＷＡＮ）を含むことが可能である。ネットワーク１０６の少なくとも一部分は、公衆アクセス可能なネットワークを指す公衆ネットワークである。実質的に誰でも、公衆ネットワークにアクセスすることができる。
【００１３】
一部の状況では、ネットワーク１０６は、ＬＡＮ（例えば、ホームネットワーク）を含み、ゲームコンソール１０２とセキュリティゲートウェイ１０４の間にルーティングデバイスが配置されている。このルーティングデバイスは、ネットワークアドレス変換（ＮＡＴ）を実行して、プライベートネットワーク１０８（またはＬＡＮ）上の複数のデバイスがインターネット上で同一のＩＰアドレスを共用することを可能にすることができ、インターネットを介する悪意のある、または悪戯なユーザによるアクセスからデバイスを保護するためのファイアウォールとしても動作する。
【００１４】
セキュリティゲートウェイ１０４は、公衆ネットワーク１０６とプライベートネットワーク１０８の間のゲートウェイとして動作する。プライベートネットワーク１０８は、ローカルエリアネットワークなどの多種多様な従来のネットワークのいずれかとすることが可能である。プライベートネットワーク１０８、並びに以下により詳細に説明する他のデバイスは、セキュリティで保護されたゾーンとして動作するデータセンタ１１０内部にある。データセンタ１１０は、信頼される通信を介して通信する信頼されるデバイスから構成されている。したがって、セキュリティで保護されたゾーン１１０内部の暗号化および認証は必要ない。ネットワーク１０８のプライベートな性質は、ネットワーク１０８の制限されたアクセシビリティを指している。すなわち、ネットワーク１０８に対するアクセスは、特定の個人だけに制限されている（例えば、データセンタ１１０の所有者または事業者によって制限されている）。
【００１５】
セキュリティゲートウェイ１０４は、１つ以上のセキュリティゲートウェイコンピューティングデバイスのクラスタである。これらのセキュリティゲートウェイコンピューティングデバイスは集合として、セキュリティゲートウェイ１０４を実装する。セキュリティゲートウェイ１０４は、任意選択で、セキュリティゲートウェイコンピューティングデバイスによって扱われるべき要求をこれらのコンピューティングデバイスのうち適切なコンピューティングデバイスに誘導するように動作する１つ以上の従来の負荷分散デバイスを含むことが可能である。この誘導、つまり負荷分散は、様々なセキュリティゲートウェイコンピューティングデバイスにかかる負荷をほぼ均等に分散させようとする形で（または別法として、何らかの他の基準に従って）実行される。
【００１６】
また、データセンタ１１０内部には、（集合として、プレゼンス／通知サービスを実装する）１つ以上の監視サーバ１１２、１つ以上のプレゼンス（presence）／通知フロントドア１１４、１つ以上のプレゼンスサーバ１１６、および１つ以上の通知サーバ１１８、（集合として、対戦サービスであるマッチサービスを実装する）１つ以上のマッチフロントドア１２０、および１つ以上のマッチサーバ１２２、（集合として、統計サービスを実装する）１つ以上の統計フロントドア１２４、および１つ以上の統計サーバ１２６が存在する。サーバ１１６、１１８、１２２、および１２６は、ゲームコンソール１０２にサービスを提供し、したがって、サービスデバイスと呼ぶことができる。また、サーバ１１６、１１８、１２２、および１２６の１つまたは複数に加えて、かつ／または代わりに、他のサービスデバイスを含むことも可能である。さらに、１つのデータセンタだけを図１に示しているが、別法として、ゲームコンソール１０２が通信することができる複数のデータセンタが存在することも可能である。これらのデータセンタは、独立に動作することが可能であり、あるいは別法として、（例えば、１つの大型データセンタをゲームコンソール１０２に供与するために）集合として動作することが可能である。
【００１７】
ゲームコンソール１０２は、データセンタ１１０から遠隔に位置し、ネットワーク１０６を介してデータセンタ１１０にアクセスする。データセンタ１１０内の１つ以上のデバイスと通信することを望むゲームコンソール１０２は、コンソール１０２とセキュリティゲートウェイ１０４の間でセキュリティで保護された通信チャネルを確立する。ゲームコンソール１０２およびセキュリティゲートウェイ１０４は、やりとりされるデータパケットを暗号化し、認証して、暗号化を破ることなくデータパケットをキャプチャする、またはコピーする可能性がある他のデバイスによって理解されることなく、データパケットがコンソール１０２とゲートウェイ１０４の間でセキュリティで保護された形で伝送されることを可能にする。ゲームコンソール１０２からセキュリティゲートウェイ１０４に通信される、またはセキュリティゲートウェイ１０４からゲームコンソール１０２に通信される各データパケットには、データが埋め込まれていることが可能である。この埋め込まれたデータが、データパケットのコンテンツ、またはデータコンテンツと呼ばれる。また、さらなる情報も、パケットタイプに基づいてパケットの中に本来的に含むことが可能である（例えば、以下により詳細に説明するハートビート（heartbeat）パケットまたはトラバーサル（traversal）パケット）。
【００１８】
コンソール１０２とセキュリティゲートウェイ１０４の間のセキュリティで保護された通信チャネルは、セキュリティチケットに基づく。コンソール１０２は、自ら、およびコンソール１０２の現在のユーザをキー配信センタ１２８に対して認証し、キー配信センタ１２８からセキュリティチケットを獲得する。次に、コンソール１０２は、このセキュリティチケットを使用して、セキュリティゲートウェイ１０４に対してセキュリティで保護された通信チャネルを確立する。セキュリティゲートウェイ１０４に対してセキュリティで保護された通信チャネルを確立する際、ゲームコンソール１０２およびセキュリティゲートウェイ１０４は、互いに対して自らを認証し、その特定のゲームコンソール１０２およびセキュリティゲートウェイ１０４にだけ知られるセッションセキュリティキーを確立する。このセッションセキュリティキーは、ゲームコンソール１０２とセキュリティゲートウェイクラスタ１０４の間で転送されるデータを暗号化する基礎として使用され、他のどのデバイスも（他のゲームコンソール１０２を含め）そのデータを読み取ることができないようにする。また、セッションセキュリティキーは、データパケットの送信元とされるセキュリティゲートウェイ１０４またはゲームコンソール１０２からのものであることを認証する基礎としても使用される。したがって、そのようなセッションセキュリティキーを基礎として使用して、セキュリティゲートウェイ１０４と様々なゲームコンソール１０２の間でセキュリティで保護された通信チャネルを確立することができる。
【００１９】
ゲームコンソール１０２とセキュリティゲートウェイ１０４の間でセキュリティで保護された通信チャネルが確立されると、その２つの間で暗号化されたデータパケットをセキュリティで保護された形で伝送することができる。ゲームコンソール１０２は、データセンタ１１０内の特定のサービスデバイスにデータを送信することを望む場合、そのデータを暗号化し、セキュリティゲートウェイ１０４に送信して、データが、データパケットによって目標とされる特定のサービスデバイスに転送されることを要求する。セキュリティゲートウェイ１０４は、データパケットを受信し、データパケットを認証し、復号化した後、パケットのデータコンテンツをカプセル化して、プライベートネットワーク１０８を介して適切なサービスに送信される別のメッセージにする。セキュリティゲートウェイ１０４は、データパケットによって目標とされる要求のサービスに基づいてそのメッセージに関する適切なサービスを決定する。
【００２０】
同様に、データセンタ１１０内のサービスデバイスがゲームコンソール１０２に通信することを所望する場合、データセンタが、ゲームコンソール１０２に送信されるべきデータコンテンツ、並びにデータコンテンツが送信される特定のゲームコンソール１０２の指示を含むメッセージをプライベートネットワーク１０８を介してセキュリティゲートウェイ１０４に送信する。セキュリティゲートウェイ１０４は、データコンテンツをデータパケットの中に埋め込み、次にデータパケットを暗号化して、データパケットが特定のゲームコンソール１０２だけにしか復号化できないようにし、データパケットがセキュリティゲートウェイ１０４からであることの認証も行う。
【００２１】
本明細書では、セキュリティゲートウェイ１０４とゲームコンソール１０２の間で暗号化されたデータパケットを通信することについて主に説明しているが、別法として、一部のデータパケットは、部分的に暗号化する（データパケットのいくつかの部分が暗号化され、他の部分は暗号化されない）ことも可能である。データパケットのどの部分が暗号化され、どの部分が暗号化されないかは、データセンタ１１０および／またはゲームコンソール１０２のデザイナーの所望に基づいて異なることが可能である。例えば、デザイナーは、コンソール１０２のユーザが互いに話すことができるようにコンソール１０２間で音声データを通信することができるようにすることを選択することができ、デザイナーは、音声データは暗号化されないが、パケット内の他のあらゆるデータが暗号化されることを可能にすることをさらに選択することができる。さらに、別の代替では、一部のデータパケットは、暗号化された部分を全く有していない（つまり、データパケット全体が暗号化されない）ことが可能である。データパケットが暗号化されないか、または部分的にしか暗号化されない場合でも、データパケットは認証を受けることに留意されたい。
【００２２】
セキュリティゲートウェイ１０４内部の各セキュリティゲートウェイデバイスが、１つ以上のゲームコンソール１０２とのセキュリティで保護された通信チャネルを担当し、したがって、各セキュリティゲートウェイデバイスは、１つ以上のゲームコンソールを管理すること、または扱うことを担っていると見なすことができる。様々なセキュリティゲートウェイデバイスは、互いに通信していることが可能であり、互いにメッセージを通信することができる。例えば、自らが管理することを担っていないゲームコンソールにデータパケットを送信する必要があるセキュリティゲートウェイデバイスは、そのゲームコンソールに送信されるべきデータを伴うメッセージを他のすべてのセキュリティゲートウェイデバイスに送信することができる。このメッセージは、そのゲームコンソールを管理することを担い、適切なデータをそのゲームコンソールに送信するセキュリティゲートウェイデバイスによって受信される。別法として、セキュリティゲートウェイデバイスは、どのゲームコンソールがどのセキュリティゲートウェイデバイスによって扱われているかを認識していることが可能である。これは、各セキュリティゲートウェイデバイスが、その他のセキュリティゲートウェイデバイスによって扱われるゲームコンソールのテーブルを保持しているように明示的であってもよいし、これとは別に、ゲームコンソールの識別子に基づいてどのセキュリティゲートウェイデバイスが特定のゲームコンソールを担当しているかを判断するように黙示的であってもよい。
【００２３】
監視サーバ１１２は、利用できないゲームコンソール１０２、またはセキュリティゲートウェイ１０４の利用できないセキュリティゲートウェイデバイスをデータセンタ１１０内のデバイスに通知するように動作する。ゲームコンソール１０２は、ハードウェア障害またはソフトウェア障害、コンソールがデータセンタ１１０からログアウトせずに電源を切ったこと、コンソール１０２に対するネットワーク接続ケーブルがコンソール１０２から切断されたこと、その他のネットワーク問題（例えば、コンソール１０２が配置されたＬＡＮが正しく機能していない）などの様々な異なる理由で利用不可になる可能性がある。同様に、セキュリティゲートウェイ１０４のセキュリティゲートウェイデバイスも、ハードウェア障害またはソフトウェア障害、デバイスの電源が切られたこと、デバイスに対するネットワーク接続ケーブルがデバイスから切断されたこと、その他のネットワーク問題などの様々な異なる理由で利用不可になる可能性がある。
【００２４】
セキュリティゲートウェイ１０４内のセキュリティゲートウェイデバイスのそれぞれは、セキュリティゲートウェイデバイスの１つが利用できなくなった場合にそれを検出する１つ以上の監視サーバ１１２によって監視される。あるセキュリティゲートウェイデバイスが利用できなくなった場合、監視サーバ１１２は、そのセキュリティゲートウェイデバイスがもはや利用できないといういメッセージをデータセンタ１１０内のその他のデバイス（サーバ、フロントドア等）のそれぞれに送信する。その他のデバイスのそれぞれは、その情報に基づいて適切に動作することができる（例えば、デバイスは、そのセキュリティゲートウェイによって管理されている特定のゲームコンソールがもはや、データセンタ１１０と通信していないと見なし、それに応じて様々なクリーンアップ操作を実行することができる）。別法として、特定のデバイスだけが、監視サーバ１１２からそのようなメッセージを受け取ることも可能である（例えば、セキュリティゲートウェイデバイスが利用可能であるかどうかに関係するデバイスだけ）。
【００２５】
セキュリティゲートウェイ１０４は、個々のゲームコンソール１０２を監視し、ゲームコンソール１０２の１つが利用できなくなった場合、それを検出する。セキュリティゲートウェイ１０４は、あるゲームコンソールがもはや利用できないことを検出した場合、利用できないゲームコンソールを識別するメッセージを監視サーバ１１２に送信する。これに応答して、監視サーバ１１２は、そのゲームコンソールがもはや利用できないというメッセージをデータセンタ１１０内のその他のデバイスのそれぞれ（または別法として、選択されたデバイスだけ）に送信する。すると、その他のデバイスのそれぞれは、その情報に基づいて適切に動作することができる。
【００２６】
プレゼンスサーバ１１６は、オンラインゲームを行うためにデータセンタ１１０にログインした所与のユーザのステータス情報すなわちプレゼンス（presence）に関するデータを保持し、処理する。通知サーバ１１８が、データセンタ１１０にログインしているプレーヤを宛先とする発信メッセージの複数のキュー（queue）を保持する。プレゼンス／通知フロントドア１１４は、セキュリティゲートウェイ１０４とサーバ１１６および１１８の間の仲介役として動作する１つ以上のサーバデバイスである。１つ以上の負荷分散デバイス（図示せず）がプレゼンス／通知フロントドア１１４内に含まれて、フロントドア１１４として動作する複数のサーバデバイスの間で負荷分散を行うことが可能である。セキュリティゲートウェイ１０４は、サーバ１１６および１１８に対するメッセージをフロントドア１１４に通信し、フロントドア１１４は、どの特定のサーバ１１６または特定のサーバ１１８にそのメッセージを通信すべきかを識別する。フロントドア１１４を使用することにより、どのサーバがどのユーザに関するデータを管理することを担っているかなどのサーバ１１６および１１８の実際の実装が、セキュリティゲートウェイ１０４から抽出される。セキュリティゲートウェイ１０４は、単に、プレゼンス／通知サービスを目標とするメッセージをプレゼンス／通知フロントドア１１４に転送し、フロントドア１１４に任せて、そのメッセージをサーバ１１６およびサーバ１１８の適切な１つにルーティングさせるだけでよい。
【００２７】
マッチ（Match）サーバ１２２は、オンラインプレーヤの互いに対するマッチングに関するデータを保持し、処理する。オンラインユーザは、行うことが可能なゲームをそのゲームの様々な特性（例えば、フットボールゲームが行われる場所、ゲームが日中に行われるか、または夜間に行われるか、ユーザの技量レベル等）とともに通知することができる。次に、ゲームを一緒に行うように異なるオンラインユーザを組み合わせる基礎としてそれらの様々な特性を使用することができる。マッチフロントドア１２０は、１つ以上のサーバデバイス（および任意選択で、負荷分散デバイス）を含み、フロントドア１１４がサーバ１１６およびサーバ１１８を抽出するのと同様の仕方でセキュリティゲートウェイ１０４からマッチサーバ１２２を抽出するように動作する。
【００２８】
統計サーバ１２６は、オンラインゲームについての様々な統計に関するデータを保持し、処理する。使用される特定の統計は、ゲームデザイナーの所望に基づいて異なることが可能である（例えば、上位１０番までのスコアおよび時間、ゲームのすべてのオンラインプレーヤに関する世界ランキング、最も多くのアイテムを見つけた、またはゲームを行うことに最も多くの時間を費やしたユーザのリスト等）。統計フロントドア１２６は、１つ以上のサーバデバイス（および任意選択で、負荷分散デバイス）を含み、フロントドア１１４がサーバ１１６およびサーバ１１８を抽出するのと同様な仕方でセキュリティゲートウェイ１０４から統計サーバ１２６を抽出するように動作する。
【００２９】
したがって、セキュリティゲートウェイ１０４は、信頼されない公衆ネットワーク１０６からデータセンタ１１０のセキュリティで保護されたゾーン内のデバイスを遮蔽するように動作する。データセンタ１１０のセキュリティで保護されたゾーン内の通信は、暗号化される必要がない。というのは、データセンタ１１０内のすべてのデバイスが信用されるからである。ただし、データセンタ１１０内のデバイスからゲームコンソール１０２に通信されるあらゆる情報は、セキュリティゲートウェイクラスタ１０４を経由し、セキュリティゲートウェイクラスタ１０４において、情報は、その情報によって目標とされるゲームコンソール１０２だけが復号化できるような形で暗号化される。
【００３０】
図２は、リーダーボードエントリに添付されたデータを取り出すための手順２００の実施形態を示すフローチャートである。最初、ゲームコンソールが、オンラインゲームサービスとの接続を確立する（ブロック２０２）。ゲームコンソールユーザが、特定のゲームに関連するリーダーボードの表示を要求する（ブロック２０４）。すると、オンラインゲームサービスが、要求されたリーダーボードデータをゲームコンソールに提供する（ブロック２０６）。ゲームコンソールは、ゲームコンソールユーザのために受け取られたリーダーボードデータの表示を生成する（ブロック２０８）。
【００３１】
ゲームコンソールユーザは、リーダーボード内のエントリに添付されたデータを選択する（ブロック２１０）。選択されたデータは、記録済みのゲーム、ゲームハイライト、特殊なプレーすなわちテクニックを要する操作（maneuver）等を含むことが可能である。また、記録済みのゲームは、「ゴーストゲーム」、「ハイライトゲーム」、「再生」、または「保存済みのゲーム」と呼ぶこともできる。この手順は、選択されたデータがダウンロードに利用可能であるかどうかを判定する（ブロック２１２）。選択されたデータがダウンロードに利用可能ではない場合、オンラインゲームサービスは、選択されたデータが現在、利用できないことを示すメッセージをゲームコンソールに送信する（ブロック２１４）。データは、サーバメンテナンス、サーバの機能不良、またはデータがまだオンラインゲームサービスに完全にアップロードされていないことに起因して利用できないことがある。
【００３２】
ブロック２１２で、選択されたデータがダウンロードに利用できる場合、オンラインゲームサービスは、選択されたデータをゲームコンソールにダウンロードする（ブロック２１６）。次に、ゲームコンソールが、ダウンロードされたデータを表示するか、または別の形で使用する（ブロック２１８）。以下に説明する通り、ゲームコンソールユーザは、記録済みのゲームデータと競い、記録済みのゲームデータをアップロードしたプレーヤが使用したテクニックを学ぶことができる。他のタイプのデータは、ゲームコンソールユーザが、ゲームハイライト、他のプレーヤのベストショット（best・shot）を見ること、またはハイスコアをどのようにして獲得したかを説明する別のプレーヤの音声のオーディオファイルを聴くことを可能にする。
【００３３】
記録済みのゲームは、トップパフォーマンスの（top-performing）プレーヤに関連する、または記録済みのゲームを共用し、記録済みのゲームを使用して互いに対する「仮想レース」を行う１名または複数名の友人に関連付けることが可能である。友人のグループまたはクラブが、他のメンバがダウンロードするように記録済みのゲームをメンバがアップロードすることができる独自の「リーダーボード」を有することが可能である。このリーダーボードにより、プレーヤが、記録済みのゲームのレーティングがシステム全体のリーダーボード上の最高スコアの資格を満たすかどうかにかかわらず、少なくとも１つの記録済みのゲームをアップロードすることができるようになる。特定のオンラインゲームシステムが、同じゲームプログラムに関する複数のリーダーボードを有することが可能である。あるリーダーボードには、オンラインゲームシステムにおけるすべての参加者がアクセスすることができ、他のリーダーボードには、より小さい一群のプレーヤ（クラブまたは友人のグループなどの）がアクセスすることができることが可能である。
【００３４】
図３は、ゲームコンソールユーザに提供されるリーダーボード３００の例を示している。この例では、リーダーボード３００は、自動車レーシングゲームに関連しており、上位１０番までのラップタイム（lap・time）のリストを保持している。他の実施形態では、他のタイプのゲームが異なるタイプの情報をキャプチャすることが可能である。また、リーダーボードは、最速の１周、最速の３周レース（fastest・three-lap・race）、最も少ない衝突などの複数のタイプのゲーム関連情報を含むことも可能である。
【００３５】
リーダーボード３００の第１の列３０２は、特定のランキング（例えば、１〜１０）を明らかにしている。第２の列３０４は、列３０２における各ランキングに関連するプレーヤ名を明らかにしている。プレーヤ名は、実名（例えば、Ｂｏｂ  Ｓｍｉｔｈ）であっても、ニックネーム（例えば、Ｍａｓｔｅｒ  Ｇａｍｅｒ）であってもよい。第３の列３０６は、少なくとも部分的にプレーヤのランキングの要因となっているプレーヤの最高ラップタイムを明らかにしている。第４の列３０８は、ランキングに関連する添付ファイルを明らかにしている。図３の例では、いくつかの記録済みのレースおよび特殊な動きが、あるランキングに関連している。例えば、最高ランクのプレーヤ（highest・rated・player）のランキングには、記録済みのレースが添付されている（または関連付けられている）。この例では、記録済みのレースは、列３０６に示されたラップタイムをもたらしたレースである。特殊な動きの添付ファイルは、例えば、レース中に行われた妙技、１つまたは複数の他の車両を越えるジャンプ、またはプレーヤのランキングに関連付けられている他のアクションを表わす。前述した通り、他のプレーヤは、それらの添付ファイルをダウンロードして、その添付ファイルを生成したプレーヤから学び、かつ／またはそのプレーヤと競うことができる。
【００３６】
リーダーボードの第５の列３１０は、列３０８の添付されたデータが、ダウンロードするため、および／または閲覧するために利用可能であるかどうかを明らかにしている。添付されたデータが、例えば、オンラインゲームサービス内のストレージサーバ上に用意されている場合、第５の列３１０は、添付されたデータの利用可能性を「Ｙｅｓ」として示す。しかし、添付されたデータが削除されている、ストレージサーバに全くアップロードされなかったか、またはストレージサーバにアップロードするプロセス中である場合、列３１０は、データの利用可能性を「Ｎｏ」として示す。
【００３７】
リーダーボード３００は、特定のゲームに関する上位１０番までのプレーヤを示しているが、他のリーダーボードは、上位５番まで、上位２０番まで、または上位１００番までなどの任意の数のプレーヤを示すことが可能である。リーダーボード３００の特定の実施形態は、１００番目ごとのレーティング（すなわち、第１００番、第２００番、第３００番等のランク付けされたプレーヤ（rated・player））のように、ｎ番ごとのレーティングを明らかにすることが可能である。この手法により、プレーヤが、同様の技量レベルを有する別のプレーヤに関連する保存済みのゲームを選択することができるようになる。
【００３８】
リーダーボード３００の各行は、複数のデータの添付ファイルを有することが可能である。例えば、リーダーボード３００の特定のレーティングが、添付された記録済みのゲーム、およびプレーヤがどのようにハイスコアを獲得したかを説明するプレーヤの添付されたオーディオファイルを有することが可能である。
【００３９】
図４は、カーレーシングゲームに関連する記録済みのゲームデータ４００の例を示している。記録済みのゲームデータ４００の最上部４０２は、ゲームデータが記録された時点で実施されていた様々な設定を含む。それらのゲーム設定には、例えば、ゲームの難易度設定、車両のタイプ、車両の色およびサスペンションの特性、車両でレースが行われたコース、および辿られたルート（複数の利用可能なルートが存在する状況において）が含まれる。
【００４０】
最上部４０２の下に、記録済みのゲームデータ４００は、データの２つの列、すなわち、時刻列４０４およびコントローラ入力列４０６を含む。時刻列４０４の各エントリは、コントローラ入力列４０６の隣接するエントリに対応する。例えば、プログラムは、コントローラ入力なしに時刻０．００．００に開始する。時刻０．００．０９に、右トリガがアクティブにされる。右トリガは、左サムスティック（thumbstick）の右側が押される時刻０．０１．３４までアクティブなままにされる。時間形式「ａ．ｂｂ．ｃｃ」は、「ａ」分、「ｂｂ」秒、「１００分のｃｃ」秒を表わしている。
【００４１】
代替の実施形態では、コントローラ入力がフレーム数で記録される。例えば、ゲームが毎秒６０フレーム（ｆｐｓ）で実行される場合、コントローラ入力は、同じ速度で記録される。
【００４２】
ゲームプログラムを実行し、適切な時点で様々なコントローラ入力を付加することにより、車両の動きは、そのデータが収集された「元の」レース中と同じになる。
【００４３】
図５は、ゲームコンソールユーザが記録済みのゲームデータと競うこと、または記録済みのゲームデータの再生を見ることを可能にする手順５００の実施形態を示すフローチャートである。図５の例では、記録済みのゲームデータは、自動車レーシングゲームからの記録済みのレースである。手順５００と同様の手順を様々な他のタイプのゲームで使用することができる。
【００４４】
最初、ユーザが、ゲームコンソール上でゲームプログラムを起動する（ブロック５０２）。次に、ユーザは、オンラインゲームサービスから以前にダウンロードされた記録済みのゲーム（例えば、記録済みのレース）を選択する（ブロック５０４）。ゲームコンソールが、オンラインゲームサービスからユーザによって選択された記録済みのレースを取り出す（ブロック５０６）。次に、この手順は、記録済みのレースと競うこと、または記録済みのレースを見ることのどちらかを選択するようにユーザに求める（ブロック５０８）。ユーザが記録済みのレースを見ることを選択した場合、この手順は、分岐してブロック５１０に進み、ゲームコンソールがゲームを起動する。ユーザは、異なる視点から（例えば、車内から、または車外から）記録済みのレースの再生を見ることができる。選択される視点は、ゲームコンソールに結合された入力デバイス（ゲームコントローラなどの）を使用して選択することができる。記録済みのレースの再生の特定の眺めは、ドライバの視点からである。ゲームを起動する際、ゲームコンソールは、記録済みのレースに含まれるゲーム設定を使用してゲームを構成する。次に、ゲームコンソールは、記録済みのレース制御入力を付加して、それらの制御入力に応答してコースを走行する車両を表示する（ブロック５１２）。
【００４５】
ブロック５０８で、ユーザが記録済みのレースと競うことを選択した場合、ゲームコンソールは、ゲームを起動し、記録済みのゲーム制御入力を自動的に付加する（ブロック５１４）。前述した通り、ゲームを起動する際、ゲームコンソールは、記録済みのレースに含まれるゲーム設定を使用してゲームを構成する。ゲームコンソールユーザが、ゲームコンソールに結合された入力デバイスに入力を付加する（ブロック５１６）。ゲームコンソールが、両方の車両（すなわち、記録済みのレースデータに従う車両とゲームコンソールユーザによって制御されている車両）が同じコースを同時に動いているのを表示する（ブロック５１８）。
【００４６】
特定の実施形態では、２名またはそれより多くのプレーヤが同時に、記録済みのゲームと競うことができる。さらに、２名またはそれより多くのプレーヤが同時に、２つまたはそれより多くの異なる記録済みのゲームと競うことができる。
【００４７】
図６は、ゲームコンソールユーザがオンラインゲームチャレンジを選択し、そのチャレンジにおいて競うことを可能にする手順６００の実施形態を示すフローチャートである。最初、ゲームコンソールが、オンラインゲームサービスとの接続を確立する（ブロック６０２）。ゲームコンソールユーザが、利用可能なオンラインチャレンジの表示を要求する（ブロック６０４）。オンラインチャレンジは、１日間、１週間、または１カ月間などの特定の期間にわたって続くオンラインゲーマー間の競争である。例えば、レーシングゲームの場合、オンラインチャレンジは、車のタイプ、コース、車の構成、および任意の他の必要なパラメータを指定して、オンラインチャレンジのすべての参加者が平等な設定で競争しているようにする。あるオンラインチャレンジは、永続的であり、歴代のハイスコアを表わす。
【００４８】
ゲームコンソール要求に応答して、オンラインゲームサービスが、オンラインチャレンジ情報をゲームコンソールに提供する（ブロック６０６）。特定の時点において、任意の数のオンラインチャレンジがゲームコンソールのユーザに用意されていることが可能である。ゲームコンソールが、受け取られたオンラインチャレンジ情報をゲームコンソールのユーザに表示する（ブロック６０８）。すると、ゲームコンソールユーザは、自らが競うことを望むチャレンジを選択する（ブロック６１０）。ゲームコンソールが、選択されたチャレンジに関する適切なデータを取り出し、ゲームコンソール上で適切なゲームを起動する（ブロック６１２）。選択されたチャレンジに関する取り出されたデータは、適切なゲームを構成するのに使用される構成情報を含む。この構成情報により、すべてのプレーヤが同じ仕方で構成されたゲームを行うことが確実になる。この構成情報は、図４に示したゲーム設定４０２と同様とすることが可能である。さらに、構成情報は、都市およびトラックの選択、車のクラス（または特定の車の選択）、コーン（cone）レイアウト（コーンレースチャレンジである場合）、チャレンジ（またはチャレンジの部分）を完了したことで獲得される報償またはボーナスポイントを含むことが可能である。
【００４９】
ゲームコンソールユーザが選択されたチャレンジを完了した時点で、ゲームコンソールが、結果をオンラインゲームサービスにアップロードする（ブロック６１４）。次に、ゲームコンソールは、選択されたチャレンジに関連する現在のレーティングをダウンロードし、表示する（ブロック６１６）。現在のレーティングは、ユーザの結果がトップランク（top rated）の１つとして適格である場合、そのユーザの結果を含む。選択されたチャレンジに関連する現在のレーティングは、図３に関連して前述したリーダーボード３００と同様の形式で表示することが可能である。
【００５０】
本明細書で説明する特定の例は、記録済みのゲームデータ（保存済みのゲームデータとも呼ぶ）に関する。代替の実施形態では、任意のタイプのデータを様々なプレーヤに供与することが可能である。そのデータには、記録済みのゲーム、フットボールゲームにおける最長ラン、最も大きい爆発、巧妙なゴルフショット、最高のへま（すなわち、間違い）等の部分が含まれる。さらに、ゲームは、特定の興味を引く事項の「ハイライト」フィルムを記録し、それらの事項をリーダーボード上、または何らかの他の機構で供与することもできる。スポーツゲームは、プレーヤが、最長インターセプション、最長ホームラン、最高のバスケットボールダンクシュートなどの最良のプレーを見ることができるハイライトショーを提供することにより、プレーヤが頻繁にゲームを行うように促すことが可能である。同様に、アクションゲームが、所与の期間における最大の爆発、最多の衝突などの興味を引くイベントに関するフィルムを記録することも可能である。
【００５１】
図７は、本明細書で説明する技術を実施するのに使用することができる汎用コンピュータ環境７００を示している。コンピュータ環境７００は、コンピューティング環境の一例に過ぎず、コンピュータおよびネットワークのアーキテクチャの使用または機能の範囲に関する限定を何ら示唆するものではない。また、コンピュータ環境７００が、例示的なコンピュータ環境７００に例示したコンポーネントのいずれか１つ、またはいずれかの組み合わせに関連する依存関係または要件を有するものと解釈してはならない。
【００５２】
コンピュータ環境７００は、コンピュータ７０２の形態で汎用コンピューティングデバイスを含む。コンピュータ７０２は、例えば、図１の統計フロントドア１２４、監視サーバ１１２、キー配信センタ１２８、またはセキュリティゲートウェイ１０４とすることが可能である。コンピュータ７０２のコンポーネントは、１つ以上のプロセッサまたは処理ユニット７０４（任意選択で、暗号プロセッサまたは暗号コプロセッサを含む）、システムメモリ７０６、並びにプロセッサ７０４からシステムメモリ７０６までを含む様々なシステムコンポーネントを結合するシステムバス７０８を含むことが可能であるが、以上には限定されない。
【００５３】
システムバス７０８は、様々なバスアーキテクチャのいずれかを使用するメモリバスまたはメモリコントローラ、周辺バス、アクセラレーテッドグラフィックスポート（accelerated・graphics・port）、およびプロセッサバスまたはローカルバスを含むいくつかのタイプのバス構造のいずれかの１つまたは複数を表わす。例として、そのようなアーキテクチャは、ＩＳＡバス、ＭＣＡバス、ＥＩＳＡバス、ＶＥＳＡローカルバス、およびメザニンバスとしても知られるＰＣＩバスを含むことが可能である。
【００５４】
コンピュータ７０２は、通常、様々なコンピュータ可読媒体を含む。そのような媒体は、コンピュータ７０２がアクセス可能な任意の利用可能な媒体とすることが可能であり、揮発性媒体と不揮発性媒体、リムーバブルな媒体とリムーバブルでない媒体がともに含まれる。
【００５５】
システムメモリ７０６は、ランダムアクセスメモリ（ＲＡＭ）７１０などの揮発性メモリの形態、および／または読み取り専用メモリ（ＲＯＭ）７１２などの不揮発性メモリの形態のコンピュータ可読媒体を含む。始動中などにコンピュータ７０２内部の要素間で情報を転送するのを助ける基本ルーチンを含む基本入力／出力システム（ＢＩＯＳ）７１４が、ＲＯＭ７１２の中に格納されている。ＲＡＭ１７０は、通常、処理ユニット７０４が即時にアクセスすることができ、かつ／または現在、処理しているデータおよび／またはプログラムモジュールを含む。
【００５６】
また、コンピュータ７０２は、その他のリムーバブルな／リムーバブルでない、揮発性／不揮発性のコンピュータ記憶媒体も含むことが可能である。例として、図７は、リムーバブルでない不揮発性の磁気媒体（図示せず）に対して読み取りおよび書き込みを行うためのハードディスクドライブ７１６、リムーバブルな不揮発性の磁気ディスク７２０（例えば、「フロッピー（登録商標）ディスク」）に対して読み取りおよび書き込みを行うための磁気ディスクドライブ７１８、およびＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、または他の光媒体などのリムーバブルな不揮発性の光ディスク７２４に対して読み取りおよび／または書き込みを行うための光ディスクドライブ７２２を示している。ハードディスクドライブ７１６、磁気ディスクドライブ７１８、および光ディスクドライブ７２２はそれぞれ、１つ以上のデータメディアインターフェース７２６でシステムバス７０８に接続される。別法として、ハードディスクドライブ７１６、磁気ディスクドライブ７１８、および光ディスクドライブ７２２は、１つ以上のインターフェース（図示せず）でシステムバス７０８に接続することもできる。
【００５７】
以上のディスクドライブ、および付随するコンピュータ可読媒体により、コンピュータ可読命令、データ構造、プログラムモジュール、および他のデータの不揮発性ストレージがコンピュータ７０２に提供される。この例はハードディスク７１６、リムーバブルな磁気ディスク７２０、およびリムーバブルな光ディスク７２４を示しているが、磁気カセットまたは他の磁気記憶装置、フラッシュメモリカード、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）または他の光ストレージ、ランダムアクセスメモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、電気的に消去可能なプログラマブル読み取り専用メモリ（ＥＥＰＲＯＭ）などの、コンピュータによってアクセス可能なデータを格納することができる他のタイプのコンピュータ可読媒体を例示的なコンピューティングシステムおよびコンピューティング環境を実装するのに利用することもできることを理解されたい。
【００５８】
例として、オペレーティングシステム７２６、１つ以上のアプリケーションプログラム７２８、他のプログラムモジュール７３０、およびプログラムデータ７３２を含むいくつかのプログラムモジュールは、ハードディスク７１６、磁気ディスク７２０、光ディスク７２４、ＲＯＭ７１２、および／またはＲＡＭ７１０に格納することが可能である。そのようなオペレーティングシステム７２６、１つ以上のアプリケーションプログラム７２８、他のプログラムモジュール７３０、およびプログラムデータ７３２のそれぞれ（または以上の何らかの組み合わせ）が、分散ファイルシステムをサポートする常駐コンポーネントのすべて、または一部を実装することが可能である。
【００５９】
ユーザは、キーボード７３４やポインティングデバイス７３６（例えば、「マウス」）などの入力デバイスを介してコマンドおよび情報をコンピュータ７０２に入力することができる。他の入力デバイス７３８（特に図示せず）は、マイク、ジョイスティック、ゲームパッド、衛星パラボラアンテナ、シリアルポート、スキャナ、および／または以上に類するものを含むことが可能である。以上の入力デバイス、およびその他の入力デバイスは、システムバス７０８に結合された入力／出力インターフェース７４０を介して処理ユニット７０４に接続されるが、パラレルポート、ゲームポート、またはユニバーサルシリアルバス（ＵＳＢ）などの他のインターフェースおよびバス構造で接続してもよい。
【００６０】
また、モニタ７４２、または他のタイプのディスプレイデバイスも、ビデオアダプタ７４４などのインターフェースを介してシステムバス７０８に接続することができる。モニタ７４２に加えて、その他の出力周辺デバイスは、入力／出力インターフェース７４０を介してコンピュータ７０２に接続することが可能なスピーカ（図示せず）やプリンタ７４６などのコンポーネントを含むことが可能である。
【００６１】
コンピュータ７０２は、リモートコンピューティングデバイス７４８のような１つ以上のリモートコンピュータに対する論理接続を使用するネットワーク化された環境において動作することができる。例として、リモートコンピューティングデバイス７４８は、パーソナルコンピュータ、ポータブルコンピュータ、サーバ、ルータ、ネットワークコンピュータ、ピアデバイス、または他の一般的なネットワークノード、ゲームコンソール等とすることが可能である。リモートコンピューティングデバイス７４８は、コンピュータ７０２に関連して本明細書で説明した要素および特徴の多く、またはすべてを含むことが可能なポータブルコンピュータとして図示している。
【００６２】
コンピュータ７０２とリモートコンピュータ７４８の間の論理接続は、ローカルエリアネットワーク（ＬＡＮ）７５０および汎用ワイドエリアネットワーク（ＷＡＮ）７５２として描いている。そのようなネットワーキング環境は、オフィス、企業全体のコンピュータネットワーク、イントラネット、およびインターネットで一般的である。
【００６３】
ＬＡＮネットワーキング環境において実装される場合、コンピュータ７０２は、ネットワークインターフェースまたはネットワークアダプタ７５４を介してローカルネットワーク７５０に接続される。ＷＡＮネットワーキング環境において実装される場合、コンピュータ７０２は、通常、ワイドネットワーク７５２を介して通信を確立するためのモデム７５６、または他の手段を含む。コンピュータ７０２の内部にあることも、外部にあることも可能なモデム７５６は、入力／出力インターフェース７４０、または他の適切な機構を介してシステムバス７０８に接続することが可能である。図示したネットワーク接続は例示的であり、コンピュータ７０２および７４８間で通信リンクを確立する他の手段も使用できることを理解されたい。
【００６４】
コンピューティング環境７００で図示するようなネットワーク化された環境では、コンピュータ７０２に付随して描いたプログラムモジュール、またはプログラムモジュールの部分は、遠隔のメモリ記憶装置の中に格納することが可能である。例として、遠隔のアプリケーションプログラム７５８が、リモートコンピュータ７４８のメモリデバイス上に常駐している。例示のため、オペレーティングシステムなどのアプリケーションプログラムおよびその他の実行可能なプログラムコンポーネントは、本明細書で別々のブロックとして示しているが、そのようなプログラムおよびコンポーネントは、様々な時点で、コンピューティングデバイス７０２の異なる記憶コンポーネントの中に存在し、コンピュータのデータプロセッサによって実行されることを理解されたい。
【００６５】
様々なモジュールおよび技術は、１つ以上のコンピュータ、または他のデバイスによって実行される、プログラムモジュールなどのコンピュータ実行可能命令の一般的な文脈において説明することができる。一般に、プログラムモジュールには、特定のタスクを実行する、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造等が含まれる。通常、プログラムモジュールの機能は、様々な実施形態において所望に応じて結合すること、または分散させることができる。
【００６６】
以上のモジュールおよび技術の実装は、何らかの形態のコンピュータ可読媒体上に格納すること、または何らかの形態のコンピュータ可読媒体を介して伝送することができる。コンピュータ可読媒体は、コンピュータがアクセスすることができる任意の利用可能な媒体とすることが可能である。例として、限定としてではなく、コンピュータ可読媒体は、「コンピュータ記憶媒体」および「通信媒体」を含むことが可能である。
【００６７】
「コンピュータ記憶媒体」は、コンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータなどの情報の格納のために任意の方法または技術で実装される揮発性媒体と不揮発性媒体、リムーバブルな媒体とリムーバブルでない媒体を含む。コンピュータ記憶媒体には、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）または他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージまたは他の磁気記憶装置、または所望の情報を格納するのに使用することができ、コンピュータがアクセスすることができる任意の他の媒体が含まれるが、以上には限定されない。
【００６８】
「通信媒体」は、通常、コンピュータ実行可能命令、データ構造、プログラムモジュール、または搬送波または他のトランスポート機構などの変調されたデータ信号内の他のデータを具体化する。通信媒体には、あらゆる情報配信媒体も含まれる。「変調されたデータ信号」という用語は、信号内に情報をエンコードするように特性の１つまたは複数が設定された、または変更された信号を意味する。例として、限定としてではなく、通信媒体には、有線ネットワークまたは直接配線接続、音響媒体、ＲＦ媒体、赤外線媒体、およびその他の無線媒体などの無線媒体が含まれる。また、以上の媒体のいずれかの組み合わせもコンピュータ可読媒体の範囲に含まれる。
【００６９】
図８は、ゲームコンソール１０２の機能コンポーネントをより詳細に示している。ゲームコンソール１０２は、中央処理ユニット（ＣＰＵ）８００、並びにフラッシュＲＯＭ（読み取り専用メモリ）８０４、ＲＡＭ（ランダムアクセスメモリ）８０６、ハードディスクドライブ８０８、およびポータブルメディアドライブ８０９を含む様々なタイプのメモリに対するプロセッサアクセスを円滑にするメモリコントローラ８０２を有する。ＣＰＵ８００は、データを一時的に格納し、したがって、メモリアクセスサイクルの回数を減らし、処理速度およびスループットを向上させるレベル１キャッシュ８１０およびレベル２キャッシュ８１２を備えている。
【００７０】
ＣＰＵ８００、メモリコントローラ８０２、および様々なメモリデバイスは、様々なバスアーキテクチャのいずれかを使用するシリアルバスおよびパラレルバス、メモリバス、周辺バス、およびプロセッサバスまたはローカルバスを含む１つ以上のバスを介して互いに接続される。例として、そのようなアーキテクチャは、ＩＳＡバス、ＭＣＡバス、ＥＩＳＡバス、ＶＥＳＡローカルバス、およびメザニンバスとしても知られるＰＣＩバスを含むことが可能である。
【００７１】
１つの適切な実装として、ＣＰＵ８００、メモリコントローラ８０２、ＲＯＭ８０４、およびＲＡＭ８０６は、共通のモジュール８１４上に統合される。この実装では、ＲＯＭ８０４は、ＰＣＩ（ペリフェラルコンポーネントインターコネクト）バスおよびＲＯＭバス（いずれも図示せず）を介してメモリコントローラ８０２に接続されるフラッシュＲＯＭとして構成される。ＲＡＭ８０６は、別々のバス（図示せず）を介してメモリコントローラ８０２によって独立に制御される複数のＤＤＲ  ＳＤＲＡＭ（ダブルデータレートシンクロナスダイナミック（Double・Data・Rate・Synchronous・Dynamic）ＲＡＭ）として構成される。ハードディスクドライブ８０８およびポータブルメディアドライブ８０９は、ＰＣＩバスおよびＡＴＡ（ＡＴアタッチメント）バス８１６を介してメモリコントローラに接続される。
【００７２】
３Ｄグラフィックス処理ユニット８２０およびビデオエンコーダ８２２が、高速、高解像度のグラフィックス処理のためのビデオ処理パイプラインを形成する。データは、グラフィックス処理ユニット８２０からデジタルビデオバス（図示せず）を介してビデオエンコーダ８２２に伝送される。オーディオ処理ユニット８２４およびオーディオコーデック（コーダ／デコーダ）８２６が、高い忠実度のステレオ処理を備えた対応するオーディオ処理パイプラインを形成する。オーディオデータは、通信リンク（図示せず）を介してオーディオ処理ユニット８２４とオーディオコーデック８２６の間で伝送される。ビデオ処理パイプラインおよびオーディオ処理パイプラインは、テレビまたはその他のディスプレイに伝送するためにデータをＡ／Ｖ（オーディオ／ビデオ）ポート８２８に出力する。図示する実装では、ビデオ処理コンポーネントおよびオーディオ処理コンポーネント８２０〜８２８は、モジュール８１４上に実装されている。
【００７３】
やはりモジュール８１４の上に、ＵＳＢホストコントローラ８３０およびネットワークインターフェース８３２が実装されている。ＵＳＢホストコントローラ８３０は、バス（例えば、ＰＣＩバス）を介してＣＰＵ８００およびメモリコントローラ８０２に結合され、周辺コントローラ８３６（１）〜８３６（４）のホストの役割をする。ネットワークインターフェース８３２は、ネットワーク（例えば、インターネット、ホームネットワーク等）に対するアクセスを提供し、イーサネット（登録商標）カード、モデム、Ｂｌｕｅｔｏｏｔｈモジュール、ケーブルモデム等を含む多種多様の様々な有線または無線のインターフェースコンポーネントのいずれとすることも可能である。
【００７４】
ゲームコンソール１０２は、２つのデュアルコントローラサポートサブアセンブリ８４０（１）および８４０（２）を有し、それぞれのサブアセンブリが２つのゲームコントローラ８３６（１）〜８３６（４）をサポートしている。フロントパネルＩ／Ｏサブアセンブリ８４２が、電源ボタン８３１およびメディアドライブ取り出しボタン８３３、並びにゲームコンソールの外面上に露出した任意のＬＥＤ（発光ダイオード）または他のインジケータの機能をサポートする。サブアセンブリ８４０（１）、８４０（２）、および８４２は、１つ以上のケーブルアセンブリ８４４を介してモジュール８１４に結合される。
【００７５】
８つのメモリユニット８３４（１）〜８３４（８）が、４つのコントローラ８３６（１）〜８３６（４）に接続可能であるものとして示され、すなわち、各コントローラに関して２つのメモリユニットが存在する。各メモリユニット８３４は、ゲーム、ゲームパラメータ、およびその他のデータを格納することができる追加のストレージを提供する。メモリユニット８３４は、コントローラに挿入されているとき、メモリコントローラ８０２によってアクセスすることが可能である。
【００７６】
システム電源モジュール８５０が、ゲームコンソール１０２のコンポーネントに電力を提供する。ファン８５２が、ゲームコンソール１０２内部の回路を冷却する。
【００７７】
コンソールユーザインターフェース（ＵＩ）アプリケーション８６０が、ハードディスクドライブ８０８上に格納される。ゲームコンソールに電源が投入された際、コンソールアプリケーション８６０の様々な部分が、ＲＡＭ８０６および／またはキャッシュ８１０、８１２にロードされ、ＣＰＵ８００上で実行される。コンソールアプリケーション８６０は、ゲームコンソール上で利用可能な異なる媒体タイプにナビゲートする際に一貫性のあるユーザ体験を提供するグラフィカルユーザインターフェースを提示する。
【００７８】
ゲームコンソール１０２は、暗号エンジンを実装して、暗号化、復号化、認証、デジタル署名、ハッシングなどの一般的な暗号機能を実行する。暗号エンジンは、ＣＰＵ８００の一部として、またはＣＰＵ上で実行されるハードディスクドライブ８０８上に格納されたソフトウェアとして実装し、暗号機能を実行するようにＣＰＵを構成することが可能である。別法として、暗号機能を実行するように設計された暗号プロセッサまたは暗号コプロセッサを、ゲームコンソール１０２内部に含むことも可能である。
【００７９】
ゲームコンソール１０２は、単にシステムをテレビまたはその他のディスプレイに接続することにより、スタンドアロンシステムとして動作させることが可能である。このスタンドアロンモードでは、ゲームコンソール１０２は、１名または複数名のプレーヤが、ゲームを行うこと、映画を観ること、または音楽を聴くことを可能にする。ただし、ネットワークインターフェース８３２を介してブロードバンド接続が統合されると、ゲームコンソール１０２は、前述した通り、オンラインゲームの参加者としてさらに動作させることができる。
【００８０】
本明細書で説明するゲームコンソールは、専用ゲームコンソール（コンピュータゲームを実行する汎用ＰＣではなく）として説明しているが、ゲームコンソールは、追加の機能も組み込むことができることに留意されたい。例えば、ゲームコンソールは、デジタルＶＣＲとして動作することが可能であるようにデジタルビデオ記録機能を含むこと、テレビ信号（ブロードバンド信号、ケーブル信号、サテライト信号等のいずれであれ）にチューニングして、復号化することができるようにチャネルチューニング機能を含むこと等が可能である。さらに、代替の実施形態では、ゲームコンソールは、セットトップボックス、または他のコンピューティングデバイスによって置き換えられる。
【００８１】
以上の説明は、構造上の特徴および／または方法上の動作に特有の言い回しを使用しているが、頭記の特許請求の範囲で定義する本発明は、説明した特定の特徴または動作に限定されないことを理解されたい。むしろ、特定の特徴および動作は、本発明を実装する例示的な形態として開示している。
【図面の簡単な説明】
【００８２】
【図１】例示的なオンラインゲーム環境を示すブロック図である。
【図２】リーダーボードエントリに添付されたデータを取り出すための手順の実施形態を示すフローチャートである。
【図３】ゲームコンソールユーザに提供されるリーダーボードの例を示す図である。
【図４】カーレーシングゲームに関連する記録済みのゲームデータの例を示す図である。
【図５】ゲームコンソールユーザが記録済みのゲームデータと競うことができるようにする、または記録済みのゲームデータの再生を見ることができるようにする手順の実施形態を示すフローチャートである。
【図６】ゲームコンソールユーザがオンラインゲームチャレンジを選択し、そのチャレンジにおいて競うことができるようにする手順の実施形態を示すフローチャートである。
【図７】本明細書で説明する技術を実装するのに使用することができる汎用コンピュータ環境を示す図である。
【図８】ゲームコンソールの機能コンポーネントをより詳細に示す図である。
【符号の説明】
【００８３】
１０２（１）、１０２（２）、１０２（ｎ）  ゲームコンソール
１０４  ゲートウェイ
１０６、１０８  ネットワーク
１１０  データセンタ
１１２、１１６、１１８、１２２、１２６  サーバ
１１４、１２０、１２４  フロントドア
１２８  キー配信センタ
【図１】
2004329950.tif 000003
【図２】
2004329950.tif 000004
【図３】
2004329950.tif 000005
【図４】
2004329950.tif 000006
【図５】
2004329950.tif 000007
【図６】
2004329950.tif 000008
【図７】
2004329950.tif 000009
【図８】
2004329950.tif 000010