(57)【要約】 【課題】通信対戦ゲームの対戦相手を通信速度に応じて適切に紹介する通信システム等を提供する。【解決手段】ゲーム装置から紹介要求３０１を受信したサーバ装置は、各ゲーム装置に他のゲーム装置を指定する試行要求３０２を送信する。各ゲーム装置は、他のゲーム装置に即応要求３０３を送信し、即応要求３０３を受信したら送信下に即応応答３０４を送信する。各ゲーム装置は、即応要求３０３と即応応答３０４の時間差を計算して、他のゲーム装置との通信時間を指定する試行応答３０５をサーバ装置に送信する。サーバ装置は、受信した試行応答３０５に指定される時間差の情報に基づいて、いずれのゲーム装置を紹介するかを決め、互いを紹介する紹介通知３０６を送信する。紹介通知３０６を受信したゲーム装置は、紹介相手とピアツーピア通信３０７を開始して通信対戦する。【選択図】図３
2011194100.tif 000002
【特許請求の範囲】
【請求項１】
複数のゲーム装置と、サーバ装置と、を備える通信システムであって、
（ａ）前記複数のゲーム装置のそれぞれは、
通信相手の紹介を求めるための紹介要求を前記サーバ装置に送信する紹介要求送信部
を備え、
（ｂ）前記サーバ装置は、
ゲーム装置の識別名が記憶されるN個の記憶部、
前記複数のゲーム装置のそれぞれから送信される紹介要求を受信する紹介要求受信部、
前記紹介要求が受信されると、当該紹介要求の送信元のゲーム装置の識別名を前記N個の記憶部のいずれかに追加する追加部、
前記N個の記憶部のそれぞれについて、当該記憶部に記憶された識別名のゲーム装置のそれぞれに、当該記憶部に記憶された他の識別名を指定する試行要求を送信する試行要求送信部
を備え、
（ｃ）前記複数のゲーム装置のそれぞれは、
前記サーバ装置から送信される試行要求を受信する試行要求受信部、
前記複数のゲーム装置のうち他のゲーム装置に即応要求を送信する即応要求送信部、
前記複数のゲーム装置のうち他のゲーム装置から送信された即応要求を受信する即応要求受信部、
前記即応要求が受信されると、当該即応要求の送信元に即応応答を送信する即応応答送信部、
前記複数のゲーム装置のうち他のゲーム装置から送信された即応応答を受信する即応応答受信部、
前記受信された試行要求に指定される識別名を有するゲーム装置のそれぞれについて、前記即応要求送信部に前記即応要求を送信させ、前記即応応答受信部に前記即応応答を受信させ、当該即応要求が送信された時刻と当該即応応答が受信された時刻との時間差を取得する試行取得部、
前記受信された試行要求に指定される識別名を有するゲーム装置のそれぞれについて、前記計算された時間差を指定する試行応答を、前記サーバ装置に送信する試行応答送信部
をさらに備え、
（ｄ）前記サーバ装置は、
前記N個の記憶部のそれぞれについて、当該記憶部に前記記憶された識別名のゲーム装置のそれぞれから、送信された試行応答を受信する試行応答受信部、
前記N個の記憶部のそれぞれについて、当該記憶部に記憶された識別名のうち、第１の識別名のゲーム装置から受信された試行応答に指定される第２の識別名のゲーム装置に対する時間差と、当該第２の識別名のゲーム装置から受信された試行応答に指定される第１の識別名のゲーム装置に対する時間差と、が、所定の選択条件を満たす場合、当該第１の識別名と、当該第２の識別名と、を選択する選択部、
前記選択された第１の識別名のゲーム装置に、前記選択された第２の識別名を指定する紹介通知を送信し、前記選択された第２の識別名のゲーム装置に、前記選択された第１の識別名を指定する紹介通知を送信する紹介通知送信部、
前記選択された第１の識別名と、前記選択された第２の識別名と、を、前記N個の記憶部のうち、これらが記憶される記憶部から削除する削除部
をさらに備え、
（ｅ）前記複数のゲーム装置のそれぞれは、
前記サーバ装置から送信された紹介通知を受信する紹介通知受信部、
前記受信された紹介通知に指定される識別名のゲーム装置と、通信対戦のために通信する通信対戦部
をさらに備える
ことを特徴とする通信システム。
【請求項２】
請求項１に記載の通信システムであって、
Nは２以上の定数であり、
（ｆ）前記サーバ装置は、
前記紹介要求が受信されると、前記N個の記憶部のそれぞれから、当該記憶部に記憶される識別名のいずれかを選択し、当該選択された識別名を指定する調査要求を、当該紹介要求の送信元のゲーム装置に送信し、
（ｇ）前記複数のゲーム装置のそれぞれは、
前記サーバ装置から送信される調査要求を受信し、
前記受信された調査要求に指定される識別名のゲーム装置のそれぞれについて、当該ゲーム装置に前記即応要求を送信し、当該ゲーム装置から前記即応応答を受信し、前記即応要求が送信された時刻と前記即応応答が受信された時刻との時間差を計算し、
前記受信された調査要求に指定される識別名のそれぞれについて、当該識別名のゲーム装置について前記計算された時間差を指定する調査応答を、前記サーバ装置に送信し、
（ｈ）前記サーバ装置は、前記ゲーム装置から送信された調査応答を受信し、
当該調査応答に指定される時間差が最も短い識別名が記憶される記憶部に、当該調査応答の送信元のゲーム装置を追加する
ことを特徴とする通信システム。
【請求項３】
請求項２に記載の通信システムであって、
前記N個の記憶部は、キューとして構成され、
前記サーバ装置は、前記調査要求に指定する識別名として、前記N個の記憶部のそれぞれを構成するキューの先頭の要素を選択する
ことを特徴とする通信システム。
【請求項４】
請求項１に記載の通信システムであって、
N = 1である
ことを特徴とする通信システム。
【請求項５】
請求項１から４のいずれか１項に記載の通信システムであって、
前記サーバ装置において、前記選択部は、前記N個の記憶部のそれぞれについて、当該記憶部に記憶される識別名の対のそれぞれについて、当該対の識別名をＡ、Ｂとし、識別名Ａのゲーム装置から受信された試行応答に指定される識別名Ｂのゲーム装置に対する時間差をpとし、識別名Ｂのゲーム装置から受信された試行応答に指定される識別名Ａのゲーム装置に対する時間差をqとしたとき、|p-q|が小さい対を選択し、当該選択された対の識別名Ａを前記第１の識別名とし、識別名Ｂを前記第２の識別名とする処理を繰り返す
ことを特徴とする通信システム。
【請求項６】
請求項１から５のいずれか１項に記載の通信システムにおけるサーバ装置。
【請求項７】
請求項１から５のいずれか１項に記載の通信システムにおけるゲーム装置。
【請求項８】
複数のゲーム装置と、サーバ装置と、により実行される通信方法であって、
前記複数のゲーム装置のそれぞれは、紹介要求送信部、試行要求受信部、即応要求送信部、即応要求受信部、即応応答送信部、即応応答受信部、試行取得部、試行応答送信部、紹介通知受信部、通信対戦部を備え、
前記サーバ装置は、ゲーム装置の識別名が記憶されるN個の記憶部、紹介要求受信部、追加部、試行要求送信部、試行応答受信部、選択部、紹介通知送信部、削除部を備え、
当該通信方法は、
（ａ）前記複数のゲーム装置のそれぞれにおいて、
前記紹介要求送信部が、通信相手の紹介を求めるための紹介要求を前記サーバ装置に送信する紹介要求送信工程
を備え、
（ｂ）前記サーバ装置において、
前記紹介要求受信部が、前記複数のゲーム装置のそれぞれから送信される紹介要求を受信する紹介要求受信工程、
前記紹介要求が受信されると、前記追加部が、当該紹介要求の送信元のゲーム装置の識別名を前記N個の記憶部のいずれかに追加する追加工程、
前記試行要求送信部が、前記N個の記憶部のそれぞれについて、当該記憶部に記憶された識別名のゲーム装置のそれぞれに、当該記憶部に記憶された他の識別名を指定する試行要求を送信する試行要求送信工程
を備え、
（ｃ）前記複数のゲーム装置のそれぞれにおいて、
前記試行要求受信部が、前記サーバ装置から送信される試行要求を受信する試行要求受信工程、
前記即応要求送信部が、前記複数のゲーム装置のうち他のゲーム装置に即応要求を送信する即応要求送信工程、
前記即応要求受信部が、前記複数のゲーム装置のうち他のゲーム装置から送信された即応要求を受信する即応要求受信工程、
前記即応応答送信部が、前記即応要求が受信されると、当該即応要求の送信元に即応応答を送信する即応応答送信工程、
前記即応応答受信部が、前記複数のゲーム装置のうち他のゲーム装置から送信された即応応答を受信する即応応答受信工程、
前記試行取得部が、前記受信された試行要求に指定される識別名を有するゲーム装置のそれぞれについて、前記即応要求送信部に前記即応要求を送信させ、前記即応応答受信部に前記即応応答を受信させ、当該即応要求が送信された時刻と当該即応応答が受信された時刻との時間差を取得する試行取得工程、
前記試行応答送信部が、前記受信された試行要求に指定される識別名を有するゲーム装置のそれぞれについて、前記計算された時間差を指定する試行応答を、前記サーバ装置に送信する試行応答送信工程
をさらに備え、
（ｄ）前記サーバ装置において、
前記試行応答受信部が、前記N個の記憶部のそれぞれについて、当該記憶部に前記記憶された識別名のゲーム装置のそれぞれから、送信された試行応答を受信する試行応答受信工程、
前記N個の記憶部のそれぞれについて、当該記憶部に記憶された識別名のうち、第１の識別名のゲーム装置から受信された試行応答に指定される第２の識別名のゲーム装置に対する時間差と、当該第２の識別名のゲーム装置から受信された試行応答に指定される第１の識別名のゲーム装置に対する時間差と、が、所定の選択条件を満たす場合、前記選択部が、当該第１の識別名と、当該第２の識別名と、を選択する選択工程、
前記紹介通知送信部が、前記選択された第１の識別名のゲーム装置に、前記選択された第２の識別名を指定する紹介通知を送信し、前記選択された第２の識別名のゲーム装置に、前記選択された第１の識別名を指定する紹介通知を送信する紹介通知送信工程、
前記削除部が、前記選択された第１の識別名と、前記選択された第２の識別名と、を、前記N個の記憶部のうち、これらが記憶される記憶部から削除する削除工程
をさらに備え、
（ｅ）前記複数のゲーム装置のそれぞれにおいて、
前記紹介通知受信部が、前記サーバ装置から送信された紹介通知を受信する紹介通知受信工程、
前記通信対戦部が、前記受信された紹介通知に指定される識別名のゲーム装置と、通信対戦のために通信する通信対戦工程
をさらに備える
ことを特徴とする通信方法。
【請求項９】
複数のゲーム装置用コンピュータのそれぞれをゲーム装置として機能させるゲーム装置用プログラムと、サーバ用コンピュータをサーバ装置として機能させるサーバ用プログラムと、を有する通信システム用プログラムであって、
（ａ）前記ゲーム装置用プログラムは、前記複数のゲーム装置のそれぞれを、
通信相手の紹介を求めるための紹介要求を前記サーバ装置に送信する紹介要求送信部
として機能させ、
（ｂ）前記サーバ用プログラムは、前記サーバ用コンピュータを、
ゲーム装置の識別名が記憶されるN個の記憶部、
前記複数のゲーム装置のそれぞれから送信される紹介要求を受信する紹介要求受信部、
前記紹介要求が受信されると、当該紹介要求の送信元のゲーム装置の識別名を前記N個の記憶部のいずれかに追加する追加部、
前記N個の記憶部のそれぞれについて、当該記憶部に記憶された識別名のゲーム装置のそれぞれに、当該記憶部に記憶された他の識別名を指定する試行要求を送信する試行要求送信部
として機能させ、
（ｃ）前記ゲーム装置用プログラムは、前記複数のゲーム装置のそれぞれを、
前記サーバ装置から送信される試行要求を受信する試行要求受信部、
前記複数のゲーム装置のうち他のゲーム装置に即応要求を送信する即応要求送信部、
前記複数のゲーム装置のうち他のゲーム装置から送信された即応要求を受信する即応要求受信部、
前記即応要求が受信されると、当該即応要求の送信元に即応応答を送信する即応応答送信部、
前記複数のゲーム装置のうち他のゲーム装置から送信された即応応答を受信する即応応答受信部、
前記受信された試行要求に指定される識別名を有するゲーム装置のそれぞれについて、前記即応要求送信部に前記即応要求を送信させ、前記即応応答受信部に前記即応応答を受信させ、当該即応要求が送信された時刻と当該即応応答が受信された時刻との時間差を取得する試行取得部、
前記受信された試行要求に指定される識別名を有するゲーム装置のそれぞれについて、前記計算された時間差を指定する試行応答を、前記サーバ装置に送信する試行応答送信部
としてさらに機能させ、
（ｄ）前記サーバ用プログラムは、前記サーバ用コンピュータを、
前記N個の記憶部のそれぞれについて、当該記憶部に前記記憶された識別名のゲーム装置のそれぞれから、送信された試行応答を受信する試行応答受信部、
前記N個の記憶部のそれぞれについて、当該記憶部に記憶された識別名のうち、第１の識別名のゲーム装置から受信された試行応答に指定される第２の識別名のゲーム装置に対する時間差と、当該第２の識別名のゲーム装置から受信された試行応答に指定される第１の識別名のゲーム装置に対する時間差と、が、所定の選択条件を満たす場合、当該第１の識別名と、当該第２の識別名と、を選択する選択部、
前記選択された第１の識別名のゲーム装置に、前記選択された第２の識別名を指定する紹介通知を送信し、前記選択された第２の識別名のゲーム装置に、前記選択された第１の識別名を指定する紹介通知を送信する紹介通知送信部、
前記選択された第１の識別名と、前記選択された第２の識別名と、を、前記N個の記憶部のうち、これらが記憶される記憶部から削除する削除部
としてさらに機能させ、
（ｅ）前記複数のゲーム装置のそれぞれは、
前記サーバ装置から送信された紹介通知を受信する紹介通知受信部、
前記受信された紹介通知に指定される識別名のゲーム装置と、通信対戦のために通信する通信対戦部
としてさらに機能させる
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信対戦ゲームの対戦相手を通信速度に応じて適切に紹介するのに好適な通信システム、サーバ装置、ゲーム装置、通信方法、ならびに、これらをコンピュータにて実現するプログラムに関する。
【背景技術】
【０００２】
従来から、ネットワーク通信機能を持ったゲーム装置などを用いた通信対戦ゲームが提供されている。通信対戦ゲームでは、各ゲーム装置はロビーサーバと呼ばれるサーバ装置に対戦相手の紹介を求める。ここで、紹介する相手を決める処理は、マッチングと呼ばれる。
【０００３】
たとえば、下記の特許文献１には、対戦の組み合わせを決定するロビーサーバの技術が開示される。
【０００４】
紹介されたゲーム装置同士は、サーバを介した通信を行う場合もあるが、ピアツーピアの通信を行って対戦する場合もある。
【０００５】
ピアツーピア通信によって対戦が行われる場合、通信対戦ゲームを快適にプレイできるか否かは、プレイヤー同士が利用している通信経路の速度に大きく依存する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００２−３４６２０５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
したがって、両者が利用する通信路の通信速度を考慮して、適切な対戦相手を紹介する技術が求められている。
【０００８】
プレイヤーがテストプレイを行う際には、他のゲームのプレイをすることができない。したがって、テストプレイに参加する人数にはどうしても限界がある。
【０００９】
また、ゲームの本格的な提供がなされる前にプレイヤーがテストプレイに参加したために、かえってゲームに対する興味を低減させてしまうという問題もある。
【００１０】
本発明は、上記のような課題を解決するもので、通信対戦ゲームの対戦相手を通信速度に応じて適切に紹介するのに好適な通信システム、サーバ装置、ゲーム装置、通信方法、ならびに、これらをコンピュータにて実現するプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
以上の目的を達成するため、本発明の原理にしたがって、下記の発明を開示する。
【００１２】
本発明の第１の観点に係る通信システムは、複数のゲーム装置と、サーバ装置と、を備える。
【００１３】
ここで、複数のゲーム装置のそれぞれは、紹介要求送信部、試行要求受信部、即応要求送信部、即応要求受信部、即応応答送信部、即応応答受信部、試行取得部、試行応答送信部、紹介通知受信部、通信対戦部を備える。
【００１４】
典型的には、本ゲーム装置は、通信機能を有するエンターテインメント用端末等の情報処理装置によって構成され、当該情報処理装置が、ゲーム装置用プログラムを実行することによって実現される。
【００１５】
一方、サーバ装置は、N個の記憶部、紹介要求受信部、追加部、試行要求送信部、試行応答受信部、選択部、紹介通知送信部、削除部を備える。
【００１６】
典型的には、本サーバ装置は、通信機能を有するサーバ用コンピュータ等の情報処理装置によって構成され、当該情報処理装置が、サーバ用プログラムを実行することによって実現される。
【００１７】
ここで、複数のゲーム装置のそれぞれにおいて、紹介要求送信部は、通信相手の紹介を求めるための紹介要求をサーバ装置に送信する。
【００１８】
これは、通信対戦ゲーム端末が対戦相手の紹介を求めてロビーサーバに接続する段階に相当する。
【００１９】
一方、サーバ装置において、N個の記憶部には、ゲーム装置の識別名が記憶される。紹介要求受信部は、複数のゲーム装置のそれぞれから送信される紹介要求を受信する。追加部は、紹介要求が受信されると、当該紹介要求の送信元のゲーム装置の識別名をN個の記憶部のいずれかに追加する。試行要求送信部は、N個の記憶部のそれぞれについて、当該記憶部に記憶された識別名のゲーム装置のそれぞれに、当該記憶部に記憶された他の識別名を指定する試行要求を送信する。
【００２０】
Nは、１もしくは２以上であり、この記憶部のそれぞれは、配列やキューなどの形態で実現され、紹介を求めているゲーム装置の識別名を管理する。
【００２１】
すなわち、サーバ装置では、紹介を求めているゲーム端末をN個のグループに分類して管理する。
【００２２】
ゲーム端末から紹介要求が到着すると、サーバ装置は、そのゲーム端末をいずれかのグループに割り当てる。その後、各グループ内のゲーム端末のそれぞれに、同じグループに属する他のゲーム端末の識別名を知らせる。
【００２３】
なお、当初の紹介要求に、当該ゲーム装置を使用するプレイヤーの過去の成績や現在の階級、各種パラメータ情報を指定することとして、これらの情報に基づいて同程度の実力を備えるプレイヤーごとにグループ分けを行うこととしても良い。その他のグループ分けの態様については後述する。
【００２４】
さらに、複数のゲーム装置のそれぞれにおいて、試行要求受信部は、サーバ装置から送信される試行要求を受信する。即応要求送信部は、複数のゲーム装置のうち他のゲーム装置に即応要求を送信する。即応要求受信部は、複数のゲーム装置のうち他のゲーム装置から送信された即応要求を受信する。即応応答送信部は、即応要求が受信されると、当該即応要求の送信元に即応応答を送信する。即応応答受信部は、複数のゲーム装置のうち他のゲーム装置から送信された即応応答を受信する。
【００２５】
ここでいう即応要求ならびに即応応答は、たとえば、ｐｉｎｇプロトコルやｅｃｈｏプロトコルによって通信がなされる場合に相当する。すなわち、通信相手に対して要求パケットを送信すると、これを受信した通信相手は、直ちに応答パケットを返送してくるような形態の通信を行う。
【００２６】
そして、複数のゲーム装置のそれぞれにおいて、試行要求受信部は、サーバ装置から送信される試行要求を受信する。試行取得部は、受信された試行要求に指定される識別名を有するゲーム装置のそれぞれについて、即応要求送信部に即応要求を送信させ、即応応答受信部に即応応答を受信させ、当該即応要求が送信された時刻と当該即応応答が受信された時刻との時間差を取得する。試行応答送信部は、受信された試行要求に指定される識別名を有するゲーム装置のそれぞれについて、計算された時間差を指定する試行応答を、サーバ装置に送信する。
【００２７】
すなわち、各ゲーム装置は、同じグループに属する他のゲーム装置の識別名を知得すると、他のゲーム装置との通信時間を測定する。そして、その測定結果を、サーバ装置に知らせることになる。
【００２８】
さらに、サーバ装置において、試行応答受信部は、N個の記憶部のそれぞれについて、当該記憶部に記憶された識別名のゲーム装置のそれぞれから、送信された試行応答を受信する。選択部は、N個の記憶部のそれぞれについて、当該記憶部に記憶された識別名のうち、第１の識別名のゲーム装置から受信された試行応答に指定される第２の識別名のゲーム装置に対する時間差と、当該第２の識別名のゲーム装置から受信された試行応答に指定される第１の識別名のゲーム装置に対する時間差と、が、所定の選択条件を満たす場合、当該第１の識別名と、当該第２の識別名と、を選択する。紹介通知送信部は、選択された第１の識別名のゲーム装置に、選択された第２の識別名を指定する紹介通知を送信し、選択された第２の識別名のゲーム装置に、選択された第１の識別名を指定する紹介通知を送信する。削除部は、選択された第１の識別名と、選択された第２の識別名と、を、N個の記憶部のうち、これらが記憶される記憶部から削除する。
【００２９】
試行応答を収集することによって、サーバ装置は、あるグループ内の各ゲーム装置同士の通信時間を調べることができる。
【００３０】
そこで、サーバ装置は、この通信時間に基づいて、どのゲーム端末同士を紹介するかを選択し、選択結果をその紹介する相手に知らせる。その後、対戦相手を紹介済のゲーム装置の識別名を、グループ内から除去する。
【００３１】
そして、複数のゲーム装置のそれぞれにおいて、紹介通知受信部は、サーバ装置から送信された紹介通知を受信する。通信対戦部は、受信された紹介通知に指定される識別名のゲーム装置と、通信対戦のために通信する。
【００３２】
このように、各ゲーム装置は、サーバ装置から紹介された通信相手と通信対戦を開始することになる。
【００３３】
本発明によれば、サーバ装置は、ゲーム装置に対して、通信対戦ゲームの対戦相手を通信速度に応じて適切に紹介することができるようになる。
【００３４】
また、本発明の通信システムにおいて、Nは２以上の定数であり、以下のように構成することができる。
【００３５】
すなわち、サーバ装置は、紹介要求が受信されると、N個の記憶部のそれぞれから、当該記憶部に記憶される識別名のいずれかを選択し、当該選択された識別名を指定する調査要求を、当該紹介要求の送信元のゲーム装置に送信する。
【００３６】
本発明では、紹介要求がされると、ひとまず各グループから選ばれた代表が、ゲーム装置に通知される。
【００３７】
一方、複数のゲーム装置のそれぞれは、サーバ装置から送信される調査要求を受信する。そして、受信された調査要求に指定される識別名のゲーム装置のそれぞれについて、当該ゲーム装置に即応要求を送信し、当該ゲーム装置から即応応答を受信し、即応要求が送信された時刻と即応応答が受信された時刻との時間差を計算する。ついで、受信された調査要求に指定される識別名のそれぞれについて、当該識別名のゲーム装置について計算された時間差を指定する調査応答を、サーバ装置に送信する。
【００３８】
調査応答を受信したゲーム装置は、各グループの代表との通信を試み、その通信時間をサーバ装置に知らせることになる。
【００３９】
さらに、サーバ装置は、ゲーム装置から送信された調査応答を受信し、当該調査応答に指定される時間差が最も短い識別名が記憶される記憶部に、当該調査応答の送信元のゲーム装置を追加する。
【００４０】
サーバ装置は、ゲーム装置から、代表との通信時間が知らされると、通信時間が最短の代表が属するグループに、当該ゲーム装置を加入させるのである。
【００４１】
本発明によれば、通信状態が良好と考えられるゲーム装置がグループをなす可能性が高まるので、ゲーム装置に対して、通信対戦ゲームの対戦相手を通信速度に応じて適切に紹介することができるようになる。
【００４２】
また、本発明の通信システムにおいて、N個の記憶部は、キューとして構成され、サーバ装置は、調査要求に指定する識別名として、N個の記憶部のそれぞれを構成するキューの先頭の要素を選択するように構成することができる。
【００４３】
また、本発明の通信システムにおいて、N = 1であるように構成することができる。
【００４４】
本発明は上記発明の一実施形態に係るもので、ゲーム装置の数が少ない場合や、各プレイヤーの実力が拮抗している場合などに特に好適である。
【００４５】
また、本発明の通信システムは、サーバ装置において、選択部は、N個の記憶部のそれぞれについて、当該記憶部に記憶される識別名の対のそれぞれについて、当該対の識別名をＡ、Ｂとし、識別名Ａのゲーム装置から受信された試行応答に指定される識別名Ｂのゲーム装置に対する時間差をpとし、識別名Ｂのゲーム装置から受信された試行応答に指定される識別名Ａのゲーム装置に対する時間差をqとしたとき、|p-q|が小さい対を選択し、当該選択された対の識別名Ａを第１の識別名とし、識別名Ｂを第２の識別名とする処理を繰り返すように構成することができる。
【００４６】
本発明は上記発明の好適実施形態に係るもので、あるゲーム装置の間のパケットの往復に要する時間が、いずれのゲーム装置を出発点とした場合であっても、ほぼ等しいものを優先的にマッチングするものである。
【００４７】
どんな識別名Ａ、Ｂを選択した場合にも、なお|p-q|がある閾値以上となってしまう場合には、そのグループに残っているゲーム装置同士は選択条件が満たされないので、新たなゲーム装置が加入してくるまで紹介がなされないことになる。
【００４８】
本発明によれば、通信状況が均衡しているゲーム装置を紹介し続けることが可能となる。
【００４９】
本発明のその他の観点に係るサーバ装置は、上記の通信システムにおけるサーバ装置である。
【００５０】
本発明のその他の観点に係るゲーム装置は、上記の通信システムにおけるゲーム装置である。
【００５１】
本発明のその他の観点に係る通信方法は、複数のゲーム装置と、サーバ装置と、により実行される。
【００５２】
ここで、複数のゲーム装置のそれぞれは、紹介要求送信部、試行要求受信部、即応要求送信部、即応要求受信部、即応応答送信部、即応応答受信部、試行取得部、試行応答送信部、紹介通知受信部、通信対戦部を備える。
【００５３】
一方、サーバ装置は、ゲーム装置の識別名が記憶されるN個の記憶部、紹介要求受信部、追加部、試行要求送信部、試行応答受信部、選択部、紹介通知送信部、削除部を備える。
【００５４】
そして、当該通信方法は、複数のゲーム装置のそれぞれにおいて実行される紹介要求送信工程、試行要求受信工程、即応要求送信工程、即応要求受信工程、即応応答送信工程、即応応答受信工程、試行取得工程、試行応答送信工程、紹介通知受信工程、通信対戦工程と、サーバ装置において実行される紹介要求受信工程、追加工程、試行要求送信工程、試行応答受信工程、選択工程、紹介通知送信工程、削除工程と、を備える。
【００５５】
ここで、複数のゲーム装置のそれぞれにおいて、紹介要求送信工程では、紹介要求送信部が、通信相手の紹介を求めるための紹介要求をサーバ装置に送信する。
【００５６】
一方、サーバ装置において、紹介要求受信工程では、紹介要求受信部が、複数のゲーム装置のそれぞれから送信される紹介要求を受信する。紹介要求が受信されると、追加工程では、追加部が、当該紹介要求の送信元のゲーム装置の識別名をN個の記憶部のいずれかに追加する。試行要求送信工程では、試行要求送信部が、N個の記憶部のそれぞれについて、当該記憶部に記憶された識別名のゲーム装置のそれぞれに、当該記憶部に記憶された他の識別名を指定する試行要求を送信する。
【００５７】
さらに、複数のゲーム装置のそれぞれにおいて、試行要求受信工程では、試行要求受信部が、サーバ装置から送信される試行要求を受信する。即応要求送信工程では、即応要求送信部が、複数のゲーム装置のうち他のゲーム装置に即応要求を送信する。即応要求受信工程では、即応要求受信部が、複数のゲーム装置のうち他のゲーム装置から送信された即応要求を受信する。即応応答送信工程では、即応応答送信部が、即応要求が受信されると、当該即応要求の送信元に即応応答を送信する。即応応答受信工程では、即応応答受信部が、複数のゲーム装置のうち他のゲーム装置から送信された即応応答を受信する。試行取得工程では、試行取得部が、受信された試行要求に指定される識別名を有するゲーム装置のそれぞれについて、即応要求送信部に即応要求を送信させ、即応応答受信部に即応応答を受信させ、当該即応要求が送信された時刻と当該即応応答が受信された時刻との時間差を取得する。試行応答送信工程では、試行応答送信部が、受信された試行要求に指定される識別名を有するゲーム装置のそれぞれについて、計算された時間差を指定する試行応答を、サーバ装置に送信する。
【００５８】
そして、サーバ装置において、試行応答受信工程では、試行応答受信部が、N個の記憶部のそれぞれについて、当該記憶部に記憶された識別名のゲーム装置のそれぞれから、送信された試行応答を受信する。N個の記憶部のそれぞれについて、当該記憶部に記憶された識別名のうち、第１の識別名のゲーム装置から受信された試行応答に指定される第２の識別名のゲーム装置に対する時間差と、当該第２の識別名のゲーム装置から受信された試行応答に指定される第１の識別名のゲーム装置に対する時間差と、が、所定の選択条件を満たす場合、選択工程では、選択部が、当該第１の識別名と、当該第２の識別名と、を選択する。紹介通知送信工程では、紹介通知送信部が、選択された第１の識別名のゲーム装置に、選択された第２の識別名を指定する紹介通知を送信し、選択された第２の識別名のゲーム装置に、選択された第１の識別名を指定する紹介通知を送信する。削除工程では、削除部が、選択された第１の識別名と、選択された第２の識別名と、を、N個の記憶部のうち、これらが記憶される記憶部から削除する。
【００５９】
一方、複数のゲーム装置のそれぞれにおいて、紹介通知受信工程では、紹介通知受信部が、サーバ装置から送信された紹介通知を受信する。通信対戦工程では、通信対戦部が、受信された紹介通知に指定される識別名のゲーム装置と、通信対戦のために通信する。
【００６０】
本発明のその他の観点に係る通信システム用プログラムは、ゲーム装置用プログラムと、サーバ用プログラムと、を備える。
【００６１】
ここで、ゲーム装置用プログラムは、複数のゲーム装置用コンピュータを、上記のゲーム装置の各部として機能させる。
【００６２】
一方、サーバ用プログラムは、サーバ用コンピュータを、上記のサーバ装置の各部として機能させる。
【００６３】
また、これらのプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記憶媒体に記録することができる。
【００６４】
これらのプログラムは、プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記憶媒体は、コンピュータとは独立して配布・販売することができる。
【発明の効果】
【００６５】
本発明によれば、通信対戦ゲームの対戦相手を通信速度に応じて適切に紹介するのに好適な通信システム、サーバ装置、ゲーム装置、通信方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができる。
【図面の簡単な説明】
【００６６】
【図１】典型的な情報処理装置の概要構成を示す模式図である。
【図２】本実施形態に係る通信システムの概要構成を示す説明図である。
【図３】ゲーム装置とサーバ装置が通信する様子を示すセッション図である。
【図４】本実施形態に係るゲーム装置の概要構成を示す模式図である。
【図５】ゲーム装置にて実行されるゲーム処理の制御の流れを示すフローチャートである。
【図６】本実施形態に係るサーバ装置の概要構成を示す模式図である。
【図７】サーバ装置にて実行されるサービス処理の制御の流れを示すフローチャートである。
【発明を実施するための形態】
【００６７】
以下に本発明の実施形態を説明する。以下では、理解を容易にするため、ゲーム用の情報処理装置を利用して本発明が実現される実施形態を説明するが、以下に説明する実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。
【００６８】
したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
【実施例１】
【００６９】
（情報処理装置）
図１は、プログラムを実行することにより、本実施形態の通信システムに係るゲーム装置として機能しうる典型的な情報処理装置の概要構成を示す模式図である。以下、本図を参照して説明する。
【００７０】
本図に示す情報処理装置１０１は、携帯可能なマルチメディア端末であり、ＣＰＵ（Central Processing Unit）１０２、ＲＡＭ（Random Access Memory）１０３、ＲＯＭ（Read Only Memory）１０４、入力装置１０５、画像処理部１０６、液晶ディスプレイ１０７、音声処理部１０８、ヘッドホン１０９、カセットリーダ１１０、ＲＯＭカセット１１１、外部メモリ１１２、ＲＴＣ（Real Time Clock）１１３、無線ＬＡＮ（Local Area Network）インターフェース１１４、カメラ１１５を備える。
【００７１】
本実施形態に係るプログラムが記録されたＲＯＭカセット１１１を、情報処理装置１０１のカセットリーダ１１０に装着することによって、本実施形態に係るゲーム装置が実現される。
【００７２】
ここで、ＣＰＵ  １０２は、情報処理装置１０１の各部を制御するとともに、各種の演算処理や判断処理を行う。
【００７３】
情報処理装置１０１に電源が投入されると、ＣＰＵ  １０２は、ＲＯＭ  １０４に記録されたＩＰＬ（Initial Program Loader）を実行し、その処理の過程で、カセットリーダ１１０を介して接続されたＲＯＭカセット１１１に記録されたプログラムに処理を移行する。
【００７４】
情報処理装置１０１で実行されるゲームプログラムやマルチメディア情報再生プログラムは、ＲＯＭカセット１１１によって提供されるのが一般的であるが、ＲＯＭ  １０４内にあらかじめ用意しておくことも可能である。
【００７５】
また、ＲＯＭ  １０４内には、ＢＩＯＳ（Basic Input Output System）と呼ばれるプログラム群が用意されており、入力装置１０５や画像処理部１０６、音声処理部１０８の制御を行うことができる。
【００７６】
ＲＡＭ  １０３は、一時的な情報を記憶するための領域であり、外部メモリ１１２は、不揮発な情報を記憶するための領域である。外部メモリ１１２としては、ハードディスクなど、主として情報処理装置１０１に内蔵されるもののほか、各種のメモリカードなど、情報処理装置１０１に抜挿されるものを利用しても良い。
【００７７】
入力装置１０５は、各種のボタンやキーボード、マウス、ジョイスティック等により実現されるのが一般的であるが、液晶ディスプレイ１０７と一体に形成されたタッチスクリーンを入力装置１０５として利用することも可能である。
【００７８】
画像処理部１０６は、ＣＰＵ  １０２の制御の下、各種の文字情報や画像情報を液晶ディスプレイ１０７に表示させるものであり、一般には、垂直同期割込周期（典型的には、３０分の１秒や６０分の１秒程度である。）ごとに、ＲＡＭ  １０３内に用意されたフレームバッファに記憶された画素情報を液晶ディスプレイ１０７の各画素に反映させる。
【００７９】
ユーザからの指示入力は、液晶ディスプレイ１０７に表示されたカーソルを入力装置１０５の移動ボタン操作により移動して、所望のメニュー項目にカーソルを合わせ、決定ボタン操作によって当該メニュー項目を選択するのが一般的であるが、タッチスクリーンを利用する場合にはカーソルは不要である。また、入力装置１０５の各ボタンに割り当てられる機能があらかじめ決まっている場合には、液晶ディスプレイ１０７に対する表示は、必ずしも必要ない。
【００８０】
音声処理部１０８は、ＲＡＭ  １０３やＲＯＭ  １０４、ＲＯＭカセット１１１、外部メモリ１１２に用意された音声データをヘッドホン１０９に出力する。音声データとしては、音声の波形データをディジタル化したＰＣＭ（Pulse Code Modulation）データや、ＰＣＭデータを圧縮してサイズを小さくしたＭＰ３（MPeg audio layer-3）データ等を利用することが可能であるほか、ＭＩＤＩ（Music Instruction Data Interface）データのように、音高、音長、音量、音色の種類を定義するデータを用意し、これにしたがって、あらかじめ用意された音源波形データを適宜選択・変形して再生する手法を採用しても良い。
【００８１】
ＲＴＣ  １１３は、現在の日時を計測するもので、情報処理装置１０１を初めて利用する際に時刻合わせを行うのが一般的であるが、無線ＬＡＮインターフェース１１４を介してＮＴＰ（Network Time Protocol）サーバに接続することで、自動的に時刻合わせを行うような態様を採用することも可能である。
【００８２】
また、アラーム割込を発生させる機能を持つＲＴＣ  １１３もある。設定された時刻になるとアラーム割込が発生して、ＣＰＵ  １０２は、現在実行中のプログラムを一時中断し、あらかじめ設定された割込ハンドラを実行してから、中断したプログラムを再開する。
【００８３】
無線ＬＡＮインターフェース１１４は、自宅や会社、街角に用意された無線ＬＡＮアクセスポイントを介してインターネットに接続したり、近傍に配置された他の情報処理装置１０１と、アドホックに通信路を確立し、１対１で通信を行うなどが可能である。
【００８４】
カメラ１１５は、情報処理装置１０１によってディジタルカメラの機能を実現するものであり、ＣＣＤ（Charge Coupled Device）やＣＭＯＳ（Complementary Metal Oxide Semiconductor）撮像素子などの技術を適用することが可能である。撮影された画像は、一時的にＲＡＭ  １０３に展開された後、外部メモリ１１２等に保存される。
【００８５】
このほか、ビジネス用コンピュータ、携帯電話、ＰＤＡ（Personal Data Assistant）、携帯ゲーム装置、多機能テレビジョン装置、ＤＶＤ（Digital Versatile Disc）プレイヤー、携帯音楽プレイヤーなどを、本発明のゲーム装置が実現される情報処理装置として採用することもできる。
【００８６】
一方、本実施形態に係るサーバ装置を実現する際には、サーバ用コンピュータにおいてプログラムを実行することとするが、サーバ用コンピュータの本質的な構成は、上記情報処理装置１０１と同様である。
【００８７】
典型的には、サーバ用コンピュータでは、上記構成に加えて、有線ＬＡＮインターフェースやハードディスクやフラッシュディスク、などの外部記憶装置を備えることとする。また、他のコンピュータから管理を行う場合には、液晶ディスプレイ１０７や入力装置１０５、カメラ１１５等を省略することもできる。
【００８８】
このほか、サーバ用コンピュータでは、ＲＯＭカセット１１１ではなく、ＤＶＤ−ＲＯＭドライブを介して、ＤＶＤ−ＲＯＭからプログラムをロードしたり、ハードディスクやフラッシュディスクからプログラムをロードしたりするのが一般的である。
【００８９】
また、ＣＰＵ  １０２の計算能力やＲＡＭ  １０３の容量なども、ゲーム用エンターテインメント端末を実現する情報処理装置１０１より遥かに優れたものとすることが多い。
【００９０】
しかしながら、ゲーム装置用コンピュータである情報処理装置１０１においてゲーム装置用プログラムを実行すれば、本実施形態に係るゲーム装置が実現され、サーバ用コンピュータにおいてサーバ用プログラムを実行すれば、本実施形態に係るサーバ装置が実現される、という点において、両者は本質的に共通する。
【００９１】
（通信システム）
図２は、本実施形態に係る通信システムの概要構成を示す説明図である。以下、本図を参照して説明する。
【００９２】
本図に示すように、通信システム２０１は、複数のゲーム装置２３１と、１つのサーバ装置２６１と、が、コンピュータ通信網２９１を介して通信可能に接続されることにより構成される。
【００９３】
上記のように、本実施形態のゲーム装置２３１は、ゲーム用エンターテインメント端末である情報処理装置１０１によって実現される。したがって、ゲーム装置２３１は、インターネットであるコンピュータ通信網２９１に対して、無線により接続される。ただし、有線接続されるコンピュータをゲーム装置２３１として利用しても良い。
【００９４】
一方、サーバ装置２６１は、通信速度を確保する等の観点から、コンピュータ通信網２９１に有線で接続されるのが典型的である。
【００９５】
ゲーム装置２３１は、当初はサーバ装置２６１と通信するが、サーバ装置２６１から通信相手の紹介を受けた後は、紹介された相手とのあいだでピアツーピア通信を行う。
【００９６】
したがって、各ゲーム装置２３１がコンピュータ通信網２９１内のどこに接続されるか、によって、ピアツーピア通信の速度が変化する。
【００９７】
本発明では、快適に通信対戦ができる速度が実現できるように、ゲーム装置２３１をサーバ装置２６１にて紹介する際に工夫をしている。
【００９８】
なお、通信相手やパケットの宛先、送信元を指定するための識別名としては、ＩＰアドレス、あるいは、ＩＰアドレスおよびポート番号を利用するのが一般的である。
【００９９】
さて、本実施形態では、サーバ装置２６１は、紹介を求めるゲーム装置２３１を１つまたは複数のグループに分類し、そのグループ内で、通信相手を紹介する。
【０１００】
図３は、ゲーム装置２３１とサーバ装置２６１が通信する様子を示すセッション図である。以下、本図を参照して説明する。
【０１０１】
本図では、識別名Ａ、Ｂを有する２台のゲーム装置２３１が、過去にサーバ装置２６１に紹介を求めており（３０１ａ、３０１ｂ）、これらは同じグループＧに分類され、そのまま対戦相手の紹介を受けていない状況から説明を始める。ここで、
【０１０２】
まず、識別名Ｃを有する新たなゲーム装置２３１が、サーバ装置２６１に紹介を求める紹介要求３０１ｃを送信する。これを受信したサーバ装置２６１が、ゲーム装置２３１（識別名Ｃ）をグループＧに分類したものとする。
【０１０３】
すると、サーバ装置２６１は、識別名Ａ、Ｂ、Ｃの３台のゲーム装置２３１のそれぞれに、試行要求３０２ａ、３０２ｂ、３０２ｃを送信する。試行要求のそれぞれには、同じグループＧに属する他のゲーム装置２３１の識別名が指定されている。
【０１０４】
したがって、本例では、
識別名Ａのゲーム装置２３１宛の試行要求３０２ａには、識別名Ｂ、Ｃが指定され、
識別名Ｂのゲーム装置２３１宛の試行要求３０２ｂには、識別名Ｃ、Ａが指定され、
識別名Ｃのゲーム装置２３１宛の試行要求３０２ｃには、識別名Ａ、Ｂが指定されることになる。
【０１０５】
試行要求３０２を受信した各ゲーム装置２３１は、試行要求３０２に指定される識別名のゲーム装置２３１に対して、即応要求３０３を送信する。
【０１０６】
たとえば、即応要求３０３ａｂは、ゲーム装置２３１（識別名Ａ）からゲーム装置２３１（識別名Ｂ）宛である。
【０１０７】
即応要求３０３を受信した各ゲーム端末は、即応要求３０３の送信元のゲーム装置２３１に対して、直ちに即応応答３０４を送信する。
【０１０８】
たとえば、即応応答３０４ｂａは、ゲーム装置２３１（識別名Ｂ）からゲーム装置２３１（識別名Ａ）宛である。
【０１０９】
即応要求３０３と即応応答３０４は、たとえば、ｐｉｎｇプロトコルやｅｃｈｏプロトコルを利用したり、これらに準じて実装されるものであり、何らかのパケットを送信すると、そのパケットを受信した旨の確認が直ちに返送されるような通信を実現するものである。
【０１１０】
即応要求３０３と即応応答３０４の組み合わせから、ゲーム装置２３１同士の通信に要する時間がわかる。たとえば、ゲーム装置２３１（識別名Ａ）において、即応応答３０４ｂａの受信時刻から即応要求３０３ａｂを減算すれば、その時間差は、ゲーム装置２３１（識別名Ａ）からゲーム装置２３１（識別名Ｂ）宛に開始されるパケットの往復の通信時間に相当する。
【０１１１】
各ゲーム装置２３１は、試行要求３０２に指定される他のゲーム装置２３１のそれぞれとの通信時間を測定すると、その測定結果を指定する試行応答３０５をサーバ装置２６１に送信する。
【０１１２】
なお、理解を容易にするため、本図では、ゲーム装置Ａを起源とする即応要求３０３ａｂ、３０３ａｃ、即応応答３０４ｂａ、３０４ｃａ、試行応答３０５ｂａ、３０５ｃａのみを図示し、これら以外の即応要求、即応応答、試行応答については、図示を省略している。
【０１１３】
サーバ装置からゲーム装置Ａに試行要求３０２ａが送信されると、ゲーム装置Ａは、自身以外のゲーム装置Ｂ、Ｃに対して、即応要求３０３ａｂ、３０３ａｃを送る。
【０１１４】
ここで、ゲーム装置Ａからゲーム装置Ｂに送られた即応要求３０３ａｂに呼応して、ゲーム装置Ｂからゲーム装置Ａに即応応答３０４ｂａが送られた結果、ゲーム装置Ａから試行応答３０５ｂａがサーバ装置へ送られる。
【０１１５】
また、ゲーム装置Ａからゲーム装置Ｃに送られた即応要求３０３ａｃに呼応して、ゲーム装置Ｃからゲーム装置Ａに即応応答３０４ｃａが送られた結果、ゲーム装置Ａから試行応答３０５ｃａがサーバ装置へ送られる。
【０１１６】
サーバ装置２６１が試行応答３０５を受信すると、グループＧ内の各ゲーム装置２３１同士の通信時間がサーバ装置２６１に収集されることになる。
【０１１７】
すると、サーバ装置２６１は、この通信時間に基づいて、グループＧ内から、いずれか２つのゲーム装置２３１を選択する。本図では、ゲーム装置２３１（識別名Ａ）と、ゲーム装置２３１（識別名Ｃ）が選択されたものとする。
【０１１８】
すると、サーバ装置２６１は、ゲーム装置２３１（識別名Ａ）とゲーム装置２３１（識別名Ｃ）のそれぞれに、通信相手を指定する紹介通知３０６ａ、３０６ｃを送信する。
【０１１９】
紹介通知３０６ａ、３０６ｃを受信すると、ゲーム装置２３１（識別名Ａ）とゲーム装置２３１（識別名Ｃ）は、ピアツーピア通信３０７を開始し、通信対戦を行う。
【０１２０】
これによって、グループＧからは、ゲーム装置２３１（識別名Ａ）とゲーム装置２３１（識別名Ｃ）が削除される。
【０１２１】
本図の例では、グループＧ内にはゲーム装置２３１（識別名Ｂ）のみが残ることとなるが、複数のゲーム装置２３１がグループＧ内に残った場合には、さらに２つのゲーム装置２３１を選択して紹介する処理を繰り返すのが典型的である。
【０１２２】
この選択の際に、できるだけ、通信条件が似ており、かつ、一定の通信速度が得られるもの同士をマッチングするのが、快適な通信環境を提供する上で好適である。以下では、このような選択手法について、さらに詳細に説明する。
【０１２３】
（ゲーム装置）
図４は、本実施形態に係るゲーム装置２３１の概要構成を示す模式図である。以下、本図を参照して説明する。
【０１２４】
ここで、ゲーム装置２３１は、紹介要求送信部４０１、試行要求受信部４０２、即応要求送信部４０３、即応要求受信部４０４、即応応答送信部４０５、即応応答受信部４０６、試行取得部４０７、試行応答送信部４０８、紹介通知受信部４０９、通信対戦部４１０を備える。
【０１２５】
上記のように、ゲーム装置２３１は、通信機能を有するエンターテインメント用端末等の情報処理装置１０１によって構成され、当該情報処理装置１０１が、ゲーム装置用プログラムを実行することによって実現される。
【０１２６】
ここで、紹介要求送信部４０１は、紹介要求３０１を送信する機能を果たす。
試行要求受信部４０２は、試行要求３０２を受信する機能を果たす。
即応要求送信部４０３は、即応要求３０３を送信する機能を果たす。
即応要求受信部４０４は、即応要求３０３を受信する機能を果たす。
即応応答送信部４０５は、即応応答３０４を送信する機能を果たす。
即応応答受信部４０６は、即応応答３０４を受信する機能を果たす。
試行取得部４０７は、同じグループに属する他のゲーム装置２３１のそれぞれとの間で、即応要求３０３を送信した時刻と、即応応答３０４を受信した時刻と、の時間差を求める。
試行応答送信部４０８は、試行応答３０５を送信する機能を果たす。
紹介通知受信部４０９は、紹介通知３０６を受信する機能を果たす。
通信対戦部４１０は、ピアツーピア通信３０７により、通信対戦を行う。
【０１２７】
これらは、いずれも、ＣＰＵ  １０１が無線ＬＡＮインターフェース１１４と共働することによって実現され、その処理の際には、一時的な記憶域としてＲＡＭ  １０３を利用する。
【０１２８】
また、通信対戦部４１０は、通常の通信対戦ゲームと同様に、ＣＰＵ  １０２の制御下で、以下のような処理を行う。
【０１２９】
すなわち、ユーザによる操作を入力装置１０５を介して受け付け、相手方と無線ＬＡＮインターフェース１１４を介して通信してユーザが行った操作を交換し、この操作に基づいて、ＲＡＭ  １０３内に記憶されるゲーム状態を更新し、画像処理部１０６が現在のゲーム状態に基づいて画像を生成して、液晶ディスプレイ１０７に表示したり、音声処理部１０８がヘッドホン１０９に音声を出力したりする。
【０１３０】
図５は、ゲーム装置２３１にて実行されるゲーム処理の制御の流れを示すフローチャートである。以下、本図を参照して説明する。
【０１３１】
本処理は、情報処理装置１０１に電源が投入され、ＲＯＭカセット１１１からＲＡＭ  １０３内にゲーム装置用プログラムがロードされ、ＣＰＵ  １０２が当該プログラムのエントリポイントにジャンプすることによって開始される。
【０１３２】
まず、ＣＰＵ  １０２は、ゲームのための各種の初期化を行い（ステップＳ５０１）、無線ＬＡＮインターフェース１１４を制御して、コンピュータ通信網２９１と通信可能に接続する（ステップＳ５０２）。
【０１３３】
ついで、ＣＰＵ  １０２は、無線ＬＡＮインターフェース１１４を制御して、サーバ装置２６１に紹介要求３０１のパケットを送信する（ステップＳ５０３）。これは、従来の通信対戦ゲームにおけるロビーサーバへの接続に相当する。
【０１３４】
したがって、ＣＰＵ  １０２と無線ＬＡＮインターフェース１１４は、紹介要求送信部４０１として機能する。
【０１３５】
この後、ＣＰＵ  １０２は、無線ＬＡＮインターフェース１１４を制御して、サーバ装置２６１や他のゲーム装置２３１から送信されたパケットを受信する（ステップＳ５０４）。
【０１３６】
なお、パケットの受信には時間を要することがあるため、この間に、種々の情報処理を並行してコルーチン的に実行することも可能である。
【０１３７】
ステップＳ５０４においてパケットが受信されたら、ＣＰＵ  １０２は、そのパケットの種類を調べる（ステップＳ５０５）。
【０１３８】
パケットが試行要求である場合（ステップＳ５０５；試行要求）、ＣＰＵ  １０２と無線ＬＡＮインターフェース１１４は、試行要求受信部４０２として機能したことになる。
【０１３９】
この場合、ＣＰＵ  １０２は、受信された試行要求に指定される識別名を取得し（ステップＳ５１１）、無線ＬＡＮインターフェース１１４を制御してそれぞれの識別名のゲーム装置２３１について、以下の処理を繰り返す（ステップＳ５１２）。
【０１４０】
すなわち、各識別名のゲーム装置２３１に即応要求を送信して（ステップＳ５１３）、当該識別名と現在時刻とを対応付けてＲＡＭ  １０３に記憶させる（ステップＳ５１４）処理を繰り返し（ステップＳ５１５）、全識別名について繰り返したら、ステップＳ５０４に戻る。
【０１４１】
すなわち、ＣＰＵ  １０２と無線ＬＡＮインターフェース１１４は、即応要求送信部４０３として機能する。
【０１４２】
一方、パケットが即応要求である場合（ステップＳ５０５；即応要求）、ＣＰＵ  １０２と無線ＬＡＮインターフェース１１４は、即応要求受信部４０４として機能したことになる。
【０１４３】
この場合、ＣＰＵ  １０２は、受信された即応要求の送信元の識別名を取得し（ステップＳ５２１）、無線ＬＡＮインターフェース１１４を制御して当該識別名のゲーム装置２３１に即応応答を送信して（ステップＳ５２２）、ステップＳ５０４に戻る。
【０１４４】
すなわち、ＣＰＵ  １０２と無線ＬＡＮインターフェース１１４は、即応応答送信部４０５として機能する。
【０１４５】
このほか、パケットが即応応答である場合（ステップＳ５０５；即応応答）、無線ＬＡＮインターフェース１１４は、ＣＰＵ  １０２と即応応答受信部４０６として機能したことになる。
【０１４６】
この場合、ＣＰＵ  １０２は、受信された即応応答の送信元の識別名を取得する（ステップＳ５３１）。そして、取得された識別名に対応付けられてＲＡＭ  １０３に記憶される時刻（ステップＳ５１３において当該識別名のゲーム装置２３１に即応要求を送信した時刻に相当する。）を取得し（ステップＳ５３２）、これと現在時刻（ステップＳ５０４において即応応答が受信された時刻に相当する。）との差を求める（ステップＳ５３３）。
【０１４７】
すなわち、ＣＰＵ  １０２と無線ＬＡＮインターフェース１１４は、試行取得部４０７として機能したことになる。
【０１４８】
そして、ＣＰＵ  １０２は、当該識別名と、当該差と、を指定する試行応答を、サーバ装置２６１に送信して（ステップＳ５３４）、ステップＳ５０４に戻る。この差は、当該ゲーム装置２３１を契機として通信が行われた場合の往復に要する通信時間を意味する。
【０１４９】
すなわち、ＣＰＵ  １０２と無線ＬＡＮインターフェース１１４は、試行応答送信部４０８として機能したことになる。
【０１５０】
一方、パケットが紹介通知である場合（ステップＳ５０５；紹介通知）、ＣＰＵ  １０２と無線ＬＡＮインターフェース１１４は、紹介通知受信部４０９として機能したことになる。
【０１５１】
この場合、ＣＰＵ  １０２は、受信された紹介通知に指定される識別名を取得し（ステップＳ５４１）、当該識別名を有するゲーム装置２３１と通信対戦を行う（ステップＳ５４２）。通信対戦が終了した後は、ステップＳ５０４に戻る。
【０１５２】
したがって、ＣＰＵ  １０２と無線ＬＡＮインターフェース１１４は、通信対戦部４１０として機能したことになる。
【０１５３】
上記のように、ステップＳ５４２における通信対戦においては、公知のネットワーク対戦ゲームの技術を適宜利用することが可能である。
【０１５４】
なお、上記の制御の流れでは、ＣＰＵ  １０２は、他のゲーム装置２３１から即応応答３０４が受信されるごとにサーバ装置２６１へ試行応答３０５を送信しているが、識別名と差の組み合わせが一定の数だけ集まってからまとめて送信することとしても良い。
【０１５５】
（サーバ装置）
図６は、本実施形態に係るサーバ装置２６１の概要構成を示す模式図である。以下、本図を参照して説明する。
【０１５６】
ここで、サーバ装置２６１は、N個の記憶部６０１、紹介要求受信部６０２、追加部６０３、試行要求送信部６０４、試行応答受信部６０５、選択部６０６、紹介通知送信部６０７、削除部６０８を備える。
【０１５７】
上記のように、サーバ装置２６１は、通信機能を有するサーバ用コンピュータ等によって構成され、当該サーバ用コンピュータが、サーバ用プログラムを実行することによって実現される。以下、サーバ用コンピュータと実質的に等価な構成を有する情報処理装置１０１の各要素を参照しつつ、サーバ装置２６１の構成について説明する。
【０１５８】
ここで、N個の記憶部６０１には、紹介を求めるゲーム装置の識別名が記憶され、ＲＡＭ  １０３や、ハードディスク等の外部記憶装置により実現される。Nは１もしくは２以上であり、各記憶部６０１は、配列やキュー等により実装される。
【０１５９】
紹介要求受信部６０２は、紹介要求３０１を受信する役割を果たし、ＣＰＵ  １０２が有線ＬＡＮインターフェースと共働することによって実現される。
【０１６０】
追加部６０３は、受信された紹介要求３０１の送信元のゲーム装置２３１の識別名を、いずれかの記憶部６０１に追加するもので、ＣＰＵ  １０２がＲＡＭ  １０３やハードディスク等と共働することにより実現される。なお、いずれの記憶部６０１に追加するかの態様については、後述する。
【０１６１】
試行要求送信部６０４は、試行要求３０２を送信する役割を果たし、試行応答受信部６０５は、試行応答３０５を受信する役割を果たす。これらは、ＣＰＵ  １０２が有線ＬＡＮインターフェースと共働することによって実現される。
【０１６２】
選択部６０６は、受信された試行応答３０５の送信元、当該試行応答３０５に指定される識別名、時間差（通信時間）を収集して、選択条件を満たす識別名の対を選択するもので、ＣＰＵ  １０２がＲＡＭ  １０３やハードディスク等と共働することにより実現される。なお、収集された２つの識別名と時間差との組み合わせは、ＲＡＭ  １０３やハードディスク等に保存される。
【０１６３】
紹介通知送信部６０７は、選択された対の識別名のゲーム装置２３１に相手方を紹介する紹介通知３０６を送信する役割を果たし、ＣＰＵ  １０２が有線ＬＡＮインターフェースと共働することによって実現される。
【０１６４】
削除部６０８は、選択された対の識別名を、記憶部６０１から削除するもので、ＣＰＵ  １０２がＲＡＭ  １０３やハードディスク等と共働することにより実現される。
【０１６５】
図７は、サーバ装置２６１にて実行されるサービス処理の制御の流れを示すフローチャートである。以下本図を参照しながら説明する。
【０１６６】
本処理は、情報処理装置１０１に電源が投入され、ハードディスクからＲＡＭ  １０３内にサーバ用プログラムがロードされ、ＣＰＵ  １０２が当該プログラムのエントリポイントにジャンプすることによって開始される。
【０１６７】
まず、ＣＰＵ  １０２は、サーバ装置として機能するための初期化を行う（ステップＳ７０１）。この処理においては、N個の記憶部６０１をＲＡＭ  １０３内やハードディスク内に確保する処理が含まれる。
【０１６８】
ついで、ＣＰＵ  １０２は、有線ＬＡＮインターフェースを制御して、ゲーム装置２３１から送信されたパケットを受信する（ステップＳ７０２）。
【０１６９】
なお、パケットの受信には時間を要することがあるため、この間に、種々の情報処理を並行してコルーチン的に実行することも可能である。
【０１７０】
ステップＳ７０２においてパケットが受信されると、ＣＰＵ  １０２は、そのパケットの種類を調べる（ステップＳ７０３）。
【０１７１】
パケットが紹介要求３０１である場合（ステップＳ７０３；紹介要求）、ＣＰＵ  １０２と有線ＬＡＮインターフェースは、紹介要求受信部６０２として機能したことになる。
【０１７２】
この場合、ＣＰＵ  １０２は、紹介要求３０１の送信元の識別名を取得し（ステップＳ７１１）、N個の記憶部６０１からいずれかを選択して（ステップＳ７１２）、選択された記憶部６０１に取得された識別名を追加する（ステップＳ７１３）。
【０１７３】
したがって、ＣＰＵ  １０２はＲＡＭ  １０３やハードディスク等と共働して、追加部６０３として機能したことになる。
【０１７４】
ここで、記憶部６０１の選択の手法としては、種々考えられるが、記憶部６０１のうち、記憶されている識別名が最も少ないものを選択するのが最も簡単である。なお、最少の記憶部６０１が複数ある場合には、ランダムもしくはラウンドロビンにより選択する。その他の選択手法については、後述する。
【０１７５】
また、後述するマッチングを現在行っている途中のグループは選択しないようにしても良い。マッチングを行っている最中のグループを選択する場合には、新たな識別名は、必ず配列やキューの末尾に追加することとして、現在マッチングを行っている場合であっても、副作用が生じないすることが望ましい。
【０１７６】
また、N = 1の場合には、記憶部６０１を選択する必要はなく、唯一の記憶部６０１に識別名を追加すれば良い。
【０１７７】
この後、ＣＰＵ  １０２は、識別名が追加された記憶部６０１に記憶される全識別名、すなわち、最後に追加された識別名と同じグループに属する全識別名を取得する（ステップＳ７１４）。かりにここで、L個の識別名が取得されたものとする。
【０１７８】
ついで、ＣＰＵ  １０２は、L個の識別名について、マッチングを開始するか否かを判断する（ステップＳ７１５）。この判断には、以下のような要素を勘案して判断する。
（１）現在に当該グループについてのマッチング処理を既に行っている最中であるか否か。マッチングを行っている最中であれば、今回はマッチングは開始しない。
（２）Lが所定の数を超えているか否か。Lが大きければ大きいほど、マッチングを開始する確率を高くする。
（３）当該記憶部６０１に現在記憶されている識別名のうち、最初に記憶された識別名が記憶された時点からの経過時間。この経過時間が長くなれば長くなるほど、マッチングを開始する確率を高くする。
（４）当該記憶部６０１について最後にマッチングを行った時点からの経過時間。この経過時間が長くなれば長くなるほど、マッチングを開始する確率を高くする。
【０１７９】
本実施形態が適用される用途に応じ、これらの要素を適宜組み合わせて、マッチングを開始するか否かを判定する。
【０１８０】
マッチングを開始しない場合（ステップＳ７１５；Ｎｏ）、ステップＳ７０２に戻る。
【０１８１】
マッチングを開始すると判断された場合（ステップＳ７１５；Ｙｅｓ）、ＣＰＵ  １０２は、L個の識別名のそれぞれ同士の通信時間を記録するための２次元配列CをＲＡＭ  １０３に確保し、各要素を無限大に相当するような値に初期化する（ステップＳ７１６）。
【０１８２】
そして、ＣＰＵ  １０２は、L個の識別名のそれぞれについて、以下の処理を繰り返す（ステップＳ７１７）。
【０１８３】
すなわち、当該識別名と同じグループに属する他の識別名を指定する試行要求を、当該識別名のゲーム装置に送信する（ステップＳ７１８）。
【０１８４】
したがって、ＣＰＵ  １０２と有線ＬＡＮインターフェースは、試行要求送信部６０４として機能したことになる。
【０１８５】
ステップＳ７１７からの処理を繰り返した（ステップＳ７１９）後は、ステップＳ７０２に戻る。
【０１８６】
一方、ステップＳ７０３において受信されたパケットが試行応答である場合（ステップＳ７０３；試行応答）、ＣＰＵ  １０２と有線ＬＡＮインターフェースは、試行応答受信部６０５として機能したことになる。
【０１８７】
この場合、ＣＰＵ  １０２は、受信された試行応答の送信元の識別名、当該試行応答に指定されている識別名と時間差を取得する（ステップＳ７２０）。
【０１８８】
そして、この２つの識別名が記憶されているグループについてのマッチングが継続中であるか否かを判断する（ステップＳ７２１）。継続中でなければ（ステップＳ７２１；Ｎｏ）、ステップＳ７０２に戻る。
【０１８９】
一方、現在マッチング中である場合には（ステップＳ７２１；Ｙｅｓ）、試行応答の送信元の識別名ならびに試行応答に指定されている識別名が、記憶部６０１から取得された識別名の中で、何番目かを調べる（ステップＳ７２２）。
【０１９０】
調べた結果が、それぞれi番目とj番目である場合、ＣＰＵ  １０２は、配列の要素C[i,j]に、試行応答に指定されている時間差を代入する（ステップＳ７２３）。
【０１９１】
そして、ＣＰＵ  １０２は、マッチングを開始した時点からの経過時間や、配列Cにおける無限大でない要素の割合などに応じて、対を選択するか否かを決定する（ステップＳ７２４）。
【０１９２】
ここで、マッチングを開始した時点からの経過時間が長ければ長いほど、また、配列Cにおける無限大でない要素の割合が高ければ高いほど、対を選択する確率を高くする。
【０１９３】
ＣＰＵ  １０２が対を選択する、と決定した場合（ステップＳ７２４；Ｙｅｓ）、ＣＰＵ  １０２は、配列Qの要素を走査して、以下のような条件（以下「選択条件」と呼ぶ。）を満たす要素を探す（ステップＳ７２５）。すなわち、
（１）要素C[i,j]と要素C[j,i]の値が近いこと。すなわち、p = C[i,j]，q = C[i,j]と置いたとき、|p-q|が小さいこと。これは、２つのゲーム装置において、どちらを起点にパケットを往復させたとしても、通信条件が類似していることに相当する。
（２）要素C[i,j]と要素C[j,i]の値がいずれも所定の閾値より小さいこと。これは、通信対戦を行うにあたって、十分な通信速度が確保されることに相当する。
【０１９４】
このような選択条件の下で対を選択するにあたっては、たとえば、p，qがいずれも所定の閾値より小さく、かつ、p×q×|p-q|が最小となるものを１つ選択することとすれば良い。
【０１９５】
選択条件を満たすものを探した結果、ステップＳ７１４において得られたL個の識別名のうち、i番目の識別名とj番目の識別名の対が得られた場合（ステップＳ７２６；Ｙｅｓ）、ＣＰＵ  １０２はＲＡＭ  １０３やハードディスク等と共働して、選択部６０６として機能したことになる。
【０１９６】
この場合、ＣＰＵ  １０２は、有線ＬＡＮインターフェースを制御して、i番目の識別名のゲーム装置２３１には、j番目の識別名を指定する紹介通知を送信し、j番目の識別名のゲーム装置２３１には、i番目の識別名を指定する紹介通知を送信する（ステップＳ７２７）。
【０１９７】
この処理によって、ゲーム装置２３１は、対戦相手の紹介を受けることができる。
【０１９８】
したがって、ＣＰＵ  １０２と有線ＬＡＮインターフェースは、紹介通知送信部６０７として機能したことになる。
【０１９９】
この後、ＣＰＵ  １０２は、配列の要素C[i,j]，C[j,i]の値を無限大に戻して（ステップＳ７２８）、現在マッチング中の記憶部６０１からi番目の識別名とj番目の識別名を削除し（ステップＳ７２９）、ステップＳ７２４に戻る。
【０２００】
したがって、ＣＰＵ  １０２はＲＡＭ  １０３やハードディスク等と共働して、削除部６０８として機能したことになる。
【０２０１】
一方、ステップＳ７２４において、対を選択しないと決定した場合（ステップＳ７２４；Ｎｏ）や、ステップＳ７２４において、選択条件を満たす対が見つからなかった場合（ステップＳ７２６；Ｎｏ）は、ＣＰＵ  １０２は、マッチングを終了するか否かを判定する（ステップＳ７３０）。
【０２０２】
マッチングを終了する場合としては、たとえば、今回のマッチングにおいて選択された対の数が所定の個数を超えた場合や、対が選択されないまま長時間が経過してしまった場合、配列Cの要素に代入された値がいずれも閾値以上である状態が一定時間以上継続した場合等を採用することができる。
【０２０３】
マッチングを終了する場合（ステップＳ７３０；Ｙｅｓ）、ＲＡＭ  １０３から配列Cを解放して（ステップＳ７３１）、ステップＳ７０２に戻る。
【０２０４】
マッチングを終了しない場合（ステップＳ７３０；Ｎｏ）は、そのままステップＳ７０２に戻る。
【０２０５】
このような処理をゲーム装置２３１およびサーバ装置２６１で実行することによって、十分な速度で、かつ、均衡した条件で通信ができるゲーム装置を通信相手として紹介し、通信対戦を快適に進行させることができるようになる。
【実施例２】
【０２０６】
上記実施形態では、新たな識別名を追加する記憶部６０１を、単純な規則で定めていたが、本実施形態は、識別名の追加先も、通信条件に基づいて定めるものとする。
【０２０７】
すなわち、紹介要求が受信されると、ＣＰＵ  １０２は、N個の記憶部６０１のそれぞれから、代表となる識別名を選択する。
【０２０８】
たとえば、各記憶部６０１の配列もしくはキューのうちから、たとえば、先頭の要素、末尾の要素、ちょうど真中の要素等を代表として選択するのでも良いし、ランダムに代表を選択するのでも良い。なお、記憶部６０１が空の場合には、代表も選択されない。
【０２０９】
そして、代表が少なくとも１つ選択された場合には、選択された代表を指定する調査要求を、紹介要求の送信元のゲーム装置２３１に送信する。この調査要求のパケットは、試行要求のパケットと同じものを利用することができる。
【０２１０】
すると、調査要求のパケットを受信したゲーム装置２３１は、試行要求の場合と同様に、各代表との通信時間を測定して、その結果を指定する調査応答をサーバ装置２６１に送信する。この調査応答のパケットは、試行応答のパケットと同じものを利用することができる。
【０２１１】
サーバ装置２６１は、いずれの記憶部６０１に追加するかを判定中の識別名を持つゲーム装置２３１から送信された調査応答を受信して、これを蓄積する。
【０２１２】
そして、全代表について調査応答が受信されるか、所定の時間が経過したら、蓄積された調査応答のうち、当該調査応答に指定される時間差が最も短いものを選び、その識別名が記憶される記憶部６０１を、追加先として選択するのである。
【０２１３】
本実施形態によれば、通信状態が良好と考えられるゲーム装置２３１がグループをなす可能性が高まるので、ゲーム装置２３１に対して、通信対戦ゲームの対戦相手を通信速度に応じて適切に紹介することができるようになる。
【産業上の利用可能性】
【０２１４】
以上説明したように、本発明によれば、通信対戦ゲームの対戦相手を通信速度に応じて適切に紹介するのに好適な通信システム、サーバ装置、ゲーム装置、通信方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができる。
【符号の説明】
【０２１５】
１０１  情報処理装置
１０２  ＣＰＵ
１０３  ＲＡＭ
１０４  ＲＯＭ
１０５  入力装置
１０６  画像処理部
１０７  液晶ディスプレイ
１０８  音声処理部
１０９  ヘッドホン
１１０  カセットリーダ
１１１  ＲＯＭカセット
１１２  外部メモリ
１１３  ＲＴＣ
１１４  無線ＬＡＮインターフェース
１１５  カメラ
２０１  通信システム
２３１  ゲーム装置
２６１  サーバ装置
２９１  コンピュータ通信網
３０１  紹介要求
３０２  試行要求
３０３  即応要求
３０４  即応応答
３０５  試行応答
３０６  紹介通知
３０７  ピアツーピア通信
４０１  紹介要求送信部
４０２  試行要求受信部
４０３  即応要求送信部
４０４  即応要求受信部
４０５  即応応答送信部
４０６  即応応答受信部
４０７  試行取得部
４０８  試行応答送信部
４０９  紹介通知受信部
４１０  通信対戦部
６０１  記憶部
６０２  紹介要求受信部
６０３  追加部
６０４  試行要求送信部
６０５  試行応答受信部
６０６  選択部
６０７  紹介通知送信部
６０８  削除部
【図１】
2011194100.tif 000003
【図２】
2011194100.tif 000004
【図３】
2011194100.tif 000005
【図４】
2011194100.tif 000006
【図５】
2011194100.tif 000007
【図６】
2011194100.tif 000008
【図７】
2011194100.tif 000009