説明

通信システム、サーバ装置、ゲーム装置、通信方法、ならびに、プログラム

【課題】通信対戦ゲームの対戦相手を通信速度に応じて適切に紹介する通信システム等を提供する。
【解決手段】ゲーム装置から紹介要求301を受信したサーバ装置は、各ゲーム装置に他のゲーム装置を指定する試行要求302を送信する。各ゲーム装置は、他のゲーム装置に即応要求303を送信し、即応要求303を受信したら送信下に即応応答304を送信する。各ゲーム装置は、即応要求303と即応応答304の時間差を計算して、他のゲーム装置との通信時間を指定する試行応答305をサーバ装置に送信する。サーバ装置は、受信した試行応答305に指定される時間差の情報に基づいて、いずれのゲーム装置を紹介するかを決め、互いを紹介する紹介通知306を送信する。紹介通知306を受信したゲーム装置は、紹介相手とピアツーピア通信307を開始して通信対戦する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、通信対戦ゲームの対戦相手を通信速度に応じて適切に紹介するのに好適な通信システム、サーバ装置、ゲーム装置、通信方法、ならびに、これらをコンピュータにて実現するプログラムに関する。
【背景技術】
【0002】
従来から、ネットワーク通信機能を持ったゲーム装置などを用いた通信対戦ゲームが提供されている。通信対戦ゲームでは、各ゲーム装置はロビーサーバと呼ばれるサーバ装置に対戦相手の紹介を求める。ここで、紹介する相手を決める処理は、マッチングと呼ばれる。
【0003】
たとえば、下記の特許文献1には、対戦の組み合わせを決定するロビーサーバの技術が開示される。
【0004】
紹介されたゲーム装置同士は、サーバを介した通信を行う場合もあるが、ピアツーピアの通信を行って対戦する場合もある。
【0005】
ピアツーピア通信によって対戦が行われる場合、通信対戦ゲームを快適にプレイできるか否かは、プレイヤー同士が利用している通信経路の速度に大きく依存する。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2002−346205号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
したがって、両者が利用する通信路の通信速度を考慮して、適切な対戦相手を紹介する技術が求められている。
【0008】
プレイヤーがテストプレイを行う際には、他のゲームのプレイをすることができない。したがって、テストプレイに参加する人数にはどうしても限界がある。
【0009】
また、ゲームの本格的な提供がなされる前にプレイヤーがテストプレイに参加したために、かえってゲームに対する興味を低減させてしまうという問題もある。
【0010】
本発明は、上記のような課題を解決するもので、通信対戦ゲームの対戦相手を通信速度に応じて適切に紹介するのに好適な通信システム、サーバ装置、ゲーム装置、通信方法、ならびに、これらをコンピュータにて実現するプログラムを提供することを目的とする。
【課題を解決するための手段】
【0011】
以上の目的を達成するため、本発明の原理にしたがって、下記の発明を開示する。
【0012】
本発明の第1の観点に係る通信システムは、複数のゲーム装置と、サーバ装置と、を備える。
【0013】
ここで、複数のゲーム装置のそれぞれは、紹介要求送信部、試行要求受信部、即応要求送信部、即応要求受信部、即応応答送信部、即応応答受信部、試行取得部、試行応答送信部、紹介通知受信部、通信対戦部を備える。
【0014】
典型的には、本ゲーム装置は、通信機能を有するエンターテインメント用端末等の情報処理装置によって構成され、当該情報処理装置が、ゲーム装置用プログラムを実行することによって実現される。
【0015】
一方、サーバ装置は、N個の記憶部、紹介要求受信部、追加部、試行要求送信部、試行応答受信部、選択部、紹介通知送信部、削除部を備える。
【0016】
典型的には、本サーバ装置は、通信機能を有するサーバ用コンピュータ等の情報処理装置によって構成され、当該情報処理装置が、サーバ用プログラムを実行することによって実現される。
【0017】
ここで、複数のゲーム装置のそれぞれにおいて、紹介要求送信部は、通信相手の紹介を求めるための紹介要求をサーバ装置に送信する。
【0018】
これは、通信対戦ゲーム端末が対戦相手の紹介を求めてロビーサーバに接続する段階に相当する。
【0019】
一方、サーバ装置において、N個の記憶部には、ゲーム装置の識別名が記憶される。紹介要求受信部は、複数のゲーム装置のそれぞれから送信される紹介要求を受信する。追加部は、紹介要求が受信されると、当該紹介要求の送信元のゲーム装置の識別名をN個の記憶部のいずれかに追加する。試行要求送信部は、N個の記憶部のそれぞれについて、当該記憶部に記憶された識別名のゲーム装置のそれぞれに、当該記憶部に記憶された他の識別名を指定する試行要求を送信する。
【0020】
Nは、1もしくは2以上であり、この記憶部のそれぞれは、配列やキューなどの形態で実現され、紹介を求めているゲーム装置の識別名を管理する。
【0021】
すなわち、サーバ装置では、紹介を求めているゲーム端末をN個のグループに分類して管理する。
【0022】
ゲーム端末から紹介要求が到着すると、サーバ装置は、そのゲーム端末をいずれかのグループに割り当てる。その後、各グループ内のゲーム端末のそれぞれに、同じグループに属する他のゲーム端末の識別名を知らせる。
【0023】
なお、当初の紹介要求に、当該ゲーム装置を使用するプレイヤーの過去の成績や現在の階級、各種パラメータ情報を指定することとして、これらの情報に基づいて同程度の実力を備えるプレイヤーごとにグループ分けを行うこととしても良い。その他のグループ分けの態様については後述する。
【0024】
さらに、複数のゲーム装置のそれぞれにおいて、試行要求受信部は、サーバ装置から送信される試行要求を受信する。即応要求送信部は、複数のゲーム装置のうち他のゲーム装置に即応要求を送信する。即応要求受信部は、複数のゲーム装置のうち他のゲーム装置から送信された即応要求を受信する。即応応答送信部は、即応要求が受信されると、当該即応要求の送信元に即応応答を送信する。即応応答受信部は、複数のゲーム装置のうち他のゲーム装置から送信された即応応答を受信する。
【0025】
ここでいう即応要求ならびに即応応答は、たとえば、pingプロトコルやechoプロトコルによって通信がなされる場合に相当する。すなわち、通信相手に対して要求パケットを送信すると、これを受信した通信相手は、直ちに応答パケットを返送してくるような形態の通信を行う。
【0026】
そして、複数のゲーム装置のそれぞれにおいて、試行要求受信部は、サーバ装置から送信される試行要求を受信する。試行取得部は、受信された試行要求に指定される識別名を有するゲーム装置のそれぞれについて、即応要求送信部に即応要求を送信させ、即応応答受信部に即応応答を受信させ、当該即応要求が送信された時刻と当該即応応答が受信された時刻との時間差を取得する。試行応答送信部は、受信された試行要求に指定される識別名を有するゲーム装置のそれぞれについて、計算された時間差を指定する試行応答を、サーバ装置に送信する。
【0027】
すなわち、各ゲーム装置は、同じグループに属する他のゲーム装置の識別名を知得すると、他のゲーム装置との通信時間を測定する。そして、その測定結果を、サーバ装置に知らせることになる。
【0028】
さらに、サーバ装置において、試行応答受信部は、N個の記憶部のそれぞれについて、当該記憶部に記憶された識別名のゲーム装置のそれぞれから、送信された試行応答を受信する。選択部は、N個の記憶部のそれぞれについて、当該記憶部に記憶された識別名のうち、第1の識別名のゲーム装置から受信された試行応答に指定される第2の識別名のゲーム装置に対する時間差と、当該第2の識別名のゲーム装置から受信された試行応答に指定される第1の識別名のゲーム装置に対する時間差と、が、所定の選択条件を満たす場合、当該第1の識別名と、当該第2の識別名と、を選択する。紹介通知送信部は、選択された第1の識別名のゲーム装置に、選択された第2の識別名を指定する紹介通知を送信し、選択された第2の識別名のゲーム装置に、選択された第1の識別名を指定する紹介通知を送信する。削除部は、選択された第1の識別名と、選択された第2の識別名と、を、N個の記憶部のうち、これらが記憶される記憶部から削除する。
【0029】
試行応答を収集することによって、サーバ装置は、あるグループ内の各ゲーム装置同士の通信時間を調べることができる。
【0030】
そこで、サーバ装置は、この通信時間に基づいて、どのゲーム端末同士を紹介するかを選択し、選択結果をその紹介する相手に知らせる。その後、対戦相手を紹介済のゲーム装置の識別名を、グループ内から除去する。
【0031】
そして、複数のゲーム装置のそれぞれにおいて、紹介通知受信部は、サーバ装置から送信された紹介通知を受信する。通信対戦部は、受信された紹介通知に指定される識別名のゲーム装置と、通信対戦のために通信する。
【0032】
このように、各ゲーム装置は、サーバ装置から紹介された通信相手と通信対戦を開始することになる。
【0033】
本発明によれば、サーバ装置は、ゲーム装置に対して、通信対戦ゲームの対戦相手を通信速度に応じて適切に紹介することができるようになる。
【0034】
また、本発明の通信システムにおいて、Nは2以上の定数であり、以下のように構成することができる。
【0035】
すなわち、サーバ装置は、紹介要求が受信されると、N個の記憶部のそれぞれから、当該記憶部に記憶される識別名のいずれかを選択し、当該選択された識別名を指定する調査要求を、当該紹介要求の送信元のゲーム装置に送信する。
【0036】
本発明では、紹介要求がされると、ひとまず各グループから選ばれた代表が、ゲーム装置に通知される。
【0037】
一方、複数のゲーム装置のそれぞれは、サーバ装置から送信される調査要求を受信する。そして、受信された調査要求に指定される識別名のゲーム装置のそれぞれについて、当該ゲーム装置に即応要求を送信し、当該ゲーム装置から即応応答を受信し、即応要求が送信された時刻と即応応答が受信された時刻との時間差を計算する。ついで、受信された調査要求に指定される識別名のそれぞれについて、当該識別名のゲーム装置について計算された時間差を指定する調査応答を、サーバ装置に送信する。
【0038】
調査応答を受信したゲーム装置は、各グループの代表との通信を試み、その通信時間をサーバ装置に知らせることになる。
【0039】
さらに、サーバ装置は、ゲーム装置から送信された調査応答を受信し、当該調査応答に指定される時間差が最も短い識別名が記憶される記憶部に、当該調査応答の送信元のゲーム装置を追加する。
【0040】
サーバ装置は、ゲーム装置から、代表との通信時間が知らされると、通信時間が最短の代表が属するグループに、当該ゲーム装置を加入させるのである。
【0041】
本発明によれば、通信状態が良好と考えられるゲーム装置がグループをなす可能性が高まるので、ゲーム装置に対して、通信対戦ゲームの対戦相手を通信速度に応じて適切に紹介することができるようになる。
【0042】
また、本発明の通信システムにおいて、N個の記憶部は、キューとして構成され、サーバ装置は、調査要求に指定する識別名として、N個の記憶部のそれぞれを構成するキューの先頭の要素を選択するように構成することができる。
【0043】
また、本発明の通信システムにおいて、N = 1であるように構成することができる。
【0044】
本発明は上記発明の一実施形態に係るもので、ゲーム装置の数が少ない場合や、各プレイヤーの実力が拮抗している場合などに特に好適である。
【0045】
また、本発明の通信システムは、サーバ装置において、選択部は、N個の記憶部のそれぞれについて、当該記憶部に記憶される識別名の対のそれぞれについて、当該対の識別名をA、Bとし、識別名Aのゲーム装置から受信された試行応答に指定される識別名Bのゲーム装置に対する時間差をpとし、識別名Bのゲーム装置から受信された試行応答に指定される識別名Aのゲーム装置に対する時間差をqとしたとき、|p-q|が小さい対を選択し、当該選択された対の識別名Aを第1の識別名とし、識別名Bを第2の識別名とする処理を繰り返すように構成することができる。
【0046】
本発明は上記発明の好適実施形態に係るもので、あるゲーム装置の間のパケットの往復に要する時間が、いずれのゲーム装置を出発点とした場合であっても、ほぼ等しいものを優先的にマッチングするものである。
【0047】
どんな識別名A、Bを選択した場合にも、なお|p-q|がある閾値以上となってしまう場合には、そのグループに残っているゲーム装置同士は選択条件が満たされないので、新たなゲーム装置が加入してくるまで紹介がなされないことになる。
【0048】
本発明によれば、通信状況が均衡しているゲーム装置を紹介し続けることが可能となる。
【0049】
本発明のその他の観点に係るサーバ装置は、上記の通信システムにおけるサーバ装置である。
【0050】
本発明のその他の観点に係るゲーム装置は、上記の通信システムにおけるゲーム装置である。
【0051】
本発明のその他の観点に係る通信方法は、複数のゲーム装置と、サーバ装置と、により実行される。
【0052】
ここで、複数のゲーム装置のそれぞれは、紹介要求送信部、試行要求受信部、即応要求送信部、即応要求受信部、即応応答送信部、即応応答受信部、試行取得部、試行応答送信部、紹介通知受信部、通信対戦部を備える。
【0053】
一方、サーバ装置は、ゲーム装置の識別名が記憶されるN個の記憶部、紹介要求受信部、追加部、試行要求送信部、試行応答受信部、選択部、紹介通知送信部、削除部を備える。
【0054】
そして、当該通信方法は、複数のゲーム装置のそれぞれにおいて実行される紹介要求送信工程、試行要求受信工程、即応要求送信工程、即応要求受信工程、即応応答送信工程、即応応答受信工程、試行取得工程、試行応答送信工程、紹介通知受信工程、通信対戦工程と、サーバ装置において実行される紹介要求受信工程、追加工程、試行要求送信工程、試行応答受信工程、選択工程、紹介通知送信工程、削除工程と、を備える。
【0055】
ここで、複数のゲーム装置のそれぞれにおいて、紹介要求送信工程では、紹介要求送信部が、通信相手の紹介を求めるための紹介要求をサーバ装置に送信する。
【0056】
一方、サーバ装置において、紹介要求受信工程では、紹介要求受信部が、複数のゲーム装置のそれぞれから送信される紹介要求を受信する。紹介要求が受信されると、追加工程では、追加部が、当該紹介要求の送信元のゲーム装置の識別名をN個の記憶部のいずれかに追加する。試行要求送信工程では、試行要求送信部が、N個の記憶部のそれぞれについて、当該記憶部に記憶された識別名のゲーム装置のそれぞれに、当該記憶部に記憶された他の識別名を指定する試行要求を送信する。
【0057】
さらに、複数のゲーム装置のそれぞれにおいて、試行要求受信工程では、試行要求受信部が、サーバ装置から送信される試行要求を受信する。即応要求送信工程では、即応要求送信部が、複数のゲーム装置のうち他のゲーム装置に即応要求を送信する。即応要求受信工程では、即応要求受信部が、複数のゲーム装置のうち他のゲーム装置から送信された即応要求を受信する。即応応答送信工程では、即応応答送信部が、即応要求が受信されると、当該即応要求の送信元に即応応答を送信する。即応応答受信工程では、即応応答受信部が、複数のゲーム装置のうち他のゲーム装置から送信された即応応答を受信する。試行取得工程では、試行取得部が、受信された試行要求に指定される識別名を有するゲーム装置のそれぞれについて、即応要求送信部に即応要求を送信させ、即応応答受信部に即応応答を受信させ、当該即応要求が送信された時刻と当該即応応答が受信された時刻との時間差を取得する。試行応答送信工程では、試行応答送信部が、受信された試行要求に指定される識別名を有するゲーム装置のそれぞれについて、計算された時間差を指定する試行応答を、サーバ装置に送信する。
【0058】
そして、サーバ装置において、試行応答受信工程では、試行応答受信部が、N個の記憶部のそれぞれについて、当該記憶部に記憶された識別名のゲーム装置のそれぞれから、送信された試行応答を受信する。N個の記憶部のそれぞれについて、当該記憶部に記憶された識別名のうち、第1の識別名のゲーム装置から受信された試行応答に指定される第2の識別名のゲーム装置に対する時間差と、当該第2の識別名のゲーム装置から受信された試行応答に指定される第1の識別名のゲーム装置に対する時間差と、が、所定の選択条件を満たす場合、選択工程では、選択部が、当該第1の識別名と、当該第2の識別名と、を選択する。紹介通知送信工程では、紹介通知送信部が、選択された第1の識別名のゲーム装置に、選択された第2の識別名を指定する紹介通知を送信し、選択された第2の識別名のゲーム装置に、選択された第1の識別名を指定する紹介通知を送信する。削除工程では、削除部が、選択された第1の識別名と、選択された第2の識別名と、を、N個の記憶部のうち、これらが記憶される記憶部から削除する。
【0059】
一方、複数のゲーム装置のそれぞれにおいて、紹介通知受信工程では、紹介通知受信部が、サーバ装置から送信された紹介通知を受信する。通信対戦工程では、通信対戦部が、受信された紹介通知に指定される識別名のゲーム装置と、通信対戦のために通信する。
【0060】
本発明のその他の観点に係る通信システム用プログラムは、ゲーム装置用プログラムと、サーバ用プログラムと、を備える。
【0061】
ここで、ゲーム装置用プログラムは、複数のゲーム装置用コンピュータを、上記のゲーム装置の各部として機能させる。
【0062】
一方、サーバ用プログラムは、サーバ用コンピュータを、上記のサーバ装置の各部として機能させる。
【0063】
また、これらのプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記憶媒体に記録することができる。
【0064】
これらのプログラムは、プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記憶媒体は、コンピュータとは独立して配布・販売することができる。
【発明の効果】
【0065】
本発明によれば、通信対戦ゲームの対戦相手を通信速度に応じて適切に紹介するのに好適な通信システム、サーバ装置、ゲーム装置、通信方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができる。
【図面の簡単な説明】
【0066】
【図1】典型的な情報処理装置の概要構成を示す模式図である。
【図2】本実施形態に係る通信システムの概要構成を示す説明図である。
【図3】ゲーム装置とサーバ装置が通信する様子を示すセッション図である。
【図4】本実施形態に係るゲーム装置の概要構成を示す模式図である。
【図5】ゲーム装置にて実行されるゲーム処理の制御の流れを示すフローチャートである。
【図6】本実施形態に係るサーバ装置の概要構成を示す模式図である。
【図7】サーバ装置にて実行されるサービス処理の制御の流れを示すフローチャートである。
【発明を実施するための形態】
【0067】
以下に本発明の実施形態を説明する。以下では、理解を容易にするため、ゲーム用の情報処理装置を利用して本発明が実現される実施形態を説明するが、以下に説明する実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。
【0068】
したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
【実施例1】
【0069】
(情報処理装置)
図1は、プログラムを実行することにより、本実施形態の通信システムに係るゲーム装置として機能しうる典型的な情報処理装置の概要構成を示す模式図である。以下、本図を参照して説明する。
【0070】
本図に示す情報処理装置101は、携帯可能なマルチメディア端末であり、CPU(Central Processing Unit)102、RAM(Random Access Memory)103、ROM(Read Only Memory)104、入力装置105、画像処理部106、液晶ディスプレイ107、音声処理部108、ヘッドホン109、カセットリーダ110、ROMカセット111、外部メモリ112、RTC(Real Time Clock)113、無線LAN(Local Area Network)インターフェース114、カメラ115を備える。
【0071】
本実施形態に係るプログラムが記録されたROMカセット111を、情報処理装置101のカセットリーダ110に装着することによって、本実施形態に係るゲーム装置が実現される。
【0072】
ここで、CPU 102は、情報処理装置101の各部を制御するとともに、各種の演算処理や判断処理を行う。
【0073】
情報処理装置101に電源が投入されると、CPU 102は、ROM 104に記録されたIPL(Initial Program Loader)を実行し、その処理の過程で、カセットリーダ110を介して接続されたROMカセット111に記録されたプログラムに処理を移行する。
【0074】
情報処理装置101で実行されるゲームプログラムやマルチメディア情報再生プログラムは、ROMカセット111によって提供されるのが一般的であるが、ROM 104内にあらかじめ用意しておくことも可能である。
【0075】
また、ROM 104内には、BIOS(Basic Input Output System)と呼ばれるプログラム群が用意されており、入力装置105や画像処理部106、音声処理部108の制御を行うことができる。
【0076】
RAM 103は、一時的な情報を記憶するための領域であり、外部メモリ112は、不揮発な情報を記憶するための領域である。外部メモリ112としては、ハードディスクなど、主として情報処理装置101に内蔵されるもののほか、各種のメモリカードなど、情報処理装置101に抜挿されるものを利用しても良い。
【0077】
入力装置105は、各種のボタンやキーボード、マウス、ジョイスティック等により実現されるのが一般的であるが、液晶ディスプレイ107と一体に形成されたタッチスクリーンを入力装置105として利用することも可能である。
【0078】
画像処理部106は、CPU 102の制御の下、各種の文字情報や画像情報を液晶ディスプレイ107に表示させるものであり、一般には、垂直同期割込周期(典型的には、30分の1秒や60分の1秒程度である。)ごとに、RAM 103内に用意されたフレームバッファに記憶された画素情報を液晶ディスプレイ107の各画素に反映させる。
【0079】
ユーザからの指示入力は、液晶ディスプレイ107に表示されたカーソルを入力装置105の移動ボタン操作により移動して、所望のメニュー項目にカーソルを合わせ、決定ボタン操作によって当該メニュー項目を選択するのが一般的であるが、タッチスクリーンを利用する場合にはカーソルは不要である。また、入力装置105の各ボタンに割り当てられる機能があらかじめ決まっている場合には、液晶ディスプレイ107に対する表示は、必ずしも必要ない。
【0080】
音声処理部108は、RAM 103やROM 104、ROMカセット111、外部メモリ112に用意された音声データをヘッドホン109に出力する。音声データとしては、音声の波形データをディジタル化したPCM(Pulse Code Modulation)データや、PCMデータを圧縮してサイズを小さくしたMP3(MPeg audio layer-3)データ等を利用することが可能であるほか、MIDI(Music Instruction Data Interface)データのように、音高、音長、音量、音色の種類を定義するデータを用意し、これにしたがって、あらかじめ用意された音源波形データを適宜選択・変形して再生する手法を採用しても良い。
【0081】
RTC 113は、現在の日時を計測するもので、情報処理装置101を初めて利用する際に時刻合わせを行うのが一般的であるが、無線LANインターフェース114を介してNTP(Network Time Protocol)サーバに接続することで、自動的に時刻合わせを行うような態様を採用することも可能である。
【0082】
また、アラーム割込を発生させる機能を持つRTC 113もある。設定された時刻になるとアラーム割込が発生して、CPU 102は、現在実行中のプログラムを一時中断し、あらかじめ設定された割込ハンドラを実行してから、中断したプログラムを再開する。
【0083】
無線LANインターフェース114は、自宅や会社、街角に用意された無線LANアクセスポイントを介してインターネットに接続したり、近傍に配置された他の情報処理装置101と、アドホックに通信路を確立し、1対1で通信を行うなどが可能である。
【0084】
カメラ115は、情報処理装置101によってディジタルカメラの機能を実現するものであり、CCD(Charge Coupled Device)やCMOS(Complementary Metal Oxide Semiconductor)撮像素子などの技術を適用することが可能である。撮影された画像は、一時的にRAM 103に展開された後、外部メモリ112等に保存される。
【0085】
このほか、ビジネス用コンピュータ、携帯電話、PDA(Personal Data Assistant)、携帯ゲーム装置、多機能テレビジョン装置、DVD(Digital Versatile Disc)プレイヤー、携帯音楽プレイヤーなどを、本発明のゲーム装置が実現される情報処理装置として採用することもできる。
【0086】
一方、本実施形態に係るサーバ装置を実現する際には、サーバ用コンピュータにおいてプログラムを実行することとするが、サーバ用コンピュータの本質的な構成は、上記情報処理装置101と同様である。
【0087】
典型的には、サーバ用コンピュータでは、上記構成に加えて、有線LANインターフェースやハードディスクやフラッシュディスク、などの外部記憶装置を備えることとする。また、他のコンピュータから管理を行う場合には、液晶ディスプレイ107や入力装置105、カメラ115等を省略することもできる。
【0088】
このほか、サーバ用コンピュータでは、ROMカセット111ではなく、DVD−ROMドライブを介して、DVD−ROMからプログラムをロードしたり、ハードディスクやフラッシュディスクからプログラムをロードしたりするのが一般的である。
【0089】
また、CPU 102の計算能力やRAM 103の容量なども、ゲーム用エンターテインメント端末を実現する情報処理装置101より遥かに優れたものとすることが多い。
【0090】
しかしながら、ゲーム装置用コンピュータである情報処理装置101においてゲーム装置用プログラムを実行すれば、本実施形態に係るゲーム装置が実現され、サーバ用コンピュータにおいてサーバ用プログラムを実行すれば、本実施形態に係るサーバ装置が実現される、という点において、両者は本質的に共通する。
【0091】
(通信システム)
図2は、本実施形態に係る通信システムの概要構成を示す説明図である。以下、本図を参照して説明する。
【0092】
本図に示すように、通信システム201は、複数のゲーム装置231と、1つのサーバ装置261と、が、コンピュータ通信網291を介して通信可能に接続されることにより構成される。
【0093】
上記のように、本実施形態のゲーム装置231は、ゲーム用エンターテインメント端末である情報処理装置101によって実現される。したがって、ゲーム装置231は、インターネットであるコンピュータ通信網291に対して、無線により接続される。ただし、有線接続されるコンピュータをゲーム装置231として利用しても良い。
【0094】
一方、サーバ装置261は、通信速度を確保する等の観点から、コンピュータ通信網291に有線で接続されるのが典型的である。
【0095】
ゲーム装置231は、当初はサーバ装置261と通信するが、サーバ装置261から通信相手の紹介を受けた後は、紹介された相手とのあいだでピアツーピア通信を行う。
【0096】
したがって、各ゲーム装置231がコンピュータ通信網291内のどこに接続されるか、によって、ピアツーピア通信の速度が変化する。
【0097】
本発明では、快適に通信対戦ができる速度が実現できるように、ゲーム装置231をサーバ装置261にて紹介する際に工夫をしている。
【0098】
なお、通信相手やパケットの宛先、送信元を指定するための識別名としては、IPアドレス、あるいは、IPアドレスおよびポート番号を利用するのが一般的である。
【0099】
さて、本実施形態では、サーバ装置261は、紹介を求めるゲーム装置231を1つまたは複数のグループに分類し、そのグループ内で、通信相手を紹介する。
【0100】
図3は、ゲーム装置231とサーバ装置261が通信する様子を示すセッション図である。以下、本図を参照して説明する。
【0101】
本図では、識別名A、Bを有する2台のゲーム装置231が、過去にサーバ装置261に紹介を求めており(301a、301b)、これらは同じグループGに分類され、そのまま対戦相手の紹介を受けていない状況から説明を始める。ここで、
【0102】
まず、識別名Cを有する新たなゲーム装置231が、サーバ装置261に紹介を求める紹介要求301cを送信する。これを受信したサーバ装置261が、ゲーム装置231(識別名C)をグループGに分類したものとする。
【0103】
すると、サーバ装置261は、識別名A、B、Cの3台のゲーム装置231のそれぞれに、試行要求302a、302b、302cを送信する。試行要求のそれぞれには、同じグループGに属する他のゲーム装置231の識別名が指定されている。
【0104】
したがって、本例では、
識別名Aのゲーム装置231宛の試行要求302aには、識別名B、Cが指定され、
識別名Bのゲーム装置231宛の試行要求302bには、識別名C、Aが指定され、
識別名Cのゲーム装置231宛の試行要求302cには、識別名A、Bが指定されることになる。
【0105】
試行要求302を受信した各ゲーム装置231は、試行要求302に指定される識別名のゲーム装置231に対して、即応要求303を送信する。
【0106】
たとえば、即応要求303abは、ゲーム装置231(識別名A)からゲーム装置231(識別名B)宛である。
【0107】
即応要求303を受信した各ゲーム端末は、即応要求303の送信元のゲーム装置231に対して、直ちに即応応答304を送信する。
【0108】
たとえば、即応応答304baは、ゲーム装置231(識別名B)からゲーム装置231(識別名A)宛である。
【0109】
即応要求303と即応応答304は、たとえば、pingプロトコルやechoプロトコルを利用したり、これらに準じて実装されるものであり、何らかのパケットを送信すると、そのパケットを受信した旨の確認が直ちに返送されるような通信を実現するものである。
【0110】
即応要求303と即応応答304の組み合わせから、ゲーム装置231同士の通信に要する時間がわかる。たとえば、ゲーム装置231(識別名A)において、即応応答304baの受信時刻から即応要求303abを減算すれば、その時間差は、ゲーム装置231(識別名A)からゲーム装置231(識別名B)宛に開始されるパケットの往復の通信時間に相当する。
【0111】
各ゲーム装置231は、試行要求302に指定される他のゲーム装置231のそれぞれとの通信時間を測定すると、その測定結果を指定する試行応答305をサーバ装置261に送信する。
【0112】
なお、理解を容易にするため、本図では、ゲーム装置Aを起源とする即応要求303ab、303ac、即応応答304ba、304ca、試行応答305ba、305caのみを図示し、これら以外の即応要求、即応応答、試行応答については、図示を省略している。
【0113】
サーバ装置からゲーム装置Aに試行要求302aが送信されると、ゲーム装置Aは、自身以外のゲーム装置B、Cに対して、即応要求303ab、303acを送る。
【0114】
ここで、ゲーム装置Aからゲーム装置Bに送られた即応要求303abに呼応して、ゲーム装置Bからゲーム装置Aに即応応答304baが送られた結果、ゲーム装置Aから試行応答305baがサーバ装置へ送られる。
【0115】
また、ゲーム装置Aからゲーム装置Cに送られた即応要求303acに呼応して、ゲーム装置Cからゲーム装置Aに即応応答304caが送られた結果、ゲーム装置Aから試行応答305caがサーバ装置へ送られる。
【0116】
サーバ装置261が試行応答305を受信すると、グループG内の各ゲーム装置231同士の通信時間がサーバ装置261に収集されることになる。
【0117】
すると、サーバ装置261は、この通信時間に基づいて、グループG内から、いずれか2つのゲーム装置231を選択する。本図では、ゲーム装置231(識別名A)と、ゲーム装置231(識別名C)が選択されたものとする。
【0118】
すると、サーバ装置261は、ゲーム装置231(識別名A)とゲーム装置231(識別名C)のそれぞれに、通信相手を指定する紹介通知306a、306cを送信する。
【0119】
紹介通知306a、306cを受信すると、ゲーム装置231(識別名A)とゲーム装置231(識別名C)は、ピアツーピア通信307を開始し、通信対戦を行う。
【0120】
これによって、グループGからは、ゲーム装置231(識別名A)とゲーム装置231(識別名C)が削除される。
【0121】
本図の例では、グループG内にはゲーム装置231(識別名B)のみが残ることとなるが、複数のゲーム装置231がグループG内に残った場合には、さらに2つのゲーム装置231を選択して紹介する処理を繰り返すのが典型的である。
【0122】
この選択の際に、できるだけ、通信条件が似ており、かつ、一定の通信速度が得られるもの同士をマッチングするのが、快適な通信環境を提供する上で好適である。以下では、このような選択手法について、さらに詳細に説明する。
【0123】
(ゲーム装置)
図4は、本実施形態に係るゲーム装置231の概要構成を示す模式図である。以下、本図を参照して説明する。
【0124】
ここで、ゲーム装置231は、紹介要求送信部401、試行要求受信部402、即応要求送信部403、即応要求受信部404、即応応答送信部405、即応応答受信部406、試行取得部407、試行応答送信部408、紹介通知受信部409、通信対戦部410を備える。
【0125】
上記のように、ゲーム装置231は、通信機能を有するエンターテインメント用端末等の情報処理装置101によって構成され、当該情報処理装置101が、ゲーム装置用プログラムを実行することによって実現される。
【0126】
ここで、紹介要求送信部401は、紹介要求301を送信する機能を果たす。
試行要求受信部402は、試行要求302を受信する機能を果たす。
即応要求送信部403は、即応要求303を送信する機能を果たす。
即応要求受信部404は、即応要求303を受信する機能を果たす。
即応応答送信部405は、即応応答304を送信する機能を果たす。
即応応答受信部406は、即応応答304を受信する機能を果たす。
試行取得部407は、同じグループに属する他のゲーム装置231のそれぞれとの間で、即応要求303を送信した時刻と、即応応答304を受信した時刻と、の時間差を求める。
試行応答送信部408は、試行応答305を送信する機能を果たす。
紹介通知受信部409は、紹介通知306を受信する機能を果たす。
通信対戦部410は、ピアツーピア通信307により、通信対戦を行う。
【0127】
これらは、いずれも、CPU 101が無線LANインターフェース114と共働することによって実現され、その処理の際には、一時的な記憶域としてRAM 103を利用する。
【0128】
また、通信対戦部410は、通常の通信対戦ゲームと同様に、CPU 102の制御下で、以下のような処理を行う。
【0129】
すなわち、ユーザによる操作を入力装置105を介して受け付け、相手方と無線LANインターフェース114を介して通信してユーザが行った操作を交換し、この操作に基づいて、RAM 103内に記憶されるゲーム状態を更新し、画像処理部106が現在のゲーム状態に基づいて画像を生成して、液晶ディスプレイ107に表示したり、音声処理部108がヘッドホン109に音声を出力したりする。
【0130】
図5は、ゲーム装置231にて実行されるゲーム処理の制御の流れを示すフローチャートである。以下、本図を参照して説明する。
【0131】
本処理は、情報処理装置101に電源が投入され、ROMカセット111からRAM 103内にゲーム装置用プログラムがロードされ、CPU 102が当該プログラムのエントリポイントにジャンプすることによって開始される。
【0132】
まず、CPU 102は、ゲームのための各種の初期化を行い(ステップS501)、無線LANインターフェース114を制御して、コンピュータ通信網291と通信可能に接続する(ステップS502)。
【0133】
ついで、CPU 102は、無線LANインターフェース114を制御して、サーバ装置261に紹介要求301のパケットを送信する(ステップS503)。これは、従来の通信対戦ゲームにおけるロビーサーバへの接続に相当する。
【0134】
したがって、CPU 102と無線LANインターフェース114は、紹介要求送信部401として機能する。
【0135】
この後、CPU 102は、無線LANインターフェース114を制御して、サーバ装置261や他のゲーム装置231から送信されたパケットを受信する(ステップS504)。
【0136】
なお、パケットの受信には時間を要することがあるため、この間に、種々の情報処理を並行してコルーチン的に実行することも可能である。
【0137】
ステップS504においてパケットが受信されたら、CPU 102は、そのパケットの種類を調べる(ステップS505)。
【0138】
パケットが試行要求である場合(ステップS505;試行要求)、CPU 102と無線LANインターフェース114は、試行要求受信部402として機能したことになる。
【0139】
この場合、CPU 102は、受信された試行要求に指定される識別名を取得し(ステップS511)、無線LANインターフェース114を制御してそれぞれの識別名のゲーム装置231について、以下の処理を繰り返す(ステップS512)。
【0140】
すなわち、各識別名のゲーム装置231に即応要求を送信して(ステップS513)、当該識別名と現在時刻とを対応付けてRAM 103に記憶させる(ステップS514)処理を繰り返し(ステップS515)、全識別名について繰り返したら、ステップS504に戻る。
【0141】
すなわち、CPU 102と無線LANインターフェース114は、即応要求送信部403として機能する。
【0142】
一方、パケットが即応要求である場合(ステップS505;即応要求)、CPU 102と無線LANインターフェース114は、即応要求受信部404として機能したことになる。
【0143】
この場合、CPU 102は、受信された即応要求の送信元の識別名を取得し(ステップS521)、無線LANインターフェース114を制御して当該識別名のゲーム装置231に即応応答を送信して(ステップS522)、ステップS504に戻る。
【0144】
すなわち、CPU 102と無線LANインターフェース114は、即応応答送信部405として機能する。
【0145】
このほか、パケットが即応応答である場合(ステップS505;即応応答)、無線LANインターフェース114は、CPU 102と即応応答受信部406として機能したことになる。
【0146】
この場合、CPU 102は、受信された即応応答の送信元の識別名を取得する(ステップS531)。そして、取得された識別名に対応付けられてRAM 103に記憶される時刻(ステップS513において当該識別名のゲーム装置231に即応要求を送信した時刻に相当する。)を取得し(ステップS532)、これと現在時刻(ステップS504において即応応答が受信された時刻に相当する。)との差を求める(ステップS533)。
【0147】
すなわち、CPU 102と無線LANインターフェース114は、試行取得部407として機能したことになる。
【0148】
そして、CPU 102は、当該識別名と、当該差と、を指定する試行応答を、サーバ装置261に送信して(ステップS534)、ステップS504に戻る。この差は、当該ゲーム装置231を契機として通信が行われた場合の往復に要する通信時間を意味する。
【0149】
すなわち、CPU 102と無線LANインターフェース114は、試行応答送信部408として機能したことになる。
【0150】
一方、パケットが紹介通知である場合(ステップS505;紹介通知)、CPU 102と無線LANインターフェース114は、紹介通知受信部409として機能したことになる。
【0151】
この場合、CPU 102は、受信された紹介通知に指定される識別名を取得し(ステップS541)、当該識別名を有するゲーム装置231と通信対戦を行う(ステップS542)。通信対戦が終了した後は、ステップS504に戻る。
【0152】
したがって、CPU 102と無線LANインターフェース114は、通信対戦部410として機能したことになる。
【0153】
上記のように、ステップS542における通信対戦においては、公知のネットワーク対戦ゲームの技術を適宜利用することが可能である。
【0154】
なお、上記の制御の流れでは、CPU 102は、他のゲーム装置231から即応応答304が受信されるごとにサーバ装置261へ試行応答305を送信しているが、識別名と差の組み合わせが一定の数だけ集まってからまとめて送信することとしても良い。
【0155】
(サーバ装置)
図6は、本実施形態に係るサーバ装置261の概要構成を示す模式図である。以下、本図を参照して説明する。
【0156】
ここで、サーバ装置261は、N個の記憶部601、紹介要求受信部602、追加部603、試行要求送信部604、試行応答受信部605、選択部606、紹介通知送信部607、削除部608を備える。
【0157】
上記のように、サーバ装置261は、通信機能を有するサーバ用コンピュータ等によって構成され、当該サーバ用コンピュータが、サーバ用プログラムを実行することによって実現される。以下、サーバ用コンピュータと実質的に等価な構成を有する情報処理装置101の各要素を参照しつつ、サーバ装置261の構成について説明する。
【0158】
ここで、N個の記憶部601には、紹介を求めるゲーム装置の識別名が記憶され、RAM 103や、ハードディスク等の外部記憶装置により実現される。Nは1もしくは2以上であり、各記憶部601は、配列やキュー等により実装される。
【0159】
紹介要求受信部602は、紹介要求301を受信する役割を果たし、CPU 102が有線LANインターフェースと共働することによって実現される。
【0160】
追加部603は、受信された紹介要求301の送信元のゲーム装置231の識別名を、いずれかの記憶部601に追加するもので、CPU 102がRAM 103やハードディスク等と共働することにより実現される。なお、いずれの記憶部601に追加するかの態様については、後述する。
【0161】
試行要求送信部604は、試行要求302を送信する役割を果たし、試行応答受信部605は、試行応答305を受信する役割を果たす。これらは、CPU 102が有線LANインターフェースと共働することによって実現される。
【0162】
選択部606は、受信された試行応答305の送信元、当該試行応答305に指定される識別名、時間差(通信時間)を収集して、選択条件を満たす識別名の対を選択するもので、CPU 102がRAM 103やハードディスク等と共働することにより実現される。なお、収集された2つの識別名と時間差との組み合わせは、RAM 103やハードディスク等に保存される。
【0163】
紹介通知送信部607は、選択された対の識別名のゲーム装置231に相手方を紹介する紹介通知306を送信する役割を果たし、CPU 102が有線LANインターフェースと共働することによって実現される。
【0164】
削除部608は、選択された対の識別名を、記憶部601から削除するもので、CPU 102がRAM 103やハードディスク等と共働することにより実現される。
【0165】
図7は、サーバ装置261にて実行されるサービス処理の制御の流れを示すフローチャートである。以下本図を参照しながら説明する。
【0166】
本処理は、情報処理装置101に電源が投入され、ハードディスクからRAM 103内にサーバ用プログラムがロードされ、CPU 102が当該プログラムのエントリポイントにジャンプすることによって開始される。
【0167】
まず、CPU 102は、サーバ装置として機能するための初期化を行う(ステップS701)。この処理においては、N個の記憶部601をRAM 103内やハードディスク内に確保する処理が含まれる。
【0168】
ついで、CPU 102は、有線LANインターフェースを制御して、ゲーム装置231から送信されたパケットを受信する(ステップS702)。
【0169】
なお、パケットの受信には時間を要することがあるため、この間に、種々の情報処理を並行してコルーチン的に実行することも可能である。
【0170】
ステップS702においてパケットが受信されると、CPU 102は、そのパケットの種類を調べる(ステップS703)。
【0171】
パケットが紹介要求301である場合(ステップS703;紹介要求)、CPU 102と有線LANインターフェースは、紹介要求受信部602として機能したことになる。
【0172】
この場合、CPU 102は、紹介要求301の送信元の識別名を取得し(ステップS711)、N個の記憶部601からいずれかを選択して(ステップS712)、選択された記憶部601に取得された識別名を追加する(ステップS713)。
【0173】
したがって、CPU 102はRAM 103やハードディスク等と共働して、追加部603として機能したことになる。
【0174】
ここで、記憶部601の選択の手法としては、種々考えられるが、記憶部601のうち、記憶されている識別名が最も少ないものを選択するのが最も簡単である。なお、最少の記憶部601が複数ある場合には、ランダムもしくはラウンドロビンにより選択する。その他の選択手法については、後述する。
【0175】
また、後述するマッチングを現在行っている途中のグループは選択しないようにしても良い。マッチングを行っている最中のグループを選択する場合には、新たな識別名は、必ず配列やキューの末尾に追加することとして、現在マッチングを行っている場合であっても、副作用が生じないすることが望ましい。
【0176】
また、N = 1の場合には、記憶部601を選択する必要はなく、唯一の記憶部601に識別名を追加すれば良い。
【0177】
この後、CPU 102は、識別名が追加された記憶部601に記憶される全識別名、すなわち、最後に追加された識別名と同じグループに属する全識別名を取得する(ステップS714)。かりにここで、L個の識別名が取得されたものとする。
【0178】
ついで、CPU 102は、L個の識別名について、マッチングを開始するか否かを判断する(ステップS715)。この判断には、以下のような要素を勘案して判断する。
(1)現在に当該グループについてのマッチング処理を既に行っている最中であるか否か。マッチングを行っている最中であれば、今回はマッチングは開始しない。
(2)Lが所定の数を超えているか否か。Lが大きければ大きいほど、マッチングを開始する確率を高くする。
(3)当該記憶部601に現在記憶されている識別名のうち、最初に記憶された識別名が記憶された時点からの経過時間。この経過時間が長くなれば長くなるほど、マッチングを開始する確率を高くする。
(4)当該記憶部601について最後にマッチングを行った時点からの経過時間。この経過時間が長くなれば長くなるほど、マッチングを開始する確率を高くする。
【0179】
本実施形態が適用される用途に応じ、これらの要素を適宜組み合わせて、マッチングを開始するか否かを判定する。
【0180】
マッチングを開始しない場合(ステップS715;No)、ステップS702に戻る。
【0181】
マッチングを開始すると判断された場合(ステップS715;Yes)、CPU 102は、L個の識別名のそれぞれ同士の通信時間を記録するための2次元配列CをRAM 103に確保し、各要素を無限大に相当するような値に初期化する(ステップS716)。
【0182】
そして、CPU 102は、L個の識別名のそれぞれについて、以下の処理を繰り返す(ステップS717)。
【0183】
すなわち、当該識別名と同じグループに属する他の識別名を指定する試行要求を、当該識別名のゲーム装置に送信する(ステップS718)。
【0184】
したがって、CPU 102と有線LANインターフェースは、試行要求送信部604として機能したことになる。
【0185】
ステップS717からの処理を繰り返した(ステップS719)後は、ステップS702に戻る。
【0186】
一方、ステップS703において受信されたパケットが試行応答である場合(ステップS703;試行応答)、CPU 102と有線LANインターフェースは、試行応答受信部605として機能したことになる。
【0187】
この場合、CPU 102は、受信された試行応答の送信元の識別名、当該試行応答に指定されている識別名と時間差を取得する(ステップS720)。
【0188】
そして、この2つの識別名が記憶されているグループについてのマッチングが継続中であるか否かを判断する(ステップS721)。継続中でなければ(ステップS721;No)、ステップS702に戻る。
【0189】
一方、現在マッチング中である場合には(ステップS721;Yes)、試行応答の送信元の識別名ならびに試行応答に指定されている識別名が、記憶部601から取得された識別名の中で、何番目かを調べる(ステップS722)。
【0190】
調べた結果が、それぞれi番目とj番目である場合、CPU 102は、配列の要素C[i,j]に、試行応答に指定されている時間差を代入する(ステップS723)。
【0191】
そして、CPU 102は、マッチングを開始した時点からの経過時間や、配列Cにおける無限大でない要素の割合などに応じて、対を選択するか否かを決定する(ステップS724)。
【0192】
ここで、マッチングを開始した時点からの経過時間が長ければ長いほど、また、配列Cにおける無限大でない要素の割合が高ければ高いほど、対を選択する確率を高くする。
【0193】
CPU 102が対を選択する、と決定した場合(ステップS724;Yes)、CPU 102は、配列Qの要素を走査して、以下のような条件(以下「選択条件」と呼ぶ。)を満たす要素を探す(ステップS725)。すなわち、
(1)要素C[i,j]と要素C[j,i]の値が近いこと。すなわち、p = C[i,j],q = C[i,j]と置いたとき、|p-q|が小さいこと。これは、2つのゲーム装置において、どちらを起点にパケットを往復させたとしても、通信条件が類似していることに相当する。
(2)要素C[i,j]と要素C[j,i]の値がいずれも所定の閾値より小さいこと。これは、通信対戦を行うにあたって、十分な通信速度が確保されることに相当する。
【0194】
このような選択条件の下で対を選択するにあたっては、たとえば、p,qがいずれも所定の閾値より小さく、かつ、p×q×|p-q|が最小となるものを1つ選択することとすれば良い。
【0195】
選択条件を満たすものを探した結果、ステップS714において得られたL個の識別名のうち、i番目の識別名とj番目の識別名の対が得られた場合(ステップS726;Yes)、CPU 102はRAM 103やハードディスク等と共働して、選択部606として機能したことになる。
【0196】
この場合、CPU 102は、有線LANインターフェースを制御して、i番目の識別名のゲーム装置231には、j番目の識別名を指定する紹介通知を送信し、j番目の識別名のゲーム装置231には、i番目の識別名を指定する紹介通知を送信する(ステップS727)。
【0197】
この処理によって、ゲーム装置231は、対戦相手の紹介を受けることができる。
【0198】
したがって、CPU 102と有線LANインターフェースは、紹介通知送信部607として機能したことになる。
【0199】
この後、CPU 102は、配列の要素C[i,j],C[j,i]の値を無限大に戻して(ステップS728)、現在マッチング中の記憶部601からi番目の識別名とj番目の識別名を削除し(ステップS729)、ステップS724に戻る。
【0200】
したがって、CPU 102はRAM 103やハードディスク等と共働して、削除部608として機能したことになる。
【0201】
一方、ステップS724において、対を選択しないと決定した場合(ステップS724;No)や、ステップS724において、選択条件を満たす対が見つからなかった場合(ステップS726;No)は、CPU 102は、マッチングを終了するか否かを判定する(ステップS730)。
【0202】
マッチングを終了する場合としては、たとえば、今回のマッチングにおいて選択された対の数が所定の個数を超えた場合や、対が選択されないまま長時間が経過してしまった場合、配列Cの要素に代入された値がいずれも閾値以上である状態が一定時間以上継続した場合等を採用することができる。
【0203】
マッチングを終了する場合(ステップS730;Yes)、RAM 103から配列Cを解放して(ステップS731)、ステップS702に戻る。
【0204】
マッチングを終了しない場合(ステップS730;No)は、そのままステップS702に戻る。
【0205】
このような処理をゲーム装置231およびサーバ装置261で実行することによって、十分な速度で、かつ、均衡した条件で通信ができるゲーム装置を通信相手として紹介し、通信対戦を快適に進行させることができるようになる。
【実施例2】
【0206】
上記実施形態では、新たな識別名を追加する記憶部601を、単純な規則で定めていたが、本実施形態は、識別名の追加先も、通信条件に基づいて定めるものとする。
【0207】
すなわち、紹介要求が受信されると、CPU 102は、N個の記憶部601のそれぞれから、代表となる識別名を選択する。
【0208】
たとえば、各記憶部601の配列もしくはキューのうちから、たとえば、先頭の要素、末尾の要素、ちょうど真中の要素等を代表として選択するのでも良いし、ランダムに代表を選択するのでも良い。なお、記憶部601が空の場合には、代表も選択されない。
【0209】
そして、代表が少なくとも1つ選択された場合には、選択された代表を指定する調査要求を、紹介要求の送信元のゲーム装置231に送信する。この調査要求のパケットは、試行要求のパケットと同じものを利用することができる。
【0210】
すると、調査要求のパケットを受信したゲーム装置231は、試行要求の場合と同様に、各代表との通信時間を測定して、その結果を指定する調査応答をサーバ装置261に送信する。この調査応答のパケットは、試行応答のパケットと同じものを利用することができる。
【0211】
サーバ装置261は、いずれの記憶部601に追加するかを判定中の識別名を持つゲーム装置231から送信された調査応答を受信して、これを蓄積する。
【0212】
そして、全代表について調査応答が受信されるか、所定の時間が経過したら、蓄積された調査応答のうち、当該調査応答に指定される時間差が最も短いものを選び、その識別名が記憶される記憶部601を、追加先として選択するのである。
【0213】
本実施形態によれば、通信状態が良好と考えられるゲーム装置231がグループをなす可能性が高まるので、ゲーム装置231に対して、通信対戦ゲームの対戦相手を通信速度に応じて適切に紹介することができるようになる。
【産業上の利用可能性】
【0214】
以上説明したように、本発明によれば、通信対戦ゲームの対戦相手を通信速度に応じて適切に紹介するのに好適な通信システム、サーバ装置、ゲーム装置、通信方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができる。
【符号の説明】
【0215】
101 情報処理装置
102 CPU
103 RAM
104 ROM
105 入力装置
106 画像処理部
107 液晶ディスプレイ
108 音声処理部
109 ヘッドホン
110 カセットリーダ
111 ROMカセット
112 外部メモリ
113 RTC
114 無線LANインターフェース
115 カメラ
201 通信システム
231 ゲーム装置
261 サーバ装置
291 コンピュータ通信網
301 紹介要求
302 試行要求
303 即応要求
304 即応応答
305 試行応答
306 紹介通知
307 ピアツーピア通信
401 紹介要求送信部
402 試行要求受信部
403 即応要求送信部
404 即応要求受信部
405 即応応答送信部
406 即応応答受信部
407 試行取得部
408 試行応答送信部
409 紹介通知受信部
410 通信対戦部
601 記憶部
602 紹介要求受信部
603 追加部
604 試行要求送信部
605 試行応答受信部
606 選択部
607 紹介通知送信部
608 削除部

