説明

ネットワークゲームシステムおよびネットワークゲームプログラム

【課題】ユーザを長時間待たせることなく、より効率良くピアツーピア型ネットワークを構築すること。
【解決手段】クライアント端末と接続されているホスト装置から、別のクライアント端末と接続されている別のホスト装置に対して、接続要求が送信される。この接続要求が受け入れられると、接続要求の送信元のホスト装置は、自身と接続されているクライアント端末を切断し、自身はクライアント端末として接続要求の送信先のホスト装置に接続する。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、ネットワークゲームシステムおよびネットワークゲームプログラムに関し、特に例えば、通信ネットワークを介して行われるゲームのためのネットワークゲームシステムおよびネットワークゲームプログラムに関する。
【背景技術】
【0002】
ネットワークゲームシステムには、大きく分けてクライアント/サーバ型のネットワークゲームシステムとピアツーピア型のネットワークゲームシステムが存在する。
【0003】
クライアント/サーバ型ネットワークゲームシステムは、ユーザ端末がクライアントとしてゲームサーバに接続し、主にゲームサーバがゲーム処理を実行することによってゲームが進行するネットワークゲームシステムである。このクライアント/サーバ型ネットワークゲームシステムは、ゲームサーバに同時に接続されているユーザ端末の数が増えるほどゲームサーバの処理負担が大きくなるため、十分に高性能なゲームサーバを用意する必要があり、ネットワークゲームシステムの構築のためのコストが高いという不利な点がある。
【0004】
これに対して、ピアツーピア型ネットワークゲームシステムは、基本的にはユーザ端末同士で通信をすることによってゲームが進行するネットワークゲームシステムであるため、クライアント/サーバ型ネットワークゲームシステムのような高性能なゲームサーバは必要なく、またユーザ端末間のデータ転送もゲームサーバを経由せずに行うことができるため、例えばレースゲームのようなリアルタイムな処理が要求されるゲームに適している。
【0005】
ピアツーピア型ネットワークゲームシステムはさらに、ホスト方式の構成(図38参照)と網の目状(メッシュ状)の構成(図39参照)とに区別される。いずれの構成でも、ネットワークを構成するユーザ端末のうちのいずれか1台がホスト端末として、残りのユーザ端末がクライアント端末として動作するという点では同じである。ホスト方式の構成においては、ホスト端末が非常に強い権限を有しており、クライアント/サーバ型ネットワークゲームシステムにおけるサーバのように重要な演算処理の多くをホストが処理し、簡単な演算処理などに限りクライアントが処理する。一方、網の目状の構成においては、ホスト方式の構成と比較してホスト端末の役割は小さくて非常に限られており、演算処理なども基本的には各クライアント端末が処理する。
【0006】
非特許文献1には、このようなピアツーピア型ネットワークゲームシステムの一例が開示されている。
【非特許文献1】「オンラインゲームプログラミング」、ソフトバンクパブリッシング株式会社、Jung WunChul著、2005年3月3日 初版、P218〜222
【発明の開示】
【発明が解決しようとする課題】
【0007】
ところで、従来のピアツーピア型ネットワークゲームシステムは、まずいずれかのユーザ端末がホスト端末としてゲームセッションを作成し、このホスト端末に対して他のユーザ端末が順次接続することによって構築される。例えば、4人で一緒に対戦するレースゲームの場合には、あるユーザ端末がこのレースゲームのゲームセッションを作成し、その後、このホスト端末に対して3台のユーザ端末がクライアント端末として接続することによってレースゲームが開始される。しかしながら、複数のユーザ端末がホスト端末としてゲームセッションをそれぞれ作成し、それらのホスト端末に対して例えば2台ずつのユーザ端末がクライアント端末として接続されている場合には、レースゲームをプレイしようとしているユーザ数が4人以上居るにもかかわらず、各ホスト端末に接続されているクライアント端末の数が規定数に達していないためにレースゲームがなかなか開始されないという問題がある。
【0008】
それゆえに本発明の目的は、上記の従来のピアツーピア型ネットワークゲームシステムの問題点を解消し、ユーザを長時間待たせることなく、より効率良くネットワークを構築することができるネットワークゲームシステムを提供することである。
【課題を解決するための手段】
【0009】
上記目的を達成するために、本発明は以下の構成を採用した。なお、括弧内の参照符号は本発明の理解を助けるために図面との対応関係を示したものであって、本発明の範囲を何ら限定するものではない。
【0010】
本発明の第1の局面は、ネットワークを通じて互いに接続された複数のゲーム装置(20)でゲーム装置グループを少なくとも構築するまで、当該ゲーム装置グループに含まれる1台のゲーム装置がホスト端末として動作し、残りのゲーム装置がクライアント端末として動作するネットワークゲームシステムである。当該ネットワークゲームシステムを構成する各ゲーム装置は、基本接続要求送信手段(21、S20)、基本接続要求受信手段(21、S22)、受け入れ判定手段(21、S48)、第1ホスト処理手段(21、S64)、許可通知手段(21、S52)、クライアント処理手段(21、S88)、ホスト接続要求送信手段(21、S20)、ホスト接続要求受信手段(21、S22)、ホスト受け入れ判定手段(21、S48)、第2ホスト処理手段(21、S64)、ホスト許可通知手段(21、S52)、および解散処理手段(21、S86)をそれぞれ備える。基本接続要求送信手段は、自身のゲーム装置がいずれのゲーム装置グループにも含まれていないときに、他のゲーム装置に基本接続要求を送信する手段である(図9、図14)。基本接続要求受信手段は、他のゲーム装置から基本接続要求を受信する手段である。受け入れ判定手段は、前記基本接続要求受信手段が受信した基本接続要求を受け入れるか否かを判定する手段である。第1ホスト処理手段は、自身のゲーム装置がいずれのゲーム装置グループにも所属しておらず、かつ前記受け入れ判定手段の判定結果が肯定であるときに、前記基本接続要求受信手段が受信した基本接続要求の送信元のゲーム装置に対して受け入れ許可通知を返信し、少なくとも自身のゲーム装置と前記基本接続要求受信手段が受信した基本接続要求の送信元のゲーム装置とを含むゲーム装置グループのホスト端末として自身のゲーム装置を動作させる手段である。許可通知手段は、自身のゲーム装置がホスト端末として動作しており、かつ前記受け入れ判定手段の判定結果が肯定であるときに、前記基本接続要求受信手段が受信した基本接続要求の送信元のゲーム装置に対して受け入れ許可通知を返信する手段である。クライアント処理手段は、前記基本接続要求送信手段によって送信された基本接続要求にて他のいずれかのゲーム装置から受け入れ許可通知を受信したときに、自身のゲーム装置を前記基本接続要求を受け入れられたゲーム装置に従属するクライアント端末として動作させる手段である。ホスト接続要求送信手段は、自身のゲーム装置がホスト端末として動作しているときに、他のゲーム装置にホスト接続要求を送信する手段である(図23)。ホスト接続要求受信手段は、他のホスト端末からホスト接続要求を受信する手段である。ホスト受け入れ判定手段は、前記ホスト接続要求受信手段が受信したホスト接続要求を受け入れるか否かを判定するホスト受け入れ判定手段である。第2ホスト処理手段は、自身のゲーム装置がいずれのゲーム装置グループにも所属しておらず、かつ前記ホスト受け入れ判定手段の判定結果が肯定であるときに、前記ホスト接続要求受信手段が受信したホスト接続要求の送信元のゲーム装置に対してホスト受け入れ許可通知を返信し、少なくとも自身のゲーム装置と前記ホスト接続要求受信手段が受信したホスト接続要求の送信元のゲーム装置とを含むゲーム装置グループのホスト端末として自身のゲーム装置を動作させる手段である。ホスト許可通知手段は、自身のゲーム装置がホスト端末として動作しており、かつ前記ホスト受け入れ判定手段の判定結果が肯定であるときに、前記ホスト接続要求受信手段が受信したホスト接続要求の送信元のゲーム装置に対してホスト受け入れ許可通知を返信する手段である。解散処理手段は、前記ホスト接続要求送信手段によって送信されたホスト接続要求にて他のいずれかのゲーム装置からホスト受け入れ許可通知を受信したときに、前記ホスト接続要求の送信元のゲーム装置が所属しているゲーム装置グループ内のクライアント端末に対して解散通知を送信するとともに、自身のゲーム装置を前記ホスト接続要求を受け入れられたゲーム装置に従属するクライアント端末として動作させる手段である。
【0011】
なお、変形例として、前記ホスト接続要求送信手段は、自身のゲーム装置が所属しているゲーム装置グループのクライアント端末の数が予め定められた最大数に達していないときにのみ他のホスト端末にホスト接続要求を送信してもよい。
【0012】
また、変形例として、前記ホスト接続要求送信手段は、自身のゲーム装置が所属しているゲーム装置グループのクライアント端末の数に応じて、他のゲーム端末にホスト接続要求を送信する間隔を変化させてもよい。
【0013】
また、変形例として、前記ホスト接続要求送信手段は、自身のゲーム装置が所属しているゲーム装置グループのクライアント端末の数が多いほど、他のホスト端末にホスト接続要求を送信する間隔を長くしてもよい。
【0014】
また、変形例として、前記ネットワークゲームシステムは、アドレス情報サーバをさらに備えていてもよい。前記アドレス情報サーバは、ネットワークに接続されている各ゲーム装置から、少なくとも当該ゲーム装置へアクセスするためのアドレス情報を含むゲーム装置情報を収集して記憶部に格納するゲーム装置情報収集手段、およびネットワークに接続されているゲーム装置からのアドレス情報取得要求に応じて、当該ゲーム装置に、前記ゲーム装置情報収集手段によって収集された他の複数のゲーム装置のアドレス情報の中から少なくとも1つのゲーム装置のアドレス情報を送信するアドレス情報送信手段を含んでいてもよい。
【0015】
また、変形例として、前記アドレス情報送信手段は、ネットワークに接続されているゲーム装置からのアドレス情報取得要求に応じて、当該ゲーム装置に、他の複数のゲーム装置のアドレス情報を含むアドレス情報リストを送信してもよい。各前記ゲーム装置は、前記アドレス情報サーバに前記アドレス情報リストを要求するアドレス情報リスト要求手段、前記アドレス情報サーバから前記アドレス情報リストを受信するアドレス情報リスト受信手段、および前記アドレス情報リスト受信手段が受信したアドレス情報リストの中から1つのアドレス情報をランダムに抽出するアドレス情報抽出手段をさらに備えていてもよい。前記基本接続要求送信手段は、前記アドレス情報抽出手段によってランダムに抽出されたアドレス情報を用いて当該アドレス情報に対応するゲーム装置に基本接続要求を送信してもよい。
【0016】
また、変形例として、前記アドレス情報送信手段は、ネットワークに接続されているホスト端末からのアドレス情報取得要求に応じて、当該ホスト端末に、他の複数のホスト端末のアドレス情報を含むアドレス情報リストを送信してもよい。各前記ゲーム装置は、前記アドレス情報サーバに前記アドレス情報リストを要求するアドレス情報リスト要求手段、前記アドレス情報サーバから前記アドレス情報リストを受信するアドレス情報リスト受信手段、および前記アドレス情報リスト受信手段が受信したアドレス情報リストの中の各アドレス情報に含まれる所定の指標に基づいて、当該アドレス情報リストの中から1つのアドレス情報を抽出するアドレス情報抽出手段をさらに備えていてもよい。前記ホスト間接続要求送信手段は、前記アドレス情報抽出手段によって抽出されたアドレス情報を用いて当該アドレス情報に対応するホスト端末にホスト間接続要求を送信してもよい。
【0017】
また、変形例として、前記アドレス情報抽出手段は、前記所定の指標に基づいて前記アドレス情報リスト受信手段が受信したアドレス情報リストの中から複数のアドレス情報が抽出された場合には、さらに当該抽出された複数のアドレス情報の中から1つのアドレス情報をランダムに抽出してもよい。
【0018】
また、変形例として、前記アドレス情報送信手段は、ネットワークに接続されているホスト端末からのアドレス情報取得要求に応じて、当該ホスト端末に、他の複数のホスト端末のアドレス情報を含むアドレス情報リストを送信してもよい。各前記ゲーム装置は、前記アドレス情報サーバに前記アドレス情報リストを要求するアドレス情報リスト要求手段、前記アドレス情報サーバから前記アドレス情報リストを受信するアドレス情報リスト受信手段、および前記アドレス情報リスト受信手段が受信したアドレス情報リストの中から1つのアドレス情報をランダムに抽出するアドレス情報抽出手段をさらに備えていてもよい。前記ホスト間接続要求送信手段は、前記アドレス情報抽出手段によってランダムに抽出されたアドレス情報を用いて当該アドレス情報に対応するホスト端末にホスト間接続要求を送信してもよい。
【0019】
また、変形例として、前記受け入れ判定手段は、前記基本接続要求送信手段が他の第1のゲーム装置に基本接続要求を送信した後、当該基本接続要求が受け入れられたか否かが判明する前に、前記基本接続要求受信手段が別の第2のゲーム装置から基本接続要求を受信した場合に、予め定められた規則に基づいて当該第2のゲーム装置からの基本接続要求を受け入れるか否かを判定してもよい。各前記ゲーム装置は、前記受け入れ判定手段の判定結果が肯定であるときに、前記第1のゲーム装置に取り消し信号を送信する取り消し信号送信手段をさらにそれぞれ備えていてもよい。
【0020】
また、変形例として、前記受け入れ判定手段は、前記第1のゲーム装置に関連する識別子と前記第2のゲーム装置に関連する識別子とを比較することによって、前記第2のゲーム装置からの基本接続要求を受け入れるか否かを判定してもよい。
【0021】
本発明の第2の局面は、ネットワークを通じて互いに接続された複数のゲーム装置(20)でゲーム装置グループが構成され、当該ゲーム装置グループに含まれる1台のゲーム装置がホスト端末として動作し、残りのゲーム装置がクライアント端末として動作するネットワークゲームシステムにおいて利用されるネットワークゲームプログラムである。当該ネットワークゲームプログラムは、ゲーム装置のコンピュータ(21)を、基本接続要求送信手段、基本接続要求受信手段、受け入れ判定手段、第1ホスト処理手段、許可通知手段、クライアント処理手段、ホスト接続要求送信手段、ホスト接続要求受信手段、ホスト受け入れ判定手段、第2ホスト処理手段、ホスト許可通知手段、および解散処理手段として機能させるためのプログラムである。
【0022】
本発明の第3の局面は、ネットワークを通じて互いに接続された複数のゲーム装置でそれぞれ構成される少なくとも2つのゲーム装置グループから1つのゲーム装置グループを構築するネットワークゲームシステムである。第1のゲーム装置グループのホスト端末として動作する第1のゲーム装置(20)は、接続要求送信手段(21、S20)と、解散処理手段(21、S84、S86)とを備える。接続要求送信手段は、第2のゲーム装置グループのホスト端末として動作する第2のゲーム装置に対して接続要求を送信する手段である。解散処理手段は、前記第2のゲーム装置から接続許可通知を受信した後に、当該第2のゲーム装置に対して接続するための接続先情報を、前記第1のゲーム装置グループにおいてクライアント端末として動作するゲーム装置に送信した後、当該第1のゲーム装置グループを解散する手段である。前記第2のゲーム装置グループのホスト端末として動作する第2のゲーム装置(20)は、接続許可通知送信手段(21、S52)と、クライアント受入手段(21、S64)とを備える。接続許可通知送信手段は、前記第1のゲーム装置の前記接続要求に対して接続許可できるとき、当該接続許可通知を当該第1のゲーム装置に送信する手段である。クライアント受入手段は、前記接続許可通知を送信した後の前記第1のゲーム装置を前記第2のゲーム装置グループのクライアント端末として受け入れる手段である。
【0023】
また、変形例として、前記第2のゲーム装置は、前記第1のゲーム装置グループにおいてクライアント端末として動作していたゲーム装置からの接続要求を受けたとき、当該ゲーム装置が所定要件を満たすことを条件として、前記第2のゲーム装置グループのクライアント端末として受け入れる第2受入手段を備えていてもよい。
【0024】
また、変形例として、前記各ゲーム装置間の通信は、それぞれのゲーム装置の接続先やゲーム装置グループの情報を管理するマッチングサーバー(10)を介して行われてもよい。
【0025】
また、変形例として、前記第1のゲーム装置は、前記接続要求送信手段が前記第2のゲーム装置に対して接続要求を送信した後、当該接続要求が受け入れられたか否かが判明する前に、別の第3のゲーム装置から接続要求を受信した場合に、予め定められた規則に基づいて当該第3のゲーム装置からの接続要求を受け入れるか否かを判定する受け入れ判定手段と、前記受け入れ判定手段の判定結果が肯定であるときに、前記第2のゲーム装置に取り消し信号を送信する取り消し信号送信手段とをさらに備えていてもよい。
【0026】
また、変形例として、前記受け入れ判定手段は、前記第2のゲーム装置に関連する識別子と前記第3のゲーム装置に関連する識別子とを比較することによって、前記第3のゲーム装置からの接続要求を受け入れるか否かを判定してもよい。
【0027】
本発明の第4の局面は、ネットワークを通じて互いに接続された複数のゲーム装置(20)でそれぞれ構成される少なくとも2つのゲーム装置グループから1つのゲーム装置グループを構築するネットワークゲームシステムにおいて利用されるネットワークゲームプログラムである。当該ネットワークゲームプログラムは、第1のゲーム装置グループのホスト端末として動作する第1のゲーム装置のコンピュータ(21)を、接続要求送信手段、および解散処理手段として機能させ、前記第2のゲーム装置グループのホスト端末として動作する第2のゲーム装置のコンピュータを、接続許可通知送信手段、およびクライアント受入手段として機能させるためのプログラムである。
【0028】
本発明の第5の局面は、通信可能に接続された複数のゲーム装置(20)によって構成されるネットワークゲームシステムにおけるゲーム装置である。当該ゲーム装置は、要求受付処理手段(21、S20)と、クライアント処理手段(21、S88)と、ホスト処理手段(21、S64)とを備える。要求受付処理手段は、ゲーム装置グループに参加するために他のゲーム装置に対して接続要求を行う接続要求処理と、ゲーム装置グループを構築するために他のゲーム装置からの接続要求を受け付ける接続受付処理とを同時に実行する手段である。クライアント処理手段は、前記接続要求処理によってゲーム装置グループに参加可能になったとき、当該ゲーム装置グループのクライアント端末として動作する処理を行う手段である。ホスト処理手段は、前記接続受付処理によってゲーム装置グループを構築可能になったととき、当該ゲーム装置グループのホスト端末として動作する処理を行う手段である。
【0029】
なお、変形例として、前記ゲーム装置は、前記ホスト処理手段によってホスト端末として動作している場合において、前記要求受付処理手段によって他のゲーム装置グループへ参加可能になったとき、自身のゲーム装置グループにおいてクライアント端末として動作しているゲーム装置に当該他のゲーム装置グループのホスト端末として動作しているゲーム装置の接続先情報を送信した後、当該自身のゲーム装置グループを解散する解散手段をさらに備えていてもよい。
【0030】
また、変形例として、前記ゲーム装置は、前記クライアント処理手段によってクライアント端末として動作している場合において、自己が参加しているゲーム装置グループのホスト端末から他のゲーム装置グループのホスト端末の接続先情報を受信する新接続先情報受信手段と、前記自己が参加しているゲーム装置グループのホスト端末によって当該ゲーム装置グループが解散されたとき、前記他のゲーム装置グループのホスト端末の接続先情報によって、当該他のゲーム装置グループのホスト端末に対して接続要求を行う接続要求手段とを備えていてもよい。
【0031】
また、変形例として、前記ゲーム装置は、前記要求受付処理手段が他の第1のゲーム装置に対して接続要求を送信した後、当該接続要求が受け入れられたか否かが判明する前に、別の第2のゲーム装置から接続要求を受信した場合に、予め定められた規則に基づいて当該第2のゲーム装置からの接続要求を受け入れるか否かを判定する受け入れ判定手段と、前記受け入れ判定手段の判定結果が肯定であるときに、前記第1のゲーム装置に取り消し信号を送信する取り消し信号送信手段とをさらに備えていてもよい。
【0032】
また、変形例として、前記受け入れ判定手段は、前記第1のゲーム装置に関連する識別子と前記第2のゲーム装置に関連する識別子とを比較することによって、前記第2のゲーム装置からの接続要求を受け入れるか否かを判定してもよい。
【0033】
本発明の第6の局面は、通信可能に接続された複数のゲーム装置(20)によって構成されるネットワークゲームシステムにおけるゲーム装置のコンピュータ(21)を、要求受付処理手段、クライアント処理手段、およびホスト処理手段として機能させるためのネットワークゲームプログラムである。
【発明の効果】
【0034】
本発明によれば、ホスト端末が他のホスト端末にホスト間接続要求を行うことにより、ゲームをプレイしようとしているユーザ数が規定数以上居るにもかかわらず、各ホスト端末に接続されているクライアント端末の数が規定数に達していないためにゲームがなかなか開始されないという問題が解消され、ゲーム装置グループを効率よく編成し、長時間待たせることなくユーザにネットワークゲームのプレイを開始させることができる。
【発明を実施するための最良の形態】
【0035】
以下、本発明の好ましい一実施形態について図面を参照して説明する。
【0036】
図1は、本発明の好ましい一実施形態としてのネットワークゲームシステムの構成を示す図である。ネットワークゲームシステムは、アドレス情報サーバ10と複数のユーザ端末(ゲーム装置)20とで構成される。
【0037】
図2に、アドレス情報サーバ10の典型的な構成例を示す。アドレス情報サーバ10は、CPU11、RAM12、ハードディスク13および通信部14を備えている。CPU11は、ハードディスク13に格納されているコンピュータプログラムをRAM12にロードして実行する。このコンピュータプログラムによって実現されるアドレス情報サーバ10の主な機能は、各ユーザ端末20から、後述するユーザ端末情報(図4)を定期的に受信してRAM12に格納し、このユーザ端末情報に基づいて、ユーザ端末20からの要求に応じてアドレス情報リストをそのユーザ端末20に返信することである。
【0038】
図3に、ユーザ端末20の典型的な構成例を示す。ユーザ端末20は、CPU21、RAM22、ハードディスク23、通信部24、入力部25および表示部26を備えている。CPU21は、ハードディスク23に格納されているネットワークゲームプログラムをRAM22にロードして実行する。なお、ここではネットワークゲームプログラムがハードディスク23に予め格納されている例を説明しているが、本発明はこれに限らず、メモリカードやカートリッジやDVD−ROM等の外部記録媒体を通じてネットワークゲームプログラムがユーザ端末20に供給されても良いし、通信部24を通じてネットワークゲームプログラムがユーザ端末20に供給されても良い。このネットワークゲームプログラムによって実現されるユーザ端末20の主な機能は、複数のプレイヤが一緒にゲームプレイできるようにピアツーピア型ネットワークを構築し、構築されたピアツーピア型ネットワークのユーザ端末間でゲームデータを通信し合ってレースゲームなどのビデオゲームを実行することである。入力部25はゲームの操作のために利用され、表示部26はゲーム画像の表示のために利用される。
【0039】
図4は、アドレス情報サーバ10のRAM12に格納されるユーザ端末情報の一例を示している。このユーザ端末情報は、各ユーザ端末20から送られてくる情報に基づいて更新される。ユーザ端末情報には、各ユーザ端末の端末ID、IPアドレス、ホストフラグ、ユーザIDよおび熟練度の情報が含まれている。端末IDは、ユーザ端末20を識別するための情報である。IPアドレスは、TCP/IPプロトコルを使用してユーザ端末20にアクセスするためのアドレス情報であって、ポート番号の情報も含まれている。ホストフラグは、ユーザ端末20がホスト端末として動作しているか否かを示すフラグである。ユーザIDは、ユーザ端末20を用いてゲームをプレイしているユーザを識別するための情報である。熟練度は、ゲームに対するユーザの熟練度である。この熟練度の値は、例えばレースゲームにおいて上位の着順を獲得するほど増加していく。また、より熟練度の高い相手に対して先着するほどその増加量も増える。
【0040】
図5は、ユーザ端末20のRAM22のメモリマップの一例である。RAM22には、ハードディスク23からロードされたネットワークゲームプログラムや、プレイヤリストや、プレイヤの熟練度の情報が格納され、適宜に更新される。プレイヤリストとは、一緒にゲームをプレイしようとしているユーザ(すなわち同一のゲームセッションに参加しているユーザ)に関するプレイヤ情報の集まりであって、プレイヤ情報には各ユーザのユーザIDや熟練度の情報が含まれている。
【0041】
以下、図6〜図8のフローチャートを参照して、ネットワークゲームプログラムに基づくユーザ端末20(便宜上、ユーザ端末Xと称す)のCPU21の処理の流れを説明する。
【0042】
図6はメイン処理の流れを示すフローチャートである。メイン処理が開始されると、まずCPU21は、ステップS10でゲームセッションを生成する。
【0043】
ステップS12では、RAM22に保持しているプレイヤリストをリセットする。
【0044】
ステップS14では、通信部24を通じてアドレス情報サーバ10にアドレス情報リストを要求する。一具体例を説明すると、CPU21は、アドレス情報サーバ10にアドレス情報リストを要求する際に、RAM22に格納されている熟練度の情報(ここでは2とする)をアドレス情報サーバ10に送信する。すると、アドレス情報サーバ10のCPU11は、図4に示されているユーザ端末情報の中から、ホストフラグがオンであってかつ熟練度が2に近い数値(例えば1〜3)のユーザ端末情報を少なくとも1つ抽出し、こうして抽出されたユーザ端末情報のリストをアドレス情報リストとしてユーザ端末Xに返信する。
【0045】
ステップS16では、アドレス情報サーバ10から取得したアドレス情報リストから、1つのユーザ端末情報を抽出し、こうして抽出したユーザ端末情報に対応するユーザ端末(便宜上、ユーザ端末Yと称す)を、接続要求先として設定(RAM22に記憶)する。アドレス情報リストから、1つのユーザ端末情報を抽出する方法としては、何らかの指標(熟練度や装置IDやプレイヤIDなど)に基づいて抽出する方法や、ランダムに抽出する方法が考えられる。例えば、RAM22に格納されている熟練度に最も近い熟練度を有するユーザ端末情報を抽出してもよいし、さらに、RAM22に格納されている熟練度に最も近い熟練度を有するユーザ端末情報が複数存在する場合に、それらの中から1つのユーザ端末情報をランダムに抽出するようにしてもよい。
【0046】
ステップS20では、ステップS16で抽出されたユーザ端末情報に含まれるIPアドレスを用いて、ステップS16で設定された接続要求先(ユーザ端末Y)に対して接続要求信号を送信する。なお、他のユーザ端末への接続要求信号の送信はステップS20で行われるが、他のユーザ端末からの接続要求信号の受信は常に行われる。
【0047】
ステップS22では、他のユーザ端末(便宜上、ユーザ端末Zと称す)から接続要求信号を受信したかどうかを判断する。そして、接続要求信号を受信した場合には処理はステップS24に進み、接続要求信号を受信していない場合には処理はステップS30に進む。
【0048】
ステップS24では、ホスト処理を行う。ホスト処理とは、他のユーザ端末(ここではユーザ端末Z)から接続要求信号を受信したときに実行される一連の処理である。以下、図7のフローチャートを参照して、このホスト処理の詳細を説明する。
【0049】
図7のステップS48で、CPU21は、ユーザ端末Zからの接続要求を受け入れ可能かどうかを判定する。つまり、ユーザ端末Xに接続される新たなクライアント端末としてユーザ端末Zを受け入れ可能かどうかを判定する。なお、このとき、図6のステップS20で送信した接続要求信号に対して、接続要求先(ユーザ端末Y)からまだ応答信号を受信していない状況であることもあり得るが、この場合には、予め定めた規則に基づいて、ユーザ端末Zからの接続要求を受け入れ可能かどうかを判定する。この規則の例としては、ユーザ端末Yの端末IDとユーザ端末Zの端末IDの大小比較によって判定する例や、ユーザ端末Yを利用するユーザのユーザIDとユーザ端末Zを利用するユーザのユーザIDの大小比較によって判定する例が挙げられる。また、このような場合には、ユーザ端末Zからの接続要求を常に拒否するようにしてもよいし、逆に常に受け入れるようにしてもよい。
【0050】
そして、ステップS48の判定結果に応じて、ユーザ端末Zからの接続要求を受け入れ可能な場合にはステップS50でYESとなってステップS52へと処理が進み、ユーザ端末Zからの接続要求を受け入れ不可能な場合にはステップS50でNOとなってステップS60へと処理が進む。
【0051】
ステップS52では、接続要求元(すなわちユーザ端末Z)に、『許可』の応答信号と、RAM22に格納されているプレイヤリストを送信する。
【0052】
ステップS53では、取り消し処理を行う必要があるかどうかを判断し、取り消し処理を行う必要がある場合には処理はステップS55に進み、取り消し処理を行う必要がない場合には処理はステップS54に進む。なお、取り消し処理とは、前述のように、図6のステップS20で送信した接続要求信号に対して、接続要求先(ユーザ端末Y)からまだ応答信号を受信していない状況であるにも関わらず、ステップS48でユーザ端末Zからの接続要求を受け入れ可能と判定した場合に、接続要求先であるユーザ端末Yに対して接続要求を取り消す旨を通知するための取り消し信号を送信する処理である。
【0053】
ステップS55では、接続要求先に取り消し信号を送信する。
【0054】
ステップS54では、ユーザ端末Xに接続されているクライアント端末が存在するかどうかを判断し、存在する場合には処理はステップS56に進み、存在しない場合には処理はステップS58に進む。
【0055】
ステップS56では、ユーザ端末Xに接続されている1台または複数台のクライアント端末のそれぞれに対して、ユーザ端末Zの情報(IPアドレス等)を送信する。
【0056】
ステップS58では、ユーザ端末Zから接続可否信号を受信したかどうかを判断し、接続可否信号を受信した場合には処理はステップS62に進み、接続可否信号を受信していない場合には処理はステップS59に進む。
【0057】
ステップS59では、接続要求元から取り消し信号を受信したかどうかを判断し、取り消し信号を受信した場合にはホスト処理を終了して処理は図6のステップS26に進み、取り消し信号を受信していない場合には処理はステップS58に戻る。
【0058】
ステップS62では、ユーザ端末Zから受信した接続可否信号が『OK』かどうかを判断し、『OK』であった場合には処理はステップS64に進み、『NO』であった場合にはホスト処理を終了して処理する。
【0059】
ステップS64では、ユーザ端末Zと接続する。これにより、ユーザ端末Xが生成したゲームセッションに、クライアント端末としてユーザ端末Zが新たに参加したことになる。
【0060】
ステップS66では、ユーザ端末Xがクライアント端末(新たにクライアント端末となったユーザ端末Zを除く)と接続中かどうかを判断し、接続中である場合には処理はステップS68に進み、接続中でない場合には処理はステップS74に進む。
【0061】
ステップS68では、ユーザ端末Zに未送信のクライアント端末(ユーザ端末Xに接続中のクライアント端末)の情報(IPアドレスなど)が存在するかどうかを判断し、未送信のクライアント端末情報が存在する場合には処理はステップS70に進み、未送信のクライアント端末情報がもう存在しない場合には処理はステップS74に進む。
【0062】
ステップS70では、未送信のクライアント端末の情報のうちの1つをユーザ端末Zに送信する。
【0063】
ステップS72では、ユーザ端末Zから接続完了信号を受信したかどうかを判断し、接続完了信号を受信した場合には処理はステップS68に戻り、接続完了信号を受信していない場合には接続完了信号を受信するまで待機する。
【0064】
ステップS74では、ユーザ端末Zに「空のクライアント情報」を送信する。この「空のクライアント情報」とは、ユーザ端末Zに対して、全てのクライアント端末の情報を送信したことを通知するために送信される信号である。
【0065】
なお、ステップS50の判断結果が否定である場合には、ステップS60で、ユーザ端末Zに対して『否定』または『待機』の応答信号を送信し、ホスト処理を終了する。『否定』は、ユーザ端末Zからの接続要求を完全に拒否する場合の応答信号であり、『否定』の応答信号を送る典型的なケースとしては、ユーザ端末Xに接続可能なクライアント端末の数が予め定められた上限値(例えば5台)を超えた場合が挙げられる。『待機』は、ユーザ端末Zからの接続要求に対する回答を一時的に保留する場合の応答信号であり、『待機』の応答信号を送る典型的なケースとしては、ユーザ端末Xが他のユーザ端末(例えばユーザ端末Y)に対して接続要求を行って、その回答をまだ得ていないときにユーザ端末Zからの接続要求を受信した場合が挙げられる。
【0066】
図6に戻り、ステップS24のホスト処理が終了すると、処理はステップS26に進む。
【0067】
ステップS26では、ステップS14と同様に、アドレス情報サーバ10からアドレス情報リストを取得する。
【0068】
ステップS28では、ステップS16と同様に、アドレス情報サーバ10から取得したアドレス情報リストから1つのユーザ端末情報を抽出し、こうして抽出したユーザ端末情報に対応するユーザ端末が次の接続要求先となるように、接続要求先を変更する。
【0069】
ステップS44では、ゲームを開始するかどうかを判断し、ゲームを開始する場合には処理はステップS46に進み、ゲームをまだ開始しない場合には処理はステップS20に戻る。
【0070】
ステップS46では、ユーザ端末Xに接続されているクライアント端末へゲーム開始信号を送信し、ゲームが開始される。
【0071】
ステップS30では、ユーザ端末Xが送信した接続要求信号に対するユーザ端末Yからの応答信号(プレイヤリストを含む)を受信したかどうかを判断し、応答信号を受信した場合には処理はステップS32に進み、応答信号を受信していない場合には処理はステップS26に進む。
【0072】
なお、ステップS22の判断結果が肯定の場合、またはステップS30の判断結果が否定の場合には、ゲームが開始されるまでステップS26、S28、S20が繰り返されて、接続要求信号が繰り返し送信されることになるが、この接続要求信号の送信間隔は、ユーザ端末Xに接続されているクライアント端末の数によって変化する。典型的には、接続要求信号の送信間隔は、ユーザ端末Xに接続されているクライアント端末の数が多いほど長くなる。一具体例として、ユーザ端末Xに接続されているクライアント端末の数をNとしたときに、接続要求信号の送信間隔を(3+3×N)秒としてもよい。なお、ステップS26およびステップS28については、最新のユーザ端末情報に基づいて接続要求信号を送信することができるように、接続要求信号を送信する直前にそれぞれ実行するようにしてもよい。
【0073】
ステップS32では、ユーザ端末Yからの応答信号が『待機』かどうかを判断し、『待機』である場合には処理はステップS44に進み、そこでまだゲームが開始されない場合には、例えば(3+3×N)秒(ただしNはユーザ端末Xに接続されているクライアント端末の数)が経過した後、ユーザ端末Yに対してステップS20で再度接続要求信号を送信する。一方、ユーザ端末Yからの応答信号が『待機』でない場合には処理はステップS36に進む。
【0074】
ステップS36では、ユーザ端末Yからの応答信号が『許可』かどうかを判断し、『許可』である場合には処理はステップS42に進み、『許可』でない場合(すなわち『拒否』の場合)には処理はステップS38に進む。
【0075】
ステップS38では、ステップS14と同様に、アドレス情報サーバ10からアドレス情報リストを取得する。
【0076】
ステップS40では、ステップS16と同様に、アドレス情報サーバ10から取得したアドレス情報リストから1つのユーザ端末情報を抽出し、こうして抽出したユーザ端末情報に対応するユーザ端末が次の接続要求先となるように、接続要求先を変更する。
【0077】
なお、ステップS36の判断結果が否定である場合(すなわちユーザ端末Yからの応答信号が『拒否』であった場合)には、所定時間待つことなく、すぐにステップS38、ステップS40、ステップS44およびステップS20を実行して次の接続要求先に接続要求信号を送信するようにしてもよい。
【0078】
ステップS42では、クライアント処理を行う。クライアント処理とは、ユーザ端末Xが送信した接続要求信号が他のユーザ端末(ここではユーザ端末Y)によって受け入れられたときに実行される一連の処理である。以下、図8のフローチャートを参照して、このクライアント処理の詳細を説明する。
【0079】
図8のステップS76で、CPU21は、接続要求先(ユーザ端末Y)に対して接続可能かどうかを判定し、接続可否信号(『OK』もしくは『NO』)を生成する。接続不可能を判定される例としては、ユーザ端末Yからの応答信号を待っている間に新たなクライアント端末が接続されてゲーム開始の条件が満たされた場合が挙げられる。
【0080】
ステップS78では、ステップS76で生成した接続可否信号をユーザ端末Yに送信する。
【0081】
ステップS80では、ステップS78で送信した接続可否信号が『OK』かどうかを判断し、『OK』である場合は処理はステップS82に進み、『OK』でない場合(すなわち『NO』である場合)にはクライアント処理を終了し、処理は図6のステップS38に進む。
【0082】
ステップS82では、ユーザ端末Xに接続中のクライアント端末が存在するかどうかを判断し、存在する場合には処理はステップS84に進み、存在しない場合には処理はステップS88に進む。
【0083】
ステップS84では、ユーザ端末Xに接続中のクライアント端末に、ユーザ端末Yの情報(IPアドレスなど)を送信する。
【0084】
ステップS86では、ユーザ端末Xに接続中のクライアント端末を切断する。これにより、ユーザ端末Xが生成したゲームセッションは消滅することになる。
【0085】
ステップS88では、ユーザ端末Yと接続し、これにより、直前までホスト端末として動作していたユーザ端末Xは、ユーザ端末Yが生成したゲームセッションにクライアント端末として参加することになる。
【0086】
ステップS90では、ユーザ端末Yからクライアント端末情報(ユーザ端末Yに接続されているクライアント端末のIPアドレス等の情報、もしくは空のクライアント情報)を受信したかどうかを判断し、受信した場合には処理はステップS92に進み、受信していない場合には、受信するまで待機する。
【0087】
ステップS92では、ユーザ端末Yから、空でないクライアント端末情報(すなわちユーザ端末Yに接続されているいずれかのクライアント端末の情報)を受信したかどうかを判断し、空でないクライアント端末情報を受信した場合には処理はステップS94に進み、空でないクライアント端末情報を受信していない場合(すなわち、空のクライアント情報を受信した場合)には処理はステップS98に進む。
【0088】
ステップS94では、ユーザ端末Yから受信したクライアント端末の情報に基づいて、ユーザ端末Yに接続中のクライアント端末と接続する。
【0089】
ステップS96では、ユーザ端末Yに接続完了信号を送信し、その後、処理はステップS90に戻る。
【0090】
ステップS98では、ホスト端末(ユーザ端末Y)からゲーム開始信号を受信したかどうかを判断し、ゲーム開始信号を受信した場合にはクライアント処理を終了し、ゲームが開始される。一方、ゲーム開始信号を受信していない場合には処理はステップS100に進む。
【0091】
ステップS100では、ユーザ端末Yが生成したゲームセッションに新たにクライアント端末として参加するユーザ端末(便宜上、ユーザ端末Wと称す)の情報を、ユーザ端末Yから受信したかどうかを判断し、ユーザ端末Wの情報を受信した場合には処理はステップS104に進み、受信していない場合には処理はステップS102に進む。
【0092】
ステップS104では、ユーザ端末Wの情報(IPアドレスなど)に基づいてユーザ端末Wに接続し、処理はステップS98に戻る。
【0093】
ステップS102では、ユーザ端末Yの代わりに新たなホスト端末の候補となるユーザ端末(便宜上、ユーザ端末Vと称す)の情報(例えば端末ID)をユーザ端末Yから受信したかどうかを判断し、ユーザ端末Vの情報を受信した場合には処理はステップS104に進み、受信していない場合には処理はステップS98に戻る。
【0094】
ステップS104では、現在接続中のホスト端末(ユーザ端末Y)との接続を切断する。
【0095】
ステップS106では、ユーザ端末Yから受信したユーザ端末Vの端末IDをアドレス情報サーバ10に送信し、アドレス情報サーバ10からユーザ端末Vのアドレス情報(IPアドレスおよびポート番号)を取得する。
【0096】
ステップS108では、ユーザ端末Vが次の接続要求先となるように、接続要求先を変更し、クライアント処理を終了して図6のステップS44に進み、さらにステップS20において、ユーザ端末Vに対して接続要求信号を送信する。なお、このとき、ユーザ端末Vに対しては、ユーザ端末Yが一足先に接続要求信号を送信しているはずであるため、ユーザ端末Vからは『待機』の応答信号が高い確率で返信されてくることが予想される。したがって、しばらくの間はユーザ端末Vに対して接続要求信号の送信を繰り返すのが好ましい。なお、クライアント端末数が上限に達するなどの理由により、ユーザ端末Vから『拒否』の応答信号が返ってきた場合には、図6に示すステップS10からメイン処理を再び開始するようにしてもよい。
【0097】
以上のようなユーザ端末20の動作の結果、例えば2台のユーザ端末が参加しているゲームセッションと3台のユーザ端末が参加しているゲームセッションが同時に存在しているときに、一方のホスト端末から他方のホスト端末へ接続要求信号が送信されて、2つのゲームセッションが1つのゲームセッションへと自動的に(つまりユーザによって意識されることなく)統合されることになり、ピアツーピア型ネットワークを効率的に構築することができる。
【0098】
以下、図9〜図36を参照して、ピアツーピア型ネットワークがどのように構築されていくのかを具体例により説明する。
【0099】
図9に示すように、まだいずれのユーザ端末とも接続されていないユーザ端末Bから、同じくまだいずれのユーザ端末とも接続されていないユーザ端末Aに対して接続要求信号が送信されると、図10に示すように、ユーザ端末Aはユーザ端末Bと接続可能であれば『許可』の応答信号とともに、ホスト端末であるユーザ端末Aの検索用の詳細情報(IPアドレス・ポート番号)と、ユーザ端末Aに接続されているクライアント端末の数(ここでは0)をユーザ端末Bに送信する。
【0100】
続いて、図11に示すように、ユーザ端末Bからユーザ端末Aへ『OK』の接続可否信号が送られ、その結果、図12に示すようにユーザ端末Aとユーザ端末Bが接続され、ユーザ端末Aがホスト端末、ユーザ端末Bがクライアント端末となる。
【0101】
その後、ユーザ端末Aからユーザ端末Bへ空のクライアント端末情報が送信され、これにより、ユーザ端末Bは他のクライアント端末がまだ1台も存在しないことを確認することができる。こうしてユーザ端末Aとユーザ端末Bの2台のユーザ端末から成るピアツーピア型ネットワークが構築される。
【0102】
続いて、図14に示すように、ユーザ端末Aに対して新たなユーザ端末Cから接続要求信号が送信されると、図15に示すように、ユーザ端末Aはユーザ端末Cと接続可能であれば、ユーザ端末Cへ『許可』の応答信号とともに、ホスト端末であるユーザ端末Aの検索用の詳細情報(IPアドレス・ポート番号)と、ユーザ端末Aに接続されているクライアント端末(ここではユーザ端末B)の数(ここでは1)と、各クライアント端末のユーザIDが送信される。
【0103】
続いて、図16に示すように、ユーザ端末Aからユーザ端末Bへ、ユーザ端末Cの情報(IPアドレスなど)が送信される。
【0104】
そして、図17に示すように、ユーザ端末Cからユーザ端末Aへ『OK』の接続可否信号が送られ、その結果、図18に示すようにユーザ端末Aとユーザ端末Cが接続され、ユーザ端末Cがクライアント端末となる。
【0105】
その後、図19に示すように、ユーザ端末Aからユーザ端末Cへ、ユーザ端末Bの情報(IPアドレスなど)が送信され、この情報に基づいて、図20に示すようにユーザ端末Bとユーザ端末Cとが接続する。
【0106】
さらにその後、図21に示すように、ユーザ端末Cからユーザ端末Aへ接続完了信号が送信されると、図22に示すように、ユーザ端末Aからユーザ端末Cへ、空のクライアント端末情報が送信される。これにより、ユーザ端末Cは、ユーザ端末Aに現在接続されている自分以外のクライアント端末がユーザ端末Bだけであることを確認することができる。
【0107】
こうしてユーザ端末A、ユーザ端末Bおよびユーザ端末Cの3台のユーザ端末から成るピアツーピア型ネットワークが構築される。
【0108】
続いて、図23に示すように、すでに1台のクライアント端末(ユーザ端末E)と接続されているホスト端末であるユーザ端末Dから、ユーザ端末Aへ接続要求信号が送信されると、図24に示すように、ユーザ端末Aはユーザ端末Dと接続可能であれば、ユーザ端末Dへ『許可』の応答信号とともに、ユーザ端末Aの検索用の詳細情報(IPアドレス・ポート番号)と、ユーザ端末Aに接続されているクライアント端末(ここではユーザ端末Bとユーザ端末C)の数(ここでは2)と、各クライアント端末のユーザIDが送信される。
【0109】
続いて、図25に示すように、ユーザ端末Aからユーザ端末Bおよびユーザ端末Cへ、ユーザ端末Dの情報(IPアドレスなど)がそれぞれ送信される。
【0110】
そして、図26に示すように、ユーザ端末Dからユーザ端末Aへ『OK』の接続可否信号が送られると、続いて図27に示すように、ユーザ端末Dからユーザ端末Eへ、ユーザ端末Aの情報(IPアドレスなど)が送信され、その後、図28に示すように、ユーザ端末Dとユーザ端末Eとの間の接続が解除され、ユーザ端末Eはもはやクライアント端末では無くなる。そして、図29に示すようにユーザ端末Aとユーザ端末Dが接続され、ユーザ端末Dがクライアント端末となる。
【0111】
その後、図30に示すように、ユーザ端末Aからユーザ端末Dへ、ユーザ端末Bの情報(IPアドレスなど)が送信され、この情報に基づいて、図31に示すようにユーザ端末Bとユーザ端末Dとが接続する。
【0112】
その後、図32に示すように、ユーザ端末Dからユーザ端末Aへ接続完了信号が送信されると、続いて図33に示すように、ユーザ端末Aからユーザ端末Dへ、ユーザ端末Cの情報(IPアドレスなど)が送信され、この情報に基づいて、図34に示すようにユーザ端末Cとユーザ端末Dとが接続する。
【0113】
さらにその後、図35に示すように、ユーザ端末Dからユーザ端末Aへ接続完了信号が送信されると、図36に示すように、ユーザ端末Aからユーザ端末Dへ、空のクライアント端末情報が送信される。これにより、ユーザ端末Dは、ユーザ端末Aに現在接続されている自分以外のクライアント端末がユーザ端末Bとユーザ端末Cの2台だけであることを確認することができる。
【0114】
こうして、ユーザ端末A、ユーザ端末B、ユーザ端末Cおよびユーザ端末Dの4台のユーザ端末から成るピアツーピア型ネットワークが構築される。
【0115】
その後、図27でユーザ端末Dから受け取ったユーザ端末Aの情報に基づいて、図37に示すようにユーザ端末Eからユーザ端末Aへ接続要求信号が送信され、上記と同様の処理を経て、ユーザ端末A、ユーザ端末B、ユーザ端末C、ユーザ端末Dおよびユーザ端末Eの5台のユーザ端末から成るピアツーピア型ネットワークが構築される。
【0116】
以上のように、本実施形態によれば、図23のように独立した複数のピアツーピア型ネットワークが同時に存在していて、いずれのピアツーピア型ネットワークでもユーザ端末数が所定数(例えば5台)存在しなくてレースゲーム等が開始できない状況であっても、一方のピアツーピア型ネットワークのホスト端末が他方のピアツーピア型ネットワークのホスト端末へ接続要求信号を送信してクライアント端末へと変化することで、所定数のユーザ端末から成るピアツーピア型ネットワークを自動的に素早く構築することができる。したがって、ネットワークゲームのプレイを開始するまでのプレイヤの待ち時間を大幅に短縮することができる。
【0117】
また、本実施形態では、接続要求信号の送信先を決定するときに、アドレス情報サーバ10からアドレス情報リストを取得し、このアドレス情報リストに基づいて接続要求信号の送信先をユーザ端末側で決定している。これにより、アドレス情報サーバ10の負担を大きくすることなく、様々な指標に基づいて接続先を決定することができる。また、接続要求信号の送信先をユーザ端末側でランダムに決定するようにすれば、ネットワーク上の特定のホスト端末へ多数の接続要求信号がほぼ同時に殺到することが防止され、結果的に多数のピアツーピア型ネットワークを素早く構築することができる。
【0118】
また、本実施形態では、接続中のクライアント端末の数が多いほど接続要求信号の送信間隔を長くしているが、これにより、例えば、クライアント端末があと1台増えればゲームプレイ可能な台数のユーザ端末から成るピアツーピア型ネットワークが構築できるという場合に、このピアツーピア型ネットワークのホスト端末が他のホスト端末へ接続要求信号を送信する頻度を抑えることができる。その結果、より少数のユーザ端末で構成されるピアツーピア型ネットワークのホスト端末から、より少数のユーザ端末で構成されるピアツーピア型ネットワークのホスト端末へと接続要求信号が送信される確率が高まり、ゲームプレイ可能な台数のユーザ端末から成るピアツーピア型ネットワークを効率良く構築することができる。
【0119】
なお、本実施形態では、例えば図26のようにユーザ端末Aとユーザ端末Dの間で接続の準備が完了したときに、図28のようにユーザ端末Dとユーザ端末Eとの間の接続を切断する例を説明したが、変形例として、ユーザ端末Dとユーザ端末Eとの間の接続を保ったまま、ユーザ端末Eと、ユーザ端末A,B,Cとの間で順次接続を確立させるようにして、ユーザ端末A、ユーザ端末B、ユーザ端末C、ユーザ端末Dおよびユーザ端末Eの5台のユーザ端末から成るピアツーピア型ネットワークを構築するようにしてもよい。
【図面の簡単な説明】
【0120】
【図1】本発明の好ましい一実施形態としてのネットワークゲームシステムの構成を示す図
【図2】アドレス情報サーバ10の典型的な構成例
【図3】ユーザ端末20の典型的な構成例
【図4】アドレス情報サーバ10のRAM12に格納されるユーザ端末情報の一例
【図5】ユーザ端末20のRAM22のメモリマップの一例
【図6】ユーザ端末20のCPU21の処理の流れを示すフローチャート
【図7】ホスト処理の流れを示すフローチャート
【図8】クライアント処理の流れを示すフローチャート
【図9】ピアツーピア型ネットワークが構築されていく過程を示す図
【図10】ピアツーピア型ネットワークが構築されていく過程を示す他の図
【図11】ピアツーピア型ネットワークが構築されていく過程を示すさらに他の図
【図12】ピアツーピア型ネットワークが構築されていく過程を示すさらに他の図
【図13】ピアツーピア型ネットワークが構築されていく過程を示すさらに他の図
【図14】ピアツーピア型ネットワークが構築されていく過程を示すさらに他の図
【図15】ピアツーピア型ネットワークが構築されていく過程を示すさらに他の図
【図16】ピアツーピア型ネットワークが構築されていく過程を示すさらに他の図
【図17】ピアツーピア型ネットワークが構築されていく過程を示すさらに他の図
【図18】ピアツーピア型ネットワークが構築されていく過程を示すさらに他の図
【図19】ピアツーピア型ネットワークが構築されていく過程を示すさらに他の図
【図20】ピアツーピア型ネットワークが構築されていく過程を示すさらに他の図
【図21】ピアツーピア型ネットワークが構築されていく過程を示すさらに他の図
【図22】ピアツーピア型ネットワークが構築されていく過程を示すさらに他の図
【図23】ピアツーピア型ネットワークが構築されていく過程を示すさらに他の図
【図24】ピアツーピア型ネットワークが構築されていく過程を示すさらに他の図
【図25】ピアツーピア型ネットワークが構築されていく過程を示すさらに他の図
【図26】ピアツーピア型ネットワークが構築されていく過程を示すさらに他の図
【図27】ピアツーピア型ネットワークが構築されていく過程を示すさらに他の図
【図28】ピアツーピア型ネットワークが構築されていく過程を示すさらに他の図
【図29】ピアツーピア型ネットワークが構築されていく過程を示すさらに他の図
【図30】ピアツーピア型ネットワークが構築されていく過程を示すさらに他の図
【図31】ピアツーピア型ネットワークが構築されていく過程を示すさらに他の図
【図32】ピアツーピア型ネットワークが構築されていく過程を示すさらに他の図
【図33】ピアツーピア型ネットワークが構築されていく過程を示すさらに他の図
【図34】ピアツーピア型ネットワークが構築されていく過程を示すさらに他の図
【図35】ピアツーピア型ネットワークが構築されていく過程を示すさらに他の図
【図36】ピアツーピア型ネットワークが構築されていく過程を示すさらに他の図
【図37】ピアツーピア型ネットワークが構築されていく過程を示すさらに他の図
【図38】従来のピアツーピア型ネットワークゲームシステムの構成例
【図39】従来のピアツーピア型ネットワークゲームシステムの他の構成例
【符号の説明】
【0121】
10 アドレス情報サーバ
11 CPU
12 RAM
13 ハードディスク
14 通信部
20 ユーザ端末
21 CPU
22 RAM
23 ハードディスク
24 通信部
25 入力部
26 表示部


