説明

デバイス間の近接性の程度に基づく突き合わせ

【課題】 デバイス間の近接性の程度に基づく突き合わせを提供すること。
【解決手段】 デバイス間の近接性の程度に基づいて、ネットワークアドレスのグループ間の距離のレコードを維持する。現行のオンラインゲームセッションに関する情報を要求するコンピューティングデバイスに戻すべきオンラインゲームセッションについての順序付けを選択する。この選択に上記距離が使用される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、オンラインゲームに関し、詳細にはデバイス間の近接性の測度に基づく突き合わせに関する。
【背景技術】
【0002】
従来、専用コンソールを備えたゲームシステムは、限られた数のプレーヤ(例えば2〜4人のプレーヤ)に対応する独立型の機械であった。パーソナルコンピュータベースのゲームは、一部には、インターネットを介して多くの遠隔のプレーヤとオンラインでゲームができるために人気が高まっている。したがって、専用ゲームコンソールに関する一傾向は、インターネットベースのオンラインゲームなど、ネットワークを介したゲームを容易にする能力を提供することである。
【発明の開示】
【発明が解決しようとする課題】
【0003】
オンラインゲームで直面する一問題は、パーソナルコンピュータベースであれ専用ゲームコンソールベースであれ、ネットワークの待ち時間である。2つの異なるデバイスのユーザが互いにオンラインでゲームをする場合、そのデバイス間のデータの送信により様々な遅延が生じることがある。こうした遅延は、1人または複数のユーザに、ゲームがのろく、または「停滞している」ように見えるなど、ゲームプレイに悪影響を与えかねない。ネットワークの遅延が、ゲームプレイに悪影響を与える可能性がある状態を考えると、オンラインゲームに関して、デバイス間のネットワークの遅延を低減することが有益である。
【課題を解決するための手段】
【0004】
以下に説明するデバイス間の近接性の程度(proximity measures)に基づく突き合わせは、上述その他の問題を解決する助けをする。
【0005】
デバイス間の近接性の程度に基づく突き合わせを本明細書で記載する。
【0006】
一態様により、ネットワークアドレスのグループ間の距離のレコードを維持する。次いで、現行のオンラインゲームセッションに関する情報を要求するコンピューティングデバイスに戻すべきオンラインゲームセッションについての順序を選択する。この順序は、少なくとも部分的に距離のレコードに基づく。こうした現行のオンラインゲームセッションは、(例えば、コンピューティングデバイスがすべて退出した場合に終了する)短期間のセッションでもよく、または代替として(例えば、その継続時間中の特定時間に、コンピューティングデバイスが1つもゲームに参加していなくても、より長期間にわたって継続される)トーナメントなど、より長期間のセッションでもよい。
【発明を実施するための最良の形態】
【0007】
本明細書を通じて、同じ番号を、同様の構成要素および/または特徴を示すために使用する。
【0008】
図1は、デバイス間の近接性の程度に基づいた突き合わせを使用することができる、例示の環境100を示すブロック図である。複数のコンピューティングデバイス102(1)、...、102(c)が、突き合わせシステム104に結合されている。デバイス102とシステム104の間、ならびにデバイス102間の結合は、システム104と各デバイス102および/またはデバイス102間の通信を可能にする多様な結合のいずれでもよい。一実施形態では、この結合はインターネットを含み、任意選択で1つまたは複数の他のネットワーク(例えばローカルエリアネットワーク(LAN)または広域ネットワーク(WAN))も含むことができる。例えば、各コンピューティングデバイス102を、ホームベースLAN上に位置させ、各ホームベースLANをインターネットを介してシステム104に結合することができる。この結合を、有線および/または無線ネットワークを含む、任意の多様なネットワークタイプおよび技法を用いて実施することができる。
【0009】
コンピューティングデバイス102は、それぞれデバイスのユーザが互いにゲームをすることができるようにする。通常、オンラインゲームは、互いに通信する2つ以上のデバイスで、デバイスの1人または複数のユーザが互いにゲームをすることができるようにすることを指す。通常、この通信は、インターネット上で実行されるが、代替えとして(インターネットの代わりに、またはインターネットに加えて)他のネットワーク上でも実行することができる。
【0010】
突き合わせシステム104は、コンピューティングデバイス102によってホスティングされる複数のゲームセッションに関する情報を維持し、プレーヤがゲームセッションを探索し、新規のゲームセッションを生成し、ゲームセッションに参加し、ゲームセッションを終了し、データを互いに通信するコンピューティングデバイスによって使用される情報を得ることができるようにする。ゲームセッションのホスティングデバイスは、突き合わせシステム104(または代替の他のデバイス)が新規のゲームセッションを生成するようにさせることなどにより、ゲームセッションの開始に応答可能なデバイスである。代替として、ホスティングデバイスをいくつかの他の方法で選択し、決定することができる。例えば、ホスティングデバイスを無作為に、または他の基準によって選択することができる。
【0011】
実施形態によっては、ゲームセッションは、1人または複数のプレーヤを含むゲームタイトルの一例を指す。こうしたゲームセッションを、本明細書では短期間のゲームセッションとも呼ぶ。ゲームセッションのプレーヤ全員がそのセッションを終了した場合(例えば、ゲームセッションを終了し、システム104からログアウトし、そのデバイスの電力を下げた場合などに)、ゲームセッションが終了する。ゲームセッションは、複数ラウンドのプレイを含むことができ、または代替として新規のセッションをプレイの各ラウンド毎に生成することができる。
【0012】
他の実施形態では、ゲームセッションは、数日間、数週間、数カ月、または数年など、より長期間にわたって持続される。こうしたゲームセッションを、本明細書では、長期間のゲームセッションまたは、持続性のゲームセッションと呼ぶ。こうした持続性のゲームセッションの一例は、トーナメントである。トーナメントでは、様々なプレーヤ間での複数の突き合わせが、通常は長期間にわたって行われる。各突き合わせを、トーナメントゲームセッションの一部である個々のゲームプレイセッションとして見ることができる。トーナメントゲームセッションは、個々のゲームプレイセッションが完了するまで終了しない。したがって、トーナメントゲームセッションでは、個々のどのゲームプレイセッションもプレイされない(例えば、トーナメントゲームセッションでどのコンピューティングデバイスもゲームをしていない、または電源さえも入れていない)ときもある。
【0013】
本明細書で使用するように、ゲームセッションは、こうした短期間のゲームセッションおよびこうした持続性のゲームセッション、ならびに持続性ゲームセッションの個々のゲームプレイセッションを指す。
【0014】
それぞれ複数の異なるゲームタイトルについての複数のゲームセッションに関する情報は、システム104によって並行して維持することができる。プレーヤは、ゲームセッションから退出し(終了し)、ゲームセッションに参加することができる。セッションがゲームプレイの特定点に達した後、セッションに参加する能力を制限することができ、または代替として、プレーヤはゲームプレイ中に任意にゲームセッションに参加し退出することができ、ゲームセッションの終了時に、プレーヤが、ゲームセッション開始時と異なってもよい。ゲームセッションに参加し退出する能力への制限は、ゲームタイトル設計者の要望に基づき、ゲームタイトルによって変えることができる。
【0015】
コンピューティングデバイスを使用するプレーヤがゲームセッションに参加する場合、そのコンピューティングデバイスもそのゲームセッションに参加すると呼ぶことができる。ゲームセッションでプレイする各プレーヤが使用するデバイスも、ゲームセッションのメンバまたは一部と呼ぶ。
【0016】
コンピューティングデバイス102は、追加の機能性(例えば、デジタルVCRとして動作することができるデジタルビデオ記録機能、(放送信号、ケーブル信号、衛星信号などであっても)テレビジョン信号を同調し復号化することができるチャネル同調機能など)、デスクトップPC、ワークステーション、携帯用コンピュータ、セルラー電話、インターネット装置、サーバコンピュータ、などを組み込んだ専用ゲームコンソールでもよい。さらに、様々なタイプのデバイス102が、突き合わせシステム104を同時に使用することができる。例えば、専用ゲームコンソールのユーザは、携帯用コンピュータのユーザに対してゲームセッションに参加し、プレイすることができ、または、ある製造業者が製造したゲームコンソールのユーザが、別の製造業者が製造した専用ゲームコンソールのユーザに対してゲームセッションに参加し、プレイすることができる。
【0017】
図1の環境100の一特定例の実施形態を、2002年6月10日に出願の同時係属共願の米国特許出願第10/170,003号で見ることができる。
【0018】
図2は、例示の突き合わせシステム104を追加で詳細に示すブロック図である。突き合わせシステム104は、制御モジュール(突き合わせモジュール122)および現行のオンラインゲームセッションを記述するレコード124を含む。こうした現行のオンラインゲームセッションは、短期および持続性ゲームセッションを含む。突き合わせモジュール122は、ゲームセッションの生成、参加、終了、探索などに関する要求を受信する。こうした要求は、図1のコンピューティングデバイス102など、要求デバイスから受信される。こうした要求が受信された場合、突き合わせモジュール122は、受信した要求を実行するのに適した物として突き合わせシステム104の他の構成要素と対話する。
【0019】
突き合わせシステム104は、突き合わせシステム104によって現行で管理されている様々なゲームセッションを記述する情報を格納する複数のレコード124を維持する。通常、複数のオンラインゲームセッションが常に存在するため、突き合わせシステム104は通常、複数の記述を常に含んでいる。突き合わせシステム104によって管理されるゲームセッションは通常、突き合わせシステム104によって生成されるこうしたゲームセッションである。突き合わせシステム104によって管理されるいくつかのゲームセッションには、公開されているため、追加のプレーヤがそのセッションに参加することができるものもあれば、閉鎖的であるため、追加のプレーヤがそのセッションに参加することができないものもある。レコード124は、多様なデータ構造のいずれかを使用して維持することができる。例示の一実施形態では、各ゲームセッションに関する情報は、1つまたは複数のテーブルへの入力として格納される。
【0020】
突き合わせシステム104は、複数のコンピューティングデバイス間でのゲームセッションの設定を容易にするように設計されている。本明細書の説明の大部分で、突き合わせシステム104は、ゲームセッションを管理する物として説明しているが、それは、ゲームセッションのメンバの複数のデバイス間でのゲームデータの転送を管理する物としてではない。むしろ、コンピューティングデバイスが、ゲームプレイ中に複数のコンピューティングデバイス間で、または他のサーバデバイス(図2で示していない)を介してゲームデータを転送する。代替として、ゲームデータ転送によっては、突き合わせシステム104を介して行われる物もある。
【0021】
複数のコンピューティングデバイスが、オンラインゲームセッションに参加する場合、デバイスの1つは、ゲームセッションのホストと(およびホストデバイスとも)呼ばれる。一実施形態では、ゲームセッションのホストは、ゲームセッションを生成したデバイスである。他の実施形態では、他の基準を用いてゲームセッションのホストを決定する。ゲームセッションのホストは通常、以下にさらに詳細に説明するように、ゲームセッションに参加することができる別のデバイスへの近接性を決定する際に使用されるデバイスである。ただし、ゲームセッションの一部である他のデバイスを代わりに使用することもできる。
【0022】
ゲームセッション毎に多様な情報をレコード124で維持することができる。一実施形態では、この情報は、少なくともゲームセッションでプレイされるゲームの記述、およびゲームセッションのホストの識別子を含む。
【0023】
ゲームの記述は、ゲームのタイトルならびにゲームの1つまたは複数の属性を含む。属性は、ゲームセッションに関連する1つのデータ、またはゲームセッションのプレーヤである。ゲームの属性は、ゲームタイトルの設計者の要望に基づき、ゲームによって変えることができる。例えば、属性は、新規のセッションの生成を開始するプレーヤのスキルレベル、その新規のセッションに参加することができる他のプレーヤの所望のスキルレベル、プレイが行われるゲームのロケーション(例えば、日中、夜、特定の競技場、特定の都市、特定のトラック、天候状態など)、プレイ中に使用すべきオブジェクト(例えば、車のタイプ、飛行機または宇宙船のタイプなど)、ゲームの様々な登場人物の特徴(例えば、使用可能な特別の力、使用可能な魔法の呪文など)などを示すことができる。さらに、ゲームタイトルは、含まれる物ではなく、要求に固有のものである(例えば、異なるタイプの要求をゲームタイトル毎に使用することができる)。
【0024】
ゲームセッションのホストの識別子は、ホストコンピューティングデバイスのアドレス構造である。このアドレス構造は十分な情報を含んで、本明細書で説明するように、近接性の測定を可能にする。識別子は、(例えばインターネットプロトコルバージョン4(IPV4)、あるいはインターネットプロトコルバージョン6(IPV6)、または代替としてネットワーク識別子あるいは他の形式に従う)IPアドレスでもよい。
【0025】
一実施形態では、このアドレス構造は、ホストコンピューティングデバイスについての完全修飾(完全変換、fully qualified)アドレス(XNADDR)と呼ばれる。ホストコンピューティングデバイスの完全修飾アドレスは、十分な情報を含んで、ホストコンピューティングデバイスが、ネットワークルータなどネットワークアドレストランスレーション(NAT)の背後に配置されても、他のコンピューティングデバイスが、そのホストコンピューティングデバイスにアクセスできるようにする。
【0026】
コンピューティングデバイスについての完全修飾アドレスの一例には、コンピューティングデバイス用Ethernet(登録商標)MACアドレス、コンピューティングデバイスのローカルIP(インターネットプロトコル)アドレス(これは、コンピューティングデバイスが有していると考えられるIPアドレスであり、それから突き合わせシステムが(例えば、コンピューティングデバイスと突き合わせシステムの間に位置するルータなどNATデバイス(または突き合わせシステムの代わりに動作する仲介手段)により)コンピューティングデバイスからのデータパケットを受け取るIPアドレスとは異なってもよい)、突き合わせシステム(または仲介手段)がコンピューティングデバイスからデータパケットを受け取るIPデータアドレスおよびポート(これは、コンピューティングデバイスのローカルIPアドレスと同じでもよく、または代替として異なる物(例えばNATデバイスのアドレス)でもよい)、複数の突き合わせシステム(または仲介手段)のクラスタ内で突き合わせシステム(または仲介手段)を一意に識別する論理デバイス番号(突き合わせシステム(または仲介手段)に割り当てられた識別子)、セキュリティーパラメータインデックス(SPI)値(例えばSPIおよび/またはSPI)、およびコンピューティングデバイスidが含まれる。完全修飾アドレスのコンテンツは、コンピューティングデバイスから受け取ったデータパケット内に埋め込まれた情報、ならびにコンピューティングデバイスと突き合わせシステム(または仲介手段)の間に安全な接続を確立する際に受け取る情報に基づいて決定することができる。
【0027】
突き合わせシステム(または突き合わせシステムの代わりに動作する仲介手段)が、データパケットをコンピューティングデバイスから受け取るIPアドレスは、以下により詳細に説明するように、そのコンピューティングデバイスについての近接性の程度を決定する際に使用される。通常、IPアドレスは、インターネットサービスプロバイダ(ISP)によって割り当てられ、時間がたてば変更することができる。例えば、このIPアドレスは、データパケットがインターネットを介してコンピューティングデバイスによって送信されるIPアドレスである。さらに、複数のデバイスが、同じIPアドレスを共用することができる(例えば複数のデバイスを、インターネットとLANの間に配置したルータを備えたLAN上に配置することができ、インターネット上のルータのIPアドレスは、LAN上のデバイスすべてからデータパケットが送信されるIPアドレスである)。
【0028】
突き合わせシステム104は、ゲームセッションに参加するための要求によって指定された基準を満たさないゲームセッションをフィルタリングするフィルタモジュール126も含む。動作中、デバイスがゲームセッションへの参加を望む場合(例えば、ユーザのゲームセッションに参加する要求に応答して)、短期間のゲームセッションであろうと長期間のゲームセッションであろうと、デバイスは、突き合わせシステム104に、参加することができる現行のゲームセッションの記述および/または識別子の要求を通信する。突き合わせシステム104は、記述および/または識別子を、1つまたは複数の現行のゲームセッションを要求しているデバイスに戻し、デバイスは、参加すべきゲームセッションの1つを選択することができる。デバイスは、自動的に(例えばデバイス上で稼動しているソフトウェアによって示された)ゲームセッションの1つを選択することができ、または代替として、ユーザのデバイスでの入力(例えばユーザが様々なゲームセッションの作表の表示からゲームセッションの1つを選択すること)に応答してゲームセッションの1つを選択することができる。
【0029】
突き合わせシステム104は、1組の記述124を識別して、こうした要求デバイスに戻す。フィルタモジュール126は、要求デバイスに戻すべき1組についての記述124だけを選択するように動作する。この記述124は要求デバイスによって指定された基準を満たす。例えば、要求デバイスは、ゲームセッションがある一定のスキルレベルのプレーヤだけ、または特定のレーストラックだけ、あるいは特定の競技場だけなどを含むように指定することができる。さらに、フィルタモジュール126は、参加するのに現時点で使用可能な要求デバイスに戻すべき1組についての記述124だけを選択するように動作する(例えば、ゲームセッションがプレーヤで満員であり、現時点ではそれ以上参加できない場合、そのゲームセッションは、要求デバイスへの1組の一部として戻されない)。
【0030】
要求デバイスによって指定された基準を満たす1つまたは複数のこうした記述124が、要求デバイスに戻される。実施形態によっては、突き合わせシステム104は、要求デバイスに戻す記述124の数を制限する。一実施形態では、突き合わせシステム104は、わずか50個の記述124を要求デバイスに戻すが、様々な実施形態で異なる制限を加えることができる。要求デバイスに戻される記述124の数の制限によって、記述の送信に使用されるネットワーク帯域幅の範囲、ならびに要求デバイスで提示(例えば、表示)すべきデータの量を減少することができる。
【0031】
要求デバイスに戻すべき1組の記述124が得られた場合、分類モジュール128は、その1組の中の記述を分類して、記述を要求デバイスによって特定の(分類された)順序で表示できるようにする。この記述を要求デバイスにこの分類した順序で送信することができ、または代替えとして適切な順序の指示を記述と共に送信し、それらを要求デバイスでその分類した順序で組み立てることができる。
【0032】
分類モジュール128は、ゲームセッション毎に生成された近接性の程度によって記述を分類する。ゲームセッション毎の近接性の程度は、要求デバイスとそのゲームセッションに関するホストデバイスとの間のおおよその距離を示す。代わりに、この距離は要求デバイスとゲームセッションに参加している他のデバイス(例えば、ゲームセッションの一部であるホストデバイスではない、あるデバイス)の間の距離でもよい。実施形態によっては、分類モジュール128は、互いに近接したデバイス間のデータ転送は、通常、互いにより遠くにあるデバイス間のデータ転送よりも速いという仮定で作動する。したがって通常、デバイス間のデータ転送の予測された遅延は、互いに近接したデバイスのほうが小さい。
【0033】
近接性の程度によってゲーム記述を分類することにより、要求デバイスに比較的近い(したがって、要求デバイスとゲームセッションの一部である他のデバイスとの間のデータ転送の予測される遅延が小さい)デバイスによってホスティングされるゲームセッションを要求デバイスのユーザにより顕著に示すことができる。例えば、こうしたゲームセッションをゲームセッション記述のリストの始めに表示することができる。したがって、ユーザは、こうしたゲームセッションを選択する可能性が高くなり、それによってユーザ経験が向上する。
【0034】
近接性の程度は、多様な方法で生成することができる。2つのデバイスに関する近接性の程度を生成することができる一方法は、各デバイスの(例えば経度および緯度に関する)おおよその地理的位置の決定による。この位置情報は、様々な方法で得ることができる。例えば、ユーザは、ユーザが登録またはログオンして、突き合わせシステム104のサービスを利用する場合に記録された自己に関連する地理的位置を有することができる。他の例では、ある組織または会社が地理的位置に対するIPアドレスをマッピングする情報を生成する。ホストデバイスのIPアドレスは、(例えば、記述の一部であるXNADDRにおける)ゲームセッション記述から知ることができ、要求デバイスのIPアドレスも、(例えば、要求デバイスに関するXNADDRを調査し、またはデバイスから受信したデータパケットに関するソースIPアドレスを調査することによって)知ることができる。地理的位置に対するIPアドレスをマッピングするこうした情報は、例えばDigital Envoy of Norcross、GAから得ることができる。
【0035】
実施形態によっては、突き合わせシステム104はIPマッピングテーブル130を維持する。地理的位置に対するIPアドレスをマッピングする情報は、マッピングテーブル130内に格納され、それによって、分類モジュール128がそのIPアドレスに基づいてデバイスの地理的位置を決定することができるようにする。2つのデバイスに関する地理的位置が得られた場合、2つのデバイス間の距離は多様な方法のいずれかで簡単に計算することができる。例えば、デバイスが球面(地球)上にあると仮定することができ、したがって2つのデバイス間の球面距離を計算することができる。別の例では、デバイスが平面(例えば米国の地図)上にあると仮定することができ、したがって2つのデバイス間の直線距離を計算することができる。次いで、この2つのデバイス間の計算された距離を、2つのデバイスについての近接性の程度として使用することができる。
【0036】
2つのデバイスに関する近接性の程度を生成することができる他の方法は、デバイスの地理的位置に基づいているが、ただし各IPアドレスの地理的位置を維持するのではなく、IPアドレスは、複数の「バケット」または「グループ」内に共にグループ化される。IPアドレスをグループ化するバケットの数は、可変であり設計を選択できる。一実施形態では、米国内のIPアドレスは、約150個のバケットに区分されているが、代わりに(150よりも多いまたは少ない)様々な数のバケットを使用することができる。例えば、他の実施形態では、米国内のIPアドレスは、約6個のバケットに区分されている。
【0037】
地理的位置もこうした各バケットに関連する。一実施形態では、バケットのおおよその中心をそのバケットに関連する地理的位置として使用しているが、代わりに異なる位置を使用することもできる。
【0038】
特定の地理的領域(例えば米国)についてのバケットは、多様な方法で生成することができる。一実施形態では、バケットは、地理的領域をいくつかの小領域に区分することによって生成される。この小領域は、人口の中心、または物理的区域など、様々な要因に基づくことができる。例えば、地理的領域を約150の別々の物理的区域に区分し、それぞれを1つのバケットにすることができる。他の例では、それぞれ地理的領域内の上位150の人口の中心が、バケットとして働くことができる。
【0039】
他の実施形態では、IPアドレスを「IP人口」の中心の周辺を中心とするバケットに割り当てる。ただし、「IP人口」はIPアドレスの数を指す。IPアドレスが多く集中するところ(例えば150の最大集中地)を確認し、こうした集中地をバケットとして使用する。地理的領域はそれぞれこうしたバケットに関連し、それぞれこうした地理的領域はそのバケット内にIPアドレスを有するこれらの物理的位置を含む。地理的領域は、円形など特定の地理的形状によって画定することができる。次いで、最初はどのバケット内にも存在しなかった任意のIPアドレスを(例えばバケットの中心までの距離に基づいて)最も近いバケットに割り当てる。地理的形状を変更して、または代替として変更せずにこうした追加のIPアドレスを含むことができる。
【0040】
他の実施形態では、複数のバケットに区分すべき地理的領域を、最初に単一のバケットに関連付ける。次いで、このバケットが閾値量のIPアドレスを含むまで、IPアドレスをこの最初のバケットに加える。この閾値量は可変であり、一実施形態では、使用を所望されるバケットの数は、これらのバケットに割り当てるべきIPアドレスの合計数で割った数である。IPアドレスの閾値量に達した場合、そのバケットを2つのバケットに分割する。この分割は、多様な分割ヒューリスティック法のいずれかを使用して行うことができ、一実施形態では、分割前のバケット内のIPアドレスの約半分がそれぞれ分割後のバケット内に存在するように分割を行う。次いで、各追加のIPアドレスを(例えば、バケットの中心までの距離に基づいて)最も近いバケットに割り当てることによって、追加のIPアドレスをそれぞれこの2つの分割後のバケット内に追加する。こうした分割後のバケットの1つが閾値量のIPアドレスを含んだ場合、そのバケットは分割される。このIPアドレスの追加およびバケットの分割は、割り当てるべきIPアドレスがすべてバケットに割り当てられるまで続けられる。
【0041】
実施形態によっては、突き合わせシステム104はIPマッピングテーブル130内にバケット情報を維持する。IPマッピングテーブルは、バケットに対するIPアドレスのマッピングを格納し、それによって分類モジュール128が、デバイスがデバイスのIPアドレスに基づいて割り当てられるバケットを決定することができるようにする。突き合わせシステム104は、2つのバケット間の距離を識別するバケット近接性テーブル132も維持する。2つのバケット間の距離は、それぞれ2つのバケットに関連する地理的位置(例えば、それらのおおよその地理的中心)に基づいており、(例えば、球面距離、直線距離などに関して上述した方法に類似の)多様な方法で計算することができる。
【0042】
図3は、例示のIPマッピングテーブル200を示す。IPマッピングテーブル200は、例えば図2のテーブル130でもよい。テーブル200で示したように、IPアドレス202は特定のバケット204に対してマッピングされる。IPアドレス202内の値xは、任意の有効な整数(例えば0から255まで)を示す。したがって、テーブル200で見ることができるように、個々のIPアドレスをバケットに対してマッピングし、またはIPアドレスの範囲をバケットに対してマッピングすることができる。代替えとして、IPマッピングテーブル200は、「から」および「まで」列を含んで、IPアドレスの範囲を示すことができる。
【0043】
IPマッピングテーブル200は、インターネットプロバイダ列206も含む。状況によっては、突き合わせシステム104は、特定のIPアドレスまたはアドレスの範囲を発行するISPの知識を有することができ、こうした状況では、インターネットプロバイダ列206の情報を含む。次いで、分類モジュール128は、近接性の程度を生成する際にこの情報を使用することができる。一実施形態では、分類モジュール128は、同じバケット内にあり、同じISPから自己のIPアドレスを受け取った2つのデバイスは、同じバケット内にあるが異なるISPから自己のIPアドレスを受け取った2つのデバイスよりも近接していると想定されている。したがって、分類モジュール128は、同じバケット内にあり、同じISPから自己のIPアドレスを受け取った2つのデバイスがより近い近接性を反映するように調整する。この調整は、固定値(例えば、近接性の程度の10の減少)、または動的値(例えば、近接性の程度を90%減少すること)でもよい。
【0044】
代替えとして、他の実施形態では、分類モジュール128は、同じISPから自己のIPアドレスを受け取った2つのデバイスが、異なるISPから自己のIPアドレスを受け取った2つのデバイスよりも近接していると想定されている。したがって、分類モジュール128は、2つのデバイスが同じISPから自己のIPアドレスを受け取った場合に、より近い近接性を反映するように調整する。この調整は、2つのデバイスが同じバケット内にあるか否かにかかわらず、また2つのデバイスについての近接性の程度を生成する方法がバケットを使用するか否かにかかわらず、分類モジュール128によって行われる。
【0045】
図4は、例示の近接性テーブル250を示す。近接性テーブル250は、例えば図2のバケット近接性テーブル132でもよい。テーブル250で示したように、2つのバケットの列252および254が使用され、距離の列256は2つの識別されたバケット間の距離を示す値を含む。この距離は、本明細書で説明した分類を行う場合に、相対的比較に使用され、この距離は任意の単位でもよい。例えば、この距離をマイルまたはキロメートル、あるいは代替として他の抽象的なものまたは任意の単位で測定することができる。テーブル250の典型的な対称であることの性質を利用することによって、記憶空間を(例えば約半分だけ)減少することができることを留意されたい。例えば、列252でどのバケットが識別され、列254でどのバケットが識別されたかにかかわらず、バケット2と3の間の距離は同じである。したがって、距離は一度格納されるだけでよい。代替実施形態では、様々なネットワークまたは環境の変数が値を対称的でないようにすることができる。例えば、何らかの理由で、バケット2からバケット3までの距離が、バケット3からバケット2までの距離と異なってもよい。値が対称的でない場合は、両方の差(または両方の差の何らかの表示)が格納される。
【0046】
2つのデバイスについての近接性の程度を生成することができる他の方法は、それらの地理的位置に部分的に基づく他に、ネットワークの部分を介した様々なデータ転送速度も確認するハイブリッドモデルである。インターネットを含むいくつかのネットワークは、様々な速度でデータ転送をすることができる様々な部分を有する。例えば、1つまたは複数のインターネット「バックボーン」ネットワークは、インターネット上の主なトラフィックを操作し、高速伝送経路を使用する。通常、データは、インターネットバックボーンネットワークから遠い2つの地理的位置の間よりも速い、インターネットバックボーンネットワークに近い2つの地理的位置の間で転送することができる。
【0047】
ハイブリッドモデルは、以下のように、2つのデバイスについての近接性の程度を決定することによって、こうした速度の分散を確認することを試みる。各デバイスと、デバイスからのデータをインターネットバックボーンネットワーク上で転送することができる最も近い地理点との間の地理的距離(例えば、上述の球面距離または直線距離)が識別される。インターネットバックボーン上のこの2点間のバックボーンの距離も識別される。次いで、この2つの(デバイスとインターネットバックボーンネットワーク間の)地理的距離をバックボーンの距離に加えて、2つのデバイス間の距離を得る。このモデルでは、バックボーンの距離は、2点間で想定される地理的距離(例えば上述にように、球面距離または直線距離)よりも短い。例えば、2点間のバックボーンの距離は、2点間で想定される地理的距離の半分である。
【0048】
上述のように、2つのデバイスについての近接性の程度を生成することができる方法すべてを参照すると、データパケットを2つのデバイス間でやり取りする必要がないことに留意されたい。2つのデバイス間の直接の通信は、2つのデバイスについての近接性の程度の生成には必要ではない。例えば、2つのデバイス間でテストメッセージを送る必要はなく、ピングに関するどのプロトコル、および2つのデバイス間の応答パケットの使用も必要ではない。むしろ、近接性の程度は、突き合わせシステムによって生成される。
【0049】
近接性の程度を計算する方法にかかわらず、計算された近接性の程度は、1組のゲームセッションをフィルタリングされた物(これらのセッションが要求デバイスによって提供された基準と一致する物)として分類する基礎として使用される。計算された近接性の程度は、使用することができる1つの分類基準であり、追加の分類基準も1組のゲームセッションを分類する際に適用することができる。こうした追加の分類基準の例には、最大の空位を有する(参加することができる最大数のユーザを有する)ゲームセッションを1組の最初に(または代替としてその組の最後に)移動すること、最大数のプレーヤを有するこうしたゲームセッションを組の最後に(または代替として組の最初に)移動すること、比較的古いゲームセッションを比較的新しいゲームセッションに優先させること、ゲームプレイの好ましいスタイルまたはトーナメント選好など、任意選択の探索基準とそれらがどの程度接近して一致するかに基づいてゲームセッションをランク付けすることが含まれる。
【0050】
多様な分類基準を様々な順序で1組のゲームセッションに適用することができる。少数のバケット(例えば、6個のバケット)が存在する一実施形態では、計算した近接性の程度が第1の分類基準として適用され、続いて1つまたは複数の他の基準が適用される。多数のバケット(例えば150個のバケット)が存在する他の実施形態では、計算した近接性の程度が最後の分類基準として適用される。
【0051】
さらに、実施形態によっては、複数の層(またはレベル)のバケットを使用することができる。こうした実施形態では、IPアドレスがそれぞれこうした層内の特定のバケットに割り当てられる。次いで、この様々なバケット層を様々な分類基準として使用することができる。例えば、第1のバケット層は6個のバケットを有し、第2のバケット層は150個のバケットを有すると仮定する。この第1のバケット層を第1の分類基準として適用することができ、次いで、上述の1つまたは複数の他の分類基準を適用することができ、次いで、第2のバケット層を最後の分類基準として適用することができる。
【0052】
図5は、デバイスについての近接性の程度を生成する際に使用すべき情報を格納する例示のプロセス300を示す流れ図である。プロセス300は、ソフトウェア、ファームウェア、ハードウェア、またはその組合せで実行することができる。
【0053】
最初に、デバイスが存在する地理的領域(例えば全世界、または1つまたは複数の特定の国)を所望数のバケットに区分し(動作302)、各IPアドレスをこれらのバケットの1つに割り当てる(動作304)。さらに、IPアドレスのプロバイダが既知である各IPアドレスをインターネットプロバイダ値に割り当てる(306)。次いで、これらの割当てまたはマッピングを維持する(動作308)。例えば、こうした割当て、またはマッピングは、図3のテーブル200で維持することができる。
【0054】
図6は、ゲームセッションの突き合わせおよび分類のための例示のプロセス340を示す流れ図である。一実施形態では、プロセス340が、図2の突き合わせシステム104によって実行される。プロセス340は、ソフトウェア、ファームウェア、ハードウェア、またはその組合せで実行することができる。
【0055】
最初に、ゲームセッションのホストが割り当てられた1つまたは複数のバケットを維持する(動作342)。要求デバイスが割り当てられたバケットを識別し(動作344)、要求デバイスによって提供された任意のフィルタ基準を満たすゲームセッションを識別する(動作346)。次いで、1組の識別されたゲームセッションを、ホストおよび要求デバイスが割り当てられたバケット間の距離によって分類する(動作348)。次いで、この分類した1組のゲームセッションを要求デバイスに戻す(動作350)。
【0056】
代替えとして、突き合わせシステム104で1組の識別されたゲームセッションを分類せずに、その組を分類するために使用した情報(例えば、近接性の程度)を要求デバイスに伝送することができる。次いで、要求デバイスは、突き合わせシステム104から受け取った情報を使用して分類を行うことができる。
【0057】
図5および6の動作は、説明を簡単にする目的で特定の順序で示してあり、この動作を異なる順序で実行することができることを留意されたい。2つ以上の動作を並行して実行することができることも留意されたい。例えば、図5では、動作306を動作304の前に、動作304の後に、または動作304と並行して実行することができる。他の例によれば、図6では、動作346を動作344の前に、動作344の後に、または動作344と並行して実行することができる。
【0058】
図7は、本明細書で説明した技法を実施するために使用することができる、汎用コンピュータ環境500を示す。コンピュータ環境500は、コンピューティング環境の単なる一例であり、コンピュータおよびネットワークアーキテクチャの使用または機能性の範囲へのいかなる制限も示唆する物ではない。コンピュータ環境500は、例示のコンピュータ環境500で示した任意の1つまたは組合せの構成要素に関連する傾向または要件を有する物として解釈されるべきではない。
【0059】
コンピュータ環境500は、コンピュータ502の形態の汎用コンピューティングデバイスを含む。例えば、コンピュータ502は、図1のコンピューティングデバイス102、または図1もしくは図2の突き合わせシステム104でもよい。コンピュータ502の構成要素には、(任意選択で暗号化プロセッサもしくはコプロセッサ、またはセキュリティープロセッサもしくはコプロセッサを含む)1つまたは複数のプロセッサまたは処理装置504、システムメモリ506、およびプロセッサ504を含む様々なシステム構成要素をシステムメモリ506に結合するシステムバス508が含まれるが、それだけに限定されない。
【0060】
システムバス508は、メモリバスまたはメモリ制御装置、周辺バス、アクセラレィティッドグラフィックスポート(AGS)、およびプロセッサまたは多様なバスアーキテクチャのいずれかを使用するローカルバスを含む、いくつかのタイプのバス構造のいずれかの1つまたは複数の物を示す。一例として、こうしたアーキテクチャには、Industry Standard Architecture(ISA)バス、Micro Channel Architecture(MCA)バス、Enhanced ISA(EISA)バス、Video Electronics Standards Association(VESA)ローカルバス、およびMezzanineバスとしても知られているPeripheral Component Interconnects(PCI)バスが含まれる。
【0061】
通常、コンピュータ502には、多様なコンピュータ可読媒体が含まれる。こうした媒体は、コンピュータ502によってアクセス可能な任意の使用可能な媒体でもよく、揮発性および不揮発性媒体、取り外し可能または取り外し不可能な媒体が含まれる。
【0062】
システムメモリ506には、ランダムアクセスメモリ(RAM)510など揮発性メモリの形態、および/または読み出し専用メモリ(ROM)512など不揮発性メモリの形態のコンピュータ可読媒体が含まれる。起動中など、コンピュータ502内の要素の間で情報を転送する助けをする基本ルーチンを含む基本入出力システム(BIOS)514は、ROM512内に格納される。RAM510は通常、処理装置504に即時にアクセス可能であり、または処理装置504によって現時点で操作されているデータおよび/またはプログラムモジュールを含む。
【0063】
コンピュータ502は、他の取り外し可能/取り外し不可能な揮発性/不揮発性コンピュータ記憶媒体も含む。一例として、図7は、取り外し不可能な不揮発性磁気媒体(図示せず)から読取り、それに書き込むためのハードディスク駆動装置516、取り外し可能な不揮発性磁気ディスク520(例えば「フロッピー(登録商標)ディスク」)から読取り、それに書き込むための磁気ディスク駆動装置518、およびCD−ROM、DVD−ROMまたは他の光媒体など、取り外し可能な不揮発性光ディスク524から読取り、および/またはそれに書き込むための光ディスク駆動装置522を示す。ハードディスク駆動装置516、磁気ディスク駆動装置518、および光ディスク駆動装置522は、それぞれ1つまたは複数のデータ媒体インターフェース526によってシステムバス508に接続される。代替えとして、ハードディスク駆動装置516、磁気ディスク駆動装置518、および光ディスク駆動装置522を1つまたは複数のインターフェース(図示せず)によってシステムバス508に接続することもできる。
【0064】
ディスク駆動装置、およびその関連するコンピュータ可読媒体は、コンピュータ502のためのコンピュータ可読命令、データ構造、プログラムモジュール、および他のデータの不揮発性記憶装置を提供する。例は、ハードディスク516、取り外し可能な磁気ディスク520、および取り外し可能な光ディスク524を示しているが、理解されるように、磁気カセットまたは他の磁気記憶デバイス、フラッシュメモリカード、CD−ROM、デジタルビデオディスク(DVD)または他の光記憶装置、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、電気的消去書込み可能な読出し専用メモリ(EEPROM)など、コンピュータによってアクセス可能なデータを格納することができる他のタイプのコンピュータ可読媒体を使用して、例示のコンピューティングシステムおよび環境を実装することもできる。
【0065】
任意の数のプログラムモジュールを、一例として、オペレーティングシステム526、1つまたは複数のアプリケーションプログラム528、他のプログラムモジュール530、およびプログラムデータ532を含む、ハードディスク516、磁気ディスク520、光ディスク524、ROM512、および/またはRAM510に格納することができる。それぞれこうしたオペレーティングシステム526、1つまたは複数のアプリケーションプログラム528、他のプログラムモジュール530、およびプログラムデータ532(またはいくつかのその組合せ)は、分散したファイルシステムをサポートする常駐構成要素のすべてまたは一部を実装することができる。
【0066】
ユーザは、キーボード534およびポインティングデバイス536(例えば「マウス」)など入力デバイスを介して、コマンドおよび情報をコンピュータ502に入力することができる。他の入力デバイス538(具体的に図示せず)には、マイクロフォン、ジョイスティック、ゲームパッド、サテライトディッシュ、シリアルポート、スキャナ、および/または同様の物が含まれる。上述その他の入力デバイスは、システムバス508に結合された入出力インターフェース540を介して処理装置504に接続されるが、並列ポート、ゲームポート、またはユニバーサルシリアルバス(USB)など、他のインターフェースおよびバス構造によって接続することもできる。
【0067】
モニタ542または他のタイプの表示デバイスも、ビデオアダプタ544などインターフェースを介してシステムバス508に接続することができる。モニタ542に加えて、他の出力周辺デバイスは、入出力インターフェース540を介してコンピュータ502に接続することができるスピーカ(図示せず)およびプリンタ546などの構成要素を含むことができる。
【0068】
コンピュータ502は、リモートコンピューティングデバイス548など1つまたは複数のリモートコンピュータへの論理接続を使用するネットワーク化した環境で、操作することができる。一例として、リモートコンピューティングデバイス548は、パーソナルコンピュータ、携帯用コンピュータ、サーバ、ルータ、ネットワークコンピュータ、ピアデバイス、または他の共用ネットワークノード、ゲームコンソールなどでもよい。リモートコンピューティングデバイス548は、コンピュータ502に関して本明細書で説明した要素および特徴の多くまたはすべてを含むことができる携帯用コンピュータとして示してある。
【0069】
コンピュータ502とリモートコンピュータ548の間の論理接続は、ローカルエリアネットワーク(LAN)550および広域ネットワーク(WAN)552として示してある。こうしたネットワーク環境は、オフィス、企業規模のコンピュータネットワーク、イントラネット、インターネットでは一般的である。
【0070】
LANネットワーク環境で実装する場合、コンピュータ502は、ネットワークインターフェースまたはアダプタ554を介してローカルネットワーク550に接続される。WANネットワーク環境で実装する場合、コンピュータ502は通常、モデム556または他の手段を備えて、広域ネットワーク552上で通信を確立する。モデム556は、コンピュータ502に内在または外在してもよく、入出力インターフェース540または他の適した機構を介して、システムバス508に接続することができる。理解されるように、図で示したネットワーク接続は、例示の物であり、コンピュータ502と548の間の1つまたは複数の通信リンクを確立する他の手段を用いることもできる。
【0071】
コンピュータ環境500で図示した物など、ネットワーク化された環境では、コンピュータ502に対して図で示したプログラムモジュール、またはその一部をリモートメモリ記憶装置に格納することができる。一例として、リモートアプリケーションプログラム558は、リモートコンピュータ548のメモリデバイスに常駐する。図示目的で、アプリケーションプログラム、およびオペレーティングシステムなど他の実行可能なプログラム構成要素を、本明細書では個別のブロックとして示してあるが、理解されるように、こうしたプログラムおよび構成要素は、様々なときにコンピューティングデバイス502の様々な記憶装置の構成要素内に常駐し、コンピュータの1つまたは複数のデータプロセッサによって実行される。
【0072】
様々なモジュールおよび技法を、本明細書で、プログラムモジュールなど、1つまたは複数のコンピュータまたは他のデバイスで実行される、コンピュータで実行可能な命令の一般のコンテキストで説明する。一般に、プログラムモジュールには、特定のタスクを実行し、または特定の抽象データタイプを実装する、ルーチン、プログラム、オブジェクト、構成要素、データ構造などが含まれる。通常、プログラムモジュールの機能性は、様々な実施形態で所望されるように組合せ、または分散することができる。
【0073】
こうしたモジュールおよび技法の実装は、ある形態のコンピュータ可読媒体を介して格納または伝送される。コンピュータ可読媒体は、コンピュータでアクセスすることができる任意の使用可能な媒体でもよい。制限を加える物ではないが、一例として、コンピュータ可読媒体は、「コンピュータ記憶媒体」および「通信媒体」を備えることができる。
【0074】
「コンピュータ記憶媒体」には、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報を記憶するための任意の方法または技法で実装される、揮発性および不揮発性、取り外し可能および取り外し不可能な媒体が含まれる。コンピュータ記憶媒体には、RAM、ROM、EEPROM、フラッシュメモリまたは他のメモリ技法、CD−ROM、デジタルビデオディスク(DVD)または他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶デバイス、あるいは所望の情報を格納するために使用することができ、コンピュータでアクセスすることができる任意の他の媒体が含まれるが、それだけに限定されない。
【0075】
「通信媒体」は通常、コンピュータ可読命令、データ構造、プログラムモジュール、または搬送波あるいは他の輸送機構など、変調データ信号の他のデータを包含する。通信媒体にも任意の情報送受媒体が含まれる。用語「変調データ信号」は、1つまたは複数の組のその特性を有する、または情報を信号に暗号化するような方法で変調した信号を指す。一例として、通信媒体には、有線ネットワークまたは直接線式接続など有線媒体、および音波、RF、赤外線、および他の無線媒体などの無線媒体が含まれるが、それだけに限定されない。上述の任意の物の組合せもコンピュータ可読媒体の範疇に含まれる。
【0076】
図8は、ゲームコンソール600の機能構成要素をより詳細に示す。例えば、ゲームコンソール600は、図1のコンピューティングデバイス102として使用することができる。ゲームコンソール600は、中央処理装置(CPU)601、およびメモリ制御装置602を有しており、メモリ制御装置602は、フラッシュROM(読み出し専用メモリ)604、RAM(ランダムアクセスメモリ)606、ハードディスク駆動装置608、および携帯用媒体駆動装置609を含む様々なタイプのメモリに、プロセッサがアクセスし易くする。CPU601は、レベル1キャッシュ610およびレベル2キャッシュ612を備えて、一時的にデータを格納し、それによってメモリアクセスサイクルの数を減少し、処理速度および処理能力を向上させる。
【0077】
CPU601、メモリ制御装置602、および様々なメモリデバイスは、直列または並列バス、メモリバス、周辺バス、およびプロセッサ、または様々なバスアーキテクチャのいずれかを使用するローカルバスを含む、1つまたは複数のバスを介して相互接続される。一例として、こうしたアーキテクチャには、Industry Standard Architecture(ISA)バス、Micro Channel Architecture(MCA)バス、Enhanced ISA(EISA)バス、Video Electronics Standards Association(VESA)ローカルバス、およびMezzanineバスとしても知られているPeripheral Component Interconnects(PCI)バスが含まれる。
【0078】
1つの適した実施形態として、CPU601、メモリ制御装置602、ROM604、およびRAM606は、共通モジュール614上で統合される。この実施形態では、ROM604は、PCI(Peripheral Component InterconnectバスおよびROMバス(どちらも図示せず)を介してメモリ制御装置602に接続されるフラッシュROMとして構成されている。RAM606は、別のバス(図示せず)を介してメモリ制御装置602によって独立して制御される、複数のDDR SDRAM(Double Data Rate Synchronous Dynamic RAM)として構成される。ハードディスク駆動装置608および携帯用媒体駆動装置609は、PCIバスおよびATA(AT Attachment)バス616を介してメモリ制御装置に接続される。
【0079】
3次元グラフィックス処理装置620、およびビデオ符号器622は、高速および高解像度グラフィックス処理のためのビデオ処理パイプラインを形成する。データは、グラフィックス処理装置620からビデオ符号器622にデジタルビデオバス(図示せず)を介して伝送される。音声処理装置224および音声コーデック(符号器/復号器)626は、高忠実性およびステレオ処理を伴った対応する音声処理パイプラインを形成する。音声データは、通信リンク(図示せず)を介して、音声処理装置624と音声コーデック626の間で伝送される。ビデオおよび音声処理パイプラインは、データをA/V(音声/ビデオ)ポート628に出力して、テレビジョンまたは他のディスプレイに伝送する。図で示した実施形態では、ビデオおよび音声処理構成要素620〜628は、モジュール614上に搭載されている。
【0080】
USBホスト制御装置630およびネットワークインターフェース632もモジュール614上に実装される。このUSBホスト制御装置630は、CPU601およびメモリ制御装置602にバス(例えばPCIバス)を介して結合され、周辺制御装置636(1)〜636(4)のためのホストとして働く。ネットワークインターフェース232は、ネットワーク(例えばインターネット、ホームネットワークなど)へのアクセスを提供し、Ethernet(登録商標)カード、モデム、Bluetoothモジュール、ケーブルモデムなどを含む多様な有線または無線インターフェース構成要素のいずれでもよい。
【0081】
ゲームコンソール600は、1つの二重制御装置サポートサブアセンブリ640(1)および640(2)を有し、各サブアセンブリは2つのゲーム制御装置636(1)〜636(4)をサポートする。フロントパネル入出力サブアセンブリ642は、電源ボタン631および媒体駆動装置排出ボタン633、ならびに任意のLED(発光ダイオード)、またはゲームコンソールの外面上に露出された他のインジケータの機能性をサポートする。サブアセンブリ640(1)、640(2)、および642は、1つまたは複数のケーブルアセンブリ644を介してモジュール614に結合される。
【0082】
8つのメモリユニット634(1)〜634(8)は、4つの制御装置636(1)〜636(4)に結合可能である、すなわち制御装置毎に2つのメモリユニットに結合可能であるところが示してある。各メモリユニット634は、ゲーム、ゲームのパラメータ、および他のデータを格納することができる、追加の記憶装置を提供する。メモリユニット634は、制御装置内に挿入された場合、メモリ制御装置602でアクセスすることができる。
【0083】
システム給電モジュール650は、ゲームコンソール600の構成要素に電気を供給する。ファン652は、ゲームコンソール600内の回路を冷却する。
【0084】
コンソールユーザインターフェース(UI)アプリケーション660は、ハードディスク駆動装置608上に格納される。ゲームコンソールの電源を入れると、コンソールアプリケーション660の様々な部分がRAM606および/またはキャッシュ610、612にロードされ、CPU601上で実行される。コンソールアプリケーション660は、ゲームコンソール上で使用可能な様々な媒体のタイプに誘導する場合に、無矛盾のユーザ経験を提供するグラフィカルユーザインターフェースを示す。
【0085】
ゲームコンソール600は、暗号化エンジンを実装して、暗号化、復号化、認証、デジタル符号化、ハッシングなど、共通の暗号化機能を実行する。暗号化エンジンは、CPU601の一部として、またはCPU上で実行するハードディスク駆動装置608上に格納されたソフトウェアにおいて実装することができ、CPUが暗号化機能を果たすように構成されるようにする。代替えとして、暗号化機能を実行するように設計された暗号化プロセッサまたはコプロセッサをゲームコンソール600に備えることができる。
【0086】
ゲームコンソール600は、単にシステムをテレビジョンまたは他のディスプレイに接続することによって、独立型システムとして操作することができる。この独立型モードで、ゲームコンソール600は、1人または複数のプレーヤがゲームをし、映画を見、または音楽を聞くことができるようにする。ただし、ブロードバンド接続性の統合がネットワークインターフェース632を介して可能な場合、ゲームコンソール600は、上述のように、さらにオンラインゲームの参加者として操作することができる。
【0087】
上述の説明では、構造的特長および/または方法論的動作に対して特有の言語を使用したが、特許請求の範囲で定義した本発明は、上述の特定の特徴または動作に制限されないことを理解されたい。むしろ特有の特徴および動作は、本発明を実施する例示の形態として開示した物である。
【図面の簡単な説明】
【0088】
【図1】デバイス間の近接性の程度に基づく突き合わせを使用することができる、例示の環境を示すブロック図である。
【図2】例示の突き合わせシステムをさらに詳細に示すブロック図である。
【図3】例示のマッピングテーブルを示す図である。
【図4】例示の近接性テーブルを示す図である。
【図5】デバイスに関する近接性の程度を生成する際に使用すべき情報を格納する例示のプロセスを示す流れ図である。
【図6】ゲームセッションを突き合わせ、分類する例示のプロセスを示す流れ図である。
【図7】本明細書で説明した技法を実施するために使用することができる、汎用コンピュータ環境を示す図である。
【図8】ゲームコンソールの機能構成要素をより詳細に示す図である。
【符号の説明】
【0089】
100 環境
102 コンピューティングデバイス
104 突き合わせシステム
122 突き合わせモジュール
124 記述、レコード
126 フィルタモジュール
128 分類モジュール
130 IPマッピングテーブル
132 バケット近接テーブル
200 IPマッピングテーブル
202 IPアドレス
204 バケット
206 インターネットプロバイダ列
250 近接テーブル
252、254 バケット列
256 距離列
500 コンピュータ環境
502 コンピュータ
504 処理装置
506 システムメモリ
508 システムバス、モニタ
510 RAM
512 ROM
516 ハードディスク駆動装置
518 磁気ディスク駆動装置
520 磁気ディスク
522 光ディスク駆動装置
524 光ディスク
526 オペレーティングシステム
528 アプリケーションプログラム
530 プログラムモジュール
532 プログラムデータ
534 キーボード
536 ポインティングデバイス
538 入力デバイス
540 入出力インターフェース
542 モニタ
544 ビデオアダプタ
546 プリンタ
548 リモートコンピュータ
550 ローカルエリアネットワーク(LAN)
552 広域ネットワーク(WAN)
554 アダプタ
556 モデム
558 リモートアプリケーションプログラム
600 ゲームコンソール
601 中央処理装置(CPU)
602 メモリ制御装置
604 フラッシュROM
606 RAM
608 ハードディスク駆動装置
609 携帯用媒体駆動装置
610 レベル1キャッシュ
612 レベル2キャッシュ
614 モジュール
616 ATA(AT Attachment)バス
620 3次元グラフィックス処理装置
622 ビデオ符号器
626 音声コーデック(符号器/復号器)
628 A/V(音声/ビデオ)ポート
630 USBホスト制御装置
632 ネットワークインターフェース
633 媒体駆動装置排出ボタン
634 メモリユニット
636(1)〜(4) 周辺制御装置
640(1)、(2) 二重制御装置サポートサブアセンブリ
642 フロントパネル入出力サブアセンブリ
644 ケーブルアセンブリ
650 システム給電モジュール
652 ファン
660 コンソールアプリケーション

【特許請求の範囲】
【請求項1】
コンピューティングデバイスから、1つまたは複数の基準を満たす1つまたは複数のオンラインゲームセッションの識別の要求を受信するステップと、
前記1つまたは複数の基準を満たす複数のオンラインゲームセッションを識別するステップと、
それぞれ前記複数のオンラインゲームセッションについて、前記コンピューティングデバイスと前記オンラインゲームセッションの一部である他のコンピューティングデバイスとの間の距離を決定するステップと、
前記複数のオンラインゲームセッションが前記コンピューティングデバイスで示すべき順序を選択し、前記順序が少なくとも部分的に決定した前記距離に基づくステップと、
前記複数のオンラインゲームセッションの識別子を前記コンピューティングデバイスに戻して、前記コンピューティングデバイスで選択した前記順序で表示するステップとを含むことを特徴とする方法。
【請求項2】
前記複数のオンラインゲームセッションの各々のために、前記他のコンピューティングデバイスは、前記オンラインゲームセッションのホストを含むことを特徴とする請求項1に記載の方法。
【請求項3】
前記決定するステップは、どの前記コンピューティングデバイスとも直接通信せずに、前記距離を決定するステップを含むことを特徴とする請求項1に記載の方法。
【請求項4】
前記コンピューティングデバイスと前記他のコンピューティングデバイスの間の距離を決定するステップは、
前記コンピューティングデバイスが割り当てられる第1のバケットを識別するステップと、
前記他のコンピューティングデバイスが割り当てられる第2のバケットを識別するステップと、
前記第1のバケットおよび前記第2のバケットの間の距離を識別するステップとを含むことを特徴とする請求項1に記載の方法。
【請求項5】
前記第1のバケットおよび前記第2のバケットの間の距離を識別するステップは、前記距離をテーブルで探索するステップを含むことを特徴とする請求項4に記載の方法。
【請求項6】
前記第1のバケットと前記第2のバケットの間の距離は、前記第1のバケットおよび前記第2のバケットが同じバケットである場合はゼロであることを特徴とする請求項4に記載の方法。
【請求項7】
前記決定するステップは、前記コンピューティングデバイスのためのインターネットプロバイダ、および前記他のコンピューティングデバイスのためのインターネットプロバイダを識別するステップをさらに含み、
前記第1のバケットおよび前記第2のバケットが同じバケットである場合、前記選択するステップは、前記コンピューティングデバイスへの前記インターネットプロバイダが前記他のコンピューティングデバイスへの前記インターネットプロバイダと同じか否かに、少なくとも部分的に基づいて前記順序を選択するステップをさらに含むことを特徴とする請求項4に記載の方法。
【請求項8】
前記決定するステップは、前記コンピューティングデバイスのためのインターネットプロバイダ、および前記他のコンピューティングデバイスのためのインターネットプロバイダを識別するステップをさらに含み、
前記選択するステップは、前記順序を、前記コンピューティングデバイスのためのインターネットプロバイダが、前記他のコンピューティングデバイスのためのインターネットプロバイダと同じか否かに、少なくとも部分的に基づいて選択するステップをさらに含むことを特徴とする請求項1に記載の方法。
【請求項9】
前記コンピューティングデバイスと前記他のコンピューティングデバイスの間の距離を決定するステップは、
前記コンピューティングデバイスが割り当てられた第1の層の第1のバケット、および前記コンピューティングデバイスが割り当てられた第2の層の第2のバケットを識別するステップと、
前記他のコンピューティングデバイスが割り当てられた前記第1の層の第3のバケット、および前記他のコンピューティングデバイスが割り当てられた前記第2の層の第4のバケットを識別するステップと、
前記第1のバケットと前記第3のバケットの間の第1の距離を識別するステップと、
前記第2のバケットと前記第4のバケットの間の第2の距離を識別するステップとを含み、
前記選択するステップは、前記第1の距離および前記第2の距離に少なくとも部分的に基づくことを特徴とする請求項1に記載の方法。
【請求項10】
前記コンピューティングデバイスと前記他のコンピューティングデバイスの間の距離を決定するステップは、
前記コンピューティングデバイスの地理的位置の経度および緯度値を識別するステップと、
前記他のコンピューティングデバイスの地理的位置の経度および緯度値を識別するステップと、
前記コンピューティングデバイスの地理的位置の前記経度および緯度値と前記他のコンピューティングデバイスの地理的位置の前記経度および緯度値との差を決定するステップとを含むことを特徴とする請求項1に記載の方法。
【請求項11】
前記コンピューティングデバイスと前記他のコンピューティングデバイスの間の前記距離を決定するステップは、それを介して前記コンピューティングデバイスと前記他のコンピューティングデバイスの間の通信が行われるネットワークの様々な部分における様々なデータ転送速度を確認するステップを含むことを特徴とする請求項1に記載の方法。
【請求項12】
前記ネットワークは、インターネットを含むことを特徴とする請求項11に記載の方法。
【請求項13】
前記コンピューティングデバイスは、第1のゲームコンソールを備え、前記他のコンピューティングデバイスは、第2のゲームコンソールを備えることを特徴とする請求項1に記載の方法。
【請求項14】
前記方法が、前記コンピューティングデバイスおよび前記他のコンピューティングデバイスから分離した突き合わせシステムにおいて実施されることを特徴とする請求項1に記載の方法。
【請求項15】
前記1つまたは複数のオンラインゲームセッションは、短期間のゲームセッションを含むことを特徴とする請求項1に記載の方法。
【請求項16】
前記1つまたは複数のオンラインゲームセッションは、トーナメントゲームセッションを含むことを特徴とする請求項1に記載の方法。
【請求項17】
複数の命令を格納しており、前記複数の命令が1つまたは複数のプロセッサによって実行される場合に、前記1つまたは複数のプロセッサが、
ネットワークアドレスのグループ間の距離のレコードを維持し、
少なくとも部分的に前記レコードに基づいて、現行のオンラインゲームセッションに関する情報を要求するコンピューティングデバイスに戻すべきオンラインゲームセッションについての順序付けを選択するようにさせることを特徴とする1つまたは複数のコンピュータ可読媒体。
【請求項18】
前記1つまたは複数のプロセッサが、前記コンピューティングデバイスから分離した突き合わせシステムにおいて実装されることを特徴とする請求項17に記載の1つまたは複数のコンピュータ可読媒体。
【請求項19】
前記コンピューティングデバイスはゲームコンソールを備えることを特徴とする請求項17に記載の1つまたは複数のコンピュータ可読媒体。
【請求項20】
ネットワークアドレスのグループ間の前記距離は、それを介して前記ネットワークアドレスに割り当てられたデバイス間の通信が行われるネットワークの様々な部分における様々なデータ転送速度に少なくとも部分的に基づくことを特徴とする請求項17に記載の1つまたは複数のコンピュータ可読媒体。
【請求項21】
ネットワークアドレスのグループ間の前記距離は、前記ネットワークアドレスが割り当てられたデバイスの地理的位置の経度および緯度値に少なくとも部分的に基づくことを特徴とする請求項17に記載の1つまたは複数のコンピュータ可読媒体。
【請求項22】
前記レコードはテーブルを含むことを特徴とする請求項17に記載の1つまたは複数のコンピュータ可読媒体。
【請求項23】
前記命令は、さらに、前記1つまたは複数のプロセッサが、
前記ネットワークアドレスのインターネットプロバイダのレコードを維持し、
前記距離のレコードおよび前記インターネットプロバイダのレコードに少なくとも部分的に基づいて前記順序付けを選択するようにさせることを特徴とする請求項17に記載の1つまたは複数のコンピュータ可読媒体。
【請求項24】
前記オンラインゲームセッションは、1つまたは複数の短期間のゲームセッションおよび持続性のゲームセッションを含むことを特徴とする請求項17に記載の1つまたは複数のコンピュータ可読媒体。
【請求項25】
複数のオンラインゲームセッションを識別し、複数のコンピューティングデバイスのうちの1つは、各前記オンラインゲームセッションの一部であるステップと、
前記複数のオンラインゲームセッションについての順序付けを決定し、前記順序付けは、ゲームコンソールと各前記複数のコンピューティングデバイスの間の距離に少なくとも部分的に基づき、前記順序付けが、前記ゲームコンソールと前記複数のコンピューティングデバイスの間のどの通信も使用せずに決定されるステップとを含むことを特徴とする方法。
【請求項26】
前記方法が、前記複数のコンピューティングデバイスから分離した突き合わせシステムで実施されることを特徴とする請求項25に記載の方法。
【請求項27】
前記複数のコンピューティングデバイスの1つは、ゲームコンソールを備えることを特徴とする請求項25に記載の方法。
【請求項28】
前記距離は、それを介して前記ゲームコンソールと前記複数のコンピューティングデバイスの間の通信が行われるネットワークの様々な部分における様々なデータ転送速度に少なくとも部分的に基づくことを特徴とする請求項25に記載の方法。
【請求項29】
前記距離は、前記ゲームコンソールおよび前記複数のコンピューティングデバイスの地理的位置の経度および緯度値に少なくとも部分的に基づくことを特徴とする請求項25に記載の方法。
【請求項30】
前記距離がテーブル内で維持されることを特徴とする請求項25に記載の方法。
【請求項31】
前記順序付けは、さらに、前記ゲームコンソールのインターネットプロバイダ、および各前記複数のコンピューティングデバイスのインターネットプロバイダに少なくとも部分的に基づくことを特徴とする請求項25に記載の方法。
【請求項32】
前記複数のオンラインゲームセッションは、トーナメントゲームセッションを含むことを特徴とする請求項25に記載の方法。
【請求項33】
前記複数のオンラインゲームセッションは、どのコンピューティングデバイスも現時点では、前記ゲームセッションの個々のゲームプレイセッションでプレイしていないゲームセッションを含むことを特徴とする請求項25に記載の方法。
【請求項34】
ネットワークとの通信を可能にするインターフェースと、
処理装置とを備え、前記処理装置が、
突き合わせサービスからの現行のオンラインゲームセッションに関する情報を要求し、前記突き合わせサービスが前記ネットワークを介してシステムに結合されており、
前記突き合わせサービスから、複数の現行のオンラインゲームセッションの表示を受信し、
前記システムと、前記複数の現行のオンラインゲームセッションの一部である他のデバイスとの間の距離に少なくとも部分的に基づく順序で、前記複数の現行のオンラインゲームセッションの少なくともサブセットを表示することを特徴とするシステム。
【請求項35】
前記システムは、ゲームコンソールを備えることを特徴とする請求項34に記載のシステム。
【請求項36】
前記システムはディスプレイを備え、前記処理装置は前記ディスプレイを介して前記サブセットを表示することを特徴とする請求項34に記載のシステム。
【請求項37】
前記処理装置はさらに、前記突き合わせサービスから、前記複数の現行のオンラインゲームセッションについての前記順序を受信することを特徴とする請求項34に記載のシステム。
【請求項38】
前記ネットワークは、インターネットを含むことを特徴とする請求項34に記載のシステム。
【請求項39】
前記距離は、前記ネットワークの様々な部分における様々なデータ転送速度に少なくとも部分的に基づくことを特徴とする請求項34に記載のシステム。
【請求項40】
前記距離は、前記システムおよび前記他のデバイスの地理的位置の経度および緯度値に少なくとも部分的に基づくことを特徴とする請求項34に記載のシステム。
【請求項41】
前記順序はさらに、前記システムのインターネットプロバイダおよび各前記他のデバイスのインターネットプロバイダに少なくとも部分的に基づくことを特徴とする請求項34に記載のシステム。
【請求項42】
複数の命令を格納しており、前記複数の命令が1つまたは複数のプロセッサによって実行される場合に、前記1つまたは複数のプロセッサが、
ネットワークを介して突き合わせサービスから、参加することができる複数のオンラインゲームセッションのリストを得、
ユーザに、前記1つまたは複数のプロセッサと、前記複数のオンラインゲームセッションのうちの1つの一部であるそれぞれ複数のコンピューティングデバイスとの間の距離に少なくとも部分的に基づく順序で前記複数のオンラインゲームセッションの識別子を表示するようにさせることを特徴とする1つまたは複数のコンピュータ可読媒体。
【請求項43】
前記距離は、前記ネットワークの様々な部分における様々なデータ転送速度に少なくとも部分的に基づくことを特徴とする請求項42に記載の1つまたは複数のコンピュータ可読媒体。
【請求項44】
前記距離は、前記1つまたは複数のプロセッサおよび前記複数のコンピューティングデバイスの経度および緯度値に少なくとも部分的に基づくことを特徴とする請求項42に記載の1つまたは複数のコンピュータ可読媒体。
【請求項45】
前記順序はさらに、それぞれ前記複数のコンピューティングデバイスのインターネットプロバイダに少なくとも部分的に基づくことを特徴とする請求項42に記載の1つまたは複数のコンピュータ可読媒体。
【請求項46】
前記1つまたは複数のプロセッサはゲームコンソールの一部であることを特徴とする請求項42に記載の1つまたは複数のコンピュータ可読媒体。
【請求項47】
前記複数のオンラインゲームセッションは、1つまたは複数の短期間のゲームセッションおよび持続性のゲームセッションを含むことを特徴とする請求項42に記載の1つまたは複数のコンピュータ可読媒体。
【請求項48】
ネットワークアドレスのグループ間の距離のレコードを維持する手段と、
前記レコードに少なくとも部分的に基づいて、現行のオンラインゲームセッションに関する情報を要求するコンピューティングデバイスに戻すべきオンラインゲームセッションについての順序付けを選択する手段とを含むことを特徴とするシステム。

【図1】
image rotate



【図2】
image rotate



【図3】
image rotate



【図4】
image rotate



【図5】
image rotate



【図6】
image rotate



【図7】
image rotate



【図8】
image rotate


【公開番号】特開2004−328734(P2004−328734A)
【公開日】平成16年11月18日(2004.11.18)
【国際特許分類】
【出願番号】特願2004−124697(P2004−124697)
【出願日】平成16年4月20日(2004.4.20)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Bluetooth
【出願人】(500046438)マイクロソフト コーポレーション (3,165)
【出願人】(500046438)マイクロソフト コーポレーション (3,165)
【Fターム(参考)】