(57)【要約】【課題】  デバイス間の近接性の程度に基づく突き合わせを提供すること。【解決手段】  デバイス間の近接性の程度に基づいて、ネットワークアドレスのグループ間の距離のレコードを維持する。現行のオンラインゲームセッションに関する情報を要求するコンピューティングデバイスに戻すべきオンラインゲームセッションについての順序付けを選択する。この選択に上記距離が使用される。【選択図】  図１
2004328734.tif 000002
【特許請求の範囲】
【請求項１】
コンピューティングデバイスから、１つまたは複数の基準を満たす１つまたは複数のオンラインゲームセッションの識別の要求を受信するステップと、
前記１つまたは複数の基準を満たす複数のオンラインゲームセッションを識別するステップと、
それぞれ前記複数のオンラインゲームセッションについて、前記コンピューティングデバイスと前記オンラインゲームセッションの一部である他のコンピューティングデバイスとの間の距離を決定するステップと、
前記複数のオンラインゲームセッションが前記コンピューティングデバイスで示すべき順序を選択し、前記順序が少なくとも部分的に決定した前記距離に基づくステップと、
前記複数のオンラインゲームセッションの識別子を前記コンピューティングデバイスに戻して、前記コンピューティングデバイスで選択した前記順序で表示するステップとを含むことを特徴とする方法。
【請求項２】
前記複数のオンラインゲームセッションの各々のために、前記他のコンピューティングデバイスは、前記オンラインゲームセッションのホストを含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記決定するステップは、どの前記コンピューティングデバイスとも直接通信せずに、前記距離を決定するステップを含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記コンピューティングデバイスと前記他のコンピューティングデバイスの間の距離を決定するステップは、
前記コンピューティングデバイスが割り当てられる第１のバケットを識別するステップと、
前記他のコンピューティングデバイスが割り当てられる第２のバケットを識別するステップと、
前記第１のバケットおよび前記第２のバケットの間の距離を識別するステップとを含むことを特徴とする請求項１に記載の方法。
【請求項５】
前記第１のバケットおよび前記第２のバケットの間の距離を識別するステップは、前記距離をテーブルで探索するステップを含むことを特徴とする請求項４に記載の方法。
【請求項６】
前記第１のバケットと前記第２のバケットの間の距離は、前記第１のバケットおよび前記第２のバケットが同じバケットである場合はゼロであることを特徴とする請求項４に記載の方法。
【請求項７】
前記決定するステップは、前記コンピューティングデバイスのためのインターネットプロバイダ、および前記他のコンピューティングデバイスのためのインターネットプロバイダを識別するステップをさらに含み、
前記第１のバケットおよび前記第２のバケットが同じバケットである場合、前記選択するステップは、前記コンピューティングデバイスへの前記インターネットプロバイダが前記他のコンピューティングデバイスへの前記インターネットプロバイダと同じか否かに、少なくとも部分的に基づいて前記順序を選択するステップをさらに含むことを特徴とする請求項４に記載の方法。
【請求項８】
前記決定するステップは、前記コンピューティングデバイスのためのインターネットプロバイダ、および前記他のコンピューティングデバイスのためのインターネットプロバイダを識別するステップをさらに含み、
前記選択するステップは、前記順序を、前記コンピューティングデバイスのためのインターネットプロバイダが、前記他のコンピューティングデバイスのためのインターネットプロバイダと同じか否かに、少なくとも部分的に基づいて選択するステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項９】
前記コンピューティングデバイスと前記他のコンピューティングデバイスの間の距離を決定するステップは、
前記コンピューティングデバイスが割り当てられた第１の層の第１のバケット、および前記コンピューティングデバイスが割り当てられた第２の層の第２のバケットを識別するステップと、
前記他のコンピューティングデバイスが割り当てられた前記第１の層の第３のバケット、および前記他のコンピューティングデバイスが割り当てられた前記第２の層の第４のバケットを識別するステップと、
前記第１のバケットと前記第３のバケットの間の第１の距離を識別するステップと、
前記第２のバケットと前記第４のバケットの間の第２の距離を識別するステップとを含み、
前記選択するステップは、前記第１の距離および前記第２の距離に少なくとも部分的に基づくことを特徴とする請求項１に記載の方法。
【請求項１０】
前記コンピューティングデバイスと前記他のコンピューティングデバイスの間の距離を決定するステップは、
前記コンピューティングデバイスの地理的位置の経度および緯度値を識別するステップと、
前記他のコンピューティングデバイスの地理的位置の経度および緯度値を識別するステップと、
前記コンピューティングデバイスの地理的位置の前記経度および緯度値と前記他のコンピューティングデバイスの地理的位置の前記経度および緯度値との差を決定するステップとを含むことを特徴とする請求項１に記載の方法。
【請求項１１】
前記コンピューティングデバイスと前記他のコンピューティングデバイスの間の前記距離を決定するステップは、それを介して前記コンピューティングデバイスと前記他のコンピューティングデバイスの間の通信が行われるネットワークの様々な部分における様々なデータ転送速度を確認するステップを含むことを特徴とする請求項１に記載の方法。
【請求項１２】
前記ネットワークは、インターネットを含むことを特徴とする請求項１１に記載の方法。
【請求項１３】
前記コンピューティングデバイスは、第１のゲームコンソールを備え、前記他のコンピューティングデバイスは、第２のゲームコンソールを備えることを特徴とする請求項１に記載の方法。
【請求項１４】
前記方法が、前記コンピューティングデバイスおよび前記他のコンピューティングデバイスから分離した突き合わせシステムにおいて実施されることを特徴とする請求項１に記載の方法。
【請求項１５】
前記１つまたは複数のオンラインゲームセッションは、短期間のゲームセッションを含むことを特徴とする請求項１に記載の方法。
【請求項１６】
前記１つまたは複数のオンラインゲームセッションは、トーナメントゲームセッションを含むことを特徴とする請求項１に記載の方法。
【請求項１７】
複数の命令を格納しており、前記複数の命令が１つまたは複数のプロセッサによって実行される場合に、前記１つまたは複数のプロセッサが、
ネットワークアドレスのグループ間の距離のレコードを維持し、
少なくとも部分的に前記レコードに基づいて、現行のオンラインゲームセッションに関する情報を要求するコンピューティングデバイスに戻すべきオンラインゲームセッションについての順序付けを選択するようにさせることを特徴とする１つまたは複数のコンピュータ可読媒体。
【請求項１８】
前記１つまたは複数のプロセッサが、前記コンピューティングデバイスから分離した突き合わせシステムにおいて実装されることを特徴とする請求項１７に記載の１つまたは複数のコンピュータ可読媒体。
【請求項１９】
前記コンピューティングデバイスはゲームコンソールを備えることを特徴とする請求項１７に記載の１つまたは複数のコンピュータ可読媒体。
【請求項２０】
ネットワークアドレスのグループ間の前記距離は、それを介して前記ネットワークアドレスに割り当てられたデバイス間の通信が行われるネットワークの様々な部分における様々なデータ転送速度に少なくとも部分的に基づくことを特徴とする請求項１７に記載の１つまたは複数のコンピュータ可読媒体。
【請求項２１】
ネットワークアドレスのグループ間の前記距離は、前記ネットワークアドレスが割り当てられたデバイスの地理的位置の経度および緯度値に少なくとも部分的に基づくことを特徴とする請求項１７に記載の１つまたは複数のコンピュータ可読媒体。
【請求項２２】
前記レコードはテーブルを含むことを特徴とする請求項１７に記載の１つまたは複数のコンピュータ可読媒体。
【請求項２３】
前記命令は、さらに、前記１つまたは複数のプロセッサが、
前記ネットワークアドレスのインターネットプロバイダのレコードを維持し、
前記距離のレコードおよび前記インターネットプロバイダのレコードに少なくとも部分的に基づいて前記順序付けを選択するようにさせることを特徴とする請求項１７に記載の１つまたは複数のコンピュータ可読媒体。
【請求項２４】
前記オンラインゲームセッションは、１つまたは複数の短期間のゲームセッションおよび持続性のゲームセッションを含むことを特徴とする請求項１７に記載の１つまたは複数のコンピュータ可読媒体。
【請求項２５】
複数のオンラインゲームセッションを識別し、複数のコンピューティングデバイスのうちの１つは、各前記オンラインゲームセッションの一部であるステップと、
前記複数のオンラインゲームセッションについての順序付けを決定し、前記順序付けは、ゲームコンソールと各前記複数のコンピューティングデバイスの間の距離に少なくとも部分的に基づき、前記順序付けが、前記ゲームコンソールと前記複数のコンピューティングデバイスの間のどの通信も使用せずに決定されるステップとを含むことを特徴とする方法。
【請求項２６】
前記方法が、前記複数のコンピューティングデバイスから分離した突き合わせシステムで実施されることを特徴とする請求項２５に記載の方法。
【請求項２７】
前記複数のコンピューティングデバイスの１つは、ゲームコンソールを備えることを特徴とする請求項２５に記載の方法。
【請求項２８】
前記距離は、それを介して前記ゲームコンソールと前記複数のコンピューティングデバイスの間の通信が行われるネットワークの様々な部分における様々なデータ転送速度に少なくとも部分的に基づくことを特徴とする請求項２５に記載の方法。
【請求項２９】
前記距離は、前記ゲームコンソールおよび前記複数のコンピューティングデバイスの地理的位置の経度および緯度値に少なくとも部分的に基づくことを特徴とする請求項２５に記載の方法。
【請求項３０】
前記距離がテーブル内で維持されることを特徴とする請求項２５に記載の方法。
【請求項３１】
前記順序付けは、さらに、前記ゲームコンソールのインターネットプロバイダ、および各前記複数のコンピューティングデバイスのインターネットプロバイダに少なくとも部分的に基づくことを特徴とする請求項２５に記載の方法。
【請求項３２】
前記複数のオンラインゲームセッションは、トーナメントゲームセッションを含むことを特徴とする請求項２５に記載の方法。
【請求項３３】
前記複数のオンラインゲームセッションは、どのコンピューティングデバイスも現時点では、前記ゲームセッションの個々のゲームプレイセッションでプレイしていないゲームセッションを含むことを特徴とする請求項２５に記載の方法。
【請求項３４】
ネットワークとの通信を可能にするインターフェースと、
処理装置とを備え、前記処理装置が、
突き合わせサービスからの現行のオンラインゲームセッションに関する情報を要求し、前記突き合わせサービスが前記ネットワークを介してシステムに結合されており、
前記突き合わせサービスから、複数の現行のオンラインゲームセッションの表示を受信し、
前記システムと、前記複数の現行のオンラインゲームセッションの一部である他のデバイスとの間の距離に少なくとも部分的に基づく順序で、前記複数の現行のオンラインゲームセッションの少なくともサブセットを表示することを特徴とするシステム。
【請求項３５】
前記システムは、ゲームコンソールを備えることを特徴とする請求項３４に記載のシステム。
【請求項３６】
前記システムはディスプレイを備え、前記処理装置は前記ディスプレイを介して前記サブセットを表示することを特徴とする請求項３４に記載のシステム。
【請求項３７】
前記処理装置はさらに、前記突き合わせサービスから、前記複数の現行のオンラインゲームセッションについての前記順序を受信することを特徴とする請求項３４に記載のシステム。
【請求項３８】
前記ネットワークは、インターネットを含むことを特徴とする請求項３４に記載のシステム。
【請求項３９】
前記距離は、前記ネットワークの様々な部分における様々なデータ転送速度に少なくとも部分的に基づくことを特徴とする請求項３４に記載のシステム。
【請求項４０】
前記距離は、前記システムおよび前記他のデバイスの地理的位置の経度および緯度値に少なくとも部分的に基づくことを特徴とする請求項３４に記載のシステム。
【請求項４１】
前記順序はさらに、前記システムのインターネットプロバイダおよび各前記他のデバイスのインターネットプロバイダに少なくとも部分的に基づくことを特徴とする請求項３４に記載のシステム。
【請求項４２】
複数の命令を格納しており、前記複数の命令が１つまたは複数のプロセッサによって実行される場合に、前記１つまたは複数のプロセッサが、
ネットワークを介して突き合わせサービスから、参加することができる複数のオンラインゲームセッションのリストを得、
ユーザに、前記１つまたは複数のプロセッサと、前記複数のオンラインゲームセッションのうちの１つの一部であるそれぞれ複数のコンピューティングデバイスとの間の距離に少なくとも部分的に基づく順序で前記複数のオンラインゲームセッションの識別子を表示するようにさせることを特徴とする１つまたは複数のコンピュータ可読媒体。
【請求項４３】
前記距離は、前記ネットワークの様々な部分における様々なデータ転送速度に少なくとも部分的に基づくことを特徴とする請求項４２に記載の１つまたは複数のコンピュータ可読媒体。
【請求項４４】
前記距離は、前記１つまたは複数のプロセッサおよび前記複数のコンピューティングデバイスの経度および緯度値に少なくとも部分的に基づくことを特徴とする請求項４２に記載の１つまたは複数のコンピュータ可読媒体。
【請求項４５】
前記順序はさらに、それぞれ前記複数のコンピューティングデバイスのインターネットプロバイダに少なくとも部分的に基づくことを特徴とする請求項４２に記載の１つまたは複数のコンピュータ可読媒体。
【請求項４６】
前記１つまたは複数のプロセッサはゲームコンソールの一部であることを特徴とする請求項４２に記載の１つまたは複数のコンピュータ可読媒体。
【請求項４７】
前記複数のオンラインゲームセッションは、１つまたは複数の短期間のゲームセッションおよび持続性のゲームセッションを含むことを特徴とする請求項４２に記載の１つまたは複数のコンピュータ可読媒体。
【請求項４８】
ネットワークアドレスのグループ間の距離のレコードを維持する手段と、
前記レコードに少なくとも部分的に基づいて、現行のオンラインゲームセッションに関する情報を要求するコンピューティングデバイスに戻すべきオンラインゲームセッションについての順序付けを選択する手段とを含むことを特徴とするシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オンラインゲームに関し、詳細にはデバイス間の近接性の測度に基づく突き合わせに関する。
【背景技術】
【０００２】
従来、専用コンソールを備えたゲームシステムは、限られた数のプレーヤ（例えば２〜４人のプレーヤ）に対応する独立型の機械であった。パーソナルコンピュータベースのゲームは、一部には、インターネットを介して多くの遠隔のプレーヤとオンラインでゲームができるために人気が高まっている。したがって、専用ゲームコンソールに関する一傾向は、インターネットベースのオンラインゲームなど、ネットワークを介したゲームを容易にする能力を提供することである。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
オンラインゲームで直面する一問題は、パーソナルコンピュータベースであれ専用ゲームコンソールベースであれ、ネットワークの待ち時間である。２つの異なるデバイスのユーザが互いにオンラインでゲームをする場合、そのデバイス間のデータの送信により様々な遅延が生じることがある。こうした遅延は、１人または複数のユーザに、ゲームがのろく、または「停滞している」ように見えるなど、ゲームプレイに悪影響を与えかねない。ネットワークの遅延が、ゲームプレイに悪影響を与える可能性がある状態を考えると、オンラインゲームに関して、デバイス間のネットワークの遅延を低減することが有益である。
【課題を解決するための手段】
【０００４】
以下に説明するデバイス間の近接性の程度（ｐｒｏｘｉｍｉｔｙ  ｍｅａｓｕｒｅｓ）に基づく突き合わせは、上述その他の問題を解決する助けをする。
【０００５】
デバイス間の近接性の程度に基づく突き合わせを本明細書で記載する。
【０００６】
一態様により、ネットワークアドレスのグループ間の距離のレコードを維持する。次いで、現行のオンラインゲームセッションに関する情報を要求するコンピューティングデバイスに戻すべきオンラインゲームセッションについての順序を選択する。この順序は、少なくとも部分的に距離のレコードに基づく。こうした現行のオンラインゲームセッションは、（例えば、コンピューティングデバイスがすべて退出した場合に終了する）短期間のセッションでもよく、または代替として（例えば、その継続時間中の特定時間に、コンピューティングデバイスが１つもゲームに参加していなくても、より長期間にわたって継続される）トーナメントなど、より長期間のセッションでもよい。
【発明を実施するための最良の形態】
【０００７】
本明細書を通じて、同じ番号を、同様の構成要素および／または特徴を示すために使用する。
【０００８】
図１は、デバイス間の近接性の程度に基づいた突き合わせを使用することができる、例示の環境１００を示すブロック図である。複数のコンピューティングデバイス１０２（１）、．．．、１０２（ｃ）が、突き合わせシステム１０４に結合されている。デバイス１０２とシステム１０４の間、ならびにデバイス１０２間の結合は、システム１０４と各デバイス１０２および／またはデバイス１０２間の通信を可能にする多様な結合のいずれでもよい。一実施形態では、この結合はインターネットを含み、任意選択で１つまたは複数の他のネットワーク（例えばローカルエリアネットワーク（ＬＡＮ）または広域ネットワーク（ＷＡＮ））も含むことができる。例えば、各コンピューティングデバイス１０２を、ホームベースＬＡＮ上に位置させ、各ホームベースＬＡＮをインターネットを介してシステム１０４に結合することができる。この結合を、有線および／または無線ネットワークを含む、任意の多様なネットワークタイプおよび技法を用いて実施することができる。
【０００９】
コンピューティングデバイス１０２は、それぞれデバイスのユーザが互いにゲームをすることができるようにする。通常、オンラインゲームは、互いに通信する２つ以上のデバイスで、デバイスの１人または複数のユーザが互いにゲームをすることができるようにすることを指す。通常、この通信は、インターネット上で実行されるが、代替えとして（インターネットの代わりに、またはインターネットに加えて）他のネットワーク上でも実行することができる。
【００１０】
突き合わせシステム１０４は、コンピューティングデバイス１０２によってホスティングされる複数のゲームセッションに関する情報を維持し、プレーヤがゲームセッションを探索し、新規のゲームセッションを生成し、ゲームセッションに参加し、ゲームセッションを終了し、データを互いに通信するコンピューティングデバイスによって使用される情報を得ることができるようにする。ゲームセッションのホスティングデバイスは、突き合わせシステム１０４（または代替の他のデバイス）が新規のゲームセッションを生成するようにさせることなどにより、ゲームセッションの開始に応答可能なデバイスである。代替として、ホスティングデバイスをいくつかの他の方法で選択し、決定することができる。例えば、ホスティングデバイスを無作為に、または他の基準によって選択することができる。
【００１１】
実施形態によっては、ゲームセッションは、１人または複数のプレーヤを含むゲームタイトルの一例を指す。こうしたゲームセッションを、本明細書では短期間のゲームセッションとも呼ぶ。ゲームセッションのプレーヤ全員がそのセッションを終了した場合（例えば、ゲームセッションを終了し、システム１０４からログアウトし、そのデバイスの電力を下げた場合などに）、ゲームセッションが終了する。ゲームセッションは、複数ラウンドのプレイを含むことができ、または代替として新規のセッションをプレイの各ラウンド毎に生成することができる。
【００１２】
他の実施形態では、ゲームセッションは、数日間、数週間、数カ月、または数年など、より長期間にわたって持続される。こうしたゲームセッションを、本明細書では、長期間のゲームセッションまたは、持続性のゲームセッションと呼ぶ。こうした持続性のゲームセッションの一例は、トーナメントである。トーナメントでは、様々なプレーヤ間での複数の突き合わせが、通常は長期間にわたって行われる。各突き合わせを、トーナメントゲームセッションの一部である個々のゲームプレイセッションとして見ることができる。トーナメントゲームセッションは、個々のゲームプレイセッションが完了するまで終了しない。したがって、トーナメントゲームセッションでは、個々のどのゲームプレイセッションもプレイされない（例えば、トーナメントゲームセッションでどのコンピューティングデバイスもゲームをしていない、または電源さえも入れていない）ときもある。
【００１３】
本明細書で使用するように、ゲームセッションは、こうした短期間のゲームセッションおよびこうした持続性のゲームセッション、ならびに持続性ゲームセッションの個々のゲームプレイセッションを指す。
【００１４】
それぞれ複数の異なるゲームタイトルについての複数のゲームセッションに関する情報は、システム１０４によって並行して維持することができる。プレーヤは、ゲームセッションから退出し（終了し）、ゲームセッションに参加することができる。セッションがゲームプレイの特定点に達した後、セッションに参加する能力を制限することができ、または代替として、プレーヤはゲームプレイ中に任意にゲームセッションに参加し退出することができ、ゲームセッションの終了時に、プレーヤが、ゲームセッション開始時と異なってもよい。ゲームセッションに参加し退出する能力への制限は、ゲームタイトル設計者の要望に基づき、ゲームタイトルによって変えることができる。
【００１５】
コンピューティングデバイスを使用するプレーヤがゲームセッションに参加する場合、そのコンピューティングデバイスもそのゲームセッションに参加すると呼ぶことができる。ゲームセッションでプレイする各プレーヤが使用するデバイスも、ゲームセッションのメンバまたは一部と呼ぶ。
【００１６】
コンピューティングデバイス１０２は、追加の機能性（例えば、デジタルＶＣＲとして動作することができるデジタルビデオ記録機能、（放送信号、ケーブル信号、衛星信号などであっても）テレビジョン信号を同調し復号化することができるチャネル同調機能など）、デスクトップＰＣ、ワークステーション、携帯用コンピュータ、セルラー電話、インターネット装置、サーバコンピュータ、などを組み込んだ専用ゲームコンソールでもよい。さらに、様々なタイプのデバイス１０２が、突き合わせシステム１０４を同時に使用することができる。例えば、専用ゲームコンソールのユーザは、携帯用コンピュータのユーザに対してゲームセッションに参加し、プレイすることができ、または、ある製造業者が製造したゲームコンソールのユーザが、別の製造業者が製造した専用ゲームコンソールのユーザに対してゲームセッションに参加し、プレイすることができる。
【００１７】
図１の環境１００の一特定例の実施形態を、２００２年６月１０日に出願の同時係属共願の米国特許出願第１０／１７０，００３号で見ることができる。
【００１８】
図２は、例示の突き合わせシステム１０４を追加で詳細に示すブロック図である。突き合わせシステム１０４は、制御モジュール（突き合わせモジュール１２２）および現行のオンラインゲームセッションを記述するレコード１２４を含む。こうした現行のオンラインゲームセッションは、短期および持続性ゲームセッションを含む。突き合わせモジュール１２２は、ゲームセッションの生成、参加、終了、探索などに関する要求を受信する。こうした要求は、図１のコンピューティングデバイス１０２など、要求デバイスから受信される。こうした要求が受信された場合、突き合わせモジュール１２２は、受信した要求を実行するのに適した物として突き合わせシステム１０４の他の構成要素と対話する。
【００１９】
突き合わせシステム１０４は、突き合わせシステム１０４によって現行で管理されている様々なゲームセッションを記述する情報を格納する複数のレコード１２４を維持する。通常、複数のオンラインゲームセッションが常に存在するため、突き合わせシステム１０４は通常、複数の記述を常に含んでいる。突き合わせシステム１０４によって管理されるゲームセッションは通常、突き合わせシステム１０４によって生成されるこうしたゲームセッションである。突き合わせシステム１０４によって管理されるいくつかのゲームセッションには、公開されているため、追加のプレーヤがそのセッションに参加することができるものもあれば、閉鎖的であるため、追加のプレーヤがそのセッションに参加することができないものもある。レコード１２４は、多様なデータ構造のいずれかを使用して維持することができる。例示の一実施形態では、各ゲームセッションに関する情報は、１つまたは複数のテーブルへの入力として格納される。
【００２０】
突き合わせシステム１０４は、複数のコンピューティングデバイス間でのゲームセッションの設定を容易にするように設計されている。本明細書の説明の大部分で、突き合わせシステム１０４は、ゲームセッションを管理する物として説明しているが、それは、ゲームセッションのメンバの複数のデバイス間でのゲームデータの転送を管理する物としてではない。むしろ、コンピューティングデバイスが、ゲームプレイ中に複数のコンピューティングデバイス間で、または他のサーバデバイス（図２で示していない）を介してゲームデータを転送する。代替として、ゲームデータ転送によっては、突き合わせシステム１０４を介して行われる物もある。
【００２１】
複数のコンピューティングデバイスが、オンラインゲームセッションに参加する場合、デバイスの１つは、ゲームセッションのホストと（およびホストデバイスとも）呼ばれる。一実施形態では、ゲームセッションのホストは、ゲームセッションを生成したデバイスである。他の実施形態では、他の基準を用いてゲームセッションのホストを決定する。ゲームセッションのホストは通常、以下にさらに詳細に説明するように、ゲームセッションに参加することができる別のデバイスへの近接性を決定する際に使用されるデバイスである。ただし、ゲームセッションの一部である他のデバイスを代わりに使用することもできる。
【００２２】
ゲームセッション毎に多様な情報をレコード１２４で維持することができる。一実施形態では、この情報は、少なくともゲームセッションでプレイされるゲームの記述、およびゲームセッションのホストの識別子を含む。
【００２３】
ゲームの記述は、ゲームのタイトルならびにゲームの１つまたは複数の属性を含む。属性は、ゲームセッションに関連する１つのデータ、またはゲームセッションのプレーヤである。ゲームの属性は、ゲームタイトルの設計者の要望に基づき、ゲームによって変えることができる。例えば、属性は、新規のセッションの生成を開始するプレーヤのスキルレベル、その新規のセッションに参加することができる他のプレーヤの所望のスキルレベル、プレイが行われるゲームのロケーション（例えば、日中、夜、特定の競技場、特定の都市、特定のトラック、天候状態など）、プレイ中に使用すべきオブジェクト（例えば、車のタイプ、飛行機または宇宙船のタイプなど）、ゲームの様々な登場人物の特徴（例えば、使用可能な特別の力、使用可能な魔法の呪文など）などを示すことができる。さらに、ゲームタイトルは、含まれる物ではなく、要求に固有のものである（例えば、異なるタイプの要求をゲームタイトル毎に使用することができる）。
【００２４】
ゲームセッションのホストの識別子は、ホストコンピューティングデバイスのアドレス構造である。このアドレス構造は十分な情報を含んで、本明細書で説明するように、近接性の測定を可能にする。識別子は、（例えばインターネットプロトコルバージョン４（ＩＰＶ４）、あるいはインターネットプロトコルバージョン６（ＩＰＶ６）、または代替としてネットワーク識別子あるいは他の形式に従う）ＩＰアドレスでもよい。
【００２５】
一実施形態では、このアドレス構造は、ホストコンピューティングデバイスについての完全修飾（完全変換、ｆｕｌｌｙ  ｑｕａｌｉｆｉｅｄ）アドレス（ＸＮＡＤＤＲ）と呼ばれる。ホストコンピューティングデバイスの完全修飾アドレスは、十分な情報を含んで、ホストコンピューティングデバイスが、ネットワークルータなどネットワークアドレストランスレーション（ＮＡＴ）の背後に配置されても、他のコンピューティングデバイスが、そのホストコンピューティングデバイスにアクセスできるようにする。
【００２６】
コンピューティングデバイスについての完全修飾アドレスの一例には、コンピューティングデバイス用Ｅｔｈｅｒｎｅｔ（登録商標）ＭＡＣアドレス、コンピューティングデバイスのローカルＩＰ（インターネットプロトコル）アドレス（これは、コンピューティングデバイスが有していると考えられるＩＰアドレスであり、それから突き合わせシステムが（例えば、コンピューティングデバイスと突き合わせシステムの間に位置するルータなどＮＡＴデバイス（または突き合わせシステムの代わりに動作する仲介手段）により）コンピューティングデバイスからのデータパケットを受け取るＩＰアドレスとは異なってもよい）、突き合わせシステム（または仲介手段）がコンピューティングデバイスからデータパケットを受け取るＩＰデータアドレスおよびポート（これは、コンピューティングデバイスのローカルＩＰアドレスと同じでもよく、または代替として異なる物（例えばＮＡＴデバイスのアドレス）でもよい）、複数の突き合わせシステム（または仲介手段）のクラスタ内で突き合わせシステム（または仲介手段）を一意に識別する論理デバイス番号（突き合わせシステム（または仲介手段）に割り当てられた識別子）、セキュリティーパラメータインデックス（ＳＰＩ）値（例えばＳＰＩ１および／またはＳＰＩ２）、およびコンピューティングデバイスｉｄが含まれる。完全修飾アドレスのコンテンツは、コンピューティングデバイスから受け取ったデータパケット内に埋め込まれた情報、ならびにコンピューティングデバイスと突き合わせシステム（または仲介手段）の間に安全な接続を確立する際に受け取る情報に基づいて決定することができる。
【００２７】
突き合わせシステム（または突き合わせシステムの代わりに動作する仲介手段）が、データパケットをコンピューティングデバイスから受け取るＩＰアドレスは、以下により詳細に説明するように、そのコンピューティングデバイスについての近接性の程度を決定する際に使用される。通常、ＩＰアドレスは、インターネットサービスプロバイダ（ＩＳＰ）によって割り当てられ、時間がたてば変更することができる。例えば、このＩＰアドレスは、データパケットがインターネットを介してコンピューティングデバイスによって送信されるＩＰアドレスである。さらに、複数のデバイスが、同じＩＰアドレスを共用することができる（例えば複数のデバイスを、インターネットとＬＡＮの間に配置したルータを備えたＬＡＮ上に配置することができ、インターネット上のルータのＩＰアドレスは、ＬＡＮ上のデバイスすべてからデータパケットが送信されるＩＰアドレスである）。
【００２８】
突き合わせシステム１０４は、ゲームセッションに参加するための要求によって指定された基準を満たさないゲームセッションをフィルタリングするフィルタモジュール１２６も含む。動作中、デバイスがゲームセッションへの参加を望む場合（例えば、ユーザのゲームセッションに参加する要求に応答して）、短期間のゲームセッションであろうと長期間のゲームセッションであろうと、デバイスは、突き合わせシステム１０４に、参加することができる現行のゲームセッションの記述および／または識別子の要求を通信する。突き合わせシステム１０４は、記述および／または識別子を、１つまたは複数の現行のゲームセッションを要求しているデバイスに戻し、デバイスは、参加すべきゲームセッションの１つを選択することができる。デバイスは、自動的に（例えばデバイス上で稼動しているソフトウェアによって示された）ゲームセッションの１つを選択することができ、または代替として、ユーザのデバイスでの入力（例えばユーザが様々なゲームセッションの作表の表示からゲームセッションの１つを選択すること）に応答してゲームセッションの１つを選択することができる。
【００２９】
突き合わせシステム１０４は、１組の記述１２４を識別して、こうした要求デバイスに戻す。フィルタモジュール１２６は、要求デバイスに戻すべき１組についての記述１２４だけを選択するように動作する。この記述１２４は要求デバイスによって指定された基準を満たす。例えば、要求デバイスは、ゲームセッションがある一定のスキルレベルのプレーヤだけ、または特定のレーストラックだけ、あるいは特定の競技場だけなどを含むように指定することができる。さらに、フィルタモジュール１２６は、参加するのに現時点で使用可能な要求デバイスに戻すべき１組についての記述１２４だけを選択するように動作する（例えば、ゲームセッションがプレーヤで満員であり、現時点ではそれ以上参加できない場合、そのゲームセッションは、要求デバイスへの１組の一部として戻されない）。
【００３０】
要求デバイスによって指定された基準を満たす１つまたは複数のこうした記述１２４が、要求デバイスに戻される。実施形態によっては、突き合わせシステム１０４は、要求デバイスに戻す記述１２４の数を制限する。一実施形態では、突き合わせシステム１０４は、わずか５０個の記述１２４を要求デバイスに戻すが、様々な実施形態で異なる制限を加えることができる。要求デバイスに戻される記述１２４の数の制限によって、記述の送信に使用されるネットワーク帯域幅の範囲、ならびに要求デバイスで提示（例えば、表示）すべきデータの量を減少することができる。
【００３１】
要求デバイスに戻すべき１組の記述１２４が得られた場合、分類モジュール１２８は、その１組の中の記述を分類して、記述を要求デバイスによって特定の（分類された）順序で表示できるようにする。この記述を要求デバイスにこの分類した順序で送信することができ、または代替えとして適切な順序の指示を記述と共に送信し、それらを要求デバイスでその分類した順序で組み立てることができる。
【００３２】
分類モジュール１２８は、ゲームセッション毎に生成された近接性の程度によって記述を分類する。ゲームセッション毎の近接性の程度は、要求デバイスとそのゲームセッションに関するホストデバイスとの間のおおよその距離を示す。代わりに、この距離は要求デバイスとゲームセッションに参加している他のデバイス（例えば、ゲームセッションの一部であるホストデバイスではない、あるデバイス）の間の距離でもよい。実施形態によっては、分類モジュール１２８は、互いに近接したデバイス間のデータ転送は、通常、互いにより遠くにあるデバイス間のデータ転送よりも速いという仮定で作動する。したがって通常、デバイス間のデータ転送の予測された遅延は、互いに近接したデバイスのほうが小さい。
【００３３】
近接性の程度によってゲーム記述を分類することにより、要求デバイスに比較的近い（したがって、要求デバイスとゲームセッションの一部である他のデバイスとの間のデータ転送の予測される遅延が小さい）デバイスによってホスティングされるゲームセッションを要求デバイスのユーザにより顕著に示すことができる。例えば、こうしたゲームセッションをゲームセッション記述のリストの始めに表示することができる。したがって、ユーザは、こうしたゲームセッションを選択する可能性が高くなり、それによってユーザ経験が向上する。
【００３４】
近接性の程度は、多様な方法で生成することができる。２つのデバイスに関する近接性の程度を生成することができる一方法は、各デバイスの（例えば経度および緯度に関する）おおよその地理的位置の決定による。この位置情報は、様々な方法で得ることができる。例えば、ユーザは、ユーザが登録またはログオンして、突き合わせシステム１０４のサービスを利用する場合に記録された自己に関連する地理的位置を有することができる。他の例では、ある組織または会社が地理的位置に対するＩＰアドレスをマッピングする情報を生成する。ホストデバイスのＩＰアドレスは、（例えば、記述の一部であるＸＮＡＤＤＲにおける）ゲームセッション記述から知ることができ、要求デバイスのＩＰアドレスも、（例えば、要求デバイスに関するＸＮＡＤＤＲを調査し、またはデバイスから受信したデータパケットに関するソースＩＰアドレスを調査することによって）知ることができる。地理的位置に対するＩＰアドレスをマッピングするこうした情報は、例えばＤｉｇｉｔａｌ  Ｅｎｖｏｙ  ｏｆ  Ｎｏｒｃｒｏｓｓ、ＧＡから得ることができる。
【００３５】
実施形態によっては、突き合わせシステム１０４はＩＰマッピングテーブル１３０を維持する。地理的位置に対するＩＰアドレスをマッピングする情報は、マッピングテーブル１３０内に格納され、それによって、分類モジュール１２８がそのＩＰアドレスに基づいてデバイスの地理的位置を決定することができるようにする。２つのデバイスに関する地理的位置が得られた場合、２つのデバイス間の距離は多様な方法のいずれかで簡単に計算することができる。例えば、デバイスが球面（地球）上にあると仮定することができ、したがって２つのデバイス間の球面距離を計算することができる。別の例では、デバイスが平面（例えば米国の地図）上にあると仮定することができ、したがって２つのデバイス間の直線距離を計算することができる。次いで、この２つのデバイス間の計算された距離を、２つのデバイスについての近接性の程度として使用することができる。
【００３６】
２つのデバイスに関する近接性の程度を生成することができる他の方法は、デバイスの地理的位置に基づいているが、ただし各ＩＰアドレスの地理的位置を維持するのではなく、ＩＰアドレスは、複数の「バケット」または「グループ」内に共にグループ化される。ＩＰアドレスをグループ化するバケットの数は、可変であり設計を選択できる。一実施形態では、米国内のＩＰアドレスは、約１５０個のバケットに区分されているが、代わりに（１５０よりも多いまたは少ない）様々な数のバケットを使用することができる。例えば、他の実施形態では、米国内のＩＰアドレスは、約６個のバケットに区分されている。
【００３７】
地理的位置もこうした各バケットに関連する。一実施形態では、バケットのおおよその中心をそのバケットに関連する地理的位置として使用しているが、代わりに異なる位置を使用することもできる。
【００３８】
特定の地理的領域（例えば米国）についてのバケットは、多様な方法で生成することができる。一実施形態では、バケットは、地理的領域をいくつかの小領域に区分することによって生成される。この小領域は、人口の中心、または物理的区域など、様々な要因に基づくことができる。例えば、地理的領域を約１５０の別々の物理的区域に区分し、それぞれを１つのバケットにすることができる。他の例では、それぞれ地理的領域内の上位１５０の人口の中心が、バケットとして働くことができる。
【００３９】
他の実施形態では、ＩＰアドレスを「ＩＰ人口」の中心の周辺を中心とするバケットに割り当てる。ただし、「ＩＰ人口」はＩＰアドレスの数を指す。ＩＰアドレスが多く集中するところ（例えば１５０の最大集中地）を確認し、こうした集中地をバケットとして使用する。地理的領域はそれぞれこうしたバケットに関連し、それぞれこうした地理的領域はそのバケット内にＩＰアドレスを有するこれらの物理的位置を含む。地理的領域は、円形など特定の地理的形状によって画定することができる。次いで、最初はどのバケット内にも存在しなかった任意のＩＰアドレスを（例えばバケットの中心までの距離に基づいて）最も近いバケットに割り当てる。地理的形状を変更して、または代替として変更せずにこうした追加のＩＰアドレスを含むことができる。
【００４０】
他の実施形態では、複数のバケットに区分すべき地理的領域を、最初に単一のバケットに関連付ける。次いで、このバケットが閾値量のＩＰアドレスを含むまで、ＩＰアドレスをこの最初のバケットに加える。この閾値量は可変であり、一実施形態では、使用を所望されるバケットの数は、これらのバケットに割り当てるべきＩＰアドレスの合計数で割った数である。ＩＰアドレスの閾値量に達した場合、そのバケットを２つのバケットに分割する。この分割は、多様な分割ヒューリスティック法のいずれかを使用して行うことができ、一実施形態では、分割前のバケット内のＩＰアドレスの約半分がそれぞれ分割後のバケット内に存在するように分割を行う。次いで、各追加のＩＰアドレスを（例えば、バケットの中心までの距離に基づいて）最も近いバケットに割り当てることによって、追加のＩＰアドレスをそれぞれこの２つの分割後のバケット内に追加する。こうした分割後のバケットの１つが閾値量のＩＰアドレスを含んだ場合、そのバケットは分割される。このＩＰアドレスの追加およびバケットの分割は、割り当てるべきＩＰアドレスがすべてバケットに割り当てられるまで続けられる。
【００４１】
実施形態によっては、突き合わせシステム１０４はＩＰマッピングテーブル１３０内にバケット情報を維持する。ＩＰマッピングテーブルは、バケットに対するＩＰアドレスのマッピングを格納し、それによって分類モジュール１２８が、デバイスがデバイスのＩＰアドレスに基づいて割り当てられるバケットを決定することができるようにする。突き合わせシステム１０４は、２つのバケット間の距離を識別するバケット近接性テーブル１３２も維持する。２つのバケット間の距離は、それぞれ２つのバケットに関連する地理的位置（例えば、それらのおおよその地理的中心）に基づいており、（例えば、球面距離、直線距離などに関して上述した方法に類似の）多様な方法で計算することができる。
【００４２】
図３は、例示のＩＰマッピングテーブル２００を示す。ＩＰマッピングテーブル２００は、例えば図２のテーブル１３０でもよい。テーブル２００で示したように、ＩＰアドレス２０２は特定のバケット２０４に対してマッピングされる。ＩＰアドレス２０２内の値ｘは、任意の有効な整数（例えば０から２５５まで）を示す。したがって、テーブル２００で見ることができるように、個々のＩＰアドレスをバケットに対してマッピングし、またはＩＰアドレスの範囲をバケットに対してマッピングすることができる。代替えとして、ＩＰマッピングテーブル２００は、「から」および「まで」列を含んで、ＩＰアドレスの範囲を示すことができる。
【００４３】
ＩＰマッピングテーブル２００は、インターネットプロバイダ列２０６も含む。状況によっては、突き合わせシステム１０４は、特定のＩＰアドレスまたはアドレスの範囲を発行するＩＳＰの知識を有することができ、こうした状況では、インターネットプロバイダ列２０６の情報を含む。次いで、分類モジュール１２８は、近接性の程度を生成する際にこの情報を使用することができる。一実施形態では、分類モジュール１２８は、同じバケット内にあり、同じＩＳＰから自己のＩＰアドレスを受け取った２つのデバイスは、同じバケット内にあるが異なるＩＳＰから自己のＩＰアドレスを受け取った２つのデバイスよりも近接していると想定されている。したがって、分類モジュール１２８は、同じバケット内にあり、同じＩＳＰから自己のＩＰアドレスを受け取った２つのデバイスがより近い近接性を反映するように調整する。この調整は、固定値（例えば、近接性の程度の１０の減少）、または動的値（例えば、近接性の程度を９０％減少すること）でもよい。
【００４４】
代替えとして、他の実施形態では、分類モジュール１２８は、同じＩＳＰから自己のＩＰアドレスを受け取った２つのデバイスが、異なるＩＳＰから自己のＩＰアドレスを受け取った２つのデバイスよりも近接していると想定されている。したがって、分類モジュール１２８は、２つのデバイスが同じＩＳＰから自己のＩＰアドレスを受け取った場合に、より近い近接性を反映するように調整する。この調整は、２つのデバイスが同じバケット内にあるか否かにかかわらず、また２つのデバイスについての近接性の程度を生成する方法がバケットを使用するか否かにかかわらず、分類モジュール１２８によって行われる。
【００４５】
図４は、例示の近接性テーブル２５０を示す。近接性テーブル２５０は、例えば図２のバケット近接性テーブル１３２でもよい。テーブル２５０で示したように、２つのバケットの列２５２および２５４が使用され、距離の列２５６は２つの識別されたバケット間の距離を示す値を含む。この距離は、本明細書で説明した分類を行う場合に、相対的比較に使用され、この距離は任意の単位でもよい。例えば、この距離をマイルまたはキロメートル、あるいは代替として他の抽象的なものまたは任意の単位で測定することができる。テーブル２５０の典型的な対称であることの性質を利用することによって、記憶空間を（例えば約半分だけ）減少することができることを留意されたい。例えば、列２５２でどのバケットが識別され、列２５４でどのバケットが識別されたかにかかわらず、バケット２と３の間の距離は同じである。したがって、距離は一度格納されるだけでよい。代替実施形態では、様々なネットワークまたは環境の変数が値を対称的でないようにすることができる。例えば、何らかの理由で、バケット２からバケット３までの距離が、バケット３からバケット２までの距離と異なってもよい。値が対称的でない場合は、両方の差（または両方の差の何らかの表示）が格納される。
【００４６】
２つのデバイスについての近接性の程度を生成することができる他の方法は、それらの地理的位置に部分的に基づく他に、ネットワークの部分を介した様々なデータ転送速度も確認するハイブリッドモデルである。インターネットを含むいくつかのネットワークは、様々な速度でデータ転送をすることができる様々な部分を有する。例えば、１つまたは複数のインターネット「バックボーン」ネットワークは、インターネット上の主なトラフィックを操作し、高速伝送経路を使用する。通常、データは、インターネットバックボーンネットワークから遠い２つの地理的位置の間よりも速い、インターネットバックボーンネットワークに近い２つの地理的位置の間で転送することができる。
【００４７】
ハイブリッドモデルは、以下のように、２つのデバイスについての近接性の程度を決定することによって、こうした速度の分散を確認することを試みる。各デバイスと、デバイスからのデータをインターネットバックボーンネットワーク上で転送することができる最も近い地理点との間の地理的距離（例えば、上述の球面距離または直線距離）が識別される。インターネットバックボーン上のこの２点間のバックボーンの距離も識別される。次いで、この２つの（デバイスとインターネットバックボーンネットワーク間の）地理的距離をバックボーンの距離に加えて、２つのデバイス間の距離を得る。このモデルでは、バックボーンの距離は、２点間で想定される地理的距離（例えば上述にように、球面距離または直線距離）よりも短い。例えば、２点間のバックボーンの距離は、２点間で想定される地理的距離の半分である。
【００４８】
上述のように、２つのデバイスについての近接性の程度を生成することができる方法すべてを参照すると、データパケットを２つのデバイス間でやり取りする必要がないことに留意されたい。２つのデバイス間の直接の通信は、２つのデバイスについての近接性の程度の生成には必要ではない。例えば、２つのデバイス間でテストメッセージを送る必要はなく、ピングに関するどのプロトコル、および２つのデバイス間の応答パケットの使用も必要ではない。むしろ、近接性の程度は、突き合わせシステムによって生成される。
【００４９】
近接性の程度を計算する方法にかかわらず、計算された近接性の程度は、１組のゲームセッションをフィルタリングされた物（これらのセッションが要求デバイスによって提供された基準と一致する物）として分類する基礎として使用される。計算された近接性の程度は、使用することができる１つの分類基準であり、追加の分類基準も１組のゲームセッションを分類する際に適用することができる。こうした追加の分類基準の例には、最大の空位を有する（参加することができる最大数のユーザを有する）ゲームセッションを１組の最初に（または代替としてその組の最後に）移動すること、最大数のプレーヤを有するこうしたゲームセッションを組の最後に（または代替として組の最初に）移動すること、比較的古いゲームセッションを比較的新しいゲームセッションに優先させること、ゲームプレイの好ましいスタイルまたはトーナメント選好など、任意選択の探索基準とそれらがどの程度接近して一致するかに基づいてゲームセッションをランク付けすることが含まれる。
【００５０】
多様な分類基準を様々な順序で１組のゲームセッションに適用することができる。少数のバケット（例えば、６個のバケット）が存在する一実施形態では、計算した近接性の程度が第１の分類基準として適用され、続いて１つまたは複数の他の基準が適用される。多数のバケット（例えば１５０個のバケット）が存在する他の実施形態では、計算した近接性の程度が最後の分類基準として適用される。
【００５１】
さらに、実施形態によっては、複数の層（またはレベル）のバケットを使用することができる。こうした実施形態では、ＩＰアドレスがそれぞれこうした層内の特定のバケットに割り当てられる。次いで、この様々なバケット層を様々な分類基準として使用することができる。例えば、第１のバケット層は６個のバケットを有し、第２のバケット層は１５０個のバケットを有すると仮定する。この第１のバケット層を第１の分類基準として適用することができ、次いで、上述の１つまたは複数の他の分類基準を適用することができ、次いで、第２のバケット層を最後の分類基準として適用することができる。
【００５２】
図５は、デバイスについての近接性の程度を生成する際に使用すべき情報を格納する例示のプロセス３００を示す流れ図である。プロセス３００は、ソフトウェア、ファームウェア、ハードウェア、またはその組合せで実行することができる。
【００５３】
最初に、デバイスが存在する地理的領域（例えば全世界、または１つまたは複数の特定の国）を所望数のバケットに区分し（動作３０２）、各ＩＰアドレスをこれらのバケットの１つに割り当てる（動作３０４）。さらに、ＩＰアドレスのプロバイダが既知である各ＩＰアドレスをインターネットプロバイダ値に割り当てる（３０６）。次いで、これらの割当てまたはマッピングを維持する（動作３０８）。例えば、こうした割当て、またはマッピングは、図３のテーブル２００で維持することができる。
【００５４】
図６は、ゲームセッションの突き合わせおよび分類のための例示のプロセス３４０を示す流れ図である。一実施形態では、プロセス３４０が、図２の突き合わせシステム１０４によって実行される。プロセス３４０は、ソフトウェア、ファームウェア、ハードウェア、またはその組合せで実行することができる。
【００５５】
最初に、ゲームセッションのホストが割り当てられた１つまたは複数のバケットを維持する（動作３４２）。要求デバイスが割り当てられたバケットを識別し（動作３４４）、要求デバイスによって提供された任意のフィルタ基準を満たすゲームセッションを識別する（動作３４６）。次いで、１組の識別されたゲームセッションを、ホストおよび要求デバイスが割り当てられたバケット間の距離によって分類する（動作３４８）。次いで、この分類した１組のゲームセッションを要求デバイスに戻す（動作３５０）。
【００５６】
代替えとして、突き合わせシステム１０４で１組の識別されたゲームセッションを分類せずに、その組を分類するために使用した情報（例えば、近接性の程度）を要求デバイスに伝送することができる。次いで、要求デバイスは、突き合わせシステム１０４から受け取った情報を使用して分類を行うことができる。
【００５７】
図５および６の動作は、説明を簡単にする目的で特定の順序で示してあり、この動作を異なる順序で実行することができることを留意されたい。２つ以上の動作を並行して実行することができることも留意されたい。例えば、図５では、動作３０６を動作３０４の前に、動作３０４の後に、または動作３０４と並行して実行することができる。他の例によれば、図６では、動作３４６を動作３４４の前に、動作３４４の後に、または動作３４４と並行して実行することができる。
【００５８】
図７は、本明細書で説明した技法を実施するために使用することができる、汎用コンピュータ環境５００を示す。コンピュータ環境５００は、コンピューティング環境の単なる一例であり、コンピュータおよびネットワークアーキテクチャの使用または機能性の範囲へのいかなる制限も示唆する物ではない。コンピュータ環境５００は、例示のコンピュータ環境５００で示した任意の１つまたは組合せの構成要素に関連する傾向または要件を有する物として解釈されるべきではない。
【００５９】
コンピュータ環境５００は、コンピュータ５０２の形態の汎用コンピューティングデバイスを含む。例えば、コンピュータ５０２は、図１のコンピューティングデバイス１０２、または図１もしくは図２の突き合わせシステム１０４でもよい。コンピュータ５０２の構成要素には、（任意選択で暗号化プロセッサもしくはコプロセッサ、またはセキュリティープロセッサもしくはコプロセッサを含む）１つまたは複数のプロセッサまたは処理装置５０４、システムメモリ５０６、およびプロセッサ５０４を含む様々なシステム構成要素をシステムメモリ５０６に結合するシステムバス５０８が含まれるが、それだけに限定されない。
【００６０】
システムバス５０８は、メモリバスまたはメモリ制御装置、周辺バス、アクセラレィティッドグラフィックスポート（ＡＧＳ）、およびプロセッサまたは多様なバスアーキテクチャのいずれかを使用するローカルバスを含む、いくつかのタイプのバス構造のいずれかの１つまたは複数の物を示す。一例として、こうしたアーキテクチャには、Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ（ＩＳＡ）バス、Ｍｉｃｒｏ  Ｃｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ（ＭＣＡ）バス、Ｅｎｈａｎｃｅｄ  ＩＳＡ（ＥＩＳＡ）バス、Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ（ＶＥＳＡ）ローカルバス、およびＭｅｚｚａｎｉｎｅバスとしても知られているＰｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔｓ（ＰＣＩ）バスが含まれる。
【００６１】
通常、コンピュータ５０２には、多様なコンピュータ可読媒体が含まれる。こうした媒体は、コンピュータ５０２によってアクセス可能な任意の使用可能な媒体でもよく、揮発性および不揮発性媒体、取り外し可能または取り外し不可能な媒体が含まれる。
【００６２】
システムメモリ５０６には、ランダムアクセスメモリ（ＲＡＭ）５１０など揮発性メモリの形態、および／または読み出し専用メモリ（ＲＯＭ）５１２など不揮発性メモリの形態のコンピュータ可読媒体が含まれる。起動中など、コンピュータ５０２内の要素の間で情報を転送する助けをする基本ルーチンを含む基本入出力システム（ＢＩＯＳ）５１４は、ＲＯＭ５１２内に格納される。ＲＡＭ５１０は通常、処理装置５０４に即時にアクセス可能であり、または処理装置５０４によって現時点で操作されているデータおよび／またはプログラムモジュールを含む。
【００６３】
コンピュータ５０２は、他の取り外し可能／取り外し不可能な揮発性／不揮発性コンピュータ記憶媒体も含む。一例として、図７は、取り外し不可能な不揮発性磁気媒体（図示せず）から読取り、それに書き込むためのハードディスク駆動装置５１６、取り外し可能な不揮発性磁気ディスク５２０（例えば「フロッピー（登録商標）ディスク」）から読取り、それに書き込むための磁気ディスク駆動装置５１８、およびＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭまたは他の光媒体など、取り外し可能な不揮発性光ディスク５２４から読取り、および／またはそれに書き込むための光ディスク駆動装置５２２を示す。ハードディスク駆動装置５１６、磁気ディスク駆動装置５１８、および光ディスク駆動装置５２２は、それぞれ１つまたは複数のデータ媒体インターフェース５２６によってシステムバス５０８に接続される。代替えとして、ハードディスク駆動装置５１６、磁気ディスク駆動装置５１８、および光ディスク駆動装置５２２を１つまたは複数のインターフェース（図示せず）によってシステムバス５０８に接続することもできる。
【００６４】
ディスク駆動装置、およびその関連するコンピュータ可読媒体は、コンピュータ５０２のためのコンピュータ可読命令、データ構造、プログラムモジュール、および他のデータの不揮発性記憶装置を提供する。例は、ハードディスク５１６、取り外し可能な磁気ディスク５２０、および取り外し可能な光ディスク５２４を示しているが、理解されるように、磁気カセットまたは他の磁気記憶デバイス、フラッシュメモリカード、ＣＤ−ＲＯＭ、デジタルビデオディスク（ＤＶＤ）または他の光記憶装置、ランダムアクセスメモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、電気的消去書込み可能な読出し専用メモリ（ＥＥＰＲＯＭ）など、コンピュータによってアクセス可能なデータを格納することができる他のタイプのコンピュータ可読媒体を使用して、例示のコンピューティングシステムおよび環境を実装することもできる。
【００６５】
任意の数のプログラムモジュールを、一例として、オペレーティングシステム５２６、１つまたは複数のアプリケーションプログラム５２８、他のプログラムモジュール５３０、およびプログラムデータ５３２を含む、ハードディスク５１６、磁気ディスク５２０、光ディスク５２４、ＲＯＭ５１２、および／またはＲＡＭ５１０に格納することができる。それぞれこうしたオペレーティングシステム５２６、１つまたは複数のアプリケーションプログラム５２８、他のプログラムモジュール５３０、およびプログラムデータ５３２（またはいくつかのその組合せ）は、分散したファイルシステムをサポートする常駐構成要素のすべてまたは一部を実装することができる。
【００６６】
ユーザは、キーボード５３４およびポインティングデバイス５３６（例えば「マウス」）など入力デバイスを介して、コマンドおよび情報をコンピュータ５０２に入力することができる。他の入力デバイス５３８（具体的に図示せず）には、マイクロフォン、ジョイスティック、ゲームパッド、サテライトディッシュ、シリアルポート、スキャナ、および／または同様の物が含まれる。上述その他の入力デバイスは、システムバス５０８に結合された入出力インターフェース５４０を介して処理装置５０４に接続されるが、並列ポート、ゲームポート、またはユニバーサルシリアルバス（ＵＳＢ）など、他のインターフェースおよびバス構造によって接続することもできる。
【００６７】
モニタ５４２または他のタイプの表示デバイスも、ビデオアダプタ５４４などインターフェースを介してシステムバス５０８に接続することができる。モニタ５４２に加えて、他の出力周辺デバイスは、入出力インターフェース５４０を介してコンピュータ５０２に接続することができるスピーカ（図示せず）およびプリンタ５４６などの構成要素を含むことができる。
【００６８】
コンピュータ５０２は、リモートコンピューティングデバイス５４８など１つまたは複数のリモートコンピュータへの論理接続を使用するネットワーク化した環境で、操作することができる。一例として、リモートコンピューティングデバイス５４８は、パーソナルコンピュータ、携帯用コンピュータ、サーバ、ルータ、ネットワークコンピュータ、ピアデバイス、または他の共用ネットワークノード、ゲームコンソールなどでもよい。リモートコンピューティングデバイス５４８は、コンピュータ５０２に関して本明細書で説明した要素および特徴の多くまたはすべてを含むことができる携帯用コンピュータとして示してある。
【００６９】
コンピュータ５０２とリモートコンピュータ５４８の間の論理接続は、ローカルエリアネットワーク（ＬＡＮ）５５０および広域ネットワーク（ＷＡＮ）５５２として示してある。こうしたネットワーク環境は、オフィス、企業規模のコンピュータネットワーク、イントラネット、インターネットでは一般的である。
【００７０】
ＬＡＮネットワーク環境で実装する場合、コンピュータ５０２は、ネットワークインターフェースまたはアダプタ５５４を介してローカルネットワーク５５０に接続される。ＷＡＮネットワーク環境で実装する場合、コンピュータ５０２は通常、モデム５５６または他の手段を備えて、広域ネットワーク５５２上で通信を確立する。モデム５５６は、コンピュータ５０２に内在または外在してもよく、入出力インターフェース５４０または他の適した機構を介して、システムバス５０８に接続することができる。理解されるように、図で示したネットワーク接続は、例示の物であり、コンピュータ５０２と５４８の間の１つまたは複数の通信リンクを確立する他の手段を用いることもできる。
【００７１】
コンピュータ環境５００で図示した物など、ネットワーク化された環境では、コンピュータ５０２に対して図で示したプログラムモジュール、またはその一部をリモートメモリ記憶装置に格納することができる。一例として、リモートアプリケーションプログラム５５８は、リモートコンピュータ５４８のメモリデバイスに常駐する。図示目的で、アプリケーションプログラム、およびオペレーティングシステムなど他の実行可能なプログラム構成要素を、本明細書では個別のブロックとして示してあるが、理解されるように、こうしたプログラムおよび構成要素は、様々なときにコンピューティングデバイス５０２の様々な記憶装置の構成要素内に常駐し、コンピュータの１つまたは複数のデータプロセッサによって実行される。
【００７２】
様々なモジュールおよび技法を、本明細書で、プログラムモジュールなど、１つまたは複数のコンピュータまたは他のデバイスで実行される、コンピュータで実行可能な命令の一般のコンテキストで説明する。一般に、プログラムモジュールには、特定のタスクを実行し、または特定の抽象データタイプを実装する、ルーチン、プログラム、オブジェクト、構成要素、データ構造などが含まれる。通常、プログラムモジュールの機能性は、様々な実施形態で所望されるように組合せ、または分散することができる。
【００７３】
こうしたモジュールおよび技法の実装は、ある形態のコンピュータ可読媒体を介して格納または伝送される。コンピュータ可読媒体は、コンピュータでアクセスすることができる任意の使用可能な媒体でもよい。制限を加える物ではないが、一例として、コンピュータ可読媒体は、「コンピュータ記憶媒体」および「通信媒体」を備えることができる。
【００７４】
「コンピュータ記憶媒体」には、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報を記憶するための任意の方法または技法で実装される、揮発性および不揮発性、取り外し可能および取り外し不可能な媒体が含まれる。コンピュータ記憶媒体には、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたは他のメモリ技法、ＣＤ−ＲＯＭ、デジタルビデオディスク（ＤＶＤ）または他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶デバイス、あるいは所望の情報を格納するために使用することができ、コンピュータでアクセスすることができる任意の他の媒体が含まれるが、それだけに限定されない。
【００７５】
「通信媒体」は通常、コンピュータ可読命令、データ構造、プログラムモジュール、または搬送波あるいは他の輸送機構など、変調データ信号の他のデータを包含する。通信媒体にも任意の情報送受媒体が含まれる。用語「変調データ信号」は、１つまたは複数の組のその特性を有する、または情報を信号に暗号化するような方法で変調した信号を指す。一例として、通信媒体には、有線ネットワークまたは直接線式接続など有線媒体、および音波、ＲＦ、赤外線、および他の無線媒体などの無線媒体が含まれるが、それだけに限定されない。上述の任意の物の組合せもコンピュータ可読媒体の範疇に含まれる。
【００７６】
図８は、ゲームコンソール６００の機能構成要素をより詳細に示す。例えば、ゲームコンソール６００は、図１のコンピューティングデバイス１０２として使用することができる。ゲームコンソール６００は、中央処理装置（ＣＰＵ）６０１、およびメモリ制御装置６０２を有しており、メモリ制御装置６０２は、フラッシュＲＯＭ（読み出し専用メモリ）６０４、ＲＡＭ（ランダムアクセスメモリ）６０６、ハードディスク駆動装置６０８、および携帯用媒体駆動装置６０９を含む様々なタイプのメモリに、プロセッサがアクセスし易くする。ＣＰＵ６０１は、レベル１キャッシュ６１０およびレベル２キャッシュ６１２を備えて、一時的にデータを格納し、それによってメモリアクセスサイクルの数を減少し、処理速度および処理能力を向上させる。
【００７７】
ＣＰＵ６０１、メモリ制御装置６０２、および様々なメモリデバイスは、直列または並列バス、メモリバス、周辺バス、およびプロセッサ、または様々なバスアーキテクチャのいずれかを使用するローカルバスを含む、１つまたは複数のバスを介して相互接続される。一例として、こうしたアーキテクチャには、Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ（ＩＳＡ）バス、Ｍｉｃｒｏ  Ｃｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ（ＭＣＡ）バス、Ｅｎｈａｎｃｅｄ  ＩＳＡ（ＥＩＳＡ）バス、Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ（ＶＥＳＡ）ローカルバス、およびＭｅｚｚａｎｉｎｅバスとしても知られているＰｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔｓ（ＰＣＩ）バスが含まれる。
【００７８】
１つの適した実施形態として、ＣＰＵ６０１、メモリ制御装置６０２、ＲＯＭ６０４、およびＲＡＭ６０６は、共通モジュール６１４上で統合される。この実施形態では、ＲＯＭ６０４は、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  ＩｎｔｅｒｃｏｎｎｅｃｔバスおよびＲＯＭバス（どちらも図示せず）を介してメモリ制御装置６０２に接続されるフラッシュＲＯＭとして構成されている。ＲＡＭ６０６は、別のバス（図示せず）を介してメモリ制御装置６０２によって独立して制御される、複数のＤＤＲ  ＳＤＲＡＭ（Ｄｏｕｂｌｅ  Ｄａｔａ  Ｒａｔｅ  Ｓｙｎｃｈｒｏｎｏｕｓ  Ｄｙｎａｍｉｃ  ＲＡＭ）として構成される。ハードディスク駆動装置６０８および携帯用媒体駆動装置６０９は、ＰＣＩバスおよびＡＴＡ（ＡＴ  Ａｔｔａｃｈｍｅｎｔ）バス６１６を介してメモリ制御装置に接続される。
【００７９】
３次元グラフィックス処理装置６２０、およびビデオ符号器６２２は、高速および高解像度グラフィックス処理のためのビデオ処理パイプラインを形成する。データは、グラフィックス処理装置６２０からビデオ符号器６２２にデジタルビデオバス（図示せず）を介して伝送される。音声処理装置２２４および音声コーデック（符号器／復号器）６２６は、高忠実性およびステレオ処理を伴った対応する音声処理パイプラインを形成する。音声データは、通信リンク（図示せず）を介して、音声処理装置６２４と音声コーデック６２６の間で伝送される。ビデオおよび音声処理パイプラインは、データをＡ／Ｖ（音声／ビデオ）ポート６２８に出力して、テレビジョンまたは他のディスプレイに伝送する。図で示した実施形態では、ビデオおよび音声処理構成要素６２０〜６２８は、モジュール６１４上に搭載されている。
【００８０】
ＵＳＢホスト制御装置６３０およびネットワークインターフェース６３２もモジュール６１４上に実装される。このＵＳＢホスト制御装置６３０は、ＣＰＵ６０１およびメモリ制御装置６０２にバス（例えばＰＣＩバス）を介して結合され、周辺制御装置６３６（１）〜６３６（４）のためのホストとして働く。ネットワークインターフェース２３２は、ネットワーク（例えばインターネット、ホームネットワークなど）へのアクセスを提供し、Ｅｔｈｅｒｎｅｔ（登録商標）カード、モデム、Ｂｌｕｅｔｏｏｔｈモジュール、ケーブルモデムなどを含む多様な有線または無線インターフェース構成要素のいずれでもよい。
【００８１】
ゲームコンソール６００は、１つの二重制御装置サポートサブアセンブリ６４０（１）および６４０（２）を有し、各サブアセンブリは２つのゲーム制御装置６３６（１）〜６３６（４）をサポートする。フロントパネル入出力サブアセンブリ６４２は、電源ボタン６３１および媒体駆動装置排出ボタン６３３、ならびに任意のＬＥＤ（発光ダイオード）、またはゲームコンソールの外面上に露出された他のインジケータの機能性をサポートする。サブアセンブリ６４０（１）、６４０（２）、および６４２は、１つまたは複数のケーブルアセンブリ６４４を介してモジュール６１４に結合される。
【００８２】
８つのメモリユニット６３４（１）〜６３４（８）は、４つの制御装置６３６（１）〜６３６（４）に結合可能である、すなわち制御装置毎に２つのメモリユニットに結合可能であるところが示してある。各メモリユニット６３４は、ゲーム、ゲームのパラメータ、および他のデータを格納することができる、追加の記憶装置を提供する。メモリユニット６３４は、制御装置内に挿入された場合、メモリ制御装置６０２でアクセスすることができる。
【００８３】
システム給電モジュール６５０は、ゲームコンソール６００の構成要素に電気を供給する。ファン６５２は、ゲームコンソール６００内の回路を冷却する。
【００８４】
コンソールユーザインターフェース（ＵＩ）アプリケーション６６０は、ハードディスク駆動装置６０８上に格納される。ゲームコンソールの電源を入れると、コンソールアプリケーション６６０の様々な部分がＲＡＭ６０６および／またはキャッシュ６１０、６１２にロードされ、ＣＰＵ６０１上で実行される。コンソールアプリケーション６６０は、ゲームコンソール上で使用可能な様々な媒体のタイプに誘導する場合に、無矛盾のユーザ経験を提供するグラフィカルユーザインターフェースを示す。
【００８５】
ゲームコンソール６００は、暗号化エンジンを実装して、暗号化、復号化、認証、デジタル符号化、ハッシングなど、共通の暗号化機能を実行する。暗号化エンジンは、ＣＰＵ６０１の一部として、またはＣＰＵ上で実行するハードディスク駆動装置６０８上に格納されたソフトウェアにおいて実装することができ、ＣＰＵが暗号化機能を果たすように構成されるようにする。代替えとして、暗号化機能を実行するように設計された暗号化プロセッサまたはコプロセッサをゲームコンソール６００に備えることができる。
【００８６】
ゲームコンソール６００は、単にシステムをテレビジョンまたは他のディスプレイに接続することによって、独立型システムとして操作することができる。この独立型モードで、ゲームコンソール６００は、１人または複数のプレーヤがゲームをし、映画を見、または音楽を聞くことができるようにする。ただし、ブロードバンド接続性の統合がネットワークインターフェース６３２を介して可能な場合、ゲームコンソール６００は、上述のように、さらにオンラインゲームの参加者として操作することができる。
【００８７】
上述の説明では、構造的特長および／または方法論的動作に対して特有の言語を使用したが、特許請求の範囲で定義した本発明は、上述の特定の特徴または動作に制限されないことを理解されたい。むしろ特有の特徴および動作は、本発明を実施する例示の形態として開示した物である。
【図面の簡単な説明】
【００８８】
【図１】デバイス間の近接性の程度に基づく突き合わせを使用することができる、例示の環境を示すブロック図である。
【図２】例示の突き合わせシステムをさらに詳細に示すブロック図である。
【図３】例示のマッピングテーブルを示す図である。
【図４】例示の近接性テーブルを示す図である。
【図５】デバイスに関する近接性の程度を生成する際に使用すべき情報を格納する例示のプロセスを示す流れ図である。
【図６】ゲームセッションを突き合わせ、分類する例示のプロセスを示す流れ図である。
【図７】本明細書で説明した技法を実施するために使用することができる、汎用コンピュータ環境を示す図である。
【図８】ゲームコンソールの機能構成要素をより詳細に示す図である。
【符号の説明】
【００８９】
１００  環境
１０２  コンピューティングデバイス
１０４  突き合わせシステム
１２２  突き合わせモジュール
１２４  記述、レコード
１２６  フィルタモジュール
１２８  分類モジュール
１３０  ＩＰマッピングテーブル
１３２  バケット近接テーブル
２００  ＩＰマッピングテーブル
２０２  ＩＰアドレス
２０４  バケット
２０６  インターネットプロバイダ列
２５０  近接テーブル
２５２、２５４  バケット列
２５６  距離列
５００  コンピュータ環境
５０２  コンピュータ
５０４  処理装置
５０６  システムメモリ
５０８  システムバス、モニタ
５１０  ＲＡＭ
５１２  ＲＯＭ
５１６  ハードディスク駆動装置
５１８  磁気ディスク駆動装置
５２０  磁気ディスク
５２２  光ディスク駆動装置
５２４  光ディスク
５２６  オペレーティングシステム
５２８  アプリケーションプログラム
５３０  プログラムモジュール
５３２  プログラムデータ
５３４  キーボード
５３６  ポインティングデバイス
５３８  入力デバイス
５４０  入出力インターフェース
５４２  モニタ
５４４  ビデオアダプタ
５４６  プリンタ
５４８  リモートコンピュータ
５５０  ローカルエリアネットワーク（ＬＡＮ）
５５２  広域ネットワーク（ＷＡＮ）
５５４  アダプタ
５５６  モデム
５５８  リモートアプリケーションプログラム
６００  ゲームコンソール
６０１  中央処理装置（ＣＰＵ）
６０２  メモリ制御装置
６０４  フラッシュＲＯＭ
６０６  ＲＡＭ
６０８  ハードディスク駆動装置
６０９  携帯用媒体駆動装置
６１０  レベル１キャッシュ
６１２  レベル２キャッシュ
６１４  モジュール
６１６  ＡＴＡ（ＡＴ  Ａｔｔａｃｈｍｅｎｔ）バス
６２０  ３次元グラフィックス処理装置
６２２  ビデオ符号器
６２６  音声コーデック（符号器／復号器）
６２８  Ａ／Ｖ（音声／ビデオ）ポート
６３０  ＵＳＢホスト制御装置
６３２  ネットワークインターフェース
６３３  媒体駆動装置排出ボタン
６３４  メモリユニット
６３６（１）〜（４）  周辺制御装置
６４０（１）、（２）  二重制御装置サポートサブアセンブリ
６４２  フロントパネル入出力サブアセンブリ
６４４  ケーブルアセンブリ
６５０  システム給電モジュール
６５２  ファン
６６０  コンソールアプリケーション
【図１】
2004328734.tif 000003
【図２】
2004328734.tif 000004
【図３】
2004328734.tif 000005
【図４】
2004328734.tif 000006
【図５】
2004328734.tif 000007
【図６】
2004328734.tif 000008
【図７】
2004328734.tif 000009
【図８】
2004328734.tif 000010