説明

マッチングサーバ及び方法並びにオンラインゲームシステム

【課題】端末の属するセグメントのみを考慮したマッチングでは必ずしも十分に低遅延なオンラインゲーム環境を実現できない。
【解決手段】マッチングサーバ1において、部分ネットワーク品質情報取得手段10がネットワーク品質情報提供サーバ2よりユーザ端末間のネットワークトラヒックに基づく部分ネットワーク品質情報を取得し、当該情報を用いてユーザ管理手段30が端末間のマッチング距離を算出し、参加中ユーザ及びグループの情報をマッチング情報として管理するマッチング手段20が、マッチング要求ユーザと参加中との間のマッチング距離に基づいて要求ユーザの所属グループを決定し、マッチングを行うことで、超低遅延なオンラインゲーム環境を実現する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明はオンラインゲームに参加するユーザの所属グループを決定するマッチングに関し、特に、ユーザ間のネットワークトラヒックを考慮したマッチングを行うことで低遅延なオンラインゲーム環境を実現することのできる、マッチングサーバ及び方法並びにオンラインゲームシステムに関する。
【背景技術】
【0002】
本発明の従来技術として、ISPが所有するネットワークに基づくユーザのネットワークプロファイル情報(IPアドレスに紐づく所属地域情報やアクセス回線情報)を用いたマッチングが該当する。当該従来技術は特許文献1に記載されている。ここでのマッチングとは、オンラインゲームにおいて、互いに対戦して勝敗を競うユーザや、ゲーム内で行動を共にするユーザをグループとして決定するものである。一般には1つのオンラインゲームにおいて複数のグループが作成され、各グループ内で通信が行われながらオンラインゲームが実行される。従来技術では、遅延の小さいゲーム環境を提供することを目的とした、同じ地域に所属するユーザ同士でグループを作成する方式や、高速なアクセス回線を有するユーザ同士でグループを作成する方式などが提案されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特願2010−215197号
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、ユーザのネットワークプロファイルは、ゲームへの参加人数の規模やユーザの状態に依存する情報ではない。そのため、従来技術を用いたマッチングでは、例えば同一地域でグループを作成した場合などにおいて、地域内でユーザ毎に通信品質が大きく異なり更なるマッチングが必要な状況や、地域をまたぐユーザ間でも通信品質がほとんど変わらない場合などにおいて、必ずしも最適なマッチングが実現できるとは限らず、要求するユーザの数や状態を反映してグループを作成することが難しかった。また、従来技術ではユーザ間の定量的な通信実績を考慮していないので、実際の通信実績として裏付けられた低遅延環境を実現することも難しく、低遅延なオンラインゲーム環境を提供するためのマッチングにおいてさらなる改善の余地があった。
【0005】
本発明の目的は、上記の従来技術の課題を解決し、オンラインゲームに参加しようとするユーザに対して、ユーザ端末間で送受信されるネットワークトラヒック等を考慮して当該ユーザの所属グループを決定することにより、超低遅延なオンラインゲーム環境を実現するマッチングサーバ及び方法並びにオンラインゲームシステムを提供することにある。
【課題を解決するための手段】
【0006】
上記の従来技術の課題を解決するため、本発明は、グループ単位にて実行されるオンラインゲームに参加するユーザの所属するグループを決定するマッチングサーバにおいて、ユーザ端末間で送受信されるネットワークトラヒックに基づいて算出される当該ユーザ端末間の通信品質に関する情報を含む部分ネットワーク品質情報を取得する部分ネットワーク品質情報取得手段と、前記部分ネットワーク品質情報に基づいてユーザ端末間のマッチング距離を算出し、ユーザ管理情報として管理するユーザ管理手段と、当該オンラインゲームの実行されている状態を把握するために、当該オンラインゲームに参加中である各ユーザの情報と、該各ユーザの所属するグループの情報とを互いに対応づけたマッチング情報を管理するマッチング手段とを備え、該マッチング手段は、当該オンラインゲームに参加しようとする要求ユーザからマッチング要求を受信した場合、当該要求ユーザと前記マッチング情報を参照して得られる当該オンラインゲーム実行中の各グループに所属するユーザとの間の、前記ユーザ管理情報を参照して得られるマッチング距離の各グループ間での比較に基づいて当該要求ユーザの所属するグループを決定することを特徴とする。
【0007】
また本発明は、前記部分ネットワーク品質情報取得手段においては、ユーザ端末間で送受信されるネットワークトラヒックを測定し当該ユーザ端末間の通信品質に関する情報を含むネットワーク品質情報を保持するネットワーク品質情報提供サーバより、前記ネットワーク品質情報の一部として前記部分ネットワーク品質情報を取得し、前記ネットワーク品質情報提供サーバと前記マッチングサーバとを含むオンラインゲームシステムであることを特徴とする。
【0008】
さらに本発明は、グループ単位にて実行されるオンラインゲームに参加するユーザの所属するグループを決定するマッチング方法において、ユーザ端末間で送受信されるネットワークトラヒックに基づいて算出される当該ユーザ端末間の通信品質に関する情報を含む部分ネットワーク品質情報を取得するステップと、前記部分ネットワーク品質情報に基づいてユーザ端末間のマッチング距離を算出し、ユーザ管理情報として管理するステップと、当該オンラインゲームの実行されている状態を把握するために、当該オンラインゲームに参加中である各ユーザの情報と、該各ユーザの所属するグループの情報とを互いに対応づけたマッチング情報を管理するステップと、当該オンラインゲームに参加しようとする要求ユーザからマッチング要求を受信してから、当該要求ユーザと前記マッチング情報を参照して得られる当該オンラインゲーム実行中の各グループに所属するユーザとの間の、前記ユーザ管理情報を参照して得られるマッチング距離の各グループ間での比較に基づいて当該要求ユーザの所属するグループを決定するステップとを備えることを特徴とする。
【発明の効果】
【0009】
本発明によれば、ユーザ端末間で送受信されるネットワークトラヒック等に基づく部分ネットワーク品質情報を用いてユーザ端末間のマッチング距離を算出し、ユーザ端末間のネットワーク状態等が反映された当該マッチング距離に基づいてマッチングを行い要求ユーザの所属グループを決定するので、超低遅延なオンラインゲーム環境を実現することができる。
【図面の簡単な説明】
【0010】
【図1】本発明の構成を示す図である。
【図2】マッチング情報の更新フローチャートである。
【図3】マッチングサーバの機能ブロック図である。
【図4】マッチングの詳細のフローチャートである。
【図5】第1実施例においてユーザ管理情報が更新される例を示す図である。
【図6】第1実施例においてマッチング情報が更新される例を示す図である。
【図7】マッチングを説明するために、各ユーザを模式的に距離空間に配置して、図5の例におけるユーザ管理情報における各ユーザ間のマッチング距離を表現した図である。
【図8】第2実施例におけるユーザ管理情報の例を示す図である。
【図9】第3実施例を説明するための図である。
【図10】オンラインゲームシステムの構成図である。
【発明を実施するための形態】
【0011】
以下、図面を参照して本発明を詳細に示す。図1に、本発明の構成を示す。マッチングサーバ1は、各ユーザからのマッチング要求を受けて、マッチングを行う。マッチングとは、グループにて実行されるオンラインゲームに参加しようとするユーザの所属グループを決定することであり、マッチングを行ったマッチングサーバ1は、当該ユーザに決定した所属グループを通知する。当該ユーザは当該グループに所属してオンラインゲームを楽しむ。当該オンラインゲームの実行に関しては、図1に不図示のゲーム管理サーバ等に管理させ、ゲームプログラムのユーザ端末へのダウンロードや実際のゲームの進行制御等を行わせる。
【0012】
マッチングサーバ1は、部分ネットワーク品質情報1a及びマッチング情報1bを保持する。部分ネットワーク品質情報1aとは、ネットワーク品質情報提供サーバ2が保持するネットワーク品質情報2aのうち、マッチングを行うために必要な一部分をマッチングサーバ1が取り寄せ、ネットワーク品質情報提供サーバ2への頻繁な問い合わせを避けるためにキャッシュとして保持しているものである。
【0013】
マッチング情報1bとは、その内容を10bに概念的に示すように、マッチングサーバ1により所属グループが決定されてオンラインゲームに参加している各ユーザ(図中、○として示す)とその所属グループ(グループ1、グループ2等と図示)とを対応づけた情報である。すなわち、マッチング情報1bはオンラインゲームの参加ユーザと所属グループなどの特定により、オンラインゲームの実行されている状態を把握するための情報である。
【0014】
ユーザがマッチング情報1bにてあるグループに所属するものとして記載されていれば、当該ユーザは当該グループに所属してオンラインゲームに参加中であり、記載されていなければ参加していない。また、マッチング情報10bには各グループの参加人数n及び参加可能上限人数mの情報が含まれる。よってn=mかn<mであるかの区別により、マッチング情報1bには各グループにオンラインゲームのユーザを追加可能か否かの情報も含まれる。
【0015】
ネットワーク品質情報2aは、その内容を20aに概念的に示すように、ユーザ端末間で送受信されるネットワークトラヒックより得られる、通信品質に関する情報を含む。ユーザ端末間で試験パケットを送受信させた測定結果等を用いて、ネットワーク品質情報提供サーバ2がネットワーク品質情報2aを作成する。測定項目としては例えば、エンドツーエンドのパケット遅延やパケット廃棄率などが挙げられる。当該ネットワーク品質情報2aの作成には、例えばユーザ端末側にトラヒック計測用プログラムを予めインストールして実行させる等の手法を採用することができる。
【0016】
図2に、マッチング情報1bの更新される手順のフローチャートを示す。マッチング情報1bの更新は、マッチングサーバ1がユーザより(1)オンラインゲームへの参加要求すなわちマッチング要求、又は(2)オンラインゲームの終了通知、を受けた場合に行われる。ステップS1では、(1)(2)のいずれの場合であるかにより場合分けが行われる。(1)の場合から説明することとする。この場合ステップS2に進み、マッチングサーバ1が当該参加要求ユーザの所属するグループの決定すなわちマッチングを行う。当該ステップS2の詳細については後述する。
【0017】
ステップS3では、マッチングサーバ1は決定した所属グループを要求ユーザに通知する。当該通知後の不図示のステップで、要求ユーザは当該グループに所属してオンラインゲームに参加する状態となる。よってステップS4において、マッチングサーバ1は当該要求ユーザが決定されたグループに所属してオンラインゲーム参加中である旨をマッチング情報1bに反映させることで、マッチング情報1bを更新する。
【0018】
なお、ステップS3の通知は、当該オンラインゲームが各グループが定員に達してから実行可能となる種類のゲームであれば、各グループが定員に達するのを待ってから当該グループの全員に一度に所属グループを通知するようにしてもよいし、まず所属グループを通知しておき、ユーザはグループが満員となってゲームが開始されるのを待つようにしてもよい。全員に一度に通知する場合、要求ユーザが現れる毎にステップS2が実行されて、ステップS3でグループ毎に定員待ちが行われることとなる。
【0019】
一方、ステップS1で(2)の場合にはステップS5へ進み、マッチングサーバ1はオンラインゲームの終了通知をしてきたユーザをマッチング情報1bから削除することで、マッチング情報1bを更新する。当該終了通知してきたユーザはステップS5の後の不図示のステップで、オンラインゲームを終了する。
【0020】
以上のような図2のマッチング情報1bの更新フローにより、マッチング情報1bにおいては、マッチングサーバ1を利用してオンラインゲームに参加中のユーザの情報がその所属グループの情報と共に最新の状態で管理されることとなる。
【0021】
図3に、マッチングサーバ1の機能ブロック図を示す。マッチングサーバ1は、部分ネットワーク品質情報取得手段10、マッチング手段20及びユーザ管理手段30を備える。部分ネットワーク品質情報取得手段10は、パケット遅延取得手段11、パケット棄却率取得手段12、物理的距離取得手段13、セグメント取得手段14及び部分ネットワーク品質情報1aを含む。マッチング手段20はマッチング情報1bを含む。ユーザ管理手段30はユーザ管理情報1cを含む。
【0022】
パケット遅延取得手段11ないしセグメント取得手段14は、ネットワーク品質情報提供サーバ2の管理するネットワーク品質情報2aのうち、本発明に好適な各種類の情報をそれぞれ個別に取得して、部分ネットワーク品質情報1aを構成する各種類の情報として保存する。パケット遅延取得手段11は、ユーザ端末間のパケット遅延を部分ネットワーク品質情報1aの一種として取得する。パケット棄却率取得手段12は、ユーザ端末間で送受信されるパケットの棄却率を部分ネットワーク品質情報1aの一種として取得する。
【0023】
物理的距離取得手段13は、ユーザ端末間の物理的距離を部分ネットワーク品質情報1aの一種として取得する。セグメント取得手段14は、各ユーザ端末の所属するネットワーク内のセグメントを、部分ネットワーク品質情報1aの一種として取得する。当該物理的距離取得手段13及びセグメント取得手段14の各取得情報は、ネットワーク品質情報提供サーバ2が例えばISP(インターネットサービスプロバイダ)に運用されるサーバであれば、ネットワーク品質情報1aを参照して取得することができる。
【0024】
例えば、物理的距離に関してはユーザのIPアドレスに紐付いた位置情報を用いて、もしくはGPS等の情報を参照して得られる緯度・経度などを用いて、2端末間での値を求めることができる。セグメントに関しては、ユーザのIPアドレスに割り当てられたIPアドレス空間などから求めることができる。
【0025】
なお、セグメント取得手段14の取得するセグメントは単一のユーザ端末毎に取得されるという点で、パケット遅延取得手段11ないし物理的距離取得手段13の取得するユーザ端末のペアに対して定義される情報とは異なる。当該各取得される情報の利用については後述する。
【0026】
マッチング手段20は、図2のフローで説明したようにマッチング情報1bを管理して更新する。すなわち、マッチング手段20はマッチング要求を受けた場合には、当該要求ユーザと参加中ユーザとの間のユーザ管理情報1c及びマッチング情報1bを参照することで当該要求ユーザの所属グループを決定して当該要求ユーザに通知すると共に、マッチング情報1bを更新する。マッチング手段20は終了通知を受けた場合には、当該終了ユーザを削除することでマッチング情報1bを更新する。
【0027】
ユーザ管理手段30は、ユーザ管理情報1cを管理する。ユーザ管理情報1cとは、部分ネットワーク品質情報1aを用いてユーザ管理手段30が算出するユーザ端末間のマッチング距離の情報である。各ユーザ端末間のマッチング距離を列挙した情報として、ユーザ管理情報1cは構成される。当該ユーザ管理情報1cを参照して得られるマッチング距離を用いて、マッチング手段20はマッチングを行う。
【0028】
図4に、図2のステップS2すなわちマッチングの詳細なフローチャートを示す。ステップS21では、部分ネットワーク品質情報取得手段10が、要求ユーザと参加中ユーザとに関連する部分ネットワーク品質情報を新たに取得し、部分ネットワーク品質情報1aを更新する。なお、当該図4のフローと図2のフローとの全体より明らかとなるように、既に参加中のユーザに関連する部分ネットワーク品質情報は既に取得されている。ステップS21では、当該既に取得済みの情報に新規取得情報を加えることで、部分ネットワーク品質情報1aが更新される。
【0029】
ステップS22では、部分ネットワーク品質情報1aのうちステップS21で新規取得された情報に基づいて、ユーザ管理手段30が要求ユーザと参加中ユーザとの間のマッチング距離を算出し、ユーザ管理情報1cを更新する。部分ネットワーク品質情報1aと同様に、ユーザ管理情報1cも既に参加中のユーザ同士の間でのマッチング距離については既に算出されており、要求ユーザに関連する部分が新規に算出され追加されることで更新される。
【0030】
ステップS23では、ユーザ管理情報1cとマッチング情報1bとを参照して、マッチング部20が要求ユーザの所属グループを決定する。当該決定については、以下説明する各実施例にて具体的に説明する。
【0031】
なお、図2に戻り、ステップS2〜S4(ステップS2は図4の各詳細ステップを含む)では部分ネットワーク品質情報1a、マッチング情報1b及びユーザ管理情報1cが更新される。これに対してステップS5では、少なくともマッチング情報1bが更新される。ステップS5において、部分ネットワーク品質情報1a及びユーザ管理情報1cについては、(1)マッチング情報1bと同じく更新して、ゲーム終了ユーザの部分の情報を削除してもよいし、(2)更新せずに、ゲーム終了ユーザの部分の情報をそのまま残しておいてもよい。
【0032】
(1)の場合は、終了ユーザが再度要求ユーザとしてマッチング要求を行う場合、要求ユーザに関連するネットワーク品質情報1a及びユーザ管理情報1cが再度取得及び算出され、マッチング要求の都度最新の状態に更新される。よって、当該最新状態に即したマッチングが可能になるという効果がある。
【0033】
(2)の場合は、終了ユーザが再度要求ユーザとしてマッチング要求を行う場合に、要求ユーザに関連するネットワーク品質情報1a及びユーザ管理情報1cはキャッシュとして保持されている。当該キャッシュの利用により、図4で説明したフローに負荷の少ない別実施形態を適用することができる。
【0034】
すなわち、当該キャッシュの利用により、ステップS21においてネットワーク品質情報提供サーバ2への問い合わせが不要となり、ネットワーク品質情報提供サーバ2における問い合わせ応答の負荷を抑える効果がある。また当該ステップS21における問い合わせと、ステップS22における算出を省略してよいので、マッチングサーバ1における処理負荷も低減される。
【0035】
(2)において上記のようにキャッシュを利用する場合も、オンラインゲームに参加することが想定されるユーザ全体に対して、所定期間毎に定期的に部分ネットワーク品質情報取得手段10が当該ユーザに対応する部分ネットワーク品質情報1aを取得しておき、ユーザ管理手段30がユーザ管理情報1cも対応させて更新することで、適宜最新の状態に追随したマッチングを可能とすることができる。なお、オンラインゲームへの参加が想定されるユーザの情報は、ゲーム管理サーバなどにおける参加履歴情報から抽出する、またはマッチングサーバ1を利用したことのあるユーザの情報を当該マッチングサーバ1内に保存しておくなどによって、既知の情報とすることができる。
【0036】
以下、本発明を適用した各実施例を説明し、図4の各ステップ等を具体的に説明する。各実施例は上記(1)のキャッシュを利用しない場合につき説明するが、上記(2)のキャッシュを利用する場合も同様に実施可能である。第1実施例では、部分ネットワーク品質情報1aを取得するためにパケット遅延取得手段11のみを利用し、パケット棄却率取得手段12ないしセグメント取得手段14は利用しない場合を例として説明する。
【0037】
[第1実施例]
図5は、当該第1実施例においてユーザ管理情報1cが更新される例である。ここでは、ユーザa〜gが既にオンラインゲームに参加中であり、ある時点で新規にユーザnがマッチング要求を行うものとする。図5の(A)が更新前であり、(B)が更新後である。
また、図6は、当該参加中ユーザa〜g及び新規参加要求ユーザnに対してマッチング情報1bが更新される例であり、同じく(A)が更新前を、(B)が更新後を示す。
【0038】
第1実施例においては、図5の(A)に例を示すように、参加中のユーザa〜gに対するユーザ管理情報1cは、各ユーザ間における部分ネットワーク品質情報1aとしてパケット遅延取得手段11が取得した遅延を、ユーザ管理手段30が単位(ms)を含めそのままの値でマッチング距離として採用する。すなわち、ユーザa-b間のマッチング距離はその遅延の値5msであり、ユーザa-c間のマッチング距離は30msであり、などといったように、各ユーザa〜g間のマッチング距離を与えることでユーザ管理情報1cが得られている。
【0039】
ここでは遅延をマッチング距離として採用するに際して、ユーザの組み合わせに対して対称となるようにして利用することとする。よって遅延は上り下りなど考慮せずいずれか一方を用いて、あるいは上り下りの平均を用いるなどして定義することとする。こうして、図5では重複する下三角部分を省略したテーブル形式で、ユーザ管理情報が得られている。また自身から自身への遅延は無意味であるので、たとえばa-aの欄は空欄(−)としてある。
【0040】
また、図5の(A)におけるマッチング距離の関係にあるユーザa〜gに対してマッチングで決定されたグループ分けが図6の(A)であり、マッチング距離の近いユーザ同士が同じグループに所属する結果となっている。すなわち、図6の(A)におけるグループ1,2,3の所属ユーザ同士の図5の(A)におけるマッチング距離(遅延値)を見ると、グループ1内では距離(a-b)=9ms、グループ2内では(c-d)=9ms、(c-e)=10ms、(d-e)=6ms、グループ3内では(f-g)=8msと全て10ms以内の近さであるのに対し、別グループに属するユーザ同士は例えば(a-c)=30msといったように、全て20msよりも遠い結果となっている。こうしたグループ分けを可能とする手順を、新規ユーザnが参加する場合を用いて説明する。
【0041】
図5及び図6それぞれの(A)の状態となっているある時点で、新規ユーザnがマッチング要求を行ったとする。ステップS21で、要求ユーザnと参加中ユーザa〜gとの間で定まる部分ネットワーク品質情報が、パケット遅延取得手段11によって遅延の値として新規に取得される。ステップS22で、当該遅延の値をそのままマッチング距離として採用することで、ユーザ管理手段30がユーザ管理情報の新規追加部分を求め、ユーザ管理情報1cを更新する。
【0042】
当該更新されたユーザ管理情報1cが、図5の(B)に示されている。すなわち(A)の状態に対して、新規ユーザnと参加中ユーザa〜gとの間のマッチング距離の情報が追加されることで、ユーザ管理情報1cが更新されている。
【0043】
ステップS23では、当該時点での図5の(B)に示す更新されたユーザ管理情報1cと、当該時点での参加中ユーザa〜gにつき定義された図6の(A)に示す更新前のマッチング情報1bとを用いて、マッチング手段20が新規ユーザnのマッチングを行う。
【0044】
図7は、図5の(B)のユーザ管理情報におけるマッチング距離をおいて存在するユーザa〜g及びnを模式的に距離空間に配置した図である。図7では、当該時点での図6の(A)に示すマッチング情報1bにて設定されている、既に参加中のユーザa〜gの所属グループ情報も記載してある。図7を用いてステップS23のマッチングを説明する。マッチングは以下の手順(手順1)〜(手順3)により行われる。
【0045】
(手順1)
当該新規の参加要求ユーザからのマッチング距離(遅延値)が所定の閾値Tth以下となる参加中ユーザを全て選びだす。
【0046】
すなわち、図7では(手順1)にてTth=20msとした例が示されている。すなわち、図6の(A)を参照することにより、要求ユーザnからマッチング距離が半径20ms以内に存在する参加中ユーザ端末は、a,b,f及びgとなる。これらのユーザが選出される。
【0047】
(手順2)
マッチング情報をもとに、要求ユーザからのマッチング距離(遅延値)が当該閾値Tth以下となるユーザのみで構成され且つユーザ追加参加可能なグループを、(手順1)の選出ユーザの属するグループの中からさらに選出し、当該グループのうちでグループ内で要求ユーザnから最も遠いユーザとのマッチング距離(遅延値)が最小のグループを要求ユーザの所属グループとして決定する。
【0048】
すなわち、図6の(A)のマッチング情報より、(手順1)で選出されたユーザa,b,f及びgはグループ1(a及びb)とグループ3(g及びf)に所属している。当該グループ1及び3はそれぞれ所属ユーザの全てが閾値Tth=20ms以下の範囲に存在し、且つ当該オンラインゲームの各グループ上限人数は例えば5人であり、両グループ共に新規ユーザを追加可能な状態にある。よってグループ1及び3が選出される。グループ1及び3のユーザのうち、要求ユーザnから最も遠いユーザはそれぞれ、b及びgであって、マッチング距離(遅延)はbが19ms、gが12msであるので、最小値を与えるgの属するグループ3を要求ユーザnの所属グループとして決定する。
【0049】
(手順3)
上記(手順2)における条件を満たすグループが存在しなかった場合には、当該要求ユーザを要素とするグループを新規に作成する。
【0050】
例えば、上記(手順1)及び(手順2)の説明例では閾値Tth=20msとすることで要求ユーザnはグループ3に所属が決定されたが、仮に閾値Tth=10msとするとそもそも(手順1)で選出されるユーザが存在しないので(手順3)が適用され、要求ユーザnは例えば新規グループ4に所属することとなる。仮にTth=11msとすると、(手順1)ではユーザfが選出されるが、当該fの属するグループ3の全ユーザ(f及びg)がTth=11ms以内に存在するわけではないので、(手順2)でグループ選出されず、同様に(手順3)が適用される。
【0051】
なおまた、オンラインゲーム参加中のユーザ人数がゼロの場合、マッチング情報は空欄のテーブル等で与えられ、自動的に(手順3)が適用されることとなる。以降参加ユーザが増加するにつれ、(手順2)が適用される場合も生じてくることとなる。
【0052】
以上のように(手順1)〜(手順3)で構成されるステップS23のマッチングが行われると、当該マッチングの結果に基づいてステップS4でマッチング情報1bが更新される。図6の(B)は上記(手順1)〜(手順3)の説明で閾値Tth=20msとした例におけるマッチング情報1bの更新後を示してあり、要求ユーザnはグループ3に所属するユーザとして登録されている。
【0053】
[第2実施例]
第2実施例は、第1実施例を変形したものである。第1実施例では、ユーザ管理情報1cがオンラインゲーム参加中のユーザ数の2乗に比例して増加するため、ユーザの増加につれてマッチングサーバ1におけるマッチング処理の負荷が過大となる可能性がある。第2実施例は、以下に説明する各グループを代表する代表ユーザを導入することにより、当該負荷を低減するという効果を奏する。第1実施例の説明例として図5〜図7で用いた参加中ユーザa〜g及び要求ユーザnを再度、第2実施例の説明に利用する。
【0054】
第2実施例では、図5のようにユーザ管理情報1cをオンラインゲーム参加中の全ユーザのペアに対して構成するのではなく、グループ毎に所属ユーザの中から代表ユーザを決定して、当該代表ユーザのペアのみと、各グループ内でのユーザのペアのみとに分けてユーザ管理情報1cを構成する。図5の場合に対応する、第2実施例でのユーザ管理情報1cの例を図8に示す。
【0055】
図8の(A)は、各グループの代表ユーザ同士のペアに対してマッチング距離(遅延値)によって定義されたユーザ管理情報で、図5の(A)に対応する例を示している。ここでは、図6の(A)に示したグループ1(ユーザa及びbで構成)の代表ユーザがa、グループ2(ユーザc,d及びeで構成)の代表ユーザがd、グループ3(ユーザf及びgで構成)の代表ユーザがfとして、代表ユーザによるユーザ管理情報を示している。
【0056】
また、各グループ1〜3内でも、各グループ所属ユーザ同士のマッチング距離(遅延値)でグループ内のユーザ管理情報が定義され、それぞれ図8の(A1)〜(A3)に示す通りである。第2実施例ではこのように、(A)に示すグループ毎の代表ユーザによるユーザ管理情報と、(A1)〜(A3)に示す各代表ユーザに対応するグループ内でのユーザ管理情報とに分けて、ユーザ管理情報1cが管理される。こうした管理を行うための具体的な手順を、新規ユーザnを追加する場合を例に、第1実施例との差異の部分について説明する。
【0057】
ステップS21及びS22並びにステップS23の(手順1)における「参加中ユーザ」を、図8の(A)に示す代表ユーザのみに限定して実行する。すなわち、第1実施例では新規ユーザnと参加中の全ユーザa〜gとの7つのペアについて処理が必要であったが、第2実施例では新規ユーザnと代表ユーザa,d及びfとの3つのペアのみを処理対象とすればよい。こうした点が、第2実施例における代表ユーザ導入による負荷低減の効果であり、全ユーザ数が多いほど効果は顕著となる。求まるマッチング距離(遅延値)は、ユーザn-a間が19ms、n-d間が40ms、n-f間が11msとなる。
【0058】
(手順2)では、要求ユーザとのマッチング距離(遅延値)が閾値Tth以下となる代表ユーザに対応するグループのうち、参加人数が上限に達しておらず新規ユーザ追加可能なグループであって、且つ当該マッチング距離が最小となる代表ユーザに対応するグループを要求ユーザの所属グループとして決定する。すなわち、閾値Tth=20msであれば、当該閾値の半径内部の代表ユーザがa及びfであって、対応する両グループはユーザ追加可能であり、そのうちマッチング距離(遅延値)が最小となる代表ユーザfに対応するグループ3が、nの所属グループとして決定される。
【0059】
(手順3)では、上記(手順2)における条件を満たすグループが存在しなかった場合に、当該要求ユーザを要素且つ代表ユーザとするグループを新規に作成する。
【0060】
また、第2実施例では第1実施例との差異として、ユーザ管理情報の更新は次のようにすればよい。当該更新によって、代表ユーザも決定される。更新タイミングはステップS22ではなく、所属グループが決定するステップS23となる。当該ステップS23における代表ユーザの決定には次の(1)(2)の場合がある。
【0061】
(1)前記(手順3)が適用された場合すなわち、当該グループが新規作成グループである場合、唯一のメンバーである新たに参加したユーザが代表ユーザとなる。
【0062】
(2)既存のグループに新たにユーザが所属することとなった場合、グループ内で各ユーザとのマッチング距離(遅延値)の総和が最も小さいユーザが代表ユーザとして決定される。なお、ユーザ数1人のグループがユーザ数2人となった場合には、昔から参加しているユーザを代表ユーザとしておけばよい。
【0063】
なお、上記(2)の総和を計算するために、ステップS23では新規ユーザの所属グループ内において、新規ユーザと参加中ユーザとの間の部分ネットワーク品質情報及びユーザ管理情報(ネットワーク距離)を、それぞれ部分ネットワーク品質情報取得手段10及びユーザ管理手段30が取得及び算出する。
【0064】
なおまた、代表ユーザをマッチング距離の総和最小ユーザとして決定することで、図7に示したような距離空間において各グループの中心付近に存在し、代表ユーザとして適切なユーザを簡易に選択することができる。
【0065】
以上のような代表ユーザの決定によりステップS23では、当該決定された代表ユーザの情報と、追加されたユーザを含む当該グループ内の全ユーザ間のマッチング距離の情報とによって、当該グループに対するユーザ管理情報が更新される。さらに、当該グループにおいて決定された代表ユーザが以前の代表ユーザと異なる場合、又は新規グループが当該グループ内の新規代表ユーザと共に作成された場合には、図8の(B)に説明を示すように、代表ユーザ同士に対するユーザ管理情報もマッチング距離を新たな代表ユーザに対する値に書き換えて更新される。なお当該書き換えるマッチング距離はステップS22で算出済みであり、更新には当該値を利用すればよい。
【0066】
例えば、前記(手順2)で閾値Tth=20msとして代表ユーザfのグループ3にnが追加された場合であれば、当該グループ3のユーザ管理情報は図8の(A3)から更新されて(B3)のようになる。当該グループ3内で各ユーザとのマッチング距離の総和は、
ユーザf:[f-g]+[f-n]=8+11=19ms
ユーザg:[g-f]+[g-n]=8+12=20ms
ユーザn:[n-f]+[n-g]=11+12=23ms
であり、ユーザfに対する総和が最小となるので、(B3)に示すようにグループ3において代表ユーザの変更はなくfのままである。よって、代表ユーザ間のユーザ管理情報は(A)に示した状態のままである。仮に例えばグループ3の代表ユーザがnとなった場合には、(A)はユーザa,d及びfに対してではなく、ユーザa,d及びnに対する情報として、マッチング距離の値を含めて(B)に記載しているように更新されることとなる。
【0067】
[第3実施例]
第3実施例は、第1又は第2実施例それぞれにおいて追加処理として実施可能であり、部分ネットワーク品質情報取得手段10内のセグメント取得手段14が追加的に利用される。図9は、第3実施例を説明するための図である。
【0068】
ISP内のネットワークが、図9の(A)に示すように地理的に複数のセグメントで構成されており、セグメント内での遅延は小さく、セグメント間での遅延は大きいと考えられる場合において、(B)に示すように各セグメント内のユーザでグループを作成し、異なるセグメントに属するユーザ同士が同一グループに所属しないようにすることで、第3実施例ではよりネットワーク的な効率の高いグループ化を実現することができる。
【0069】
一般に、ISPは地理的なセグメントに対して図9の(A)に示すようにIPアドレス空間を割り当て、ユーザは自身が所属する地域に応じていずれかのセグメントよりIPアドレスの払い出しを受ける。セグメント取得手段14はステップS21における追加処理として、ネットワーク品質情報提供サーバ2に問い合わせ、要求ユーザのセグメントとアドレス空間に関する情報を取得する。ステップS22では、その結果を用いることでユーザをセグメント毎に区別し、セグメント毎にユーザ管理情報を作成する。また、ステップS23では、当該セグメント毎に区別されたユーザ管理情報を用いて(C)に示すようにマッチング情報もセグメント区別を設けて運用し、セグメント毎に所属グループを決めることで、セグメント内に閉じてグループが作成される。
【0070】
すなわち、第3実施例では、上記のようにセグメントによるユーザ管理情報及びマッチング情報の区切りを設けたうえで、各セグメント内では第1実施例又は第2実施例における手法をそのまま採用する。
【0071】
なお、第1〜第3実施例では、マッチング距離としてパケット遅延取得手段11の取得する遅延をそのまま利用する場合に限定して説明したが、より一般に、次のようなマッチング距離を採用してもよい。すなわち、あるユーザ端末間に対してステップS21においてパケット遅延取得手段11が遅延値xを取得し、さらに、パケット棄却率取得手段12が棄却率yを取得し、物理的距離取得手段13が物理的距離zを取得する。こうして、ユーザ管理手段30は、ステップS22においてマッチング距離f(x, y, z)を、
f(x, y, z) = ax + by + cz
などによって算出することができる。ここでa,b,cは各取得パラメータx,y,zに重みを付与するための非負の定数であり、x,y,zは適宜規格化するなどして無次元化しておくものとする。
【0072】
このように、パケット遅延取得手段11ないし物理的距離取得手段13のうちの少なくとも一つを用いてマッチング距離を求めてもよい。取得したパラメータのx,y,zのうち利用しないパラメータがある場合には、定数a,b,cのうち対応するものをゼロに設定すればよい。f(x, y, z)には上記とは別のその他の関数を利用してもよい。
【0073】
なお特に、遅延値x及びパケット棄却率yは試験パケット等の送受信し、それを測定することで得られる情報である。本発明では特にこれらx及び/又はyを用いてマッチングを行うことで、ユーザ端末間での定量的な通信実績に裏付けられた低遅延なオンラインゲーム環境を実現することができる。なお、これらx,yは必ずしもネットワーク品質情報提供サーバ2のネットワーク品質情報1aとして保存されている値を利用せずに、値を求めるステップS21などの時点で直接的に部分ネットワーク品質情報取得手段10が両ユーザ端末にアクセス又は依頼して値を測定するようにしてもよい。
【0074】
図10は本発明のオンラインゲームシステムの構成図である。オンラインゲームシステム3は、マッチングサーバ1及びネットワーク品質情報提供サーバ2を含み、各ユーザは以上説明したようにマッチングサーバ1とやりとりする。本発明の、このようなオンラインゲームシステム3におけるビジネスモデルには、以下(1)(2)に示す形態などがある。
【0075】
(1)ネットワーク品質情報提供サーバ2はISPが運用し、マッチングサーバ1はゲーム会社が運用する。ゲーム会社は、ISPからネットワーク品質情報を得るための対価を支払う。料金体系として、月額固定や、ネットワーク品質情報提供サーバ2への通信量に比例した料金などが考えられる。
【0076】
(2)ネットワーク品質情報提供サーバ2及びマッチングサーバ1の両者を、ISPが運用する。この場合には、ISPがゲーム会社に対してマッチングサーバ1を利用するAPI(アプリケーションプログラミングインタフェース)を提供し、マッチング要求、グループ問い合わせなどの機能を提供する。このとき、ゲーム会社は独自のポリシーに従う自社で運用されるマッチングサーバを別途保持していてもよい。その際には、機能拡張のためにISPがマッチングAPIを提供する形態となる。
【符号の説明】
【0077】
1…マッチングサーバ、2…ネットワーク品質情報提供サーバ、3…オンラインゲームシステム、10…部分ネットワーク品質情報取得手段、20…マッチング手段、30…ユーザ管理手段

