(57)【要約】  マルチプレイヤートーナメントが確立され、次いで、トーナメントサーバデバイスにより自動的に実行され、ユーザは、似た技量を有するプレイヤーと質のよい対戦を行える。トーナメントは、管理者により定義され、次いで、プレイヤーによる需要に応えるように何回も自動的にインスタンス化されうる。いくつかのトーナメントでは、トーナメントラウンドにおいて類似のランクのプレイヤーをグループ化し、さらに、ウィンドウ係数を使用し、プレイヤーが前のラウンドで一緒にプレイした後あまりにも早く一緒にプレイするのを防ぐこともできる。いくつかのトーナメントでは、リーダーボード資格認定プロセスを使用することができ、これにより潜在的参加者は、資格認定パラメータで指定された功績を達成することによりトーナメントの資格認定を受けることができる。
2009526603.tif 000002
【特許請求の範囲】
【請求項１】
ゲーム機トーナメント方法であって、
トーナメント管理者からログイン要求を受信するステップ（６０１）と、
前記トーナメント管理者に対して、１つまたは複数のトーナメントパラメータを入力するように促す（ｐｒｏｍｐｔ）ステップ（６０２）と
を含み、
前記トーナメントパラメータは、前記トーナメントの複数のインスタンスをインスタンス化する（６０４）ためのスケジュール基準を含み、
各インスタンスは、
ａ）トーナメント参加者の複数のリモートゲーム機（４０２）と通信して、前記トーナメントにおける複数のラウンドに対するゲームセッション基準をセットアップし、
ｂ）共通のマルチプレイヤーオンラインゲームセッションに参加している複数のゲーム機からゲームセッション結果を受信し（６０６）、
ｃ）複数のゲームセッションの結果に基づいて、トーナメント勝利者を決定する（６１１）
ことを特徴とするゲーム機トーナメント方法。
【請求項２】
前記ログイン要求は、ゲーム機（４０２）から受信されることを特徴とする請求項１に記載のゲーム機トーナメント方法。
【請求項３】
前記決定するステップは、前記ゲームセッションに参加した第１のゲーム機から受信されたゲームセッション結果と、前記ゲームセッションに参加した第２のゲーム機から受信された結果とを比較するステップ（６０７）をさらに含むことを特徴とする請求項１に記載のゲーム機トーナメント方法。
【請求項４】
前記比較するステップの結果、比較された前記結果の間に矛盾が識別される場合、前記矛盾を解決するためにアービトレーション（６０８）を実行するステップをさらに含むことを特徴とする請求項３に記載のゲーム機トーナメント方法。
【請求項５】
前記アービトレーションを実行するステップは、リーダーボードデータ構造体にクエリを実行すること（６０８）を含み、前記リーダーボードデータ構造体は、安全な伝送を介して、前記複数のゲーム機からゲームセッション結果を受信することを特徴とする請求項４に記載のゲーム機トーナメント方法。
【請求項６】
前記スケジュール基準の結果として、前記トーナメントの第１のインスタンスが完了すると（６０３）、前記トーナメントの第２のインスタンスが自動的にインスタンス化されることを特徴とする請求項１に記載のゲーム機トーナメント方法。
【請求項７】
前記トーナメントパラメータは、前記共通のマルチプレイヤーオンラインゲームセッションに対して一緒になった後、２人のトーナメント参加者が第２のゲームセッションに対して一緒のグループにまとめられる前に経過していなければならない最短時間を識別するウィンドウ係数をさらに含むことを特徴とする請求項１に記載のゲーム機トーナメント方法。
【請求項８】
前記トーナメントパラメータは、前記トーナメントにおけるゲームセッションについてグループ化されるプレイヤー間のランクの近さを識別するランクギャップをさらに含むことを特徴とする請求項１に記載のゲーム機トーナメント方法。
【請求項９】
前記トーナメントの少なくとも１つのラウンドが完了した後に前記トーナメントのインスタンスに対する新規プレイヤー登録を受け付け、そして、前記トーナメントのその後のラウンドに前記新規プレイヤーを入れるステップをさらに含むことを特徴とする請求項１に記載のゲーム機トーナメント方法。
【請求項１０】
前記パラメータは、新規プレイヤー係数を含み、
前記方法は、前記新規プレイヤー係数を使用して、前記トーナメントの前記その後のラウンドのうちの１つまたは複数における前記新規プレイヤーのスコアを調節するステップを含むことを特徴とする請求項９に記載のゲーム機トーナメント方法。
【請求項１１】
前記新規プレイヤー係数は、前記新規プレイヤーが前記トーナメントのラウンドに参加する回数が増えるにつれて変化し、
前記新規プレイヤー係数は、前記新規プレイヤーが前記トーナメントパラメータで指定された最小値を超える数のラウンドに参加した後、前記新規プレイヤーにはもはや使用されないことを特徴とする請求項１０に記載のゲーム機トーナメント方法。
【請求項１２】
トーナメント設定データを参加者のゲーム機にダウンロードし、そして、前記トーナメントのパラメータに従ってゲームセッションをプレイするように前記ゲーム機を自動的に構成するステップをさらに含むことを特徴とする請求項１に記載のゲーム機トーナメント方法。
【請求項１３】
前記トーナメントパラメータは、前記トーナメントに対する資格認定期間（９０３）並びに１つ又は複数の資格認定基準を定義し、
前記方法は、前記資格認定期間にゲーム機から複数のスコアレポートを受信し、そして、どのスコアが前記トーナメントに対して資格認定されるかを識別するステップを含むことを特徴とする請求項１に記載のゲーム機トーナメント方法。
【請求項１４】
すでに資格認定されている参加者に、その後に資格認定された参加者に起因して前記すでに資格認定されている参加者の資格認定ステータスが変更された場合にそのことを自動的に通知するステップをさらに含むことを特徴とする請求項１３に記載のゲーム機トーナメント方法。
【請求項１５】
通知された前記すでに資格認定されている参加者に、変更された前記資格認定ステータスに応じて資格認定試行をリトライする機会を与えるステップをさらに含むことを特徴とする請求項１４に記載のゲーム機トーナメント方法。
【請求項１６】
第１の複数の資格認定するスコアを前記トーナメントの第１のレベルのインスタンスに割り当て、第２の複数の資格認定するスコアを前記トーナメントの第２のレベルのインスタンスに割り当てるステップ（９０４）をさらに含み、
前記第１の複数の資格認定するスコアは、前記第２の複数の資格認定するスコアよりも高いランクを有することを特徴とする請求項１４に記載のゲーム機トーナメント方法。
【請求項１７】
トーナメント設定ファイルに前記トーナメントパラメータを格納するステップをさらに含み、
前記トーナメント設定ファイルは、前記トーナメントにおける複数のラウンドに対する異なるゲームセッションパラメータを含むことを特徴とする請求項１に記載のゲーム機トーナメント方法。
【請求項１８】
トーナメント方法であって、
トーナメント参加者のための複数のゲーム機（４０２）からトーナメント登録を受信するステップと、
複数の登録された前記トーナメント参加者をランク付けするステップ（８０２）と、
前記トーナメントの第１のラウンドのゲームセッションへの参加のために、ランク付けされた前記トーナメント参加者の部分集合を順次グループ分けするステップと、
前記第１のラウンドにおけるパフォーマンスに基づいて、前記トーナメント参加者を再ランク付けするステップと、
前記トーナメントの第２のラウンドにおけるゲームセッションにおいて、再ランク付けされた前記トーナメント参加者の部分集合を順次グループ分けするステップと
を含み、
トーナメント参加者をあるグループに追加するか否かを決定するときに、トーナメント参加者がそのグループのいずれかのメンバーとゲームセッションにおいて最後にプレイした以降にウィンドウ係数の時間が経過したか否かを確認することを特徴とする方法。
【請求項１９】
前記ウィンドウ係数は、ゲームセッションの数を識別することを特徴とする請求項１８に記載の方法。
【請求項２０】
リーダーボード資格認定トーナメント方法であって、
ゲームプログラムに対するチャレンジ定義をポストするステップ（９０２）であって、前記チャレンジ定義は、トーナメントの資格認定を受けるための複数のゲームセッション基準を含むステップと、
前記トーナメントの資格認定を受けようとするプレイヤーの複数のゲーム機からゲームセッション結果を受信するステップ（９０３）と、
受信された前記ゲームセッション結果をランク付けし、そして、プレイヤーにそのプレイヤーの現在のランクを知らせるステップと、
その後のプレイヤースコアの結果として以前に資格認定しているスコアが資格認定していないスコアとなる場合に、ゲーム内（ｉｎ−ｇａｍｅ）通知をプレイヤーに送信し、そして、通知された前記プレイヤーが資格認定をリトライすることを許すステップと、
前記資格認定期間を締め切り、前記資格認定された参加者を用いて前記トーナメントを実施するステップと
を含むことを特徴とするリーダーボード資格認定トーナメント方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、適切な対戦を迅速に提供することに関する。
【背景技術】
【０００２】
オンラインコンピュータゲームは、たちまち今日のビデオゲーム市場の重要な一角を占めるまでに成長したが、というのも、現在では他のプレイヤーと対戦する機会が一段と増えているからである。例えば、ＸＢＯＸ  ＬＩＶＥ（商標）（ワシントン州レドモンド所在の本件特許出願人）のオンラインサービスでは、ビデオゲームプレイヤーは世界中のあらゆる場所の他のプレイヤーと対戦することが可能である。潜在的プレイヤーのプールがこのように大きいため、それに対応してプレイヤーの能力も、初めてのプレイヤーまたは不定期のプレイヤーから毎日親しむ熱烈なファン、さらにはプロのビデオゲームプレイヤークラスまで、非常に多様である。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
プレイヤーの能力がこのように多様であるため、新たな問題が出現した。多くのオンラインゲームは、プレイヤーが、ゲームの目標を達成するために対戦相手と競争し、対戦相手に対する一定レベルの優位を獲得するという点で競争的である。このような競争ゲームは、多くの場合、さまざまなプレイヤーが技量および能力の点で互いに近接している場合にしか楽しめない。技量レベルの違いが大きすぎると、技量の高いプレイヤーは、挑まれず、その一方で、技量の劣るプレイヤーは、常に敗北することにフラストレーションを感じることになる。しかし、典型的なオンラインゲームでは、ゲームセッションに参加するのにあわせてプレイヤーを集め、プレイヤーの能力、またはプレイヤーが互いに技量の点でどれだけ近接しているかについては問題にしない。
【０００４】
トーナメントなどのいくつかの組織的試合では、決勝戦で技量の等しいプレイヤー同士を組み合わせようとすることがある。例えば、ＮＣＡＡ（商標）（Ｎａｔｉｏｎａｌ  Ｃｏｌｌｅｇｅ  Ａｔｈｌｅｔｉｃｓ  Ａｓｓｏｃｉａｔｉｏｎ）バスケットボールトーナメントでは、６５チームを選び、（番狂わせがないと仮定して）その２つの準決勝で上位４チームを互いに競わせるようにチームのシードを決める（つまり、４つの第１位シード（ｆｏｕｒ  ｎｕｍｂｅｒ  １  ｓｅｅｄｓ））。しかし、トーナメントの早い回のラウンドまでのそれぞれの第１位シードの経路は、アンバランスの対戦ばかりである。例えば、ＮＣＡＡ（商標）バスケットボールトーナメントの第１ラウンドでは、ブラケット内の最上位シードをブラケット内の最低シード（第１６位シード）と競わせる。それに加えて、ＮＣＡＡ（商標）の取り決めは、固定された、チームの限られたラインアップ（シード順序で６５チーム）を必要とし、数千の（または数百万の）プレイヤーと随時退会または参加する可能性のあるプレイヤーとを有するビデオゲームコミュニティに容易に移すことはできないであろう。
【課題を解決するための手段】
【０００５】
この要約では、以下の詳細な説明でさらに説明される概念のうちの選択したものを簡素化された形で導入する。この要約は、請求されている主題の鍵となる特徴または本質的特徴を明示することを意図しておらず、また請求されている主題の範囲を制限するために使用されることも意図していない。
【０００６】
以下でさらに詳しく説明するように、本出願は、カスタマイズ可能な競争構造を含む。トーナメントパラメータは、予め定義しておくことができ、また、人間による絶え間のない監督を必要とすることなくトーナメントが必要に応じて作成されて無期限に存在するように、ゲームの通信ネットワークにより自動的にインスタンス化することができる。この定義は、例えば、インターネットページインターフェイスを使用して、またはエンドユーザのビデオゲームユーザインターフェイスにより行うことができる。
【０００７】
トーナメント管理者は、トーナメントを定義するためにトーナメントサーバにログインして、トーナメントパラメータを入力することができる。トーナメントは、１回または複数回、インスタンス化することができ、別々のインスタンスが、個別に、また自動的に、さまざまな参加者と通信し、ゲームセッション結果を管理し、トーナメント勝利者を決定することができる。
【０００８】
いくつかの態様では、スコアリング・アービトレーション（ｓｃｏｒｉｎｇ  ａｒｂｉｔｒａｔｉｏｎ）を使用して、トーナメントに参加しているさまざまなゲーム機により報告されたスコアの異常性を解決することができる。例えば、トーナメントサーバは、受け取った結果を、別個のリーダーボードプロセス（ｌｅａｄｅｒｂｏａｒｄ  ｐｒｏｃｅｓｓ）により受け取られた結果と比較することができ、その別のリーダーボードプロセスは、通信の検証を助けるためにゲーム機とより安全な送信を使用することができる。
【０００９】
いくつかの態様では、トーナメントは、スケジュールに従って実行することができ、次々に（例えば、実質的に連続して）実行するように構成することができる。
【００１０】
いくつかの態様では、ウィンドウ（ｗｉｎｄｏｗ）係数で、トーナメント全体を通して同じプレイヤーが互いに対戦する事態を最小限にとどめるために、プレイヤーがゲームセッションで再会できるまでに経過していなければならない時間の長さを識別できる。また、新規プレイヤー（ｎｅｗ  ｐｌａｙｅｒ）係数を使用して、新規に加わった参加者のスコアを調節することができる。
【００１１】
いくつかの態様では、トーナメントパラメータおよびゲーム設定がゲーム機にダウンロードされ、トーナメントの次のラウンドに合わせてプレイヤーのゲーム機が自動的に構成されるようにできる。
【００１２】
いくつかの態様では、資格認定（qualification）期間をトーナメントに先行させることができ、その認定期間に、プレイヤーは、対応するスコアをポスト（ｐｏｓｔ）することにより資格認定を受けることを試みることができる。プレイヤーは、その資格認定ステータスを通知され、また、その後のプレイヤーの資格認定試行によりステータスが変化した場合に再び通知され、また、資格認定をまた試みるオプションを与えられうる。トーナメントは、異なるレベルの資格認定者（ｑｕａｌｉｆｉｅｒ）を受け入れるように複数回インスタンス化することができる。
【００１３】
いくつかの態様では、トーナメントは、可変数の資格認定トーナメントエントリ（ｑｕａｌｉｆｙｉｎｇ  ｔｏｕｒｎａｍｅｎｔ  ｅｎｔｒｉｅｓ）を受け入れるように動的に調節することができる。試合毎の勝利者の数、試合毎のプレイヤーの数、ラウンドの回数、トーナメントの決勝戦の参加プレイヤーの数などのトーナメントパラメータは、所望の数の資格認定者がトーナメントに参加できるように変えることができる。試合参加者は、かれらの全スコアと、かれらがプレイしたラウンドに対する可能な全スコアとの比を使用してランク付けされ、そのランキングは、プレイヤーの後のグループ分けで使用できる。
【００１４】
トーナメントユーザインターフェイスは、ユーザがトーナメントプロセスをナビゲートできるようにするために表示することができる。ユーザは、インタラクティブなオンラインのマルチプレイヤー型およびマルチラウンド型ビデオゲームをプレイし、ユーザが資格認定を受けたトーナメントのリストを表示することができる。ユーザ希望基準（ｕｓｅｒ−ｄｅｓｉｒｅｄ  ｃｒｉｔｅｒｉａ）を満たすトーナメントを探索すること、またはトーナメントおよび／もしくは対戦相手の詳細を表示することなどの他のオプションも用意することができる。
【００１５】
これらの態様および他の態様について、以下で詳述する。
【発明を実施するための最良の形態】
【００１６】
さまざまな態様の以下の説明では、一部をなし、本明細書で説明されているさまざまな特徴を実施できることが図で示されている、付属の図面を参照する。他の実施形態を利用し、構造上または機能的な修正を加えることができることが理解されるであろう。
【００１７】
図１は、コンピュータゲーム、ビデオゲーム、および／または他の電子ゲーム（本明細書ではコンピュータゲームと総称する）をプレイできる好適なゲームシステム環境１００の一実施例を示している。ゲームシステム環境１００は、好適なコンピューティング環境の一例にすぎず、本明細書で説明されている特徴の用途または機能性の範囲に関する制限を示唆する意図はない。ゲームシステム環境１００は、例示的な動作しているゲームシステム環境１００に示されている１つのコンポーネントまたはその組合せに関係する何らかの依存関係または要件を有するものと解釈すべきでない。
【００１８】
本明細書で説明されている態様は、他の数多くの汎用または専用コンピューティングシステム環境または構成で動作する。使用するのに適していると思われるよく知られているコンピューティングシステム、環境、および／または構成の例として、限定はしないが、パーソナルコンピュータ（ＰＣ）、サーバコンピュータ、またはパーソナルデジタルアシスタント（ＰＤＡ）、タブレットＰＣ、またはラップトップＰＣなどのポータブルまたはハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラム可能な家電製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、ゲーム機、上記システムまたはデバイスを含む分散コンピューティング環境などがある。
【００１９】
本明細書の態様は、コンピュータによって実行されるプログラムモジュールなどのコンピュータ実行可能命令の一般的文脈において説明することができる。一般に、プログラムモジュールは、特定のタスクを実行する、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。また、本明細書で説明されている特徴は、通信ネットワークを通じてリンクされているリモート処理デバイスによりタスクが実行される分散コンピューティング環境で実施することもできる。分散コンピューティング環境では、プログラムモジュールをメモリ記憶デバイスなどのローカルとリモートの両方のコンピュータ記憶媒体に配置できる。
【００２０】
図１は、例示的なゲームシステム１００を示している。ゲームシステム１００は、ゲーム機１０２および、コントローラ１０４（１）および１０４（２）で表されるような１つまたは複数のハンドヘルドコントローラを備えることができる。ゲーム機１０２は、内蔵または外付けハードディスクドライブと、光学式記憶ディスク１０８で表されるようなさまざまな形態の携帯型記憶媒体をサポートする携帯型（ｐｏｒｔａｂｌｅ）メディアドライブ１０６とを装備することができる。好適な携帯型記憶媒体の例としては、ＤＶＤ、ＣＤ−ＲＯＭ、ゲームディスクなどがある。
【００２１】
ゲーム機１０２は、最大４台までのコントローラをサポートする多数のスロット１１０を前面に備えることができるが、スロットの数および配置は、修正可能である。電源ボタン１１２および取り出しボタン１１４も、ゲーム機１０２の前面に配置される。電源ボタン１１２は、ゲーム機の電源のスイッチであり、取り出しボタン１１４は、記憶ディスク１０８の挿入および抜き取りを行えるように携帯型メディアドライブ１０６のトレイの開閉を交互に繰り返す。いくつかの態様では、ゲーム機１０２は、家庭向け娯楽用の専用コンピューティングデバイスとすることができ、認証され、認可されたアプリケーションのみを実行する閉じた安全なシステムとすることができる。ゲーム機１０２は、ゲームプログラムを実行するように最適化することができ（例えば、物理学コプロセッサ、数学コプロセッサ、グラフィックスコプロセッサ、高解像度ビデオ出力、ハイファイオーディオ出力などのゲームアプリケーションをサポートするように処理能力を高める）、また英字キーボード、内部ハードウェア拡張スロット、プリンタ通信ポートなどのパーソナルコンピューティングデバイスに通常備えられているいくつかの機能を省くことができる。
【００２２】
ゲーム機１０２は、Ａ／Ｖインターフェイスケーブル１２０を介してテレビまたは他のディスプレイ（図示せず）に接続することができる。電源ケーブル１２２で、ゲーム機に電力を供給する。ゲーム機１０２は、さらに、インターネットなどのネットワークへのアクセスをしやすくするために、ケーブルまたはモデムコネクタ１２４により表されるような、ブロードバンドネットワーク機能を備えるように構成することができる。コネクタ１２４は、さらに、１つまたは複数の無線ネットワークに接続するための無線アダプタも取り付けることができる。
【００２３】
それぞれのコントローラ１０４は、有線または無線インターフェイスを介してゲーム機１０２に結合することができる。例示されている実装では、コントローラはＵＳＢ（ユニバーサルシリアルバス）互換であり、ＵＳＢケーブル１３０を介してゲーム機１０２に接続される。コントローラ１０２は、さまざまなユーザインタラクションメカニズムのうちの任意のものを備えることができる。図１に例示されているように、それぞれのコントローラ１０４は、２つのサムスティック１３２（１）および１３２（２）、Ｄパッド１３４、ボタン１３６（例えば、「Ａ」、「Ｂ」、「Ｘ」、「Ｙ」）、および２つのトリガ１３８を備えることができる。サムスティック１３２は、アナログ方向制御ユニット（ａｎａｌｏｇ  ｄｉｒｅｃｔｉｏｎａｌ  ｃｏｎｔｒｏｌ  ｕｎｉｔ）とすることができ、ＸおよびＹ座標における位置の程度を検出するアナログ電位差計（ｐｏｔｅｎｔｉｏｍｅｔｅｒ）を備えることができる。Ｄパッド１３４は、方向指示パッドとすることができ、上、下、左、および右、またはそれらの方向の組合せ（例えば、左上）などの方向コマンドを指示するための入力を備える。Ｄパッド１３４は、さらに、アナログでもよく、特定の方向に押すために使用される圧力の程度に関する入力を形成することができる。これらのメカニズムは、単に代表するものであり、他の知られているゲームメカニズムを図１に示されているメカニズムの代わりに、またはそれに加えて使用することができる。
【００２４】
メモリユニット（ＭＵ）１４０をコントローラ１０４内に挿入して、追加および携帯型の記憶装置とすることができる。携帯型メモリユニットを使用することで、ユーザは、ゲームパラメータおよびユーザアカウントを格納し、他のゲーム機でプレイする場合にそれらのゲームパラメータおよびユーザアカウントを移植（ｐｏｒｔ）することができる。説明されている実装では、それぞれのコントローラは、２つのメモリユニット１４０を受け入れるように構成されているが、他の実装では２台よりも多い、または少ないユニットを使用することができる。ヘッドセット１４２をコントローラ１０４またはゲーム機１０２に接続して、音声通信機能を持たせることができる。ヘッドセット１４２は、オーディオ入力用のマイクとオーディオ出力用の１つまたは複数のスピーカーを備えることができる。
【００２５】
ゲームシステム１００は、例えば、ゲームをプレイし、音楽、ビデオを再生することができる。異なる記憶装置を使用することで、ハードディスクドライブまたはドライブ１０６内の携帯型媒体１０８から、オンラインソースから、またはメモリユニット１４０からタイトルを再生することができる。セキュリティのため、いくつかの実施形態では、実行可能コードは、携帯型媒体１０８からしか実行できない。ゲームシステム１００でプレイできる内容の例は、ＣＤおよびＤＶＤディスクから、ハードディスクドライブから、またはオンラインソースからプレイされるゲームタイトル、携帯型メディアドライブ１０６内のＣＤから、ハードディスクドライブ上のファイル（例えば、「ＷＩＮＤＯＷＳ（登録商標）」Ｍｅｄｉａ  Ａｕｄｉｏ（ＷＭＡ）フォーマット）から、またはオンラインストリーミングソースから再生されるデジタル音楽、および携帯型メディアドライブ１０６内のＤＶＤディスクから、ハードディスクドライブ上のファイル（例えば、Ａｃｔｉｖｅ  Ｓｔｒｅａｍｉｎｇ  Ｆｏｒｍａｔ）から、またはオンラインストリーミングソースから再生されるデジタルオーディオ／ビデオを含む。
【００２６】
図２は、ゲームシステム１００の機能コンポーネントをさらに詳しく示している。ゲーム機１０２は、中央演算処理装置（ＣＰＵ）２００、および、フラッシュＲＯＭ（読み取り専用メモリ）２０４、ＲＡＭ（ランダムアクセスメモリ）２０６、ハードディスクドライブ２０８、および携帯型メディアドライブ１０６を含む、さまざまなタイプのメモリにプロセッサがアクセスするのを手助けするメモリコントローラ２０２を備える。ＣＰＵ  ２００は、データを一時的に格納して、これによりメモリアクセスサイクル数を減らし、処理速度とスループットを改善するためのレベル１キャッシュ２１０およびレベル２キャッシュ２１２を装備している。
【００２７】
ＣＰＵ  ２００、メモリコントローラ２０２、およびさまざまなメモリデバイスは、さまざまなバスアーキテクチャを使用する、シリアルおよびパラレルバス、メモリ用バス、周辺機器用バス、およびプロセッサまたはローカルバスを含む、１つまたは複数のバスを介して相互接続される。例えば、このようなアーキテクチャとしては、Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ（ＩＳＡ）バス、Ｍｉｃｒｏ  Ｃｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ（ＭＣＡ）バス、Ｅｎｈａｎｃｅｄ  ＩＳＡ（ＥＩＳＡ）バス、Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ（ＶＥＳＡ）ローカルバス、およびＭｅｚｚａｎｉｎｅバスとも呼ばれるＰｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ（ＰＣＩ）バスがある。
【００２８】
好適な一実装として、ＣＰＵ  ２００、メモリコントローラ２０２、ＲＯＭ  ２０４、ＲＡＭ  ２０６は、共通モジュール２１４上に一体化される。この実装では、ＲＯＭ  ２０４は、メモリコントローラ２０２およびＲＯＭバス（図示せず）に接続されるフラッシュＲＯＭとして構成される。ＲＡＭ  ２０６は、別々のバス（図示せず）を介してメモリコントローラ２０２により独立に制御される複数のＤＤＲ  ＳＤＲＡＭ（ダブルデータレート方式同期ダイナミックＲＡＭ）として構成される。ハードディスクドライブ２０８および携帯型メディアドライブ１０６は、ＰＣＩバスおよびＡＴＡ（ＡＴ  Ａｔｔａｃｈｍｅｎｔ）バス２１６を介してメモリコントローラに接続される。
【００２９】
３Ｄグラフィックス処理ユニット２２０およびビデオエンコーダ２２２は、高速および高解像度グラフィックス処理を行うためのビデオ処理パイプラインを形成する。デジタルビデオバス（図示せず）を介して、グラフィックス処理ユニット２２０からデータがビデオエンコーダ２２２に搬送される。オーディオ処理ユニット２２４およびオーディオコーデック（コーダ／デコーダ）２２６は、ハイファイおよびステレオ処理機能を有する対応するオーディオ処理パイプラインを形成する。通信リンク（図示せず）を介して、データがオーディオ処理ユニット２２４とオーディオコーデック２２６との間でやり取りされる。ビデオおよびオーディオ処理パイプラインは、データをＡ／Ｖ（オーディオ／ビデオ）ポート２２８に出力し、テレビまたはその他のディスプレイに伝送する。例示されている実装では、ビデオおよびオーディオ処理コンポーネント２２０〜２２８は、モジュール２１４上に装着される。
【００３０】
さらにモジュール２１４上に実装されるのは、ＵＳＢホストコントローラ２３０およびネットワークインターフェイス２３２である。ＵＳＢホストコントローラ２３０は、バス（例えば、ＰＣＩバス）を介してＣＰＵ  ２００およびメモリコントローラ２０２に結合され、周辺機器コントローラ１０４（１）〜１０４（４）のホストとして使用される。ネットワークインターフェイス２３２は、ネットワーク（例えば、インターネット、ホームネットワークなど）へのアクセスを提供し、イーサネット（登録商標）カード、モデム、Ｂｌｕｅｔｏｏｔｈモジュール、ケーブルモデルなどを含む広範なさまざまな有線または無線インターフェイスコンポーネントとすることができる。
【００３１】
ゲーム機１０２は、２つのデュアルコントローラサポートサブアセンブリ２４０（１）および２４０（２）を有し、それぞれのアセンブリが２つのゲームコントローラ１０４（１）〜１０４（４）をサポートする。フロントパネルＩ／Ｏサブアセンブリ２４２は、電源ボタン１１２および取り出しボタン１１４、さらにはゲーム機の外面上に露出しているＬＥＤ（発光ダイオード）またはその他のインジケータの機能をサポートする。サブアセンブリ２４０（１）、２４０（２）、および２４２は、１つまたは複数のケーブルアセンブリ２４４を介してモジュール２１４に結合される。いくつかの実施形態では、ゲーム機１０２は、さらに、キーボード２５４が接続される、キーボード入力アセンブリ２４０（３）を備えることもできる。キーボード２５４およびそのサブアセンブリは、試験目的のためにキーボードを使用してテキストコマンドおよびデータを入力することができるよう、ゲーム機１０２の開発キットバージョンの一部として提供されうる。いくつかの実施形態では、キーボード２５４は、コントローラポート（例えば、サブアセンブリ２４０内の）と直接通信することができ、別個のキーボード入力アセンブリを使用する必要はない。さらに、ゲーム機のリソースを節約するために、キーボードドライバおよびサブアセンブリをゲーム機から省き、代わりに、ゲーム機をＵＳＢケーブルで第２のコンピューティングデバイス（例えば、別のＰＣ、またはデバッグ用ワークステーション）に結合して、第２のコンピューティングデバイスがコマンドシーケンスをゲーム機に送信できるようにし、キーボードを介して入力されたテキストコマンドシーケンスを解釈するために別個のソフトウェアおよび／またはハードウェアをゲーム機で必要とする状況を軽減することができる。
【００３２】
８つのメモリユニット１４０（１）から１４０（８）は、４つのコントローラ１０４（１）〜１０４（４）に接続可能であるものとして例示されている、つまり、それぞれのコントローラに対し２つのメモリユニットを接続できるように示されている。それぞれのメモリユニット１４０は、ゲーム、ゲームパラメータ、および他のデータを格納することができる追加の記憶装置を提供する。コントローラ内に挿入されると、メモリユニット１４０は、メモリコントローラ２０２によりアクセスできる。
【００３３】
システム電源モジュール２５０は、ゲームシステム１００のコンポーネントに電力を供給する。ファン２５２は、ゲーム機１０２内の回路を冷却する。
【００３４】
ゲーム機１０２は、ユーザがさまざまなエンターテインメント領域内を移動できるようにする一貫性のあるユーザインターフェイスおよびナビゲーション階層を備える統一メディアポータルモデル（ｕｎｉｆｏｒｍ  ｍｅｄｉａ  ｐｏｒｔａｌ  ｍｏｄｅｌ）を実装する。ポータルモデルは、携帯型メディアドライブ１０６に挿入されるメディアタイプに関係なく複数の異なるメディアタイプ（ゲームデータ、オーディオデータ、およびビデオデータ）からコンテンツをアクセスする便利な手段を提供する。
【００３５】
統一メディアポータルモデルを実装するために、ゲーム機のユーザインターフェイス（ＵＩ）アプリケーション２６０が、ハードディスクドライブ２０８上に格納される。ゲーム機の電源がオンにされると、ゲーム機アプリケーション２６０のさまざまな部分が、ＲＡＭ  ２０６および／またはキャッシュ２１０、２１２にロードされ、ＣＰＵ  ２００上で実行される。ゲーム機アプリケーション２６０は、ゲーム機上で利用可能なさまざまなメディアタイプにナビゲートするときに一貫性のあるユーザエクスペリエンスを与えるグラフィカルユーザインターフェイスを提示する。
【００３６】
ゲームシステム１００は、システムをテレビまたは他のディスプレイに単に接続するだけでスタンドアロンシステムとして動作することができる。このスタンドアロンモードでは、ゲームシステム１００を使って、１人または複数のプレイヤーがゲームをプレイしたり、動画を鑑賞したり、音楽を聴いたりすることができる。しかし、ネットワークインターフェイス２３２を通じてブロードバンド接続の統合が利用できるので、ゲームシステム１００は、さらに、より大きなネットワークゲームコミュニティにおける一参加者として動作することも可能である。このネットワークゲーム環境について、次に説明する。
【００３７】
図３は、ネットワーク３０２を介して複数のゲームシステム１００（１）、・・・、１００（ｇ）を相互接続する例示的なネットワークゲーム環境３００を示している。ネットワーク３０２は、さまざまなデータ通信ネットワークを代表するものである。これは、公共部分（例えば、インターネット）だけでなくプライベート部分（例えば、住宅地域のローカルエリアネットワーク（ＬＡＮ））、さらには公共部分とプライベート部分の組合せを含むことができる。ネットワーク３０２は、有線媒体と無線媒体の両方を含むさまざまな従来の通信媒体のうちの１つまたは複数を使用して実装されうる。ネットワーク３０２を介してデータを通信するために、公共プロトコルと専用プロトコルの両方を含む、さまざまな通信プロトコルを使用することができる。このようなプロトコルのいくつかの例として、ＴＣＰ／ＩＰ、ＩＰＸ／ＳＰＸ、ＮｅｔＢＥＵＩなどがある。
【００３８】
ゲームシステム１００に加えて、ネットワーク３０２を介して１つまたは複数のオンラインサービス３０４（１）、・・・、３０４（ｓ）にアクセスすることが可能であり、これにより、オンラインゲームのホストとなること、ダウンロード可能な音楽またはビデオファイルを提供すること、ゲーム試合をホストすること、ストリーミングオーディオ／ビデオファイルを提供することなどの様々なサービスを参加者に提供することができる。ネットワークゲーム環境３００は、さらに、オンラインサービス３０４とともに、個々のプレイヤーおよび／またはゲームシステム１００を互いに認証させる役割を果たす鍵配布センター３０６を伴うことができる。配布センター３０６は、鍵とサービスチケットを有効な参加者に配布し、次いで、これを使用して、複数のプレイヤー間でゲームを形成したり、オンラインサービス３０４からサービスを購入したりすることができる。
【００３９】
ネットワークゲーム環境３００は、個別のゲームシステム１００から利用できる他のメモリソース−オンラインストレージ−を導入する。携帯型記憶媒体１０８、ハードディスクドライブ２０８、および（複数の）メモリユニット１４０に加えて、ゲームシステム１００（１）は、さらに、（複数の）オンラインサービス３０４のリモートストレージ３０８により例示されているように、ネットワーク３０２を介してリモートストレージロケーションにおいて利用できるデータファイルにアクセスすることができる。
【００４０】
図４は、他の例示的なオンラインゲーム環境４００、例えば、ワシントン州レドモンド所在の本件特許出願人による「ＸＢＯＸ（商標）  ＬＩＶＥ（商標）」のブロック図である。複数のゲーム機４０２（１）、４０２（２）、・・・、４０２（ｎ）が、ネットワーク４０６を介してセキュリティゲートウェイ４０４に結合される。それぞれのゲーム機４０２は、例えば、図１または図２のゲーム機１０２とすることができる。ネットワーク４０６は、さまざまな従来のデータ通信ネットワークのうちの１つまたは複数を表す。ネットワーク４０６は、典型的には、パケット交換ネットワークを含むが、回路交換ネットワークも含むことができる。ネットワーク４０６は、有線および／または無線部分を含むことができる。例示的な一実装では、ネットワーク４０６は、インターネットを含み、適宜、１つまたは複数のローカルエリアネットワーク（ＬＡＮ）および／またはワイドエリアネットワーク（ＷＡＮ）を含むことができる。ネットワーク４０６の少なくとも一部は、公衆ネットワークであり、これは公的にアクセス可能なネットワークを意味する。公衆ネットワークには、実質的に誰でもアクセスできる。
【００４１】
いくつかの状況において、ネットワーク４０６は、ＬＡＮ（例えば、ホームネットワーク）を含み、ルーティングデバイスが、ゲーム機４０２とセキュリティゲートウェイ４０４との間に配置される。このルーティングデバイスは、ネットワークアドレス変換（ＮＡＴ）を実行することができ、これにより、ＬＡＮ上の複数のデバイスが、インターネット上で同じＩＰアドレスを共有することができ、またインターネットを介して悪意ある、または悪さをするユーザによるアクセスからＬＡＮ上の（複数の）デバイスを保護するファイヤウォールとして動作することができる。
【００４２】
セキュリティゲートウェイ４０４は、公衆ネットワーク４０６とプライベートネットワーク４０８との間のゲートウェイとして動作する。プライベートネットワーク４０８は、ローカルエリアネットワークなどのさまざまな従来のネットワークのうちのいずれかとすることができる。プライベートネットワーク４０８は、以下でさらに詳しく説明される他のデバイスとともに、セキュアゾーンとして動作するデータセンター１１０内にある。データセンター４１０は、信頼できる通信を介して通信する信頼できるデバイスで構成される。したがって、セキュアゾーン４１０内では暗号化および認証は不要である。ネットワーク４０８のプライベートであるという性質は、ネットワーク４０８のアクセス性が制限されることを意味する。ネットワーク４０８へのアクセスは、特定の個人のみに制限される（例えば、データセンター４１０の所有者またはオペレータにより制限される）。
【００４３】
セキュリティゲートウェイ４０４は、１つまたは複数のセキュリティゲートウェイコンピューティングデバイスのクラスタである。これらのセキュリティゲートウェイコンピューティングデバイスがまとまって、セキュリティゲートウェイ４０４を実装する。セキュリティゲートウェイ４０４は、適宜、セキュリティゲートウェイコンピューティングデバイスにより処理される要求をこれらのコンピューティングデバイスのうちのいくつかのコンピューティングデバイスに導くように動作する１つまたは複数の従来の負荷分散デバイスを備えることができる。このような導く動作または負荷分散は、さまざまなセキュリティゲートウェイコンピューティングデバイス上の負荷をほぼ等しくなるように（またはそれとは別に他の何らかの基準に従って）分散させることを試みるようにして実行される。
【００４４】
また、データセンター４１０内には、１つまたは複数の監視サーバ４１２と、１つまたは複数のプレゼンスおよび通知フロントドア４１４、１つまたは複数のプレゼンスサーバ４１６、１つまたは複数の通知サーバ４１８、およびプロファイルストア４２８（まとめてプレゼンスおよび通知サービスもしくはシステム４３０を実装する）と、１つまたは複数のマッチ（ｍａｔｃｈ）フロントドア４２０および１つまたは複数のマッチサーバ４２２（まとめてマッチサービスを実装する）と、１つまたは複数の統計量（ｓｔａｔｉｓｔｉｃｓ）フロントドア４２４および１つまたは複数の統計量サーバ４２６（まとめて統計量サービスを実装する）とがある。サーバ４１６、４１８、４２２、および４２６は、サービスをゲーム機４０２に提供するが、そのため、サービスデバイスと呼ぶことができる。他のサービスデバイスは、さらに、サーバ４１６、４１８、４２２、および４２６のうちの１つまたは複数に加えて、および／またはその代わりに備えることができる。それに加えて、図４には１つのデータセンターしか示されていないが、代わりに、ゲーム機４０２と通信することができる複数のデータセンターが存在しうる。これらのデータセンターは、独立して動作するか、またはそれとは別に、まとめて動作することができる（例えば、ゲーム機１０２、４０２に、１つの大きなデータセンターを利用できるようにするために）。
【００４５】
ゲーム機４０２は、データセンター４１０から離れた場所に配置され、ネットワーク４０６を介してデータセンター４１０にアクセスする。データセンター内の１つまたは複数のデバイスと通信することを望んでいるゲーム機４０２は、データセンターにログインし、ゲーム機４０２とセキュリティゲートウェイ４０４との間の安全な通信チャネルを確立する。ゲーム機４０２およびセキュリティゲートウェイ４０４は、やり取りされるデータパケットの暗号化および認証を実行し、これにより、暗号化を破ることなくデータパケットを捕捉し、またはコピーすることができる他のデバイスにより知られることなく、それらの間でデータパケットを安全に伝送することができる。ゲーム機４０２からセキュリティゲートウェイ４０４に、またはセキュリティゲートウェイ４０４からゲーム機４０２に伝達されるそれぞれのデータパケットは、中にデータを埋め込むことができる。この埋め込まれたデータは、パケットのコンテンツまたはデータコンテンツと呼ばれる。追加の情報も、本質的に、パケットタイプ（例えば、ハートビートパケット）に基づきパケット内に入れることができる。
【００４６】
ゲーム機４０２とセキュリティゲートウェイ４０４との間の安全な通信チャネルは、セキュリティチケットに基づく。ゲーム機４０２は、自分自身およびゲーム機４０２の（複数の）現在のユーザを鍵配布センター４２９に対し認証し、鍵配布センター４２９からセキュリティチケットを取得する。次いで、ゲーム機４０２は、このセキュリティチケットを使用して、セキュリティゲートウェイ４０４との安全な通信チャネルを確立する。セキュリティゲートウェイ４０４との安全な通信チャネルを確立する際に、ゲーム機４０２およびセキュリティゲートウェイ４０４は、互いに認証し合い、その特定のゲーム機４０２およびセキュリティゲートウェイ４０４にのみ知られているセッションセキュリティ鍵を確定する。このセッションセキュリティ鍵は、ゲーム機４０２とセキュリティゲートウェイクラスタ４０４との間で移動されるデータを暗号化するために使用され、したがって他のデバイス（他のゲーム機４０２を含む）はいっさい、データを読み取ることはできない。セッションセキュリティ鍵は、さらに、データパケットの送信元であると主張されるセキュリティゲートウェイ４０４またはゲーム機４０２からのものであるとデータパケットを認証するために使用される。したがって、このようなセッションセキュリティ鍵を使用することで、セキュリティゲートウェイ４０４とさまざまなゲーム機４０２との間で安全な通信チャネルを確立できる。
【００４７】
安全な通信チャネルが、ゲーム機４０２とセキュリティゲートウェイ４０４との間に確立されると、暗号化されたデータパケットを両者の間で安全に送信することができる。ゲーム機４０２が、データセンター４１０内の特定のサービスデバイスにデータを送信することを望んでいる場合、ゲーム機４０２は、データを暗号化し、データパケットの送り先となっている特定の（複数の）サービスデバイスに転送するよう要求するセキュリティゲートウェイ４０４に送信する。セキュリティゲートウェイ４０４は、データパケットを受信し、そのデータパケットを認証し、暗号解読した後、パケットのデータコンテンツを、プライベートネットワーク４０８を介して適切なサービスに送信されるべき他のメッセージにカプセル化する。セキュリティゲートウェイ４０４は、データパケットの送り先の（複数の）要求されたサービスに基づきそのメッセージに適したサービスを決定する。
【００４８】
同様に、データセンター４１０内のサービスデバイスが、データをゲーム機４０２に伝達することを望んでいる場合、データセンターは、プライベートネットワーク４０８を介して、ゲーム機４０２に送信されるデータコンテンツさらにはデータコンテンツの送信先となる特定のゲーム機４０２の指示を含むメッセージをセキュリティゲートウェイ４０４に送信する。セキュリティゲートウェイ４０４は、データコンテンツをデータパケット内に埋め込み、次いで、特定のゲーム機４０２だけが暗号解読できるようにデータパケットを暗号化し、さらにそのデータパケットをセキュリティゲートウェイ４０４からのものであると認証する。
【００４９】
本明細書では主にセキュリティゲートウェイ４０４とゲーム機４０２との間で暗号化されたデータパケットを伝達するものとして説明されているが、それとは別に、いくつかのデータパケットは、部分的に暗号化することもできる（データパケットの一部が暗号化され、他の部分は暗号化されない）。データパケットのどの部分が暗号化され、どの部分が暗号化されないかは、データセンター４１０および／またはゲーム機４０２のデザイナーが何を望んでいるかに応じて異なる。例えば、デザイナーは、ゲーム機４０２のユーザが互いに通話できるようにゲーム機４０２の間で音声データをやり取りすることを認めることを選択することができ、またデザイナーは、さらに、音声データは暗号化せず、パケット内の他のデータは暗号化されるように選択することができる。それに加えて、他の代替手段では、いくつかのデータパケットは、暗号化された部分を持たないようにもできる（つまり、データパケット全体が暗号化されない）。データパケットが暗号化されないか、または部分的にしか暗号化されない場合でも、データパケットのすべてを認証することができることに留意されたい。
【００５０】
セキュリティゲートウェイ４０４内の各セキュリティゲートウェイデバイスは、典型的には１つまたは複数のゲーム機４０２との安全な通信チャネルを確保することに責任があり、したがって、それぞれのセキュリティゲートウェイデバイスは、１つまたは複数のゲーム機を管理または処理する責任を有するものとしてみなすことができる。さまざまなセキュリティゲートウェイデバイスが、互いに通信状態にあり、互いにメッセージをやり取りすることができる。例えば、セキュリティゲートウェイデバイスが、このデバイスが管理する責任を負っていないゲーム機にデータパケットを送信する必要がある場合に、このデバイスは、そのゲーム機に送信すべきデータとともにメッセージを他のすべてのセキュリティゲートウェイデバイスに送信することができる。このメッセージは、そのゲーム機を管理する責任があり、適切なデータをそのゲーム機に送信するセキュリティゲートウェイデバイスにより受信される。それとは別に、セキュリティゲートウェイデバイスは、どのセキュリティゲートウェイデバイスによりどのゲーム機が処理されているかを認識する場合がある。このことは、各セキュリティゲートウェイデバイスが他のセキュリティゲートウェイデバイスにより処理されるゲーム機のテーブルを保持するなどのように明示的でもよく、またはそれとは別に、ゲーム機の識別子に基づき特定のゲーム機に対しどのセキュリティゲートウェイデバイスが責任を負っているかを決定することなどのように暗示的でもよい。
【００５１】
（複数の）監視サーバ４１２は、利用不可能なゲーム機４０２またはセキュリティゲートウェイ４０４の利用不可能なセキュリティゲートウェイデバイスをデータセンター４１０内のデバイスに通知するように動作する。ゲーム機４０２は、ハードウェアまたはソフトウェアの障害、ゲーム機がデータセンター４１０からログアウトせずに電源をオフにした場合、ゲーム機４０２のネットワーク接続ケーブルがゲーム機４０２から外れた場合、他のネットワーク問題（例えば、ゲーム機４０２が接続しているＬＡＮの不具合）など、さまざまな異なる理由から利用不可能になることがある。同様に、セキュリティゲートウェイ４０４のセキュリティゲートウェイデバイスは、ハードウェアまたはソフトウェアの障害、デバイスが電源オフにされた場合、デバイスへのネットワーク接続ケーブルがデバイスから外れている場合、他のネットワーク問題など、さまざまな異なる理由から利用不可能になることがある。
【００５２】
セキュリティゲートウェイ４０４内のセキュリティゲートウェイデバイスはそれぞれ、セキュリティゲートウェイデバイスの１つがいつ利用不可能になったかを検出する、１つまたは複数の監視サーバ４１２により監視される。セキュリティゲートウェイデバイスが利用不可能になった場合、監視サーバ４１２は、そのセキュリティゲートウェイデバイスが利用不可能になったことを知らせるメッセージをデータセンター４１０内の他のデバイス（サーバ、フロントドアなど）のそれぞれに送信する。他のデバイスはそれぞれ、適当であると思われるこの情報に基づき動作することができる（例えば、セキュリティゲートウェイデバイスにより管理されている特定のゲーム機が、もはや、データセンター４１０と通信しておらず、それに応じてさまざまクリーンアップ動作を実行すると仮定することができる）。それとは別に、特定のデバイスのみが、監視サーバ４１２からそのようなメッセージを受信することができる（例えば、セキュリティゲートウェイデバイスが利用可能かどうかに関心のあるデバイスのみ）。
【００５３】
セキュリティゲートウェイ４０４は、個々のゲーム機４０２を監視し、ゲーム機４０２のうちの１つがいつ利用不可能になったかを検出する。セキュリティゲートウェイ４０４が、利用できなくなったゲーム機を検出した場合、セキュリティゲートウェイ４０４は、その利用不可能になったゲーム機を識別するメッセージを監視サーバ４１２に送信する。それに対する応答として、監視サーバ４１２は、そのゲーム機が利用できなくなったことを知らせるメッセージをデータセンター４１０内の他のデバイス（またはそれとは別に、選択されたデバイスのみ）のそれぞれに送信する。次いで、他のデバイスはそれぞれ、適当と思われるこの情報に基づき動作することができる。
【００５４】
（複数の）プレゼンスサーバ４１６は、オンラインゲームを行うためデータセンター４１０にログインした所定のユーザのステータスまたはプレゼンスに関するデータを保持し、処理する。（複数の）通知サーバ４１８は、データセンター４１０にログインしたプレイヤーを宛先とする送信メッセージの複数の通知キューを保持する。プレゼンスおよび通知フロントドア４１４は、セキュリティゲートウェイ４０４とサーバ４１６および４１８との間の媒介手段として動作する１つまたは複数のサーバデバイスである。１つまたは複数の負荷分散デバイス（図示せず）を、プレゼンスおよび通知フロントドア４１４に入れて、フロントドア４１４として動作する複数のサーバデバイス間に負荷を分散させることができる。セキュリティゲートウェイ４０４は、サーバ４１６および４１８に対するメッセージをフロントドア４１４に伝達し、フロントドア４１４は、メッセージをどの特定のサーバ４１６または特定のサーバ４１８に伝達すべきかを識別する。フロントドア４１４を使用することにより、どのサーバがどのユーザに関するデータを管理する責任を有しているかなどのサーバ４１６および４１８の実際の実装が、セキュリティゲートウェイ４０４から抽出される。セキュリティゲートウェイ４０４は、単純に、プレゼンスおよび通知サービスを宛先とするメッセージをプレゼンスおよび通知フロントドア４１４に転送し、（複数の）サーバ４１６および（複数の）サーバ４１８のうちの適切なサーバにメッセージの経路指定を行うのにフロントドア４１４に依存することができる。
【００５５】
（複数の）マッチサーバ４２２は、オンラインプレイヤー同士の取り組みに関するデータを保持し、処理する。オンラインユーザは、ゲームのさまざまな特性とともにプレイに利用できるゲームを通知することができる（例えば、フットボールゲームがプレイされる場所、ゲームが昼間にプレイされるのか夜間にプレイされるのか、ユーザの技量レベルなど）。次いで、これらのさまざまな特性は、ゲームを一緒にプレイする異なるオンラインユーザをうまく取り組ませる基準として使用することができる。マッチフロントドア４２０は、１つまたは複数のサーバデバイス（および適宜、（複数の）負荷分散デバイス）を備え、フロントドア４１４が（複数の）サーバ４１６および（複数の）サーバ４１８を抽出するのと似た方法でセキュリティゲートウェイ４０４から（複数の）マッチサーバ４２２を抽出するように動作する。
【００５６】
（複数の）統計量サーバ４２６は、オンラインゲームに対するさまざまな統計量に関するデータを保持し、処理する。使用される特定の統計量（ｓｔａｔｉｓｔｉｃｓ）は、ゲームデザイナーの望みに応じて異なりうる（例えば、上位１０のスコアまたは回数、ゲームのすべてのオンラインプレイヤーの世界ランキング、大半のアイテムを見つけた、または最大の時間をプレイに費やしたユーザのリストなど）。統計量フロントドア４２６は、１つまたは複数のサーバデバイス（および適宜、（複数の）負荷分散デバイス）を備え、フロントドア４１４が（複数の）サーバ４１６および（複数の）サーバ４１８を抽出するのと似た方法でセキュリティゲートウェイ４０４から（複数の）統計量サーバ４２６を抽出するように動作する。
【００５７】
オンラインサービスによりサポートされている個別ゲームタイトルまたはプログラムのそれぞれに対し、（複数の）タイトルサーバ４３２を備えることができる。それぞれのタイトルサーバ４３２は、サーバとして動作し、ゲーム機４０２と通信して、オンラインゲームセッションを実行するプログラムおよび／またはモジュールを実行することができる。サーバ４３２は、ゲーム開発者が望む程度に大きく、または小さく、ゲームのアクションをコントロールすることができる。例えば、いくつかのゲームは、どのプレイヤーキャラクターが最初に地図上の特定の地点に来ていたかを判定すること、またはさまざまなプレイヤーのキャラクターが出現する共通環境の表示を制御することなど、異なるゲーム機４０２における複数のプレイヤー間の相互作用に関係する計算および処理を実行するために中央集中型タイトルサーバ４３２に依存し、また、イメージおよび結果の実際のレンダリング、およびユーザ入力の初期処理などのより局部的側面のみを処理するために個別のゲーム機４０２に依存することがある。
【００５８】
他方、ゲームは、処理に関してゲーム機４０２に依存する度合いが高い。所定のゲームに対する処理の責任は、ゲームセッションに接続されている複数のゲーム機４０２間に分散させることができる。または、ゲーム側で、セッションに接続されているゲーム機４０２の部分集合を選択し、そのゲーム機をそのセッションに対するサーバとして動作させることができる。そのような状況では、タイトルサーバ４３２は、単に、ゲーム機４０２同士の通信を調整するか、または初期スタートアップ機能（例えば、ゲームタイプ、スタートアップ許可など）を単純に実行し、次いで、結果を待つ場合がある。
【００５９】
また、トーナメント機能を管理するために、トーナメントサーバ４３４も存在しうる。この機能は、以下で詳述されるが、一般的に、オンラインマルチプレイヤートーナメントの作成、管理、および／または終了に関係しうる。上述のさまざまなサーバは、別のマシン上に置かれる必要はなく、それらの一部または全部を組み合わせて共通のプロセスまたはマシンにすることもできる。
【００６０】
したがって、セキュリティゲートウェイ４０４は、信頼されない公衆ネットワーク４０６からデータセンター４１０のセキュアゾーン内のデバイスを遮蔽するように動作することがわかる。データセンター４１０のセキュアゾーン内の通信は、暗号化する必要はなく、データセンター４１０内のデバイスはすべて信頼できる。しかし、データセンター４１０内のデバイスからゲーム機４０２に伝達すべき情報は、セキュリティゲートウェイクラスタ４０４を通過し、そこで、その情報は、情報の宛先となるゲーム機４０２のみが暗号解読できるように暗号化される。
【００６１】
図４に例示されているように、タイトルサーバ４３２およびトーナメントサーバ４３４は、第２のセキュリティゲートウェイ４０５の背後に置くことができる。セキュリティゲートウェイ４０５は、セキュリティゲートウェイ４０４と同じであるか、またはそのサーバおよびデバイスにより必要とされない機能を省く簡素化されたものであってもよい。
【００６２】
本明細書で説明されている１つまたは複数の特徴は、ＲＡＭメモリ２０６、不揮発性メモリ１０８、２０８、３０８、またはゲーム機１０２上の他の常駐メモリに格納されたコンピュータ実行可能命令（つまり、ソフトウェア）で具現化できる。一般に、ソフトウェアモジュールは、コンピュータまたは他のデバイス内のプロセッサにより実行されたときに、特定のタスクを実行する、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。コンピュータ実行可能命令は、１つまたは複数のハードディスク２０８、リムーバブル記憶媒体１０８（例えば、ＣＤ−ＲＯＭ、ＤＶＤ、ディスクなど）、ソリッドステートメモリ、ＲＡＭ  ２０６などのコンピュータ可読媒体（ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）上に格納することができる。当業者には周知のことであろうが、ソフトウェアモジュールの機能は、さまざまな実施形態において望ましい形で組み合わせるか、または分散させることができる。それに加えて、機能は、全体または一部を、ファームウェアまたは特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）などのファームウェアまたはハードウェア相当物で具現化できる。
【００６３】
本明細書の態様は、ゲーム機コンピューティング環境に制限されない。実際、これらの態様は、パーソナルコンピュータ（ＰＣ）上で動作するビデオゲームで実装することもできる。図５Ａは、本明細書で説明されている特徴を実装できる好適なコンピューティングシステム環境５００の一実施例を示している。コンピューティングシステム環境５００は、好適なコンピューティング環境の一例にすぎず、本明細書で説明されている特徴の用途または機能性の範囲に関する制限を示唆する意図はない。コンピューティング環境５００は、典型的な動作環境５００に例示されている１つのコンポーネントまたはその組合せに関係する何らかの依存関係または要求条件がその環境にあるものと解釈すべきでない。
【００６４】
本明細書に記載されている特徴は、他の数多くの汎用または専用コンピューティングシステム環境または構成で動作する。使用に適していると思われるよく知られているコンピューティングシステム、環境、および／または構成の例として、限定はしないが、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラム可能な家電製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、上記システムまたはデバイスを含む分散コンピューティング環境などがある。
【００６５】
本明細書に記載されている特徴は、コンピュータによって実行される、プログラムモジュールなどのコンピュータ実行可能命令の一般的文脈において説明することができる。一般に、プログラムモジュールは、特定のタスクを実行する、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。また、これらの特徴は、通信ネットワークを通じてリンクされているリモート処理デバイスによりタスクが実行される分散コンピューティング環境で実施することもできる。分散コンピューティング環境では、プログラムモジュールをメモリ記憶デバイスなどのローカルとリモートの両方のコンピュータ記憶媒体に配置できる。
【００６６】
図５Ａを参照すると、本明細書で説明されている特徴を実装する例示的なシステムは、汎用コンピューティングデバイスをコンピュータ５１０の形で備えている。コンピュータ５１０が備えるコンポーネントとしては、限定はしないが、演算処理装置５２０、システムメモリ５３０、およびシステムメモリを備えるさまざまなシステムコンポーネントを演算処理装置５２０に結合するシステムバス５２１などがある。システムバス５２１は、メモリバスまたはメモリコントローラ、周辺機器バス、およびさまざまなバスアーキテクチャを使用するローカルバスを含む数種類のバス構造のうちのいずれでもよい。例えば、限定はしないが、このようなアーキテクチャとしては、Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ（ＩＳＡ）バス、Ｍｉｃｒｏ  Ｃｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ（ＭＣＡ）バス、Ｅｎｈａｎｃｅｄ  ＩＳＡ（ＥＩＳＡ）バス、Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ（ＶＥＳＡ）ローカルバス、およびＭｅｚｚａｎｉｎｅバスとも呼ばれるＰｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ（ＰＣＩ）バスがある。
【００６７】
コンピュータ５１０は、典型的には、さまざまなコンピュータ可読媒体を備える。コンピュータ可読媒体は、コンピュータ５１０によってアクセスされることができる媒体であればどのような媒体でも使用可能であり、揮発性および不揮発性媒体、リムーバブルおよびノンリムーバブル媒体を含む。例えば、限定はしないが、コンピュータ可読媒体（ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉａ）は、コンピュータ記憶媒体（ｃｏｍｐｕｔｅｒ  ｓｔｏｒａｇｅ  ｍｅｄｉａ）および通信媒体（ｃｏｍｍｕｎｉｃａｔｉｏｎ  ｍｅｄｉａ）を含むことができる。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造体、プログラムモジュール、またはその他のデータなどの情報を格納する方法または技術で実装される揮発性および不揮発性、リムーバブルおよびノンリムーバブル媒体を含む。コンピュータ記憶媒体としては、限定はしないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたはその他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多目的ディスク（ＤＶＤ）またはその他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置またはその他の磁気記憶デバイス（単数形または複数形で）、または所望の情報を格納するために使用することができ、しかもコンピュータ５１０によりアクセスできるその他の媒体がある。通信媒体は、通常、コンピュータ可読命令、データ構造体、プログラムモジュール、または搬送波もしくはその他のトランスポートメカニズムなどの変調データ信号によるその他のデータを具現するものであり、任意の情報配信媒体を含む。「変調データ信号」という用語は、信号内に情報を符号化するような方法で特性のうちの１つまたは複数が設定または変更された信号を意味する。例えば、限定はしないが、通信媒体としては、有線ネットワークまたは直接配線接続などの有線媒体、および、音響、ＲＦ、赤外線、およびその他の無線媒体などの無線媒体がある。上記のいずれの組合せもコンピュータ可読媒体の範囲に収まらなければならない。
【００６８】
システムメモリ５３０は、読み取り専用メモリ（ＲＯＭ）５３１およびランダムアクセスメモリ（ＲＡＭ）５３２などの揮発性および／または不揮発性メモリの形態のコンピュータ記憶媒体を含む。起動時などにコンピュータ５１０内の要素間の情報伝送を助ける基本ルーチンを含む基本入出力システム５３３（ＢＩＯＳ）は、通常、ＲＯＭ  ５３１に格納される。通常、ＲＡＭ  ５３２は、演算処理装置５２０に直接アクセス可能な、および／または演算処理装置５２０によって現在操作されているデータおよび／またはプログラムモジュールを格納する。例えば、限定はしないが、図５Ａは、オペレーティングシステム５３４、アプリケーションプログラム５３５、その他のプログラムモジュール５３６、およびプログラムデータ５３７を例示している。
【００６９】
コンピュータ５１０はさらに、その他のリムーバブル／ノンリムーバブルな揮発性／不揮発性コンピュータ記憶媒体を備えることもできる。例にすぎないが、図５は、ノンリムーバブルな不揮発性磁気媒体の読み書きを行うハードディスクドライブ５４１、リムーバブルな不揮発性磁気ディスク５５２の読み書きを行う磁気ディスクドライブ５５１、およびＣＤ−ＲＯＭまたはその他の光媒体などのリムーバブルな不揮発性光ディスク５５６の読み書きを行う光ディスクドライブ５５５を例示している。例示されているオペレーティング環境で使用できる他のリムーバブル／ノンリムーバブルな揮発性／不揮発性コンピュータ記憶媒体としては、限定はしないが、磁気テープカセット、フラッシュメモリカード、デジタル多目的ディスク、デジタルビデオテープ、ソリッドステートＲＡＭ、ソリッドステートＲＯＭなどがある。ハードディスクドライブ５４１は、典型的には、インターフェイス５４０などのノンリムーバブルメモリインターフェイスを介してシステムバス５２１に接続され、磁気ディスクドライブ５５１および光ディスクドライブ５５５は、典型的には、インターフェイス５５０などのリムーバブルメモリインターフェイスによりシステムバス５２１に接続される。
【００７０】
図５Ａに例示されている上記のドライブおよび関連コンピュータ記憶媒体は、コンピュータ５１０用のコンピュータ可読命令、データ構造体、プログラムモジュール、およびその他のデータを格納する機能を備える。例えば、図５では、ハードディスクドライブ５４１は、オペレーティングシステム５４４、アプリケーションプログラム５４５、その他のプログラムモジュール５４６、およびプログラムデータ５４７を格納するものとして例示されている。これらのコンポーネントは、オペレーティングシステム５３４、アプリケーションプログラム５３５、その他のプログラムモジュール５３６、およびプログラムデータ５３７と同じである場合もあれば異なる場合もあることに留意されたい。オペレーティングシステム５４４、アプリケーションプログラム５４５、その他のプログラムモジュール５４６、およびプログラムデータ５４７に対しては、ここで、異なる番号を割り当てて、最低でも、それらが異なるコピーであることを示している。ユーザは、キーボード５６２、およびマウス、トラックボール、またはタッチパッドと一般に呼ばれるポインティングデバイス５６１などの入力デバイスを介してコンピュータにコマンドおよび情報を入力できる。他の入力デバイス（図示せず）としては、マイク、ジョイスティック、ゲームパッド、衛星放送受信アンテナ、スキャナなどがある。これらの入力デバイスやその他の入力デバイスは、システムバスに結合されているユーザ入力インターフェイス５６０を介して演算処理装置５２０に接続されることが多いが、パラレルポート、ゲームポート、またはユニバーサルシリアルバス（ＵＳＢ）などの他のインターフェイスおよびバス構造により接続することもできる。モニタ５９１またはその他の種類の表示デバイスも、ビデオインターフェイス５９０などのインターフェイスを介してシステムバス５２１に接続される。モニタのほかに、コンピュータはさらにスピーカー５９７およびプリンタ５９６などの他の周辺出力デバイスも備えることができ、これらは出力周辺機器インターフェイス５９５を介して接続することができる。
【００７１】
コンピュータ５１０は、リモートコンピュータ５８０などの１つまたは複数のリモートコンピュータへの論理接続を使用してネットワーク接続環境で動作することができる。リモートコンピュータ５８０は、パーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピアデバイス、またはその他の共通ネットワークノードでもよく、典型的には、コンピュータ５１０に関係する上述の要素の多くまたはすべてを含むが、メモリ記憶デバイス５８１だけが図５に例示されている。図５に示されている論理接続は、ローカルエリアネットワーク（ＬＡＮ）５７１およびワイドエリアネットワーク（ＷＡＮ）５７３を含むが、他のネットワークを含むこともできる。このようなネットワーキング環境は、オフィス、企業全体にわたるコンピュータネットワーク、イントラネット、およびインターネットでは一般的である。
【００７２】
ＬＡＮネットワーキング環境で使用される場合、コンピュータ５１０は、ネットワークインターフェイスまたはアダプタ５７０を介してＬＡＮ  ５７１に接続される。ＷＡＮネットワーキング環境で使用される場合、コンピュータ５１０は、典型的には、インターネットなどのＷＡＮ  ５７３上で通信を確立するためモデム５７２またはその他の手段を備える。モデム５７２は、内蔵でも外付けでもよいが、ユーザ入力インターフェイス５６０またはその他の適切なメカニズムを介してシステムバス５２１に接続されうる。ネットワーク接続環境では、コンピュータ５１０またはその一部に関して示されているプログラムモジュールは、リモートメモリ記憶装置デバイスに格納されうる。例えば、限定はしないが、図５はリモートアプリケーションプログラム５８５をメモリデバイス５８１に置かれているものとして例示している。図に示されているネットワーク接続は例示的であり、コンピュータ間の通信リンクを確立するのに他の手段が使用可能であることは理解されるであろう。
【００７３】
プログラミングインターフェイス（またはより単純に、インターフェイス）は、１つまたは複数のコードセグメントが、１つまたは複数の他のコードセグメントにより提供される機能と通信するか、または機能にアクセスすることができるようにする何らかのメカニズム、プロセス、プロトコルとしてみなすことができる。それとは別に、プログラミングインターフェイスは、他の（複数の）コンポーネントの１つまたは複数のメカニズム、メソッド、関数呼び出し、モジュールに通信可能なように結合することができるシステムのコンポーネントの１つまたは複数のメカニズム、メソッド、関数呼び出し、モジュール、オブジェクトなどとみなすことができる。前の文中の「コードセグメント」という用語は、１つまたは複数の命令またはコード行を含むことが意図されており、適用される用語、またはコードセグメントが別々にコンパイルされるかどうか、またはコードセグメントがソースコード、中間コード、またはオブジェクトコードとして用意されるかどうか、またはコードセグメントがランタイムシステムまたはプロセス内で使用されるかどうか、または同じもしくは異なるマシン上に配置されるか、または複数のマシンにまたがって分散されるかどうか、またはコードセグメントにより表される機能が、全部ソフトウェアにより実装されるのか、全部ハードウェアにより実装されるのか、またはハードウェアとソフトウェアの組合せにより実装されるのかに関係なく、例えば、コードモジュール、オブジェクト、サブルーチン、関数などを含む。
【００７４】
概念的には、プログラミングインターフェイスは、図５Ｂまたは図５Ｃに示されているように一般的に表示することができる。図５Ｂは、インターフェイス、インターフェイス１を第１および第２のコードセグメントが通信する際に通る導管として例示している。図５Ｃは、インターフェイスオブジェクトＩ１およびＩ２（第１および第２のコードセグメントの一部である場合も一部でない場合もある）を含むものとしてインターフェイスを例示しており、これにより、システムの第１および第２のコードセグメントは媒体Ｍを介して通信することができる。図５Ｃのビューでは、インターフェイスオブジェクトＩ１およびＩ２を同じシステムの別々のインターフェイスとしてみなすことができ、またオブジェクトＩ１およびＩ２、それに加えて媒体Ｍは、インターフェイスを含むものと考えることができる。図５Ｂおよび５Ｃは、双方向の流れ、およびその流れのそれぞれの側のインターフェイスを示しているが、いくつかの実装では、一方向の情報の流れのみがあり（または後述のように情報の流れがない）、または一方の側にインターフェイスオブジェクトのみがありうる。例えば、限定はしないが、アプリケーションプログラミングインターフェイス（ＡＰＩ）、エントリポイント、メソッド、関数、サブルーチン、リモートプロシージャコール、およびコンポーネントオブジェクトモデル（ＣＯＭ）インターフェイスなどの用語は、プログラミングインターフェイスの定義に包含される。
【００７５】
このようなプログラミングインターフェイスの態様は、第１のコードセグメントが情報（「情報」は、最も広い意味で使用されており、データ、コマンド、要求などを含む）を第２のコードセグメントに伝送する際の方法、および第２のコードセグメントが情報を受信する際の方法、ならびに情報の構造、シーケンス、構文、編成、スキーマ、タイミング、および内容を含むことができる。これに関して、基礎にあるトランスポート（ｔｒａｎｓｐｏｒｔ）媒体自体は、媒体が有線であろうと無線であろうとその両方の組合せであろうと、情報がインターフェイスにより定義されている方法でトランスポートされる限りにおいて、インターフェイスの動作にとって重要ではないと考えられる。いくつかの状況では、情報は、従来の意味で一方向または両方向に渡すことはできないが、それは、情報転送が、他のメカニズムを介して（例えば、コードセグメント間の情報の流れから分離されたバッファ、ファイルなどに置かれた情報）転送されるか、または、１つのコードセグメントが単純に第２のコードセグメントにより実行される機能にアクセスするときのように存在しない場合があるからである。これらの態様のいずれかまたはすべて、例えば、コードセグメントが疎結合（ｌｏｏｓｅｌｙ  ｃｏｕｐｌｅｄ）または密結合（ｔｉｇｈｔｌｙ  ｃｏｕｐｌｅｄ）の構成のシステムの一部であるかどうかに応じて、与えられた状況において重要な場合があり、したがって、このリストは、例示的であり限定しないものとしてみなすべきである。
【００７６】
プログラミングインターフェイスのこの概念は、当業者に知られており、本発明の前記の詳細な説明から明らかである。しかし、プログラミングインターフェイスを実装する方法はほかにもあり、特に断りのない限り、これらは本明細書に付随する請求項に含まれることが意図されている。このような他の方法は、図５Ｂおよび５Ｃの単純化したビューに比べて高度であるか、または複雑であるかのように見えるが、それにもかかわらず、類似の機能を実行して同じ全体的な結果が得られる。次に、プログラミングインターフェイスのいくつかの例示的な代替実装について説明することにする。
【００７７】
Ａ．因数分解
一方のコードセグメントから他方のコードセグメントへの通信は、その通信を複数の個別の通信に分けることにより間接的に実行できる。これは、図５Ｄおよび５Ｅに概略として示されている。図示されているように、いくつかのインターフェイスは、分割可能な機能群に関して説明することができる。したがって、図５Ｂおよび５Ｃのインターフェイス機能は因数分解され、ちょうど２４が数学的に、２×２×３×２と因数分解されるのと同様の結果が得られる。したがって、図５Ｄに例示されているように、インターフェイス、インターフェイス１により与えられる機能を細分して、同じ結果が得られるようにしつつインターフェイスの通信を複数のインターフェイス、インターフェイス１Ａ、インターフェイス１Ｂ、インターフェイス１Ｃに変換することができる。図５Ｅに例示されているように、インターフェイスＩ１により与えられる機能は、同じ結果を得られるようにしつつ、複数のインターフェイスＩ１ａ、Ｉ１ｂ、Ｉ１ｃなどに細分することができる。同様に、第１のコードセグメントから情報を受け取る第２のコードセグメントのインターフェイスＩ２は、複数のインターフェイスＩ２ａ、Ｉ２ｂ、Ｉ２ｃなどに因数分解することができる。因数分解の際に、第１のコードセグメントとともに含まれるインターフェイスの個数は、第２のコードセグメントとともに含まれるインターフェイスの個数と一致している必要はない。図５Ｄおよび５Ｅの場合のいずれかにおいて、インターフェイス、インターフェイス１およびＩ１の機能に関する精神は、図５Ｂおよび５Ｃとそれぞれ同じである。インターフェイスの因数分解は、さらに、結合法則、交換法則、および他の数学的法則に従っており、因数分解は理解しにくい場合がある。例えば、演算の順序は、重要ではなく、その結果、インターフェイスにより実行される関数は、そのインターフェイスに到達する充分前に、他のコードまたはインターフェイス断片により実行されるか、またはシステムの別のコンポーネントにより実行されることができる。さらに、プログラミング技術の当業者であれば、同じ結果が得られる異なる関数呼び出しを実行するさまざまな方法があることを理解できるであろう。
【００７８】
Ｂ．再定義
場合によっては、意図した結果をそれでも得られるようにしつつ、プログラミングインターフェイスのいくつかの態様（例えば、パラメータ）を無視するか、追加するか、または再定義することが可能な場合がある。これは、図５Ｆおよび５Ｇに例示されている。例えば、図５Ｂのインターフェイス、インターフェイス１は、関数呼び出しＳｑｕａｒｅ（ｉｎｐｕｔ，ｐｒｅｃｉｓｉｏｎ，ｏｕｔｐｕｔ）を含むが、この呼び出しは３つのパラメータｉｎｐｕｔ、ｐｒｅｃｉｓｉｏｎ、およびｏｕｔｐｕｔを含み、第１のコードセグメントから第２のコードセグメントに発行される。真ん中のパラメータｐｒｅｃｉｓｉｏｎが与えられたシナリオにおいて重要でない場合、図５Ｆに示されているように、無視するか、いっそのこと意味のない（この状況において）パラメータで置き換えるのがちょうどよいであろう。さらに、無関係の付加的パラメータを加えることもできる。いずれの場合も、第２のコードセグメントにより入力が平方された後、出力が返される限り、ｓｑｕａｒｅの機能を、実現することができる。精度は、コンピューティングシステムの何らかの下流または他の部分にとって意味のあるパラメータであることは確かであるが、平方を計算する狭い目的について必要でないことが分かった後、置き換えるか、または無視することができる。例えば、有効な精度値を渡す代わりに、誕生日などの意味のない値を渡しても、結果に悪影響を及ぼすことはない。同様に、図５Ｇに示されているように、インターフェイスＩ１は、インターフェイスＩ１’で置き換えられ、パラメータを無視するか、またはインターフェイスにパラメータを追加するように再定義される。インターフェイスＩ２も、同様に、不要なパラメータ、またはどこか他のところで処理することができるパラメータを無視するように、インターフェイスＩ２’として再定義することもできる。ここで重要なのは、場合によっては、プログラミングインターフェイスは、ある目的には必要のないパラメータなどの態様を含むことができ、したがって、他の目的のために、無視するか、または再定義するか、または別のところで処理することができる。
【００７９】
Ｃ．インラインコーディング
２つの別々のコードモジュールの機能の一部または全部をマージして、それらの間の「インターフェイス」が形を変えるようにすることも可能である。例えば、図５Ｂおよび５Ｃの機能は、それぞれ、図５Ｈおよび５Ｉの機能に変換することができる。図５Ｈでは、先述した図５Ｂの第１のコードセグメントおよび第２のコードセグメントが、その両方を含む１つのモジュールにマージされる。この場合、コードセグメントは、それでも、互いに通信し合うことができるが、インターフェイスは、単一モジュールにより適している形態に適合させることができる。そのため、例えば、正式のＣａｌｌおよびＲｅｔｕｒｎ文は、もはや必要ないが、インターフェイス、インターフェイス１による類似の処理または（複数の）応答は、そのまま効果がある場合がある。同様に、図５Ｉでは、図１ＣからのインターフェイスＩ２の一部（または全部）をインターフェイスＩ１にインラインで書き込み、インターフェイスＩ１”を形成することができる。例示されているように、インターフェイスＩ２は、Ｉ２ａとＩ２ｂに分割され、インターフェイス部分Ｉ２ａは、インターフェイスＩ１とともにインラインコーディングされており、インターフェイスＩ１”を形成する。具体例として、図５ＣからのインターフェイスＩ１は、第２のコードセグメントにより（平方するために）入力とともに渡される値を処理した後に、平方された結果を出力とともに返す、インターフェイスＩ２により受け取られる、関数呼び出しｓｑｕａｒｅ（ｉｎｐｕｔ，ｏｕｔｐｕｔ）を実行することを考える。このような場合、第２のコードセグメントにより実行される処理（入力を平方する）は、インターフェイスを呼び出さずに第１のコードセグメントにより実行できる。
【００８０】
Ｄ．分離
一方のコードセグメントから他方のコードセグメントへの通信は、その通信を複数の個別の通信に分けることにより間接的に実行できる。これは、図５Ｊおよび５Ｋに概略として示されている。図５Ｊに示されているように、ミドルウェアの１つまたは複数の断片（これらは機能および／またはインターフェイス機能を元のインターフェイスから分離するので、（複数の）分離インターフェイス）を用意し、第１のインターフェイス、インターフェイス１上の通信を変換し、それらが異なるインターフェイス、この場合、インターフェイス、インターフェイス２Ａ、インターフェイス２Ｂ、およびインターフェイス２Ｃに適合するようにする。これは、例えば、インターフェイス１プロトコルによりオペレーティングシステムと通信するように設計されているアプリケーションのインストールベースがある場合に、実行することが可能であるが、その後、オペレーティングシステムは、異なるインターフェイス、この場合、インターフェイス、インターフェイス２Ａ、インターフェイス２Ｂ、およびインターフェイス２Ｃを使用するように変更される。ポイントは、第２のコードセグメントにより使用される元のインターフェイスは、第１のコードセグメントにより使用されるインターフェイスともはや互換性を有しなくなるように変更され、そのため、中間段階を使用して、新旧のインターフェイスの互換性をとるということにある。同様に、図５Ｋに示されているように、第３のコードセグメントは、インターフェイスＩ１からの通信を受け取るために分離インターフェイスＤＩ１と、例えば、ＤＩ２と連携するように再設計されたインターフェイスＩ２ａおよびＩ２ｂにインターフェイス機能を伝送するが、機能的に同じ結果が得られる分離インターフェイスＤＩ２とともに導入することができる。同様に、ＤＩ１およびＤＩ２は連携し、機能的に同じまたは類似の結果を得られるようにしつつ、図５ＣのインターフェイスＩ１およびＩ２の機能を新しいオペレーティングシステムに移し替えることができる。
【００８１】
Ｅ．書き換え
さらに他の可能な変更形態は、インターフェイス機能を何かほかの、ただし、同じ全体的結果が得られるもので置き換えるコードを動的に書き換えることである。例えば、中間言語（例えば、Ｍｉｃｒｏｓｏｆｔ  ＩＬ、Ｊａｖａ（登録商標）  ＢｙｔｅＣｏｄｅなど）で表されるコードセグメントを実行環境内でＪｕｓｔ−ｉｎ−Ｔｉｍｅ（ＪＩＴ）コンパイラまたはインタプリタに供給するシステムが考えられる（．Ｎｅｔフレームワーク、Ｊａｖａ（登録商標）実行時環境、または他の類似の実行時タイプの環境により用意されるものなど）。ＪＩＴコンパイラは、第１のコードセグメントから第２のコードセグメントに通信を動的に変換する、つまり第２のコードセグメント（元の、または異なる第２のコードセグメントのいずれか）による要求に従って異なるインターフェイスに適合させるように書くことができる。これは、図５Ｌおよび５Ｍに示されている。図５Ｌに示されているように、このアプローチは、上述の分離シナリオに類似している。これは、例えば、アプリケーションのインストールベースがインターフェイス１プロトコルによりオペレーティングシステムと通信するように設計されているが、オペレーティングシステムは、異なるインターフェイスを使用するように変更されている場合に実行することが可能である。ＪＩＴコンパイラは、インストールベースのアプリケーションからオペレーティングシステムの新しいインターフェイスにオンザフライで通信を適合させるために使用することが可能である。図５Ｍに示されているように、（複数の）インターフェイスを動的に書き換えるこのアプローチは、さらに、（複数の）インターフェイスを動的に因数分解するか、または他の何らかの方法で変更するために適用することができる。
【００８２】
他の実施形態を介したインターフェイスと同じまたは類似の結果を得られる上述のシナリオは、さまざまな方法で、直列に、および／または並行して、または他の介入コードとともに組み合わせることもできることに留意されたい。そのため、上に示されている他の実施形態は、相互排他的ではなく、図５Ｂおよび５Ｃに示されている汎用のシナリオと同じまたは同等のシナリオを生成するように混合し、一致させ、組み合わせることができる。また、ほとんどのプログラミング構文と同様に、本明細書で説明していないかもしれないインターフェイスの同じまたは類似の機能を実現する他の類似の方法があるが、それにもかかわらず、本発明の精神および範囲により代表されることに留意されたい、つまり、インターフェイスの価値の根底にあるのは、少なくとも一部はインターフェイスによって表される機能および利用できる有利な結果であることに注意されたい。前述のシステムは、本明細書で説明されているデバッグ方法またはシステムを実装するために使用できる。さまざまな機能が、特定のデバッグイベントが発生したときにメモリの一部をダンプし、ダンプされたメモリ内容を自動的にサーバに送信することにより、デバッグフィードバック情報をサーバに送る自動化を実現する。
【００８３】
図６は、オンラインマルチプレイヤーゲーム環境内でトーナメントを実施するための例示的な総合的プロセスを示している。ステップ６０１で、トーナメント管理者は、オンライントーナメントの作成を開始するために、トーナメントサーバ４３４などのセキュアサーバにログインするステップを実行することができる。管理者は、ゲーム開発者であるか、プレイヤーであるか、または新しいトーナメントタイプをシステムに作成する権利を有する誰かであってよい。ログインプロセスは、パスワードとコンピュータ端末５１０を使用して安全なインターネットサイトにアクセスするか、またはゲーム機４０２からビデオゲームユーザインターフェイスを使用してオンラインロケーションにアクセスするなどの所望のアクセスモードを伴うことがある。ステップ６０２で、トーナメント管理者は、作成されるトーナメントに対するさまざまなパラメータを定義することができる。このエントリは、インターネットページまたはビデオゲームユーザインターフェイスなどの表示されるインターフェイスを使用して実行することができ、そのときに、管理者は、定義されるトーナメントに対するさまざまなパラメータを入力（またはリストから選択）するよう要求される場合がある。例示的なパラメータについて以下で説明する。
【００８４】
トーナメントパラメータが定義されると、プロセスは、次いで、ステップ６０３に進み、そこで、システム（例えば、タスクに対しどのサーバが指定されているかに応じてトーナメントサーバ４３４、またはタイトルサーバ４３２）はトーナメントのインスタンス化を行うトリガの発生を待つ。トリガは、所定の時間の長さの経過（例えば、１時間、３０分など）、または所定の人数のプレイヤーによる登録（例えば、１０、５０、１００人のプレイヤーなど）などの任意のタイプの所定のイベントとすることができる。
【００８５】
トリガが受信されるか、または発生したときに、プロセスは、ステップ６０４でトーナメントのインスタンス化に進むことができる。インスタンス化は、パラメータで指定されているようなトーナメントを実行する１つまたは複数の処理スレッドの実行を伴うことができる。これらのスレッドは、トーナメントサーバ４３４、タイトルサーバ４３２、個別のゲーム機４０２、またはシステム内の他の任意のコンピューティングコンポーネントにより実行することができ、またこれらのスレッドは、必要ならば、複数のコンポーネントに（例えば、複数のゲーム機４０２に）分散されることができる。トーナメントの１つのインスタンスに、トーナメントインスタンスに参加するクライアントとの通信を調整しやすくするために固有の一意的なトーナメントＩＤを割り当てることができる。
【００８６】
トーナメントインスタンスが作成されると、トーナメントにリーダーボードＩＤを割り当てることができる。基盤となるオンラインサービス（例えば、ＸＢＯＸ  ＬＩＶＥ（商標））は、ゲーム機によりサポートされるさまざまなゲームプログラムで使用するために利用できる共通の一組のリーダーボードデータ構造体を提供することができる。それとは別に、リーダーボードデータ構造体は、例えば所与のトーナメントインスタンスに対する資格認定スコアを保持することにより、それぞれのトーナメントインスタンスをサポートするために作成されるカスタム構造体としてもよい。これらの構造体は、さまざまなプレイヤーに対する識別子を格納する定義済みデータベースオブジェクト、およびゲームにおけるプレイヤーのパフォーマンスに対する１つまたは複数のデータ値（例えば、プレイヤーのレース時間、お気に入りの車、スコア、勝敗記録、スコア合計、対戦相手など）としてよく、また、ゲーム機４０２、トーナメントサーバ、および他のデバイス上のゲームクライアントは、リーダーボードデータ構造体に対しＳＱＬクエリを実行してゲームセッションおよびトーナメント結果を取得することができる。リーダーボードは、タイトルサーバ４３２、統計量サーバ４２４、またはシステム内の他の所望のデバイスによりソフトウェアプロセスとして管理されうる。いくつかのインスタンスにおいて、異なるリーダーボード構造体は、トーナメントの異なる態様に対し使用することができる。例えば、タイトルサーバ４３２は、さまざまなトーナメント参加者（後述）に対する資格認定データを受け入れ、かつ処理する資格認定リーダーボードを管理することができるが、統計量サーバ４２４は、全体的なスコアリーダーボードデータ構造体を管理して、トーナメントにおけるプレイヤーの進行状況を追跡することができる。
【００８７】
トーナメントがインスタンス化された後、プロセスはステップ６０５でトーナメントを実施する。トーナメントを管理するトーナメントコードの実際の実行は、どのサーバでも行うことができ、例えば、トーナメントサーバ４３４、タイトルサーバ４３２、および／またはゲーム機４０２などで実行することができ、トーナメント管理者により選択されたパラメータに応じて異なるトーナメントが異なる形で実施される。図８〜９に関して、例示的なトーナメントについて後述する。
【００８８】
トーナメント（または１ラウンドなど、その一部）が実施されると、プロセスは、ステップ６０６に進み、そこで、さまざまなゲームクライアントが、それらの結果をトーナメントを管理するサーバに報告する。クライアントは、個々のゲーム機４０２上で実行されるゲームコードであってよく、それぞれのゲーム機は、トーナメントのサーバに結果を報告する責任を有するものとしてよい。これらの結果は、その特定のゲーム機４０２のプレイヤーのパフォーマンスに関する情報を含むことができ、またゲームセッションに参加した他のプレイヤーの一部または全部のパフォーマンスに関する情報も含むことができる（例えば、プレイヤーのゲーム機は、そのプレイヤーのスコアを報告するだけでなく、ゲームセッション内の他のすべてのプレイヤーのスコアも報告することができる。この複数の報告された情報は、後述のように、不正行為が発生していないことを確認するために互いに比較し合うことができる。）。それとは別に、複数のゲーム機４０２が単一のゲームセッションに参加することができるため、この報告は、セッションに参加しているゲーム機のうちの１つがそのセッションでプレイしたすべての人に対する結果を報告するように指定されるようにゲーム機４０２同士の間で調整することができ、セッション内の他のゲーム機は、その報告を複製するのを避けることができる。これらの結果は、さらに、統計量サーバ４２４などの、リーダーボードを実行しているサーバに、そのサーバによって必要とされる安全な通信を使用して報告されるようにもできる。リーダーボードに対する結果の別個の報告は、以下でさらに詳しく取り扱われるように、トーナメントサーバに報告されるデータ内の異常を解決するのに役立ちうる。
【００８９】
実際の結果は、プレイされているゲームのタイプに応じて、どのような形式でもよく、また一般的に、ゲームセッションでプレイヤーによって得られた成績について報告することができる。例えば、主観視点（ｆｉｒｓｔ−ｐｅｒｓｏｎ）のシューティングゲームでは、プレイヤーのヒット率、お気に入りの武器などを報告することができるが、フットボールゲームでは、ゲームの勝敗結果、スコア、および他のプレイヤーおよび／またはゲーム統計量を報告することができる。ゲームでは、プレイヤーのパフォーマンスを評価し、ポイント、ランク、または他の報償を裁定する際にそれ自体の基準を使用することができ、そのような裁定は、結果として報告されうる。
【００９０】
トーナメントのサーバは、さまざまなクライアントからのトーナメント結果を受け取り、また各プレイヤーのパフォーマンスの複数の報告を受け取ることがあるため、矛盾と異常が発生することがある。例えば、２台のゲーム機４０２は、単一のゲームに対する、またはゲーム内の単一のプレイヤーに対する矛盾したゲーム結果を報告する場合がある（例えば、それぞれ異なる勝利者、スコア、統計量などを報告する）。ホストの移動が生じたゲーム（例えば、セッションに参加しているゲーム機のうちの１つがゲームに対するローカルサーバホストとして指定されているが、そのゲーム機でセッション中にドロップアウトまたはエラーが生じた場合のゲーム）では、異なるゲーム機が、完全な、または他の何らかの形で矛盾した結果を報告することがある。ステップ６０７で、トーナメントのサーバは、異なるクライアントから報告された結果を比較し、報告された結果の中の矛盾を探すことができる。それに加えて、サーバは、それらの結果と所定のデータ構造体とを比較し、通常の、または許容可能な結果を識別し、報告された結果がプレイされたゲームセッションに対し通常であるか、または許容可能であると考えられる内容の限界を超えているかどうかを調べることができる。例えば、典型的なフットボールゲームでは、ゲームデザイナーは、所定のポイント合計を超えるスコア（例えば、１００ポイントを超える）は異常であるかもしれないと判定することができる。
【００９１】
異常が検出された場合、このプロセスはステップ６０８に移動し、そこで、アービトレーションプロセスが、報告された結果を分析して、その異常を解消し、かつ／または是正する。このアービトレーションプロセスは、個別のプレイヤー結果を取り出すようにリーダーボードサーバにクエリを実行することと、比較を実行することとを伴う場合がある。または、アービトレーションは、見かけのコンフリクトを、トーナメントが割り当てられているリーダーボードを管理するサーバに報告することを伴うことがあり、また、そのサーバ（例えば、統計量サーバ４２４）は、受け取った結果に対する独自の比較を行い、追加のセキュリティおよび／または完全性チェックを実行して、結果のどの集合が真正の集合であるかを確認することができる。アービトレーションプロセスは、格納されているデータにアクセスし、関わっているプレイヤーの相対的信頼度を識別することができる。アービトレーションプロセスが報告結果の中にエラーがあるのを識別した場合、ステップ６０９のプロセスは、リーダーボードデータを更新し、エラーを是正することができる。
【００９２】
異常が検出されなかった場合、または異常が是正された後、プロセスはステップ６１０に進み、トーナメントを終了させるべきかどうかを確認することができる。異なるトーナメントは、トーナメントをどのように終了させるかを定義する異なるパラメータを持つことができる。例えば、Ｔｏｕｒｎａｍｅｎｔ  Ｗｉｎｎｅｒパラメータを以下で詳述するように使用しうる。このステップで、トーナメントプロセスは、報告された結果、またはすべての結果を、トーナメント勝利者を定義する（複数の）パラメータと比較し、勝利者が見つかり、トーナメントが終了すべきか否かを決定することができる。
【００９３】
トーナメントが終了すべきでない場合、プロセスはステップ６０５に戻り、トーナメントの実行を続けることができる。例えば、これは、そのトーナメント内の次のラウンドを処理する必要がある場合がある。
【００９４】
トーナメントが終了すべきである場合、プロセスはステップ６１１に進み、トーナメントを終了させることができる。この終了は、プレイヤーのランキングおよびトーナメント勝利者を決定するために、リーダーボードデータオブジェクトからのスコアと結果の最終集計を必要とすることがある。トーナメントの終了は、多くの場合、勝利者と定義済みの着順（例えば、２位、３位、上位１０位以内など）に入った人たちに賞品を授与することを伴う。賞品は、トーナメントスポンサーによって提供される物理的なアイテムであるか、または特定のデザイン、特別な機器、または武器などを備えたレースカーなどのゲーム内仮想アイテムであってよい。トーナメントの終了は、さらに、リーダーボードＩＤを解放し、トーナメントのリーダーボードデータオブジェクトを他のトーナメントまたは他のゲームで使用できるようにすること、後でアクセスできるようにアーカイブデータベースに結果を記録すること、ハイスコアを記録することなどを含むこともできる。トーナメントの終了後、プロセスは、次いで、ステップ６０３に戻り、次のトリガイベントの発生を待つことができる。必要ならば、すでに存在していない場合、またはトーナメントは終了した直後に、トーナメントインスタンスを自動的に作成するようにトーナメントトリガパラメータを定義し、これにより、プレイヤーがトーナメントを連続して利用できるようにすることができる。上述のように、トーナメントの複数のインスタンスが、必要ならば同時に存在することができ、したがって、第２のトーナメントのインスタンス化は、前のインスタンスの終了に依存する必要はない。例えば、トーナメントインスタンスの終了は、単純にプロセスを終了させ、それぞれの独立のインスタンスに対し別個のプロセスを生じさせることができる。
【００９５】
上記の図６ではトーナメントパラメータを定義するステップに言及しており、そのステップを詳しく説明するために、以下では使用できるいくつかの例示的なトーナメントパラメータを取りあげる。
【００９６】
トーナメント名−トーナメントを識別するために管理者が参加者に対して与えるテキスト文字列（例えば、「Ｈａｌｏ  ２（商標）  Ｓｌａｙｆｅｓｔ  Ｓｐｏｎｓｏｒｅｄ  ｂｙ  Ｍｉｃｒｏｓｏｆｔ」）。
【００９７】
トーナメント所有者−トーナメントに対する管理者の識別。例えば、トーナメントの所有者は、ゲーム開発者、またはトーナメントのスポンサーとすることができる。
【００９８】
トーナメントタイプ−トーナメントの定義済みタイプの識別。トーナメントサーバ４３４は、管理者によりアクセス可能であり、カスタマイズ可能な多数の定義済みタイプのトーナメント（例えば、シングル・エリミネーション、ダブル・エリミネーション、後述のようにその他など）を提供することができる。
【００９９】
トーナメント参加者数−トーナメントでサポートされている全プレイヤー参加者の最小、最大、範囲、および／または好ましい数を識別する１つまたは複数の値。いくつかのトーナメントは、小規模の場合に適しているが、他のフォーマットは、プレイヤーが多数の場合に理想的である。
【０１００】
ゲームセッション参加者数−トーナメントの各ゲームセッションに参加しているプレイヤーの最小、最大、範囲、および／または好ましい数を識別する１つまたは複数の値。ゲームセッションは、それぞれのゲームにより異なる方法で定義され、ゲームにおけるプレイの基本単位を指すものとしてよい。これは、ゲームタイプに応じて異なっていてよい。例えば、チェスゲームは、セッション（例えば、チェス盤）毎に２人の参加者を必要とするが、ポーカーゲームは、セッション（例えば、テーブル）毎に５人の参加者を必要とする場合がある。
【０１０１】
ラウンド数−トーナメントに対するラウンドの最小、最大、範囲、および／または好ましい数を識別する１つまたは複数の値。トーナメントのラウンドは、それぞれのトーナメント参加者が１つのゲームセッションでプレイするときに生じるものと定義することができる。
【０１０２】
ウィンドウ係数−いくつかのトーナメントでは、特定のゲームセッションに対するプレイヤー（例えば、プレイヤー群を伴うシングル「デスマッチ」）は、少なくとも一部はプレイヤー同士が最後に対戦したときから経過した時間の長さに基づきグループにまとめられる。ウィンドウ係数は、ゲームセッション、ラウンド、および／またはトーナメントの単位で測定されうる時間、さらにはプレイヤーがトーナメントの同じゲームセッションにおいて再び一緒にプレイするまでに経過する必要のある秒、分、時、日、週などを識別することができる。例えば、トーナメントはウィンドウ係数として２つのゲームセッションを指定することができ、これは、あるゲームについて２人のプレイヤーが一緒のグループにまとめられる前に、少なくとも２つのゲームについて対戦していてはならないということを意味する。ウィンドウ係数の使用は、継続時間が無制限であるトーナメント、または非常に多くの試合およびプレイヤーに対し特に望ましい場合がある。ウィンドウ係数の使用をサポートするために、トーナメントインスタンスは、トーナメント内のプレイヤーの各ペアがトーナメントで対戦した最後の時刻を識別するデータテーブルを格納することができる。
【０１０３】
いくつかのトーナメントでは、プレイヤーは、そのスコア、ランク、スキルレベルなどに従って一緒のグループにまとめられ、ランクギャップは、プレイヤーが一緒のグループにまとめられることを許容するランクの範囲を識別することができる。例えば、トーナメントは、点差が２０ポイント以内である場合、または総合ランキングがあるランク数内（例えば、プレイヤー同士のランク差が１０位以内）またはパーセンテージ内（例えば、トーナメントの参加者の総数のパーセンテージ）である場合にのみプレイヤーを一緒のグループにまとめたい場合がある。
【０１０４】
スケジューリングオプション−これらのオプションは、トーナメントがプレイされるスケジュールを識別する。トーナメントは、連続的でもよく、その場合、新しいラウンドは、前のラウンドの完了後、またはスケジュールに従って自動的に開始される。スケジュールは、週末のみのトーナメント、毎日のトーナメント、特定の日付および／または時刻、３０分毎などのラウンドとゲームセッションが行える特定のいくつかの時間枠を示すことができる。
【０１０５】
新規プレイヤー係数−新規プレイヤーのスコアがランキングでどのように使用されるかを識別する１つまたは複数の値。ポイントランキングについて以下でより詳しく取りあげるが、いくつかのトーナメントでは、プレイヤーが参加を始めた時は、統計的にあまり意味をなさないと思われるデータ値に従ってプレイヤーのランク付けがなされる。例えば、単に勝敗記録に基づきプレイヤーをランク付けするトーナメントでは、新規プレイヤーが非常に高いランクなどに本当に値することがない場合であっても、全勝の３０−０プレイヤーを１−０記録を持つ新規プレイヤーと同じにランク付けすることが可能である（両方とも１００％勝利者）。これに対応するために、トーナメントでは、新規プレイヤー係数を使用することができ、新規プレイヤーのスコアは、ランキングで使用される前に調節される。したがって、例えば、新規プレイヤーのスコアは、１つのゲームセッションのスコアのみが利用可能な場合に７５％だけ、２つのゲームセッションのスコアが利用可能な場合に５０％だけ、３つのゲームセッションのスコアが利用可能な場合に２５％だけ下げられ、４つ、またはそれ以上のゲームセッションのスコアが利用可能な場合には全くディスカウントされないようにすることが可能である。新規プレイヤー係数は、その効果に対する持続時間（例えば、ラウンドまたはゲームセッションの数）、およびその効果に対する調節値（例えば、スコアディスカウント、ポイント値加算／減算など）を識別することができる。
【０１０６】
トリガイベント−トーナメントのインスタンスを作成させる１つまたは複数のイベントの識別。これは、上述のスケジューリングパラメータに関係していてもよく、その場合、トリガイベントは、単に、そのスケジュールと一致する時刻とすることが可能である。他のタイプのトリガも使用することができる。例えば、トーナメントは、所定の数のプレイヤーがトーナメントに対して登録されたとき、またはそのトーナメントに対してすでに登録されている１人または複数のプレイヤーによりコマンドが入力された後（例えば、すべての登録プレイヤーがコントローラボタンを押して、自分たちの準備ができていることを知らせたとき）に自動的に開始するようにしてもよい。
【０１０７】
トーナメント勝利者−トーナメント勝利者が決定される方法を識別する１つまたは複数の値。これは、所定のポイント合計（例えば、１０００ポイントに到達する第１のプレイヤー、またはレースにおける最短合計時間を持つ人）、所定のゲームイベント（例えば、ゲーム内の所定の目的を達成する第１のプレイヤー）、または何回かのラウンドの後のランキング（例えば、最終ラウンドの後の最上位ランキングのプレイヤー）としてよい。
【０１０８】
ゲーム特有のオプション−特定のゲームに特有の多数の他のオプション。これらは、レースゲームトーナメントに対するレーストラック、気象条件、車種、およびポイントスコアリングの識別、または主観視点のシューティングゲームトーナメントに対する地図タイプ、武器積み出し、およびスコアリングの識別を含むことができる。
【０１０９】
図７に示されているように、さまざまなトーナメントパラメータをトーナメントデータパッケージデータ構造体７０１に格納することができる。このデータ構造体は、１つまたは複数のラウンドリスティング７０２を含むことができ、それぞれのラウンドリスティングは、トーナメント内のラウンドのセグメント／ステージ／サブセットに対するデータを含む。例えば、例示的なトーナメント７０１は、３つのセグメントまたはステージに分割される、１３のラウンドを含むトーナメントである。ラウンドリストは、リスト内のラウンドの数の識別、およびリスト内のラウンドに対する共通設定、パラメータ、またはテーマなどの、特定のリストに対する情報を含むヘッダ部分７０３を含むことができる（例えば、リスト１内のすべてのレースが「Ｎｅｗ  Ｙｏｒｋ」レーストラック上にあるか、またはリスト１内のすべてのレースは、気象が「雨」に設定された状態で実行される）。リストは、さらに、それぞれの対応するゲームセッションに対し使用されるパラメータを含む、複数の個別のラウンド設定７０４を含むことができる。例えば、第１のラウンド設定は、低出力車のみを第１のレースに使用できることを示し、第２のラウンド設定は、４輪駆動車のみを第２のレースに使用できることを示しうる。以下の擬似コードは、トーナメントデータパッケージの一実施例を示す。
【０１１０】
【表１】
2009526603.tif 000003
【０１１１】
前の実施例では、トーナメント設定ファイルは、複数のパッケージを格納することができ、それぞれのパッケージは、複数のリストを含むことができ、それぞれのリストは、リストの内部ハンドルに対するデータ値、表示されるテキスト値、およびゲーム内の設定に対する１つまたは複数のゲームコードを含むことができる。ゲームコードは、ゲームを構成するためにゲームプログラムにより使用されるテーブル内のエントリに対応する数値であってよい。例えば、レーシングゲームは、１６個の異なるレーストラックを備えることができ、コード「１０１１」は、それらのトラックを示すテーブルへの２値インデックスであり、使用する１１番目のトラックを識別する。他のコードは、同様に、気象、車のトランスミッション、トラック上の方向、自動車の種類などに対するテーブルなどの他の設定テーブルへのインデックスであってよい。以下の実施例は、そのようなテーブルをどのように構成できるかを例示している。
【０１１２】
【表２】
2009526603.tif 000004
【０１１３】
それに加えて、これらの値は、すべてがテーブルへのインデックスコードである必要はない。例えば、最大馬力に対する値は、単に、その最大馬力に対する数値を含むだけでよい。トーナメントインスタンス（例えば、トーナメントがインスタンス化する頻度、条件など）に対する、またインスタンス内の個別のラウンド（例えば、ラウンドの回数）に対するスケジュールデータなどの他のデータも含めることができる。
【０１１４】
上で指摘されているように、さまざまなトーナメントタイプがありうる。シングル・エリミネーション、ダブル・エリミネーション、およびラウンドロビン（ｒｏｕｎｄ−ｒｏｂｉｎ）型トーナメントを使用することができる。図８は、使用できる他の種類のトーナメントの一実施例を示している。図８のトーナメントでは、プレイヤーは、トーナメントに参加する登録をすることによりステップ８０１から開始する。登録は、さまざまな方法で行える。例えば、プレイヤーは、タイトルサーバ４３２またはトーナメントサーバ４３４などのサーバにログオンし、登録のためにあいている利用可能なトーナメントのリストを取得するようサーバにクエリを実行することができる。クエリされたサーバは、利用可能なトーナメントのリストを返し、関連するトーナメントパラメータ（例えば、トーナメント名、ラウンド数、すでに登録されている参加者の数、開始時刻、賞品など）を表示することができ、またはユーザは、特定のトーナメントをハイライト状態にしてコントローラ上のボタンを押すことにより登録することができる。それとは別に、プレイヤーは、そのトーナメントについてすでに登録されている他のプレイヤーにより送信された招待を受信した結果としてトーナメントに参加することができる。
【０１１５】
プレイヤー登録８０１は、所定の時間（例えば、トーナメントインスタンスで作成されてから経過した時間、スケジュールされたトーナメントに対する時刻、第１の登録者以降に経過した時間など）が過ぎるまで、または所定の数の登録者が参加する（例えば、参加者の最大数を定義するトーナメントパラメータ）まで、続けることができる。登録が終了すると、トーナメントは、ステップ８０２で最初に参加者をランダムな、または擬似ランダムな順序で並べることにより開始することができる。このランキング配置は、順序はすぐに再配列されるため、アルファベット順、または登録順など、所望の方法で実行することができる。
【０１１６】
次いで、ステップ８０３で、プロセスは、次のラウンドに対するゲームセッションで使用するプレイヤーの数を決定することができる。これは、上述のゲームセッション参加者数パラメータを参照することにより実行することができるが、さらに、全参加者数に基づく計算および調節を伴う場合がある。例えば、このプロセスは、理想的なセッションサイズを見つけるために、計算を実行する（例えば、全参加者数をゲームセッション参加者数パラメータのさまざまな値で除算する）ことができる。理想的セッションサイズは、すべてのセッションに同じ数のプレイヤーを用意できるサイズ、またはすべてのセッションについてプレイヤー高々１人分（または他の所定の値）だけサイズが異なるようなサイズとすることができる。セッションサイズの決定で、さらに、ゲームセッション毎により多くの（またはより少ない）プレイヤーを使用することを優先するか、またはパラメータで指定された好ましい数に最も近い数を持たせることにより優先することができる。
【０１１７】
セッションに入るプレイヤーの数を決定したプロセスが完了すると、このプロセスは、ステップ８０４に進み、次のゲームセッションのための新しいグループを埋めることを開始することができる。ステップ８０５で、グループにまだ割り当てられていない最高ランキングプレイヤーは、新しいグループに割り当てられる。ステップ８０６で、次に高い未割り当てプレイヤー（例えば、潜在的プレイヤー）に対するデータが取り出され、ステップ８０７で、その潜在的プレイヤーが最近、現在のグループ内ですでに割り当てられている他のプレイヤーの誰かとプレイしたかどうかを確認する。これは、例えば、参加者の各ペアがゲームセッションで一緒にプレイした最後の時刻を追跡する、格納されたテーブルを参照することにより実行されうる。
【０１１８】
潜在的プレイヤーが、グループ内の他のプレイヤーの１人とあまりにも最近にプレイしているということがなければ、潜在的プレイヤーが、ステップ８０８でグループに追加される。他方、潜在的プレイヤーがあまりに最近にプレイしている場合、プロセスは、その潜在的プレイヤーをスキップし、ステップ８０９に進み、そこで、現在のグループがいっぱいであるか否かを確認する。グループがいっぱいでなければ、プロセスは、ステップ８０６に戻り、次の未割り当てのプレイヤーについて情報を取り出す。グループがいっぱいであれば、プロセスは、ステップ８１０に進み、残っている未割り当てのプレイヤーがいるかどうかを調べる。もしいれば、プロセスは、ステップ８０４に戻り、新しいグループを埋めることを開始する。最後のいくつかの未割り当てのプレイヤー同士がすべてあまりにも最近にプレイしている場合に、図示されていない１つのオプションのステップを実行できる。この状況では、プロセスは、これらのプレイヤーに対するウィンドウ係数基準を単に放棄し、１つまたは複数の最終グループにまとめることができる。あるいは、システムは、ウィンドウ係数を所定の量だけ調節し（例えば、１だけ減らし）、プロセスを新たに開始することができる。
【０１１９】
すべてのプレイヤーがいくつかのグループに割り当てられている場合、プロセスは、ステップ８１１に進み、そこで、プレイヤーはゲームセッションをプレイする。ゲームセッションが完了すると（例えば、プレイヤーはレースの実行を終了する、フットボールゲームを完了する、デスマッチを終了する、など）、プロセスは、ゲームセッションにおけるパフォーマンスに基づきプレイヤーにポイントが割り当てられるステップ８１２に進む。これらのポイントは、ゲームタイプに応じて異なり、異なるゲーム成績に対し異なるポイントが与えられる。さまざまなタイプのスコアリングメカニズムが使用できる。例えば、トーナメントサーバは、一番最近のゲームセッションで各プレイヤーにより達成された成績に対するゲームスコア、トーナメントでこれまでに各プレイヤーにより蓄積されたポイントを集計するゲームスコア累計、対戦した他のプレイヤーの数および／またはランキングを考慮するマッチスコア（例えば、所与のセッションで敗北した各プレイヤーに対するポイント）、およびプレイヤーがこれまでにトーナメントで蓄積することができたであろうポイントの最大数を示す利用可能なスコア累計を記録することができる。
【０１２０】
ポイント割り当てを実行するサーバまたはゲーム機は、さらに、ランキングを目的として計算を実行することができる。例えば、トーナメントプロセスは、そのプレイヤーが獲得した可能な最大のスコアのパーセンテージを示すスコアリングパーセンテージを計算することができる（例えば、プレイヤーのゲームスコア累計を利用可能なスコア累計で除算することにより）。このプロセスは、新規プレイヤー係数パラメータを適用して、プレイヤーの再ランク付けのために使用される前に新規プレイヤーのスコアを調節することができる（以下のステップで）。
【０１２１】
次いで、ステップ８１３で、このプロセスは、上述のようにスコア合計および／またはスコアリングパーセンテージに基づきさまざまなプレイヤーの順序変更または再ランク付けをすることができる。プレイヤーの順序変更がなされた場合、プロセスは、ステップ８１４で、さらにラウンドをプレイするかどうかを確認することができる。この決定は、トーナメントパラメータで指定されているように、プレイヤーが必要な回数のラウンドをプレイしたかどうか、またはプレイヤーが勝利に対する他の何らかの条件を満たしたかどうかに基づくことができる。さらにラウンドをプレイする場合、プロセスはステップ８０４に戻り、プレイヤーのグループ化をし直すことができる。プレイする必要のあるラウンドがなくなった場合、プロセスは、図６に関して上で説明されているように、ステップ８１５に進み、トーナメントを終了する。
【０１２２】
図８Ｃは、図８Ａおよび８Ｂのトーナメントプロセスで発生しうるプレイヤーランキング、グループ分け、および再ランク付けの例示的な進行状況を示す。プレイヤーは、左に示されているようにラウンド１に対しランク付けされ、３つのグループ（１つのグループに４人のプレイヤー）に分けられ、次いで、ラウンド１のパフォーマンスに基づき右に示されているように再ランク付けされる。第２ラウンドでプレイヤーをグループ分けする際に、４人の最高再ランク付けプレイヤーは、プレイヤーＡ、Ｅ  Ｉ、およびＢであるが、Ｂは前のラウンドでプレイヤーＡとプレイしたばかりなので、プロセスはプレイヤーＢをスキップし、次に高いプレイヤーであるプレイヤーＦをグループ１に追加する。次いで、プレイヤーＢは、第２のラウンドについてグループ２に入れられる。図８Ｃに示されている実施例は、最終プレイヤーであるプレイヤーＬが、第２ラウンドのグループ３のプレイヤーＫとあまりにも最近にプレイしているため、新規グループに格下げされることを示している。必要ならば、このプロセスでは、ウィンドウ係数の制約に関係なく、リストの最下位にある１つまたは複数のグループを対戦させることができる。例えば、プレイヤーＬは、プレイヤーＫと最近プレイしたにもかかわらず、単にグループ３にマッチされうる。それとは別に、マッチできない最下位のプレイヤーを、トーナメントから落とすこともできる。
【０１２３】
代替として、ランキングの最下位に現れている１つまたは複数のグループを、単に、トーナメントから落とし、それにより、通ったラウンドでフィールドを絞り込むことができる。落とすステップは、所定の回数のラウンド（例えば、２ラウンド）を通った後に開始し、落とされたグループがとにかく最弱のプレイヤーを含む可能性がより高いように少なくとも何らかの予備ランキングを許すことができる。
【０１２４】
図８の方法は、一実施例にすぎず、このタイプのトーナメントには、修正を加えることができる。例えば、ランクギャップパラメータは、ステップ８０７および８０８で第２のチェックとして使用され、新規プレイヤーがグループ内の他のプレイヤーにランクに関して十分に近い場合にのみプレイヤーはグループに追加される。トーナメントサーバは、結果として得られる必要なグループ数が所定の閾値を超える場合、またはパラメータの要求条件を満たすグループを埋めるだけの十分なプレイヤーがいない場合に、一方または両方の要求条件の放棄を必要とすることなど、ランクギャップおよびウインドウ係数パラメータをどれだけに厳格に使用するかに関して異なる優先度を割り当てることもできる。サーバ優先度は、一方の優先度を、他方の優先度の前に放棄することができる。
【０１２５】
他のオプションとして、このプロセスでは、トーナメントが開始した後に新規プレイヤーの追加登録を行い、最初に登録されたプレイヤーの脱落（例えば、終了）を行うことができる。新規登録プレイヤーは、ステップ８０３の前などに、次のラウンドに対する有効なプレイヤーのプールに単に追加することができる。それとは別に、新規プレイヤーがいつ参加を許可されるかに関する制限がありうる（例えば、最初の所定の回数のラウンドの後でのみ、または最終の所定の回数のラウンドでは禁止される、など）。新規プレイヤーを追加する場合、新規プレイヤーに、最初にランダムなランクを与えることができるか（ステップ８０２の初期割り当ての場合のように）、あるいは、プレイヤーが、リストの中位、または最下位のところに自動的にランク付けされうる。新規プレイヤー係数パラメータは、新規プレイヤーが数ラウンドをプレイした後にすぐにランキングの深みにはまってしまわないように、新規プレイヤーのスコアを調節するために使用できる。例えば、スコアリングパーセンテージが使用され、新規プレイヤーが第１ラウンドに勝利した場合、新規プレイヤー係数は、プレイヤーが１ラウンドしかプレイしなかったときに０．２５をプレイヤーのスコアリングパーセンテージに乗算し、新規プレイヤーが１ラウンドを勝利した後あまりにもすぐに格上げされることのないようにすることが可能であろう。同様に、新規プレイヤー係数は、プレイヤーがプレイしたラウンド数に応じて異なり（例えば、２ラウンドの後に０．５を使用し、３ラウンドの後に０．７５を使用し、４ラウンドの後に１．０使用する）、プレイヤーのフルスコアは、所定の回数のラウンドの後に信頼される。
【０１２６】
図８のトーナメントプロセスは、多数のプレイヤーに対応するために使用することができ、また連続するトーナメントを実行するために使用することができる（例えば、ラウンド数が定義されていない場合）。図９は、図８のプロセスに加えて使用できる他のトーナメントプロセスを例示している。図９のプロセスでは、リーダーボード資格認定期間を使用して、トーナメント参加者の初期資格認定とシード決定を行うことができる。このプロセスは、ステップ９０１で始まり、トーナメント作成者または管理者（上述のように、ゲームの開発者、プレイヤーなどであってよい）は、最初に、トーナメントのパラメータを定義する。これらのパラメータは、上述のものに類似している場合があるが、他のパラメータも使用できる。例えば、トーナメントでは、勝利者が進出し、敗者が脱落するエリミネーションブラケット構造を使用することができ、そのようなトーナメントは、ファイナルの決勝ゲームに現れる参加者の数、および始めの方のラウンドのゲームから進出した勝利者の数を識別する別のパラメータを含むことができる。トーナメントパラメータは、さらに、使用されるトーナメントレベルの数を識別することもできる。例えば、トーナメントは、最高位ランキング、第２位ランキング、および第３位ランキングのプレイヤーグループが競い合うように３つのレベル（例えば、「金賞」、「銀賞」、および「銅賞」）を有するものとして定義されうる。これらのレベルはそれぞれ、トーナメントの個別のインスタンスとして動作し、異なる能力を持つプレイヤーがそのプレイヤー独自のトーナメントで対戦することができる。例えば、資格認定が完了し、参加者がその資格認定に基づきランク付けされたいくつかのグループに分割された後に、別のインスタンスを開始することができる。
【０１２７】
トーナメントは、さらに、開催日時および継続時間などの（複数の）資格認定ラウンドに対するスケジューリング情報を含むことができる。トーナメントは、さらに、参加者の資格認定に使用されるチャレンジのタイプを設定するチャレンジ定義パラメータを含むこともできる。チャレンジ定義データ構造体は、一般に、トーナメントの資格認定のためプレイヤーが遂行しなければならないある種の技を示し、ゲームに応じて異なる場合がある。チャレンジ定義では、ロケーション設定（例えば、レーシングゲームのレーストラック、戦争ゲームの戦場地図、ステージのゲームレベルなど）、難易度設定（例えば、易、中、難など）、ゲーム条件（例えば、レース用の自動車のタイプ、地図上の利用可能な武器、気象設定）などの資格認定チャレンジに対する１つまたは複数のゲーム設定を指定することができる。チャレンジ定義は、１つのイベントだけに制限されるわけではない。代わりに、この定義で、異なる条件とともに、異なるレースまたはステージのシーケンスなど、多数の資格認定イベントを順序付きリストで指定することができる。
【０１２８】
いくつかのゲームでは、チャレンジ定義は、ゲーム機４０２にダウンロードすることができるデータファイルを含み、これによりチャレンジに参加するようにゲーム機上のゲームタイトルプログラムを自動的に構成することができる。例えば、レースゲームのチャレンジ定義パラメータが、２００馬力以下の後輪駆動車を使用して、かつレースゲームの「中」難易度設定で設定される５つのコンピュータ制御（ＡＩ）対戦相手に対して、明るく晴れた日にＬａｇｕｎａ  Ｓｅｃａレーストラック上で４周レースを行うことを要求している場合、トーナメントのサーバは、プレイヤーのゲーム機にダウンロードされたときに、ダウンロードファイル内で指定されているタイプのレースを実行するようにゲーム機上で実行されるゲームを自動的に構成するトーナメントチャレンジダウンロードファイルを備えることができる。ダウンロードファイルはさらに、プレイヤーの自動車選択をチャレンジ定義により許可された選択に制限するために、ゲーム機４０２上で実行されているゲームにより使用されうる。
【０１２９】
トーナメントパラメータが定義される場合、トーナメントのサーバは、トーナメントを処理するプロセスを実行し始めることができる。このプロセスは、プレイヤーの資格認定結果を保持するために使用されるリーダーボードデータ構造体に対するストレージを割り当てる（または他の何らかの方法で確保する）ことができ、リーダーボードのＩＤは、ステップ９０１で定義されているパラメータのひとつとしてよい。リーダーボードＩＤは、データ構造体に対する名前またはハンドル、およびどこに格納されるか、どのように取り出されるかを示すメモリアドレスロケーションを含むことができる。リーダーボードＩＤは、スコアリングアービトレーションに使用されうる。
【０１３０】
トーナメントパラメータがステップ９０１で設定された場合、コンピュータプロセスは、ステップ９０２でトーナメントをプレイヤーにアナウンスすることができる。アナウンスは、電子メール、ＳＭＳなどの電子通信を介して行うことができ、電子メッセージをゲーム機４０２に電子メッセージを送信することを含むことができる。アナウンスは、さらに、テレビ広告、ラジオ、電話、雑誌などの他の形態の通信を使用して行うこともできる。このアナウンスは、トーナメントのパラメータ、トーナメントについて資格認定するために遂行されなければならないチャレンジのタイプ（例えば、チャレンジ定義）、および資格認定期間に対する期間（例えば、開始時刻と終了時刻）をプレイヤーに通知するものである。
【０１３１】
ステップ９０１でアナウンスした後、またトーナメントパラメータで設定された何らかのスケジュールされた時刻に（または、時刻がスケジュールされていない場合には即座に）、プロセスがステップ９０３で資格認定期間を開く。この期間中に、プレイヤーは、利用可能であれば、チャレンジ定義構成ファイルをダウンロードし、必要なチャレンジをプレイする（例えば、指定されたレースを実行する）ことができる。ゲーム機４０２は、プレイヤーの進捗状況および成績（例えば、レース時間）を記録し、安全な伝送（ｓｅｃｕｒｅ  ｔｒａｎｓｍｉｓｓｉｏｎ）を通じて、スコアをトーナメントサーバ４３４などのトーナメントのサーバに報告し、トーナメントリーダーボード上に含めることができる。上述の安全な伝送の検査に加えて、この報告されたスコアは、さらに、検証プロセスを受け、不正スコアがポストされるのをさらに回避することを補助することができる。検証プロセスは、報告されたスコアと、所定のスコア限界または最大予想スコア（上で定義されている追加のトーナメントパラメータであってよい）との比較、または異なるゲーム機により報告された結果との比較を含むことができる。
【０１３２】
プレイヤーのスコアを受信した後、またはプレイヤーの要求に応答して、サーバは、プレイヤーの結果および他のプレイヤーの資格認定スコアに基づきトーナメントランキングを決定するようリーダーボードにクエリを実行することができる。サーバは、プレイヤーのパフォーマンスがどれだけよいかを知らせるメッセージをプレイヤーに送信することができる（例えば、「Ｙｏｕ  ｈａｖｅ  ｌｏｇｇｅｄ  ｔｈｅ  ７５ｔｈ  ｆａｓｔｅｓｔ  ｔｉｍｅ  ｆｏｒ  ｔｈｉｓ  ｃｈａｌｌｅｎｇｅ」というメッセージ）。メッセージは、さらに、プレイヤーが何に対して資格認定されているかをプレイヤーに知らせることもできる（例えば、「Ｙｏｕｒ  ｓｃｏｒｅ  ｑｕａｌｉｆｉｅｓ  ｙｏｕ  ｆｏｒ  ｔｈｅ  ｇｏｌｄ  ｌｅｖｅｌ  ｔｏｕｒｎａｍｅｎｔ」または「Ｙｏｕｒ  ｓｃｏｒｅ  ｑｕａｌｉｆｉｅｓ  ｙｏｕ  ｆｏｒ  ｔｈｅ  １０ｔｈ  ｓｅｅｄ」）。プレイヤーが望めば、プレイヤーは、資格認定イベントを再び試み、他のスコアをポストし、自分のポジションを改善することを望むことができる。重複スコアを回避するために、サーバは、スコアをポストするプレイヤーの識別（例えば、ログイン識別）を取得し（例えば、スコアとともに伝送される）、プレイヤーがすでに資格認定スコアをポストしているかどうかを確認することができる。プレイヤーが持っている場合、サーバプロセスは、前のスコアを新しいスコアで自動的に置き換えることができるか、または新しいスコアが得られた結果、古いスコアよりも高いランクが得られる場合のみ、またはユーザがスコアを送信したときに古いスコアを新しいスコアで置き換えるよう要求した場合に、そうすることができる。それとは別に、プレイヤーは、資格認定スコアをポストする無制限の機会を与えられる必要はない。例えば、トーナメントは、それぞれのユーザをちょうど１つの資格認定エントリ、または限られた所定の数の資格認定エントリに制限することができる。プレイヤーは、ゲームセッションスコアをポストする代わりに無視させる（例えば、練習ラウンドとして取り扱う）機会を与えられてもよい。それに加えて、システムは、追加の資格認定試行を購入するオプションをユーザに対し表示することができ、またユーザは、より高い資格認定スコアをさらに試みるコストについて借方に付けられる所定の口座（例えば、クレジットカード口座、または購読口座）を持つことができる。
【０１３３】
資格認定期間に資格認定するプレイヤーが増えれば増えるほど、多くのプレイヤーがランキングを下げる可能性がある。トーナメントサーバプロセスは、そのようなプレイヤーに対し、そのランキングが変更されるとき、またはそのランキングが所定の量（例えば、位数、参加者のパーセンテージなど）だけ変化する場合、またはそのランキングにより特定のトーナメントインスタンスに対する資格認定から脱落する場合（例えば、その前の資格認定が「金賞」トーナメントの資格認定に使用されたが、現在は「銀賞」トーナメントについて資格認定しているだけの場合）にそのことを自動的に通知することができる。通知は、アナウンスと同様にどのような通信でも可能であり、プレイヤーのゲーム機４０２に送信される電子メッセージであってよい。メッセージは、ゲームプログラムのユーザインターフェイスを使用して表示される、プレイヤーのゲーム機上のゲーム内通信として表示することができる。コンピュータでの電子メールなどの他の通知も、使用することができる。通知の実際のタイプ、および通知が送信される条件は、追加のトーナメントパラメータとして指定することができる。
【０１３４】
資格認定が完了すると、トーナメントサーバは、ステップ９０４でリーダーボードデータ構造体を参照し、ポストされた結果と資格認定の要件とを比較することによりトーナメントについて実際に資格認定したプレイヤーの数を決定することができる。資格認定の要件は、トーナメントパラメータで指定されるか、またはトーナメントパラメータから導くことができる。このような導出の一実施例では、ゲーム毎のプレイヤーの所望の数（Ｐ）、最終ゲームに入るプレイヤーの数（ＰＦ）、それぞれのゲームから進出すべき勝利者の数（Ｗ）（例えば、２、３、４人などのプレイヤーがそれぞれのゲームから進む）、および所望のラウンドの数（Ｒ）などの入力されたトーナメントパラメータに基づく計算を使用して、トーナメントの１つのインスタンスに参加しうるプレイヤーの総数（ＰＴ）を計算することができる。
【０１３５】
【数１】
2009526603.tif 000005
【０１３６】
どのプレイヤーが資格認定するかを判定するために、トーナメントプロセスは、上記のプロセスを実行し、次いで、リーダーボードを参照して、トーナメントについて資格認定されているような上位ＰＴ数のプレイヤーを受け入れることができる。もちろん、この計算は、トーナメント定義ステップ９０１および／または資格認定期間９０３など、早いうちに実行されている。複数のトーナメントインスタンスがサポートされる場合（例えば、トーナメントパラメータにより示されているように）、トーナメントプロセスは、次のトーナメントについて資格認定するようにリーダーボード内の次のＰＴエントリを受け入れることができ、これは、トーナメントインスタンスの総数が埋められるまで、またはリーダーボード内に未割り当てのエントリでなくなるまで続けられる。このようにして、トーナメントプロセスは、資格認定者（または参加者）をさまざまなトーナメントレベルに分ける。
【０１３７】
上記の例示的な計算は、トーナメント毎のプレイヤーの総数を決定するようには制限されない。その代わりに、他の用意されている変数に基づき、変数のうちの任意のものを計算することができる。したがって、例えば、トーナメント管理者が開いているラウンドの数（Ｒ）を残すことを決定した場合、その式は、他の値に基づきその値を計算するように整理し直すことができる（例えば、すべてのプレイヤーに対しトーナメントがあるように、また指定されたゲーム毎のプレイヤーおよびゲーム毎の勝利者の値を満たすのに必要な数のラウンドを実施する）。それに加えて、ポストされたスコアの特定の数またはパーセンテージがトーナメントに対して資格認定することを要求するように、トーナメント充填比をパラメータで定義することができる（例えば、２０％）。資格認定期間が終了し、かつトーナメントプロセスがリーダーボードを参照して受け取ったエントリの総数を判定することができると、プロセスは、エントリのうちのいくつ（例えば、２０％）がトーナメントに入るかを決定し（例えば、比率が２０％で、１００エントリを受け取る場合はＰＴ＝２０）、次いで、その充填比に対応するように他の値（例えば、Ｒ、Ｐなど）を調節することができる。
【０１３８】
ステップ９０５で、トーナメントプロセスは、計算された値（もしあれば）およびトーナメントパラメータに設定されているスケジュールパラメータに基づき、さまざまな（複数の）トーナメントおよび（複数の）トーナメントラウンドをスケジュールすることができる。このプロセスは、さらに、エリミネーショントーナメント（勝ち抜き戦）（ｅｌｌｉｍｉｎａｔｉｏｎ  ｔｏｕｒｎａｍｅｎｔ）においてトーナメントブラケット（ｔｏｕｒｎａｍｅｎｔ  ｂｒａｃｋｅｔ）を埋めるようにステップ９０６でシード決定を実行することができる。このシード決定は、上述のグループ分けアプローチを使用して技量の近接しているプレイヤーがそれぞれのラウンドを対戦するようにする（例えば、上位Ｘ人のプレイヤーが第１のゲームで対戦し、次の上位Ｘ人のプレイヤーが第２のゲームで対戦し、というようにし、シード決定はそれぞれのラウンドの後に、またできる限り後に行われる）ことで動的に実行することができるか、またはシード決定は、試して、後のラウンドまたは最終ラウンドになるまで、高いシードのプレイヤーが他の高いシードのプレイヤーに当たらないように実行できる。これは、一般的に、チャンピオンシップゲームから開始し、決勝を埋めるのに必要な準決勝の数を決定し、すべてのラウンドが定義されるまで準決勝に対する同じ分析を再帰的に実行することにより行うことができる。試合のラウンドが定義されていた場合、シード決定プロセスは、開幕戦から開幕戦へと一歩ずつ進み、予想勝利者を埋めるのに十分な上位シードプレイヤーを入れ、次いで試合の残りを下位シードのプレイヤーで埋めることができる。この種のシード決定は、統計的に実行することができ、この場合、プレイヤーは、トーナメント全体を通してシードを持ち越し、ラウンドとラウンドの間でシードのやり直しはされない。さらなる代替として、このシード決定は、プレイのラウンドが終わる毎に新たに実行することができ、その場合、それらのプレイヤーのみ存在し、プレイする準備ができている（例えば、トーナメントインスタンスを処理するサーバでチェックインしている）。したがって、例えば、第１ラウンドの後に多数のプレイヤーが終了するか又は脱落した場合、トーナメントは、試合のないプレイヤー（例えば、元のシード決定による対戦相手がもはやプレイしなくなっているプレイヤー）を最小限に抑えるために第２ラウンドについてシード決定をやり直すことができる。
【０１３９】
図１０Ａは、トーナメントサーバが図１０Ｂに示されているプロセスに従った場合に生成されうる静的にシード決定されたブラケットの一実施例を示す。図１０Ａのブラケットの中間ラウンドにさまざまな値が示されているが、図１０Ｂのプロセスの最終結果では、開幕ラウンドブラケット対戦（ｏｐｅｎｉｎｇ  ｒｏｕｎｄ  ｂｒａｃｋｅｔ  ｍａｔｃｈｕｐｓ）、ラウンド総数、および試合の割り振り（例えば、始めの方のどの試合から競技者を後の試合に供給するのか）を識別する。図１０Ｂに示されているように、このプロセスは、決勝戦を考慮することによりステップ１００１から始まる。プロセスは、トーナメントパラメータを参照して、決勝戦に何人の競技者が出るのかを決定することができ、決勝戦を埋めることができる。ステップ１００２では、決勝戦は、上位シードで埋めることができる。図１０Ａの実施例では、決勝戦は、８人の競技者がいると定義されており、したがって、上位８人のシードプレイヤーが、決勝戦に現れると想定される。ここでもまた、これは、開幕ラウンドのシード決定を目的とする仮定にすぎず、上位シードプレイヤーは、実際に決勝戦に生き残る必要はない。
【０１４０】
次いで、ステップ１００３において、システムは、現在のラウンド（例えば、決勝戦）を埋めるのに前のラウンド（準決勝）において前のフィーダーマッチ（ｆｅｅｄｅｒ  ｍａｔｃｈｅｓ）がいくつ必要かを確認することができる。例えば、決勝戦が８人のプレイヤーを必要とし、トーナメントパラメータは、４人のプレイヤーがそれぞれの試合から進出することを示している場合、始めの方のラウンド（準決勝）は、８人のプレイヤーを用意するために２試合を必要とする。ステップ１００４で、現在のラウンドからのプレイヤーは、始めの方のラウンドで必要なさまざまな試合に分散される。ステップ１００５で、始めの方のラウンドの試合の残りは、次に高い有効なシードプレイヤーで埋められる。
【０１４１】
ステップ１００６で、トーナメントのすべての参加者が出ているか否かを判定するチェックを行うことができる。すべての参加者が出ていない場合、もう１つ前のラウンドがトーナメントに必要となる。このプロセスは、ステップ１００７で、フォーカスを１つ前のラウンドに移動し、そしてステップ１００３に戻って前のラウンドの試合を埋める同じステップを実行することができる。したがって、例えばシステムは、ステップ１００７の「現在のラウンド」を準決勝に設定し、そしてステップ１００３に戻って１つ前のラウンド（例えば、準々決勝）に対するブラケットを埋め始めることができる。このプロセスは、すべての参加者が出揃うまで続けることができ、このプロセスで取り扱われる最後のラウンドがオープニングラウンドのソード決定を行う。
【０１４２】
図１１は、６人のプレイヤーが決勝戦に現れ、９人のプレイヤーが前のラウンドの試合でプレイし、３人のプレイヤーがそれぞれの前の試合から進出するトーナメントの他の実施例を示している。最も早いラウンドは、シード決定プロセスの最終結果を示している。
【０１４３】
次いで、さまざまなトーナメントインスタンスがインスタンス化され、ステップ９０７で（複数の）トーナメントが実行されてその結果が決定される。トーナメントの実際の実行は、上述のように行われうるが、同じまたは異なるサーバ上の別々のコンピュータプログラムプロセスがさまざまなトーナメントインスタンス、ゲーム機上で実行されサーバに報告されるゲームセッション、スコアアービトレーションなどを管理する。
【０１４４】
図１２は、例えば、図８Ａ〜８Ｂおよび９に示されているタイプのトーナメントにアクセスするためゲームで使用できる例示的なユーザインターフェイスマップを示している。ゲーム機のメインメニュー１２０１は、トーナメントページオプションを含む、多数のトーナメントオプションを備えることができる。トーナメントページ１２０２は、そのオプションを選択することに応答して表示され、トーナメントオプションのメニューを含むことができる。例えば、トーナメントメニュー１２０２は、プレイヤーがすでに登録されているトーナメントのリスト、プレイヤーの資格認定ランク、参加者数、トーナメントの現在のステータス（例えば、登録、資格認定、ラウンドＸなど）を表示することができる。トーナメントメニュー１２０２は、さらに、リストに含まれるトーナメントのうちの１つに入る選択可能オプション、トーナメントを見つける選択可能オプション、およびトーナメントを作成する選択可能オプションを含むことができる。リストにあるトーナメントのうちの１つを選択した後、ユーザに対し、選択されたトーナメントのトーナメントロビー画面を表示することができる。
【０１４５】
トーナメントロビー画面１２０３は、現在のステータス、プレイヤーの次の対戦相手、対戦相手のステータスなどの選択されたトーナメントに対する追加情報を表示することができる。トーナメントロビー画面１２０３は、トーナメント内のゲームをプレイする追加メニューオプション、トーナメント内の前の試合に対するゲーム履歴を表示する追加メニューオプションなどを含むことができる。対応するメニューオプションを選択した後、ゲーム機は、ゲームプレイ画面１２０４を表示し、トーナメント内のラウンドまたは試合のプレイを開始するか、またはゲーム履歴画面１２０５を表示し、トーナメント内のプレイヤーの前のパフォーマンスに関する情報を表示することができる。この情報は、プレイヤー、対戦相手、チームなどの統計量を含むことができる。履歴画面１２０５は、さらに、統計量サーバ４２６上のリーダーボードからデータのクエリを実行することなどにより、複数のトーナメントおよびゲームタイプにわたる全体的なプレイヤーオンラインパフォーマンスを表示することもできる。
【０１４６】
トーナメントロビー画面１２０３は、さらに、参加者リストオプションを含むことができ、その選択により、参加者リスト１２０６を表示することができる。参加者リスト画面１２０６は、トーナメントの参加者、次のラウンドでプレイするようスケジュールされている参加者、前のラウンドでプレイした参加者などに関する識別および統計量情報を表示することができる。
【０１４７】
試合またはラウンドをプレイした後、システムは、レポート結果画面１２０７を表示し、試合の結果を表示することができる。これは、プレイされたばかりの試合におけるプレイヤーのパフォーマンスに関する統計量を含むことができる。
【０１４８】
トーナメントメニュー１２０２には、さらにプレイヤーがトーナメントを探索できるオプションも用意される。このオプションを選択した後、プレイヤーは、トーナメント探索画面を表示することができ、これは、ユーザが、１つまたは複数のトーナメントサーバ４３４上で実行されるもの、またはリーダーボードを使用するものなど、オンラインシステムでトーナメントを特定するために使用されうる探索基準を入力、または選択することを求めるプロンプトを含むことができる。この基準は、ゲームタイトル、トーナメント名、ゲームタイプ、トーナメントタイプ、トーナメントホスト、または他の何らかの所望の探索基準を含むことができる。探索を実行した後、システムは、このユーザに対するトーナメントのリストを表示し、資格認定詳細（例えば、ユーザが資格認定しているかどうか、参加者資格認定者スコアなど）およびトーナメントが行われることになっている場合のスケジュールを示すことができる。
【０１４９】
トーナメント１２０２は、さらに、プレイヤーが新規トーナメントを作成することを許可するオプションを含むこともできる。選択した後、ユーザに対し、新規トーナメントを定義する基準を入力するユーザに求めることができるトーナメント作成画面１２０９が表示されうる。この基準は、トーナメントパラメータ、ゲームタイトルなどの、上述の特徴のいずれかを含むことができる。１つまたは複数の追加のゲーム設定画面１２１０も、この目的に使用することができる。
【０１５０】
トーナメント１２０２は、さらに、リーダーボード資格認定トーナメントオプションを含むことができ、このオプションの選択で、リーダーボード画面１２１１が表示されうる。リーダーボード画面１２１１は、リーダーボードトーナメントのリストを表示し、名前、ＩＤ、現在の状態、現在のチャレンジ、チャレンジ／資格認定期間などのリーダーボード資格認定トーナメントに関する追加のデータを含むことができる。リーダーボード画面１２１１は、特定の表示されるトーナメントに対する資格認定に関する追加の説明および詳細を表示するオプションを含むことができる。資格認定詳細画面１２１２は、プレイヤーがどのように資格認定を受けられるかを説明する追加の記述を含むことができる（例えば、「Ｒａｃｅ  ｔｈｅ  Ｌａｇｕｎａ  Ｓｅｃａ  ｒａｃｅ  ｔｒａｃｋ  ｕｓｉｎｇ  ａ  ４ＷＤ  ｃａｒ  ｗｉｔｈ  ｌｅｓｓ  ｔｈａｎ  ３０１  Ｈｐ，  ａｎｄ  ｐｏｓｔ  ｏｎｅ  ｏｆ  ｔｈｅ  ｔｏｐ  １５０  ｔｉｍｅｓ  ｔｏ  ｑｕａｌｉｆｙ  ｆｏｒ  ｔｈｅ  Ｇｏｌｄ  ｌｅｖｅｌ  ｔｏｕｒｎａｍｅｎｔ！」）。ユーザは、資格認定試行を行うことを選択することができ、その結果、ゲーム画面１２１３が表示され、この試行の後に、ユーザは、プレイヤーの資格認定試行に関する情報を表示するレポート結果画面１２１４を表示することができる。結果画面１２１４は、さらに、プレイヤーの結果スコアが他のプレイヤーの間でどのようなランクにあるかを示すリーダーボードから取り出された情報、およびトーナメントについてプレイヤーが資格認定を受けたかどうかを識別する情報を表示することもできる。
【０１５１】
リーダーボード画面１２１１内のリストされているトーナメントを選択した後、ゲーム機は、そのトーナメントに対するエリミネーション詳細画面１２１５を表示することができる。エリミネーション詳細画面１２１５は、トーナメントステータス、プレイヤーの順位／ランキング、およびプレイヤーがまだトーナメントに入っている場合は、そのトーナメントに対する次のスケジュールされているゲームのリストを表示することができる。プレイヤーが次のラウンドを開始する準備ができている場合、プレイヤーは、詳細画面１２１５から対応するオプションを選択し、トーナメントロビー１２１６を入力することができ、そこで、プレイヤーは、次のラウンドの自分の対戦相手の参加を待つことができる。ロビー１２１６から、プレイヤーは、そのトーナメントに対するブラケット１２１７、ゲーム設定およびパラメータ１２１８、またはプレイヤー、チームメート、友人、トーナメント内の他の競争相手、および次回の対戦相手に関する統計量１２１９を表示することを選択できる。
【０１５２】
プレイヤーの対戦相手がチェックインしている場合、また両方のプレイヤーの準備が整っている場合、プレイヤーは、試合するゲーム画面１２２０、および試合の結果を示すゲーム後結果画面１２２１を表示することができる（上述のように）。
【０１５３】
上述のさまざまな特徴は、さまざまなコンセプトの単なる例示的な実装にすぎず、必要に応じて修正が可能である。例えば、上記のプレイヤーへの参照は、１人を意味するか、またはゲームを一緒にプレイしている人々のチームを指すことがある。いくつかのトーナメントでは、さまざまなプレイヤーがチームとして一緒に参加することを許すことにより（例えば、単一レースで）チーム、またはクランをサポートすることができる。チームメンバーのスコアは、ランキング比較のため集計することができる。
【０１５４】
他の可能な修正では、トーナメント参加者の脱落と不参加を処理する。プレイヤーが、登録および／または資格認定によりトーナメントに参加するが、トーナメントを完了できない場合（例えば、開始後に脱落するか、または予定時刻に全く姿を現さないなど）、累計スコアが０であるか、または失点を喫したかのようにそのプレイヤーを取り扱うことができる。
【０１５５】
他の可能な修正では、図１２に示されているさまざまな画面および本明細書で説明されている特徴は、ローカルの非ネットワーク接続プレイでも使用できる。例えば、マルチプレイヤートーナメントは、単一のゲーム機でホストされ、さまざまな特徴がそのゲーム機により実装されうる。
【０１５６】
上述の特徴は、好ましくは、パーソナルコンピュータまたはビデオゲーム機などのコンピューティングデバイス上で実行されうる実行可能命令としてコンピュータソフトウェア内に符号化され、その結果、図示されている画面が表示される。実行可能命令は、１つまたは複数のコンピュータディスク、ＲＡＭ、ＣＤ−ＲＯＭ、ＤＶＤ、ゲームカートリッジなどのコンピュータ可読媒体上に格納することができる。さらに、さまざまな特徴が上で説明されているが、それらすべてを同じ実施形態で実施する必要はない。その代わりに、必要に応じてさまざまな組合せおよび部分的組合せを実装することができ、本発明の真の範囲は、特許請求の範囲によってのみ制限されるべきである。
【０１５７】
本発明の主題は、構造的特徴および／または方法論的動作に固有の言語で説明されているが、添付の特許請求の範囲で定められている本発明の主題は、上で説明されている特定の特徴または動作に必ずしも限定されないことは理解されるであろう。むしろ、上述の特定の特徴および動作は、特許請求の範囲を実装する例示的な形態の例として開示されている。
【図面の簡単な説明】
【０１５８】
【図１】本明細書で説明されているさまざまな特徴を実装するために使用することができるゲーム機を例示する図である。
【図２】図１に示されているゲーム機において使用できるコンポーネントを例示する図である。
【図３】本明細書で説明されている特徴を実装するためにさまざまなゲーム機、および他の要素がどのように相互接続できるかを例示する図である。
【図４】ゲーム機を使用する例示的なネットワーク構成を示す図である。
【図５Ａ】本明細書で説明されている特徴を実装するために使用することができる例示的なコンピューティングデバイスを示す図である。
【図５Ｂ】本明細書で説明されている特徴を実装するための例示的なソフトウェア要素および概念を示す図である。
【図５Ｃ】本明細書で説明されている特徴を実装するための例示的なソフトウェア要素および概念を示す図である。
【図５Ｄ】本明細書で説明されている特徴を実装するための例示的なソフトウェア要素および概念を示す図である。
【図５Ｅ】本明細書で説明されている特徴を実装するための例示的なソフトウェア要素および概念を示す図である。
【図５Ｆ】本明細書で説明されている特徴を実装するための例示的なソフトウェア要素および概念を示す図である。
【図５Ｇ】本明細書で説明されている特徴を実装するための例示的なソフトウェア要素および概念を示す図である。
【図５Ｈ】本明細書で説明されている特徴を実装するための例示的なソフトウェア要素および概念を示す図である。
【図５Ｉ】本明細書で説明されている特徴を実装するための例示的なソフトウェア要素および概念を示す図である。
【図５Ｊ】本明細書で説明されている特徴を実装するための例示的なソフトウェア要素および概念を示す図である。
【図５Ｋ】本明細書で説明されている特徴を実装するための例示的なソフトウェア要素および概念を示す図である。
【図５Ｌ】本明細書で説明されている特徴を実装するための例示的なソフトウェア要素および概念を示す図である。
【図５Ｍ】本明細書で説明されている特徴を実装するための例示的なソフトウェア要素および概念を示す図である。
【図６】トーナメントを実施するための例示的なプロセスを示す図である。
【図７】トーナメントデータ構造体の一実施例を示す図である。
【図８Ａ】あるタイプのトーナメントに対する例示的なプロセスを示す図である。
【図８Ｂ】あるタイプのトーナメントに対する例示的なプロセスを示す図である。
【図８Ｃ】ランキングおよび再ランキングの例示的な進行を示す図である。
【図９】代替の種類のトーナメントに対する他の例示的なプロセスを示す図である。
【図１０Ａ】例示的なシード決定ブラケット（ｓｅｅｄｉｎｇ  ｂｒａｃｋｅｔ）とシード決定のプロセスを示す図である。
【図１０Ｂ】例示的なシード決定ブラケットとシード決定のプロセスを示す図である。
【図１１】シード決定ブラケットのもう１つの例を示す図である。
【図１２】さまざまなユーザインターフェイス画面がプレイヤーのゲーム機上でどのように使用できるかを示す例示的な関係図である。
【図１】
2009526603.tif 000006
【図２】
2009526603.tif 000007
【図３】
2009526603.tif 000008
【図４】
2009526603.tif 000009
【図５Ａ】
2009526603.tif 000010
【図５Ｂ】
2009526603.tif 000011
【図５Ｃ】
2009526603.tif 000012
【図５Ｄ】
2009526603.tif 000013
【図５Ｅ】
2009526603.tif 000014
【図５Ｆ】
2009526603.tif 000015
【図５Ｇ】
2009526603.tif 000016
【図５Ｈ】
2009526603.tif 000017
【図５Ｉ】
2009526603.tif 000018
【図５Ｊ】
2009526603.tif 000019
【図５Ｋ】
2009526603.tif 000020
【図５Ｌ】
2009526603.tif 000021
【図５Ｍ】
2009526603.tif 000022
【図６】
2009526603.tif 000023
【図７】
2009526603.tif 000024
【図８Ａ】
2009526603.tif 000025
【図８Ｂ】
2009526603.tif 000026
【図８Ｃ】
2009526603.tif 000027
【図９】
2009526603.tif 000028
【図１０Ａ】
2009526603.tif 000029
【図１０Ｂ】
2009526603.tif 000030
【図１１】
2009526603.tif 000031
【図１２】
2009526603.tif 000032
【国際調査報告】
2009526603.tif 000033
2009526603.tif 000034