【特許請求の範囲】
【請求項1】
複数のゲーム装置と、サーバ装置と、を備える通信システムであって、
(a)前記複数のゲーム装置のそれぞれは、
通信相手の紹介を求めるための紹介要求を前記サーバ装置に送信する紹介要求送信部
を備え、
(b)前記サーバ装置は、
ゲーム装置の識別名が記憶されるN個の記憶部、
前記複数のゲーム装置のそれぞれから送信される紹介要求を受信する紹介要求受信部、
前記紹介要求が受信されると、当該紹介要求の送信元のゲーム装置の識別名を前記N個の記憶部のいずれかに追加する追加部、
前記N個の記憶部のそれぞれについて、当該記憶部に記憶された識別名のゲーム装置のそれぞれに、当該記憶部に記憶された他の識別名を指定する試行要求を送信する試行要求送信部
を備え、
(c)前記複数のゲーム装置のそれぞれは、
前記サーバ装置から送信される試行要求を受信する試行要求受信部、
前記複数のゲーム装置のうち他のゲーム装置に即応要求を送信する即応要求送信部、
前記複数のゲーム装置のうち他のゲーム装置から送信された即応要求を受信する即応要求受信部、
前記即応要求が受信されると、当該即応要求の送信元に即応応答を送信する即応応答送信部、
前記複数のゲーム装置のうち他のゲーム装置から送信された即応応答を受信する即応応答受信部、
前記受信された試行要求に指定される識別名を有するゲーム装置のそれぞれについて、前記即応要求送信部に前記即応要求を送信させ、前記即応応答受信部に前記即応応答を受信させ、当該即応要求が送信された時刻と当該即応応答が受信された時刻との時間差を取得する試行取得部、
前記受信された試行要求に指定される識別名を有するゲーム装置のそれぞれについて、前記計算された時間差を指定する試行応答を、前記サーバ装置に送信する試行応答送信部
をさらに備え、
(d)前記サーバ装置は、
前記N個の記憶部のそれぞれについて、当該記憶部に前記記憶された識別名のゲーム装置のそれぞれから、送信された試行応答を受信する試行応答受信部、
前記N個の記憶部のそれぞれについて、当該記憶部に記憶された識別名のうち、第1の識別名のゲーム装置から受信された試行応答に指定される第2の識別名のゲーム装置に対する時間差と、当該第2の識別名のゲーム装置から受信された試行応答に指定される第1の識別名のゲーム装置に対する時間差と、が、所定の選択条件を満たす場合、当該第1の識別名と、当該第2の識別名と、を選択する選択部、
前記選択された第1の識別名のゲーム装置に、前記選択された第2の識別名を指定する紹介通知を送信し、前記選択された第2の識別名のゲーム装置に、前記選択された第1の識別名を指定する紹介通知を送信する紹介通知送信部、
前記選択された第1の識別名と、前記選択された第2の識別名と、を、前記N個の記憶部のうち、これらが記憶される記憶部から削除する削除部
をさらに備え、
(e)前記複数のゲーム装置のそれぞれは、
前記サーバ装置から送信された紹介通知を受信する紹介通知受信部、
前記受信された紹介通知に指定される識別名のゲーム装置と、通信対戦のために通信する通信対戦部
をさらに備える
ことを特徴とする通信システム。
【請求項2】
請求項1に記載の通信システムであって、
Nは2以上の定数であり、
(f)前記サーバ装置は、
前記紹介要求が受信されると、前記N個の記憶部のそれぞれから、当該記憶部に記憶される識別名のいずれかを選択し、当該選択された識別名を指定する調査要求を、当該紹介要求の送信元のゲーム装置に送信し、
(g)前記複数のゲーム装置のそれぞれは、
前記サーバ装置から送信される調査要求を受信し、
前記受信された調査要求に指定される識別名のゲーム装置のそれぞれについて、当該ゲーム装置に前記即応要求を送信し、当該ゲーム装置から前記即応応答を受信し、前記即応要求が送信された時刻と前記即応応答が受信された時刻との時間差を計算し、
前記受信された調査要求に指定される識別名のそれぞれについて、当該識別名のゲーム装置について前記計算された時間差を指定する調査応答を、前記サーバ装置に送信し、
(h)前記サーバ装置は、前記ゲーム装置から送信された調査応答を受信し、
当該調査応答に指定される時間差が最も短い識別名が記憶される記憶部に、当該調査応答の送信元のゲーム装置を追加する
ことを特徴とする通信システム。
【請求項3】
請求項2に記載の通信システムであって、
前記N個の記憶部は、キューとして構成され、
前記サーバ装置は、前記調査要求に指定する識別名として、前記N個の記憶部のそれぞれを構成するキューの先頭の要素を選択する
ことを特徴とする通信システム。
【請求項4】
請求項1に記載の通信システムであって、
N = 1である
ことを特徴とする通信システム。
【請求項5】
請求項1から4のいずれか1項に記載の通信システムであって、
前記サーバ装置において、前記選択部は、前記N個の記憶部のそれぞれについて、当該記憶部に記憶される識別名の対のそれぞれについて、当該対の識別名をA、Bとし、識別名Aのゲーム装置から受信された試行応答に指定される識別名Bのゲーム装置に対する時間差をpとし、識別名Bのゲーム装置から受信された試行応答に指定される識別名Aのゲーム装置に対する時間差をqとしたとき、|p-q|が小さい対を選択し、当該選択された対の識別名Aを前記第1の識別名とし、識別名Bを前記第2の識別名とする処理を繰り返す
ことを特徴とする通信システム。
【請求項6】
請求項1から5のいずれか1項に記載の通信システムにおけるサーバ装置。
【請求項7】
請求項1から5のいずれか1項に記載の通信システムにおけるゲーム装置。
【請求項8】
複数のゲーム装置と、サーバ装置と、により実行される通信方法であって、
前記複数のゲーム装置のそれぞれは、紹介要求送信部、試行要求受信部、即応要求送信部、即応要求受信部、即応応答送信部、即応応答受信部、試行取得部、試行応答送信部、紹介通知受信部、通信対戦部を備え、
前記サーバ装置は、ゲーム装置の識別名が記憶されるN個の記憶部、紹介要求受信部、追加部、試行要求送信部、試行応答受信部、選択部、紹介通知送信部、削除部を備え、
当該通信方法は、
(a)前記複数のゲーム装置のそれぞれにおいて、
前記紹介要求送信部が、通信相手の紹介を求めるための紹介要求を前記サーバ装置に送信する紹介要求送信工程
を備え、
(b)前記サーバ装置において、
前記紹介要求受信部が、前記複数のゲーム装置のそれぞれから送信される紹介要求を受信する紹介要求受信工程、
前記紹介要求が受信されると、前記追加部が、当該紹介要求の送信元のゲーム装置の識別名を前記N個の記憶部のいずれかに追加する追加工程、
前記試行要求送信部が、前記N個の記憶部のそれぞれについて、当該記憶部に記憶された識別名のゲーム装置のそれぞれに、当該記憶部に記憶された他の識別名を指定する試行要求を送信する試行要求送信工程
を備え、
(c)前記複数のゲーム装置のそれぞれにおいて、
前記試行要求受信部が、前記サーバ装置から送信される試行要求を受信する試行要求受信工程、
前記即応要求送信部が、前記複数のゲーム装置のうち他のゲーム装置に即応要求を送信する即応要求送信工程、
前記即応要求受信部が、前記複数のゲーム装置のうち他のゲーム装置から送信された即応要求を受信する即応要求受信工程、
前記即応応答送信部が、前記即応要求が受信されると、当該即応要求の送信元に即応応答を送信する即応応答送信工程、
前記即応応答受信部が、前記複数のゲーム装置のうち他のゲーム装置から送信された即応応答を受信する即応応答受信工程、
前記試行取得部が、前記受信された試行要求に指定される識別名を有するゲーム装置のそれぞれについて、前記即応要求送信部に前記即応要求を送信させ、前記即応応答受信部に前記即応応答を受信させ、当該即応要求が送信された時刻と当該即応応答が受信された時刻との時間差を取得する試行取得工程、
前記試行応答送信部が、前記受信された試行要求に指定される識別名を有するゲーム装置のそれぞれについて、前記計算された時間差を指定する試行応答を、前記サーバ装置に送信する試行応答送信工程
をさらに備え、
(d)前記サーバ装置において、
前記試行応答受信部が、前記N個の記憶部のそれぞれについて、当該記憶部に前記記憶された識別名のゲーム装置のそれぞれから、送信された試行応答を受信する試行応答受信工程、
前記N個の記憶部のそれぞれについて、当該記憶部に記憶された識別名のうち、第1の識別名のゲーム装置から受信された試行応答に指定される第2の識別名のゲーム装置に対する時間差と、当該第2の識別名のゲーム装置から受信された試行応答に指定される第1の識別名のゲーム装置に対する時間差と、が、所定の選択条件を満たす場合、前記選択部が、当該第1の識別名と、当該第2の識別名と、を選択する選択工程、
前記紹介通知送信部が、前記選択された第1の識別名のゲーム装置に、前記選択された第2の識別名を指定する紹介通知を送信し、前記選択された第2の識別名のゲーム装置に、前記選択された第1の識別名を指定する紹介通知を送信する紹介通知送信工程、
前記削除部が、前記選択された第1の識別名と、前記選択された第2の識別名と、を、前記N個の記憶部のうち、これらが記憶される記憶部から削除する削除工程
をさらに備え、
(e)前記複数のゲーム装置のそれぞれにおいて、
前記紹介通知受信部が、前記サーバ装置から送信された紹介通知を受信する紹介通知受信工程、
前記通信対戦部が、前記受信された紹介通知に指定される識別名のゲーム装置と、通信対戦のために通信する通信対戦工程
をさらに備える
ことを特徴とする通信方法。
【請求項9】
複数のゲーム装置用コンピュータのそれぞれをゲーム装置として機能させるゲーム装置用プログラムと、サーバ用コンピュータをサーバ装置として機能させるサーバ用プログラムと、を有する通信システム用プログラムであって、
(a)前記ゲーム装置用プログラムは、前記複数のゲーム装置のそれぞれを、
通信相手の紹介を求めるための紹介要求を前記サーバ装置に送信する紹介要求送信部
として機能させ、
(b)前記サーバ用プログラムは、前記サーバ用コンピュータを、
ゲーム装置の識別名が記憶されるN個の記憶部、
前記複数のゲーム装置のそれぞれから送信される紹介要求を受信する紹介要求受信部、
前記紹介要求が受信されると、当該紹介要求の送信元のゲーム装置の識別名を前記N個の記憶部のいずれかに追加する追加部、
前記N個の記憶部のそれぞれについて、当該記憶部に記憶された識別名のゲーム装置のそれぞれに、当該記憶部に記憶された他の識別名を指定する試行要求を送信する試行要求送信部
として機能させ、
(c)前記ゲーム装置用プログラムは、前記複数のゲーム装置のそれぞれを、
前記サーバ装置から送信される試行要求を受信する試行要求受信部、
前記複数のゲーム装置のうち他のゲーム装置に即応要求を送信する即応要求送信部、
前記複数のゲーム装置のうち他のゲーム装置から送信された即応要求を受信する即応要求受信部、
前記即応要求が受信されると、当該即応要求の送信元に即応応答を送信する即応応答送信部、
前記複数のゲーム装置のうち他のゲーム装置から送信された即応応答を受信する即応応答受信部、
前記受信された試行要求に指定される識別名を有するゲーム装置のそれぞれについて、前記即応要求送信部に前記即応要求を送信させ、前記即応応答受信部に前記即応応答を受信させ、当該即応要求が送信された時刻と当該即応応答が受信された時刻との時間差を取得する試行取得部、
前記受信された試行要求に指定される識別名を有するゲーム装置のそれぞれについて、前記計算された時間差を指定する試行応答を、前記サーバ装置に送信する試行応答送信部
としてさらに機能させ、
(d)前記サーバ用プログラムは、前記サーバ用コンピュータを、
前記N個の記憶部のそれぞれについて、当該記憶部に前記記憶された識別名のゲーム装置のそれぞれから、送信された試行応答を受信する試行応答受信部、
前記N個の記憶部のそれぞれについて、当該記憶部に記憶された識別名のうち、第1の識別名のゲーム装置から受信された試行応答に指定される第2の識別名のゲーム装置に対する時間差と、当該第2の識別名のゲーム装置から受信された試行応答に指定される第1の識別名のゲーム装置に対する時間差と、が、所定の選択条件を満たす場合、当該第1の識別名と、当該第2の識別名と、を選択する選択部、
前記選択された第1の識別名のゲーム装置に、前記選択された第2の識別名を指定する紹介通知を送信し、前記選択された第2の識別名のゲーム装置に、前記選択された第1の識別名を指定する紹介通知を送信する紹介通知送信部、
前記選択された第1の識別名と、前記選択された第2の識別名と、を、前記N個の記憶部のうち、これらが記憶される記憶部から削除する削除部
としてさらに機能させ、
(e)前記複数のゲーム装置のそれぞれは、
前記サーバ装置から送信された紹介通知を受信する紹介通知受信部、
前記受信された紹介通知に指定される識別名のゲーム装置と、通信対戦のために通信する通信対戦部
としてさらに機能させる
ことを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2011−194100(P2011−194100A)
【公開日】平成23年10月6日(2011.10.6)
【国際特許分類】
【出願番号】特願2010−65542(P2010−65542)
【出願日】平成22年3月23日(2010.3.23)
【出願人】(506113602)株式会社コナミデジタルエンタテインメント (1,441)
【Fターム(参考)】