【特許請求の範囲】
【請求項1】
グループ単位にて実行されるオンラインゲームに参加するユーザの所属するグループを決定するマッチングサーバにおいて、
ユーザ端末間で送受信されるネットワークトラヒックに基づいて算出される当該ユーザ端末間の通信品質に関する情報を含む部分ネットワーク品質情報を取得する部分ネットワーク品質情報取得手段と、
前記部分ネットワーク品質情報に基づいてユーザ端末間のマッチング距離を算出し、ユーザ管理情報として管理するユーザ管理手段と、
当該オンラインゲームの実行されている状態を把握するために、当該オンラインゲームに参加中である各ユーザの情報と、該各ユーザの所属するグループの情報とを互いに対応づけたマッチング情報を管理するマッチング手段とを備え、
該マッチング手段は、当該オンラインゲームに参加しようとする要求ユーザからマッチング要求を受信した場合、当該要求ユーザと前記マッチング情報を参照して得られる当該オンラインゲーム実行中の各グループに所属するユーザとの間の、前記ユーザ管理情報を参照して得られるマッチング距離の各グループ間での比較に基づいて当該要求ユーザの所属するグループを決定することを特徴とするマッチングサーバ。
【請求項2】
前記部分ネットワーク品質情報取得手段が、
前記部分ネットワーク品質情報の一種としてユーザ端末間のパケット遅延を取得するパケット遅延取得手段と、
前記部分ネットワーク品質情報の一種としてユーザ端末間で送受信されるパケットの棄却率を取得するパケット棄却率取得手段と、
前記部分ネットワーク品質情報の一種としてユーザ端末間の物理的距離を取得する物理的距離取得手段とのうち少なくとも一つを含むことを特徴とする請求項1に記載のマッチングサーバ。
【請求項3】
前記マッチング手段が、当該オンラインゲームに参加しようとする要求ユーザからマッチング要求を受信した場合、当該要求ユーザと前記マッチング情報を参照して得られる当該オンラインゲーム参加中ユーザのうち各グループを代表する代表ユーザとの間の、前記ユーザ管理情報を参照して得られるマッチング距離の前記代表ユーザにより代表される各グループ間での比較に基づいて当該要求ユーザの所属するグループを決定することを特徴とする請求項1または2に記載のマッチングサーバ。
【請求項4】
前記マッチング手段が、前記各グループを代表する代表ユーザを、前記ユーザ管理情報を参照して得られるマッチング距離の、各グループ内における他のユーザとの総和が最小となるユーザとして定めることを特徴とする請求項3に記載のマッチングサーバ。
【請求項5】
前記部分ネットワーク品質情報取得手段が、前記部分ネットワーク品質情報の一種として各ユーザ端末の所属する、IPアドレス空間の割り当てに対応したセグメントを取得するセグメント取得手段を含み、
前記マッチング手段は、異なるセグメントに属するユーザ同士が同一グループに所属することがないよう、セグメント毎に分割して前記マッチング情報を管理し、当該オンラインゲームに参加しようとする要求ユーザからマッチング要求を受信した場合、当該要求ユーザの所属するセグメントに対応するマッチング情報を参照して当該要求ユーザの所属するグループを決定することを特徴とする請求項1ないし4のいずれかに記載のマッチングサーバ。
【請求項6】
前記部分ネットワーク品質情報取得手段が、当該オンラインゲームに参加しようとする要求ユーザからマッチング要求を受信した場合にその都度当該要求ユーザに関連する前記部分ネットワーク品質情報を取得する、または当該オンラインゲームに参加することが既知の所与のユーザに関連する前記部分ネットワーク品質情報を所定期間毎に取得することを特徴とする請求項1ないし5のいずれかに記載のマッチングサーバ。
【請求項7】
ユーザ端末間で送受信されるネットワークトラヒックを測定し当該ユーザ端末間の通信品質に関する情報を含むネットワーク品質情報を保持するネットワーク品質情報提供サーバと、
グループ単位にて実行されるオンラインゲームに参加するユーザの所属するグループを決定するマッチングサーバとを含むオンラインゲームシステムにおいて、
前記マッチングサーバが、
前記ネットワーク品質情報提供サーバの保持するネットワーク品質情報の一部として部分ネットワーク品質情報を取得する部分ネットワーク品質情報取得手段と、
前記部分ネットワーク品質情報に基づいてユーザ端末間のマッチング距離を算出し、ユーザ管理情報として管理するユーザ管理手段と、
当該オンラインゲームの実行されている状態を把握するために、当該オンラインゲームに参加中である各ユーザの情報と、該各ユーザの所属するグループの情報とを互いに対応づけたマッチング情報を管理するマッチング手段とを備え、
該マッチング手段は、当該オンラインゲームに参加しようとする要求ユーザからマッチング要求を受信した場合、当該要求ユーザと前記マッチング情報を参照して得られる当該オンラインゲーム実行中の各グループに所属するユーザとの間の、前記ユーザ管理情報を参照して得られるマッチング距離の各グループ間での比較に基づいて当該要求ユーザの所属するグループを決定し、
前記マッチングサーバ及びネットワーク品質情報管理サーバがそれぞれゲーム会社及びISP(インターネットサービスプロバイダ)に運用される、または前記マッチングサーバ及びネットワーク品質情報管理サーバが共にISPに運用されることを特徴とするオンラインゲームシステム。
【請求項8】
グループ単位にて実行されるオンラインゲームに参加するユーザの所属するグループを決定するマッチング方法において、
ユーザ端末間で送受信されるネットワークトラヒックに基づいて算出される当該ユーザ端末間の通信品質に関する情報を含む部分ネットワーク品質情報を取得するステップと、
前記部分ネットワーク品質情報に基づいてユーザ端末間のマッチング距離を算出し、ユーザ管理情報として管理するステップと、
当該オンラインゲームの実行されている状態を把握するために、当該オンラインゲームに参加中である各ユーザの情報と、該各ユーザの所属するグループの情報とを互いに対応づけたマッチング情報を管理するステップと、
当該オンラインゲームに参加しようとする要求ユーザからマッチング要求を受信してから、当該要求ユーザと前記マッチング情報を参照して得られる当該オンラインゲーム実行中の各グループに所属するユーザとの間の、前記ユーザ管理情報を参照して得られるマッチング距離の各グループ間での比較に基づいて当該要求ユーザの所属するグループを決定するステップとを備えることを特徴とするマッチング方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2013−13027(P2013−13027A)
【公開日】平成25年1月17日(2013.1.17)
【国際特許分類】
【出願番号】特願2011−145968(P2011−145968)
【出願日】平成23年6月30日(2011.6.30)
【出願人】(000208891)KDDI株式会社 (2,700)
【Fターム(参考)】