【特許請求の範囲】
【請求項1】
ネットワークを通じて互いに接続された複数のゲーム装置でゲーム装置グループを少なくとも構築するまで、当該ゲーム装置グループに含まれる1台のゲーム装置がホスト端末として動作し、残りのゲーム装置がクライアント端末として動作するネットワークゲームシステムであって、
当該ネットワークゲームシステムを構成する各ゲーム装置は、
自身のゲーム装置がいずれのゲーム装置グループにも含まれていないときに、他のゲーム装置に基本接続要求を送信する基本接続要求送信手段、
他のゲーム装置から基本接続要求を受信する基本接続要求受信手段、
前記基本接続要求受信手段が受信した基本接続要求を受け入れるか否かを判定する受け入れ判定手段、
自身のゲーム装置がいずれのゲーム装置グループにも所属しておらず、かつ前記受け入れ判定手段の判定結果が肯定であるときに、前記基本接続要求受信手段が受信した基本接続要求の送信元のゲーム装置に対して受け入れ許可通知を返信し、少なくとも自身のゲーム装置と前記基本接続要求受信手段が受信した基本接続要求の送信元のゲーム装置とを含むゲーム装置グループのホスト端末として自身のゲーム装置を動作させる第1ホスト処理手段、
自身のゲーム装置がホスト端末として動作しており、かつ前記受け入れ判定手段の判定結果が肯定であるときに、前記基本接続要求受信手段が受信した基本接続要求の送信元のゲーム装置に対して受け入れ許可通知を返信する許可通知手段、
前記基本接続要求送信手段によって送信された基本接続要求にて他のいずれかのゲーム装置から受け入れ許可通知を受信したときに、自身のゲーム装置を前記基本接続要求を受け入れられたゲーム装置に従属するクライアント端末として動作させるクライアント処理手段、
自身のゲーム装置がホスト端末として動作しているときに、他のゲーム装置にホスト接続要求を送信するホスト接続要求送信手段、
他のホスト端末からホスト接続要求を受信するホスト接続要求受信手段、
前記ホスト接続要求受信手段が受信したホスト接続要求を受け入れるか否かを判定するホスト受け入れ判定手段、
自身のゲーム装置がいずれのゲーム装置グループにも所属しておらず、かつ前記ホスト受け入れ判定手段の判定結果が肯定であるときに、前記ホスト接続要求受信手段が受信したホスト接続要求の送信元のゲーム装置に対してホスト受け入れ許可通知を返信し、少なくとも自身のゲーム装置と前記ホスト接続要求受信手段が受信したホスト接続要求の送信元のゲーム装置とを含むゲーム装置グループのホスト端末として自身のゲーム装置を動作させる第2ホスト処理手段、
自身のゲーム装置がホスト端末として動作しており、かつ前記ホスト受け入れ判定手段の判定結果が肯定であるときに、前記ホスト接続要求受信手段が受信したホスト接続要求の送信元のゲーム装置に対してホスト受け入れ許可通知を返信するホスト許可通知手段、および
前記ホスト接続要求送信手段によって送信されたホスト接続要求にて他のいずれかのゲーム装置からホスト受け入れ許可通知を受信したときに、前記ホスト接続要求の送信元のゲーム装置が所属しているゲーム装置グループ内のクライアント端末に対して解散通知を送信するとともに、自身のゲーム装置を前記ホスト接続要求を受け入れられたゲーム装置に従属するクライアント端末として動作させる解散処理手段をそれぞれ備える、ネットワークゲームシステム。
【請求項2】
前記ホスト接続要求送信手段は、自身のゲーム装置が所属しているゲーム装置グループのクライアント端末の数が予め定められた最大数に達していないときにのみ他のホスト端末にホスト接続要求を送信する、請求項1に記載のネットワークゲームシステム。
【請求項3】
前記ホスト接続要求送信手段は、自身のゲーム装置が所属しているゲーム装置グループのクライアント端末の数に応じて、他のゲーム端末にホスト接続要求を送信する間隔を変化させる、請求項1に記載のネットワークゲームシステム。
【請求項4】
前記ホスト接続要求送信手段は、自身のゲーム装置が所属しているゲーム装置グループのクライアント端末の数が多いほど、他のホスト端末にホスト接続要求を送信する間隔を長くする、請求項1に記載のネットワークゲームシステム。
【請求項5】
前記ネットワークゲームシステムは、アドレス情報サーバをさらに備え、
前記アドレス情報サーバは、
ネットワークに接続されている各ゲーム装置から、少なくとも当該ゲーム装置へアクセスするためのアドレス情報を含むゲーム装置情報を収集して記憶部に格納するゲーム装置情報収集手段、および
ネットワークに接続されているゲーム装置からのアドレス情報取得要求に応じて、当該ゲーム装置に、前記ゲーム装置情報収集手段によって収集された他の複数のゲーム装置のアドレス情報の中から少なくとも1つのゲーム装置のアドレス情報を送信するアドレス情報送信手段を含む、請求項1に記載のネットワークゲームシステム。
【請求項6】
前記アドレス情報送信手段は、ネットワークに接続されているゲーム装置からのアドレス情報取得要求に応じて、当該ゲーム装置に、他の複数のゲーム装置のアドレス情報を含むアドレス情報リストを送信し、
各前記ゲーム装置は、
前記アドレス情報サーバに前記アドレス情報リストを要求するアドレス情報リスト要求手段、
前記アドレス情報サーバから前記アドレス情報リストを受信するアドレス情報リスト受信手段、および
前記アドレス情報リスト受信手段が受信したアドレス情報リストの中から1つのアドレス情報をランダムに抽出するアドレス情報抽出手段をさらに備え、
前記基本接続要求送信手段は、前記アドレス情報抽出手段によってランダムに抽出されたアドレス情報を用いて当該アドレス情報に対応するゲーム装置に基本接続要求を送信する、請求項5に記載のネットワークゲームシステム。
【請求項7】
前記アドレス情報送信手段は、ネットワークに接続されているホスト端末からのアドレス情報取得要求に応じて、当該ホスト端末に、他の複数のホスト端末のアドレス情報を含むアドレス情報リストを送信し、
各前記ゲーム装置は、
前記アドレス情報サーバに前記アドレス情報リストを要求するアドレス情報リスト要求手段、
前記アドレス情報サーバから前記アドレス情報リストを受信するアドレス情報リスト受信手段、および
前記アドレス情報リスト受信手段が受信したアドレス情報リストの中の各アドレス情報に含まれる所定の指標に基づいて、当該アドレス情報リストの中から1つのアドレス情報を抽出するアドレス情報抽出手段をさらに備え、
前記ホスト間接続要求送信手段は、前記アドレス情報抽出手段によって抽出されたアドレス情報を用いて当該アドレス情報に対応するホスト端末にホスト間接続要求を送信する、請求項6に記載のネットワークゲームシステム。
【請求項8】
前記アドレス情報抽出手段は、前記所定の指標に基づいて前記アドレス情報リスト受信手段が受信したアドレス情報リストの中から複数のアドレス情報が抽出された場合には、さらに当該抽出された複数のアドレス情報の中から1つのアドレス情報をランダムに抽出することを特徴とする、請求項7に記載のネットワークゲームシステム。
【請求項9】
前記アドレス情報送信手段は、ネットワークに接続されているホスト端末からのアドレス情報取得要求に応じて、当該ホスト端末に、他の複数のホスト端末のアドレス情報を含むアドレス情報リストを送信し、
各前記ゲーム装置は、
前記アドレス情報サーバに前記アドレス情報リストを要求するアドレス情報リスト要求手段、
前記アドレス情報サーバから前記アドレス情報リストを受信するアドレス情報リスト受信手段、および
前記アドレス情報リスト受信手段が受信したアドレス情報リストの中から1つのアドレス情報をランダムに抽出するアドレス情報抽出手段をさらに備え、
前記ホスト間接続要求送信手段は、前記アドレス情報抽出手段によってランダムに抽出されたアドレス情報を用いて当該アドレス情報に対応するホスト端末にホスト間接続要求を送信する、請求項6に記載のネットワークゲームシステム。
【請求項10】
前記受け入れ判定手段は、前記基本接続要求送信手段が他の第1のゲーム装置に基本接続要求を送信した後、当該基本接続要求が受け入れられたか否かが判明する前に、前記基本接続要求受信手段が別の第2のゲーム装置から基本接続要求を受信した場合に、予め定められた規則に基づいて当該第2のゲーム装置からの基本接続要求を受け入れるか否かを判定し、
各前記ゲーム装置は、前記受け入れ判定手段の判定結果が肯定であるときに、前記第1のゲーム装置に取り消し信号を送信する取り消し信号送信手段をさらにそれぞれ備える、請求項1に記載のネットワークゲームシステム。
【請求項11】
前記受け入れ判定手段は、前記第1のゲーム装置に関連する識別子と前記第2のゲーム装置に関連する識別子とを比較することによって、前記第2のゲーム装置からの基本接続要求を受け入れるか否かを判定する、請求項10に記載のネットワークゲームシステム。
【請求項12】
ネットワークを通じて互いに接続された複数のゲーム装置でゲーム装置グループが構成され、当該ゲーム装置グループに含まれる1台のゲーム装置がホスト端末として動作し、残りのゲーム装置がクライアント端末として動作するネットワークゲームシステムにおいて利用されるネットワークゲームプログラムであって、ゲーム装置のコンピュータを、
自身のゲーム装置がいずれのゲーム装置グループにも含まれていないときに、他のゲーム装置に基本接続要求を送信する基本接続要求送信手段、
前記基本接続要求送信手段によって送信された基本接続要求が他のいずれかのゲーム装置によって受け入れられたときに自身のゲーム装置をクライアント端末として動作させるクライアント処理手段、
他のゲーム装置から基本接続要求を受信する基本接続要求受信手段、
前記基本接続要求受信手段が受信した基本接続要求を受け入れるか否かを判定する受け入れ判定手段、
自身のゲーム装置がいずれのゲーム装置グループにも所属しておらず、かつ前記受け入れ判定手段の判定結果が肯定であるときに、前記基本接続要求受信手段が受信した基本接続要求の送信元のゲーム装置に対して受け入れ許可通知を返信し、少なくとも自身のゲーム装置と前記基本接続要求受信手段が受信した基本接続要求の送信元のゲーム装置とを含むゲーム装置グループのホスト端末として自身のゲーム装置を動作させるホスト処理手段、
自身のゲーム装置がホスト端末として動作しており、かつ前記受け入れ判定手段の判定結果が肯定であるときに、前記基本接続要求受信手段が受信した基本接続要求の送信元のゲーム装置に対して受け入れ許可通知を返信する許可通知手段、
自身のゲーム装置がホスト端末として動作しているときに、他のホスト端末にホスト間接続要求を送信するホスト間接続要求送信手段、
自身のゲーム装置がホスト端末として動作しているときに、他のホスト端末からホスト間接続要求を受信するホスト間接続要求受信手段、および
前記ホスト間接続要求送信手段によって送信されたホスト間接続要求が他のいずれかのホスト端末によって受け入れられたときに、自身のゲーム装置が所属しているゲーム装置グループのクライアント端末に対して解散通知を送信するとともに、自身のゲーム装置をクライアント端末として動作させる解散処理手段として機能させるためのネットワークゲームプログラム。
【請求項13】
ネットワークを通じて互いに接続された複数のゲーム装置でそれぞれ構成される少なくとも2つのゲーム装置グループから1つのゲーム装置グループを構築するネットワークゲームシステムであって、
第1のゲーム装置グループのホスト端末として動作する第1のゲーム装置は、
第2のゲーム装置グループのホスト端末として動作する第2のゲーム装置に対して接続要求を送信する接続要求送信手段と、
前記第2のゲーム装置から接続許可通知を受信した後に、当該第2のゲーム装置に対して接続するための接続先情報を、前記第1のゲーム装置グループにおいてクライアント端末として動作するゲーム装置に送信した後、当該第1のゲーム装置グループを解散する解散処理手段とを備え、
前記第2のゲーム装置グループのホスト端末として動作する第2のゲーム装置は、
前記第1のゲーム装置の前記接続要求に対して接続許可できるとき、当該接続許可通知を当該第1のゲーム装置に送信する接続許可通知送信手段と、
前記接続許可通知を送信した後の前記第1のゲーム装置を前記第2のゲーム装置グループのクライアント端末として受け入れるクライアント受入手段とを備える、ネットワークゲームシステム。
【請求項14】
前記第2のゲーム装置は、前記第1のゲーム装置グループにおいてクライアント端末として動作していたゲーム装置からの接続要求を受けたとき、当該ゲーム装置が所定要件を満たすことを条件として、前記第2のゲーム装置グループのクライアント端末として受け入れる第2受入手段を備える、請求項13に記載のネットワークゲームシステム。
【請求項15】
前記各ゲーム装置間の通信は、それぞれのゲーム装置の接続先やゲーム装置グループの情報を管理するマッチングサーバーを介して行われる、請求項13又は14に記載のネットワークゲームシステム。
【請求項16】
前記第1のゲーム装置は、
前記接続要求送信手段が前記第2のゲーム装置に対して接続要求を送信した後、当該接続要求が受け入れられたか否かが判明する前に、別の第3のゲーム装置から接続要求を受信した場合に、予め定められた規則に基づいて当該第3のゲーム装置からの接続要求を受け入れるか否かを判定する受け入れ判定手段と、
前記受け入れ判定手段の判定結果が肯定であるときに、前記第2のゲーム装置に取り消し信号を送信する取り消し信号送信手段とをさらに備える、請求項13に記載のネットワークゲームシステム。
【請求項17】
前記受け入れ判定手段は、前記第2のゲーム装置に関連する識別子と前記第3のゲーム装置に関連する識別子とを比較することによって、前記第3のゲーム装置からの接続要求を受け入れるか否かを判定する、請求項16に記載のネットワークゲームシステム。
【請求項18】
ネットワークを通じて互いに接続された複数のゲーム装置でそれぞれ構成される少なくとも2つのゲーム装置グループから1つのゲーム装置グループを構築するネットワークゲームシステムにおいて利用されるネットワークゲームプログラムであって、
第1のゲーム装置グループのホスト端末として動作する第1のゲーム装置のコンピュータを、
第2のゲーム装置グループのホスト端末として動作する第2のゲーム装置に対して接続要求を送信する接続要求送信手段、および
前記第2のゲーム装置から接続許可通知を受信した後に、当該第2のゲーム装置に対して接続するための接続先情報を、前記第1のゲーム装置グループにおいてクライアント端末として動作するゲーム装置に送信した後、当該第1のゲーム装置グループを解散する解散処理手段として機能させ、
前記第2のゲーム装置グループのホスト端末として動作する第2のゲーム装置のコンピュータを、
前記第1のゲーム装置の前記接続要求に対して接続許可できるとき、当該接続許可通知を当該第1のゲーム装置に送信する接続許可通知送信手段、および
前記接続許可通知を送信した後の前記第1のゲーム装置を前記第2のゲーム装置グループのクライアント端末として受け入れるクライアント受入手段として機能させるためのネットワークゲームプログラム。
【請求項19】
通信可能に接続された複数のゲーム装置によって構成されるネットワークゲームシステムにおけるゲーム装置であって、
ゲーム装置グループに参加するために他のゲーム装置に対して接続要求を行う接続要求処理と、ゲーム装置グループを構築するために他のゲーム装置からの接続要求を受け付ける接続受付処理とを同時に実行する要求受付処理手段と、
前記接続要求処理によってゲーム装置グループに参加可能になったとき、当該ゲーム装置グループのクライアント端末として動作する処理を行うクライアント処理手段と、
前記接続受付処理によってゲーム装置グループを構築可能になったととき、当該ゲーム装置グループのホスト端末として動作する処理を行うホスト処理手段とを備える、ゲーム装置。
【請求項20】
前記ホスト処理手段によってホスト端末として動作している場合において、前記要求受付処理手段によって他のゲーム装置グループへ参加可能になったとき、自身のゲーム装置グループにおいてクライアント端末として動作しているゲーム装置に当該他のゲーム装置グループのホスト端末として動作しているゲーム装置の接続先情報を送信した後、当該自身のゲーム装置グループを解散する解散手段をさらに備える、請求項19に記載のゲーム装置。
【請求項21】
前記クライアント処理手段によってクライアント端末として動作している場合において、自己が参加しているゲーム装置グループのホスト端末から他のゲーム装置グループのホスト端末の接続先情報を受信する新接続先情報受信手段と、
前記自己が参加しているゲーム装置グループのホスト端末によって当該ゲーム装置グループが解散されたとき、前記他のゲーム装置グループのホスト端末の接続先情報によって、当該他のゲーム装置グループのホスト端末に対して接続要求を行う接続要求手段とを備える、請求項20に記載のゲーム装置。
【請求項22】
前記要求受付処理手段が他の第1のゲーム装置に対して接続要求を送信した後、当該接続要求が受け入れられたか否かが判明する前に、別の第2のゲーム装置から接続要求を受信した場合に、予め定められた規則に基づいて当該第2のゲーム装置からの接続要求を受け入れるか否かを判定する受け入れ判定手段と、
前記受け入れ判定手段の判定結果が肯定であるときに、前記第1のゲーム装置に取り消し信号を送信する取り消し信号送信手段とをさらに備える、請求項19に記載のネットワークゲームシステム。
【請求項23】
前記受け入れ判定手段は、前記第1のゲーム装置に関連する識別子と前記第2のゲーム装置に関連する識別子とを比較することによって、前記第2のゲーム装置からの接続要求を受け入れるか否かを判定する、請求項22に記載のネットワークゲームシステム。
【請求項24】
通信可能に接続された複数のゲーム装置によって構成されるネットワークゲームシステムにおけるゲーム装置のコンピュータを、
ゲーム装置グループに参加するために他のゲーム装置に対して接続要求を行う接続要求処理と、ゲーム装置グループを構築するために他のゲーム装置からの接続要求を受け付ける接続受付処理とを同時に実行する要求受付処理手段、
前記接続要求処理によってゲーム装置グループに参加可能になったとき、当該ゲーム装置グループのクライアント端末として動作する処理を行うクライアント処理手段、および
前記接続受付処理によってゲーム装置グループを構築可能になったととき、当該ゲーム装置グループのホスト端末として動作する処理を行うホスト処理手段として機能させるためのネットワークゲームプログラム。


【図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

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate

【図32】
image rotate

【図33】
image rotate

【図34】
image rotate

【図35】
image rotate

【図36】
image rotate

【図37】
image rotate

【図38】
image rotate

【図39】
image rotate