説明

ゲームプログラムおよびゲーム装置

【課題】接続状態が不安定もしくは接続不能になったゲーム装置を、ゲームの内容にズレが生じないように切り離すことのできるネットワークゲームシステムを提供すること。
【解決手段】自身のゲーム装置と各通信相手との間の通信が可能か否かを示す通信状態情報を各通信相手に定期的に送信する。各通信相手の通信状態情報を各通信相手からそれぞれ受信し、いずれかの通信相手の通信状態情報において通信不可能な相手として示されているゲーム装置が存在したときに、自身の通信状態情報においてこのゲーム装置が通信不可能な相手として示されるように、自身の通信状態情報を更新する。全ての通信相手の通信状態情報において共通に通信不可能な相手として示されているゲーム装置が存在したときに、このゲーム装置を切断する。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、ゲームプログラムおよびゲーム装置に関し、特に、複数のゲーム装置間で相互にゲームデータを送受信し、他のゲーム装置から受信したゲームデータを利用して各ゲーム装置がゲーム処理を実行するゲームシステムに用いられるゲームプログラムおよびゲーム装置に関する。
【背景技術】
【0002】
ネットワークゲームシステムには、大きく分けてクライアント/サーバ型のネットワークゲームシステムとピアツーピア型のネットワークゲームシステムが存在する。
【0003】
クライアント/サーバ型ネットワークゲームシステムは、ユーザ端末がクライアントとしてゲームサーバに接続し、主にゲームサーバがゲーム処理を実行することによってゲームが進行するネットワークゲームシステムである。このクライアント/サーバ型ネットワークゲームシステムは、ゲームサーバに同時に接続されているユーザ端末の数が増えるほどゲームサーバの処理負担が大きくなるため、十分に高性能なゲームサーバを用意する必要があり、ネットワークゲームシステムの構築のためのコストが高いという不利な点がある。
【0004】
これに対して、ピアツーピア型ネットワークゲームシステムは、基本的にはユーザ端末同士で通信をすることによってゲームが進行するネットワークゲームシステムであるため、クライアント/サーバ型ネットワークゲームシステムのような高性能なゲームサーバは必要なく、またユーザ端末間のデータ転送もゲームサーバを経由せずに行うことができるため、例えばレースゲームのようなリアルタイムな処理が要求されるゲームに適している。非特許文献1には、このようなピアツーピア型ネットワークゲームシステムの一例が開示されている。
【非特許文献1】「オンラインゲームプログラミング」、ソフトバンクパブリッシング株式会社、Jung WunChul著、2005年3月3日 初版、P218〜222
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかしながら、上記非特許文献1には、ピアツーピア型ネットワークにユーザ端末を接続していく手法については開示されているが、接続状態が不安定もしくは接続不能になった端末を切り離す手法については開示されていない。
【0006】
また、前述したように、ピアツーピア型ネットワークゲームシステムは、クライアント/サーバ型ネットワークゲームシステムとは異なり、他のユーザ端末から受け取る信号に基づいて各ユーザ端末が個別に演算を行う特徴を有しているため、接続状態が不安定もしくは接続不能になった端末を単純に切り離せば、各ユーザ端末で実行されるゲームの内容にズレが生じ、場合によってはゲームの進行に深刻な影響を与えてしまうという問題がある。
【0007】
例えば、図27に示すように4台のゲーム装置で構成されたピアツーピア型ネットワークゲームシステムにおいて、ゲーム装置Aとゲーム装置Bとの間の通信回線に障害が発生した場合には、ゲーム装置Aは、ゲーム装置Bからの信号が受信できなくなったことから自身のゲームデータとゲーム装置Cおよびゲーム装置Dから送信されてくるゲームデータ(すなわちゲーム装置A、ゲーム装置Cおよびゲーム装置Dの3台のゲーム装置のゲームデータ)に基づいてゲーム処理を続行するが、ゲーム装置Cは、自身のゲームデータとゲーム装置A、ゲーム装置Bおよびゲーム装置Dから送信されてくるゲームデータ(すなわちゲーム装置A、ゲーム装置B、ゲーム装置Cおよびゲーム装置Dの4台のゲーム装置のゲームデータ)に基づいてゲーム処理を続行する。この結果、ゲーム装置Aで実行されるゲーム処理の結果とゲーム装置Cで実行されるゲーム処理の結果にズレが生じてしまうことになる。
【0008】
それゆえに本発明の目的は、上記の従来のピアツーピア型ネットワークゲームシステムの問題点を解消し、接続状態が不安定もしくは接続不能になった端末を、ゲームの内容にズレが生じないように切り離すことのできるネットワークゲームシステムを提供することである。
【課題を解決するための手段】
【0009】
上記目的を達成するために、本発明は以下の構成を採用した。なお、括弧内の参照符号および図番号は本発明の理解を助けるために図面との対応関係を示したものであって、本発明の範囲を何ら限定するものではない。
【0010】
本発明の第1の局面は、複数のゲーム装置(10)間で相互にゲームデータを送受信し、他のゲーム装置から受信したゲームデータを利用して各ゲーム装置がゲーム処理を実行するゲームシステムにおいて、各ゲーム装置において実行されるゲームプログラム(20)である。当該ゲームプログラムは、前記ゲーム装置のコンピュータ(11)を、通信相手リスト追加手段(S12)、通信状態判定手段(S30)、第1の通信状態情報更新手段(S32)、通信状態情報送信手段(S38)、通信状態情報受信手段(S16)、第2の通信状態情報更新手段(S36)、通信相手リスト削除手段(S42)、ゲームデータ送受信手段(S38、S16)、およびゲーム処理手段(S23)として機能させるためのゲームプログラムである。通信相手リスト追加手段は、自身のゲーム装置が属するネットワークに新たな通信相手として他のゲーム装置が接続されたときに、自身のゲーム装置の記憶部(12)に保持されている通信相手の一覧を示す通信相手リスト(21)に、当該新たな通信相手を追加する手段である。通信状態判定手段は、各通信相手からの信号の受信状況(23)に基づいて、自身のゲーム装置と各通信相手との間の通信が可能か否かをそれぞれ判定する手段である。第1の通信状態情報更新手段は、前記記憶部に保持されている、自身のゲーム装置と各通信相手との間の通信が可能か否かを示す通信状態情報(22a)を、前記通信状態判定手段の判定結果に基づいて随時更新する手段である。通信状態情報送信手段は、自身のゲーム装置の通信状態情報(22a)を各通信相手に定期的に送信する手段である。通信状態情報受信手段は、各通信相手の通信状態情報(22b)を各通信相手からそれぞれ受信して前記記憶部に格納する手段である。第2の通信状態情報更新手段は、前記通信状態情報受信手段によって受信された各通信相手の通信状態情報を参照し、いずれかの通信相手の通信状態情報において通信不可能な相手として示されているゲーム装置が存在したときに、前記記憶部に保持されている通信状態情報(22a)において当該ゲーム装置が通信不可能な相手として示されるように、当該通信状態情報を更新する手段である。通信相手リスト削除手段は、前記記憶部に保持されている、自身のゲーム装置の通信状態情報(22a)と各通信相手の通信状態情報(22b)を参照し、全ての通信状態情報において共通に通信不可能な相手として示されているゲーム装置が存在したときに、当該ゲーム装置を前記通信相手リスト(21)から削除する手段である。ゲームデータ送受信手段は、前記通信相手リストに示されている各通信相手とゲームデータを定期的に送受信する手段である。ゲーム処理手段は、前記ゲームデータ送受信手段によって受信された各通信相手のゲームデータに基づいてゲーム処理を実行する手段である。
【0011】
なお変形例として、前記通信状態情報送信手段は、前記ゲームデータ送受信手段がいずれかの通信相手にゲームデータを送信するときに、自身のゲーム装置の通信状態情報を当該ゲームデータと一緒に送信してもよい。
【0012】
また変形例として、前記通信状態情報は、前記通信相手リストに含まれている通信相手のうち、前記通信状態判定手段によってその相手との通信が可能であると判定された通信相手のみから成るリストを含んでいてもよい(図7A)。
【0013】
また変形例として、前記通信状態判定手段は、各通信相手から信号を最後に受信してからの経過時間をそれぞれ計時し、その経過時間が一定時間を超えたか否かによって、各通信相手と通信が可能か否かを判定してもよい。
【0014】
本発明の第2の局面は、複数のゲーム装置(10)間で相互にゲームデータを送受信し、他のゲーム装置から受信したゲームデータを利用して各ゲーム装置がゲーム処理を実行するゲームシステムに用いられるゲーム装置である。当該ゲーム装置は、通信相手リスト追加手段(11、S12)、通信状態判定手段(11、S30)、第1の通信状態情報更新手段(11、S32)、通信状態情報送信手段(11、S38)、通信状態情報受信手段(11、S16)、第2の通信状態情報更新手段(11、S36)、通信相手リスト削除手段(11、S42)、ゲームデータ送受信手段(11、S38、S16)、およびゲーム処理手段(11、S23)を備えている。
【発明の効果】
【0015】
本発明によれば、通信不可能となったゲーム装置をすぐに切断するのではなく、通信相手リストに含まれている全ての通信相手においてそのゲーム装置を切断する準備ができていることを、各通信相手から受信した通信状態情報に基づいて確認してから、はじめてその通信不可能となったゲーム装置を切断する。よって、例えばピアツーピア型ネットワークゲームシステムにおいて、あるゲーム装置は3台分のゲーム装置のゲームデータに基づいてゲーム処理を続行し、別のゲーム装置は4台分のゲーム装置のゲームデータに基づいてゲーム処理を続行する、というような状況を確実に回避することができ、各ゲーム装置で実行されるゲーム処理の結果にズレが生じてしまうことを防止することができる。
【発明を実施するための最良の形態】
【0016】
以下、本発明の好ましい一実施形態について図面を参照して説明する。
【0017】
図1は、本発明の好ましい一実施形態としてのゲームシステムの構成を示す図である。ゲームシステムは、複数のユーザ端末(ゲーム装置)10で構成される。これらの複数のユーザ端末間で相互にゲームデータが送受信され、各ユーザ端末では、他のユーザ端末から受信したゲームデータを利用してゲーム処理が実行される。
【0018】
図2に、ユーザ端末10の典型的な構成例を示す。ユーザ端末10は、CPU11、RAM12、ハードディスク13、通信部14、入力部15および表示部16を備えている。CPU11は、ハードディスク13に格納されているゲームプログラムをRAM12にロードして実行する。なお、ここではゲームプログラムがハードディスク13に予め格納されている例を説明しているが、本発明はこれに限らず、メモリカードやカートリッジやDVD−ROM等の外部記録媒体を通じてゲームプログラムがユーザ端末10に供給されても良いし、通信部14を通じてゲームプログラムがユーザ端末10に供給されても良い。CPU11は、ゲームプログラムを実行することにより、レースゲームなどのビデオゲームを実現する。入力部15はゲームの操作のために利用され、表示部16はゲーム画像の表示のために利用される。
【0019】
図3は、ユーザ端末10のRAM12のメモリマップの一例である。RAM12には、ハードディスク13からロードされたゲームプログラム20の他に、通信相手リスト21、通信状態情報22、およびフレームカウンタ23が格納され、通信相手リスト21、通信状態情報22、およびフレームカウンタ23は、ゲームの進行に応じて適宜に更新される。
【0020】
通信相手リスト21とは、ゲームデータを送受信する相手のユーザ端末を示すリストである。例えば、ユーザ端末A、ユーザ端末B、ユーザ端末Cおよびユーザ端末Dの4台のユーザ端末でゲームシステムが構成されており、各ユーザ端末間で通信が正常に行われている場合には、ユーザ端末AのRAMに保持される通信相手リストは図4のようになる。
【0021】
通信状態情報22とは、自身のユーザ端末と通信相手リスト21に含まれている各通信相手との間の通信が可能か否かを示す情報である。なお、この通信状態情報22はユーザ端末間で相互に送受信され、各ユーザ端末では、自身の通信状態情報22aと、各通信相手から受信した通信状態情報(すなわち各通信相手の通信状態情報)22bとがRAM12に保持される。図5に、ユーザ端末AのRAMに保持される通信状態情報22の一具体例を示す。
【0022】
フレームカウンタ23とは、通信相手リスト21に含まれている各通信相手から信号を最後に受信してからの経過時間(経過フレーム数)をそれぞれ計時するためのカウンタである。図5に、ユーザ端末AのRAMに保持されるフレームカウンタ23の一具体例を示す。後述するように、フレームカウンタ23において、あるユーザ端末のカウント値が予め定められた閾値(例えば300)に達すると、このユーザ端末と通信不能になったと判断される。なお、この閾値は、ゲームの進行状況に応じて適宜に変更してもよい。例えば、レースゲームへの参加を受付けている間と、レースゲームにおけるレース中とで、通信不能と判断する閾値を変化させても良い。
【0023】
なお、通信状態情報22は、前述したように、自身のユーザ端末と通信相手リスト21に含まれている各通信相手との間の通信が可能か否かを示す情報であるが、そのデータ構造としては複数のバリエーションが考えられる。図7A、図7B、図7Cは、ユーザ端末A、ユーザ端末B、ユーザ端末Cおよびユーザ端末Dの4台のユーザ端末でゲームシステムが構成されているが、ユーザ端末Aとユーザ端末Bとの間で通信不能になった場合において、ユーザ端末AのRAMに保持される通信状態情報(自身の通信状態情報22a)の3つの具体例を示している。図7Aは、通信相手リスト21に含まれている通信相手のうち、通信可能な通信相手だけがリストアップされる例である。図7Bは、通信相手リスト21に含まれている通信相手毎に、その通信相手と通信可能か通信不可能かが示される例である。図7Cは、通信相手リスト21に含まれている通信相手のうち、通信不可能な通信相手だけがリストアップされる例である。以下では、通信状態情報22が図7Aに示すデータ構造を有するものとして説明を行う。
【0024】
以下、図8〜図10のフローチャートを参照して、ゲームプログラム20に基づくユーザ端末10のCPU11の処理の流れを説明する。
【0025】
図8はメイン処理の流れを示すフローチャートである。メイン処理が開始されると、まずCPU11は、ステップS10で、自身のユーザ端末に新たなユーザ端末が接続されたかどうかを判断し、新たなユーザ端末が接続された場合には処理はステップS12に進み、新たなユーザ端末が接続されていない場合には処理はステップS14に進む。
【0026】
ステップS12では、新たに接続されたユーザ端末(より正確には、そのユーザ端末を示す識別情報)を、RAM12に保持されている通信相手リスト21に追加する。
【0027】
ステップS14では、通信状態情報送信処理を実行する。以下、図9を参照して、この通信状態情報送信処理の詳細を説明する。
【0028】
図9のステップS26で、CPU11は、通信相手リスト21をコピーして自身の通信状態情報22aに上書きする。
【0029】
ステップS28では、フレームカウンタ23における各ユーザ端末のカウント値をそれぞれ1加算する。
【0030】
ステップS30では、フレームカウンタ23のカウント値が所定の閾値(例えば300)以上となっているユーザ端末が存在するかどうかを判断し、存在すれば処理はステップS32に進み、存在しなければ処理はステップS34に進む。
【0031】
ステップS32では、フレームカウンタ23のカウント値が所定の閾値以上となっているユーザ端末を、自身の通信状態情報22aから削除する。
【0032】
ステップS34では、他のユーザ端末から受信した通信状態情報、すなわちRAM12に格納されている通信相手の通信状態情報22bのいずれかにおいて、通信不可能であると示されているユーザ端末が存在するかどうかを判断し、存在すれば処理はステップS36に進み、存在しなければ処理はステップS38に進む。例えば、ユーザ端末A、ユーザ端末B、ユーザ端末C、ユーザ端末Dの4台のユーザ端末でゲームシステムが構成されているときに、ユーザ端末Aから図7Aのような通信状態情報をユーザ端末Cが受信した場合には、この通信状態情報は、ユーザ端末Aがユーザ端末Bと通信不可能であることを示しているので、ユーザ端末CにおけるステップS34の判断結果は肯定となる。
【0033】
ステップS36では、すなわちRAM12に格納されている通信相手の通信状態情報22bのいずれかにおいて、通信不可能であると示されているユーザ端末を、自身の通信状態情報22aから削除する。上記の例では、ユーザ端末Cにおいて、自身の通信状態情報22aからユーザ端末Bが削除されることになる。
【0034】
ステップS38では、通信相手リスト21に含まれている全ての通信相手に、ゲームデータと一緒に自身の通信状態情報22aを送信する(ただし、必ずしもゲームデータと一緒に送信する必要はない)。この結果、通信相手リスト21から自身のユーザ端末が切断しようとしているユーザ端末と他のユーザ端末が切断しようとしているユーザ端末とを削除した、残りのユーザ端末のリストが通信状態情報として通信相手に送信されることになる。ステップS38で通信状態情報を送信し終えると、通信状態情報送信処理を終了して処理は図8のステップS16に進む。
【0035】
ステップS16では、通信相手から通信状態情報を受信したかどうかを判断し、受信した場合には処理はステップS18に進み、受信していない場合には処理はステップS22に進む。
【0036】
ステップS18では、通信相手から受信した通信状態情報を、通信相手の通信状態情報22bとしてRAM12に上書きする。
【0037】
ステップS20では、受信した通信状態情報の送信元のユーザ端末に対応するフレームカウンタ23のカウント値を0にリセットする。
【0038】
ステップS22では、切断処理を実行する。以下、図10を参照して、この切断処理の詳細を説明する。
【0039】
図10のステップS40で、CPU11は、RAM12に格納されている、通信リスト21に含まれている各通信相手から受信した通信状態情報を参照し、それらの全ての通信状態情報において共通に通信不可能と示されているユーザ端末が存在するかどうかを判断し、存在する場合には処理はステップS42に進み、存在しなければ切断処理を終了して処理は図8のステップS24に進む。
【0040】
ステップS42では、RAM12に格納されている全ての通信状態情報において共通に通信不可能と示されているユーザ端末を、通信相手リスト21から削除する。こうして通信相手リスト21から削除されたユーザ端末に対しては、以降はゲームデータも通信状態情報も送信されないことになる。ステップS42の処理を終えると切断処理を終了し、処理は図8のステップS23に進む。
【0041】
ステップS23では、入力部15からの入力および通信相手から受信したゲームデータに基づいてゲーム処理を実行する。
【0042】
ステップS24では、ゲームが終了したかどうかを判断し、終了した場合にはメイン処理を終了する。一方、ゲームが終了していない場合には処理はステップS10に戻り、ゲームが終了するまでステップS10〜S23の処理を1フレーム期間(60分の1秒)の周期で繰り返し実行する。
【0043】
以上のようなユーザ端末10の動作の結果、あるユーザ端末を切断するときに、通信相手から送信される通信状態情報に基づいて、自身のユーザ端末に接続されている全ての通信相手においてそのユーザ端末を切断する用意ができていることを確認してから切断するので、ユーザ端末間でゲーム処理の結果にズレが生じてしまうことを確実に回避することができる。
【0044】
なお、以上の説明では、図9のステップS38においてゲームデータと一緒に自身の通信状態情報を毎フレーム送信するとしているが、本発明はこれに限らず、ゲームデータと通信状態情報を個別に送信しても良い。また、ゲームデータおよび通信状態情報を、複数の通信相手に対して順番に送信しても良い。例えばユーザ端末Aからユーザ端末Bにゲームデータおよび通信状態情報を送信し、そこから2フレーム経過後にユーザ端末Aからユーザ端末Cにゲームデータおよび通信状態情報を送信し、そこから2フレーム経過後にユーザ端末Aからユーザ端末Dにゲームデータおよび通信状態情報を送信し、そこから2フレーム後にユーザ端末Aからユーザ端末Bにゲームデータおよび通信状態情報を送信するようにしてもよい。
【0045】
以下、図11A〜図26Bを参照して、ユーザ端末A、ユーザ端末B、ユーザ端末C、ユーザ端末Dの4台のユーザ端末で構成されるゲームシステムにおいて、ユーザ端末Aとユーザ端末Bとの間の通信回線に障害が発生したときの処理の流れを具体的に説明する。なお、ここでは、通信状態情報は2フレーム毎に各通信相手に順番に送信される(つまり送信先が6フレーム期間で一巡する)ものとする。また、データ通信のタイムラグは約10フレーム期間であると仮定する。
【0046】
図11Aは、第204フレームにおけるユーザ端末間の関係を示す図であり、この時点ではまだ通信回線に障害が発生していない。図11Bは、第204フレームにおいて各ユーザ端末のRAMに保持されている情報を示す図である。例えば、ユーザ端末Aに保持されている通信相手リスト21にはユーザ端末B、ユーザ端末C、ユーザ端末Dが含まれている。また、ユーザ端末Aに保持されているフレームカウンタ23において、ユーザ端末Bのカウント値は2、ユーザ端末Cのカウント値は0、ユーザ端末Dのカウント値は4となっている。また、ユーザ端末Aには通信相手の通信状態情報22bとしてユーザ端末Bの通信状態情報とユーザ端末Cの通信状態情報とユーザ端末Dの通信状態情報が保持されており、例えばユーザ端末Bの通信状態情報にはユーザ端末Aとユーザ端末Cとユーザ端末Dが含まれている。また、ユーザ端末Aに保持されている自身の通信状態情報22aには、ユーザ端末Bとユーザ端末Cとユーザ端末Dが含まれている。
【0047】
第204フレームの直後にユーザ端末Aとユーザ端末Bとの間の通信回線に障害が発生すると、第500フレームにおいてユーザ端末間の接続関係および各ユーザ端末のRAMに保持されている情報は、それぞれ図12A、図12Bのようになる。第500フレームでは、ユーザ端末Bのフレームカウンタにおけるユーザ端末Aのカウント値が所定の閾値(300)を超えるので。ユーザ端末B(より正確にはユーザ端末BのCPU)は、ユーザ端末Aと通信不能と判断し、自身の通信状態情報からユーザ端末Aを削除する。なお、ユーザ端末Bの通信状態情報からユーザ端末Aが削除されたことは、通信状態情報の送信タイミングや通信のタイムラグなどにより、数フレーム〜十数フレーム後に他のユーザ端末に伝わることになる。
【0048】
第502フレームでは、ユーザ端末間の接続関係および各ユーザ端末のRAMに保持されている情報は、それぞれ図13A、図13Bのようになる。このフレームでは、ユーザ端末Aのフレームカウンタにおけるユーザ端末Bのカウント値が所定の閾値(300)を超えるので、ユーザ端末Aは、ユーザ端末Bと通信不能と判断し、自身の通信状態情報からユーザ端末Bを削除する。
【0049】
第510フレームでは、ユーザ端末間の接続関係および各ユーザ端末のRAMに保持されている情報は、それぞれ図14A、図14Bのようになる。このフレームでは、ユーザ端末Bから送信された通信状態情報がユーザ端末Cによって受信される。ユーザ端末Cは、ユーザ端末Bの通信状態情報からユーザ端末Aが削除されていることを受けて、自身の通信状態情報からユーザ端末Aを削除する。
【0050】
第512フレームでは、ユーザ端末間の接続関係および各ユーザ端末のRAMに保持されている情報は、それぞれ図15A、図15Bのようになる。このフレームでは、ユーザ端末Bから送信された通信状態情報がユーザ端末Dによって受信される。ユーザ端末Dは、ユーザ端末Bの通信状態情報からユーザ端末Aが削除されていることを受けて、自身の通信状態情報からユーザ端末Aを削除する。
【0051】
第514フレームでは、ユーザ端末間の接続関係および各ユーザ端末のRAMに保持されている情報は、それぞれ図16A、図16Bのようになる。このフレームでは、ユーザ端末Aから送信された通信状態情報がユーザ端末Cによって受信される。ユーザ端末Cは、ユーザ端末Aの通信状態情報からユーザ端末Bが削除されていることを受けて、自身の通信状態情報からユーザ端末Bを削除する。
【0052】
第516フレームでは、ユーザ端末間の接続関係および各ユーザ端末のRAMに保持されている情報は、それぞれ図17A、図17Bのようになる。このフレームでは、ユーザ端末Aから送信された通信状態情報がユーザ端末Dによって受信される。ユーザ端末Dは、ユーザ端末Aの通信状態情報からユーザ端末Bが削除されていることを受けて、自身の通信状態情報からユーザ端末Bを削除する。
【0053】
第520フレームでは、ユーザ端末間の接続関係および各ユーザ端末のRAMに保持されている情報は、それぞれ図18A、図18Bのようになる。このフレームでは、ユーザ端末Cから送信された通信状態情報がユーザ端末Dによって受信される。ユーザ端末Dは、ユーザ端末Cの通信状態情報からユーザ端末Aが削除されており、さらに他の通信相手の通信状態情報にもユーザ端末Aが含まれていないので、図19Bに示すように、通信相手リストからユーザ端末Aを削除する。この結果、図19Aに示すように、ユーザ端末Aとユーザ端末Dが切断される。
【0054】
第522フレームでは、ユーザ端末間の接続関係および各ユーザ端末のRAMに保持されている情報は、それぞれ図20A、図20Bのようになる。このフレームでは、ユーザ端末Cから送信された通信状態情報がユーザ端末Aによって受信され、ユーザ端末Dから送信された通信状態情報がユーザ端末Cによって受信される。ユーザ端末Cは、ユーザ端末Dの通信状態情報からユーザ端末Aが削除されており、さらに他の通信相手の通信状態情報にもユーザ端末Aが含まれていないので、図21Bに示すように、通信相手リストからユーザ端末Aを削除する。この結果、図21Aに示すように、ユーザ端末Aとユーザ端末Cが切断される。
【0055】
第524フレームでは、ユーザ端末間の接続関係および各ユーザ端末のRAMに保持されている情報は、それぞれ図22A、図22Bのようになる。このフレームでは、ユーザ端末Cから送信された通信状態情報がユーザ端末Bによって受信される。
【0056】
第526フレームでは、ユーザ端末間の接続関係および各ユーザ端末のRAMに保持されている情報は、それぞれ図23A、図23Bのようになる。このフレームでは、ユーザ端末Dから送信された通信状態情報がユーザ端末Bによって受信され、ユーザ端末Cから送信された通信状態情報がユーザ端末Dによって受信される。ユーザ端末Dは、ユーザ端末Cの通信状態情報からユーザ端末Bが削除されており、さらに他の通信相手の通信状態情報にもユーザ端末Bが含まれていないので、図24Bに示すように、通信相手リストからユーザ端末Bを削除する。この結果、図24Aに示すように、ユーザ端末Bとユーザ端末Dが切断される。
【0057】
第528フレームでは、ユーザ端末間の接続関係および各ユーザ端末のRAMに保持されている情報は、それぞれ図25A、図25Bのようになる。このフレームでは、ユーザ端末Dから送信された通信状態情報がユーザ端末Cによって受信される。ユーザ端末Cは、ユーザ端末Dの通信状態情報からユーザ端末Bが削除されており、さらに他の通信相手の通信状態情報にもユーザ端末Bが含まれていないので、図26Bに示すように、通信相手リストからユーザ端末Bを削除する。この結果、図26Aに示すように、ユーザ端末Bとユーザ端末Cが切断される。
【0058】
こうして、以降はユーザ端末Cとユーザ端末Dとの間でゲームが進行することになる。なお、ユーザ端末Aは、他のユーザ端末から信号を受信することがなくなるので、フレームカウンタにおける各通信相手のカウント値が増え続け、全ての通信相手のカウント値が300以上となった時点でゲーム処理を終了する。ユーザ端末Bについても同様である。
【図面の簡単な説明】
【0059】
【図1】本発明の好ましい一実施形態としてのネットワークシステムの構成を示す図
【図2】ユーザ端末10の典型的な構成例
【図3】RAM12のメモリマップの一例
【図4】通信相手リスト21の一具体例
【図5】通信状態情報22の一具体例
【図6】フレームカウンタ23の一具体例
【図7A】通信状態情報22のデータ構造の第1のバリエーション
【図7B】通信状態情報22のデータ構造の第2のバリエーション
【図7C】通信状態情報22のデータ構造の第3のバリエーション
【図8】CPU11の処理の流れを示すフローチャート
【図9】通信状態情報送信処理の流れを示すフローチャート
【図10】切断処理の流れを示すフローチャート
【図11A】第204フレームにおけるユーザ端末間の関係を示す図
【図11B】第204フレームにおいて各ユーザ端末のRAMに保持されている情報を示す図
【図12A】第500フレームにおけるユーザ端末間の関係を示す図
【図12B】第500フレームにおいて各ユーザ端末のRAMに保持されている情報を示す図
【図13A】第502フレームにおけるユーザ端末間の関係を示す図
【図13B】第502フレームにおいて各ユーザ端末のRAMに保持されている情報を示す図
【図14A】第510フレームにおけるユーザ端末間の関係を示す図
【図14B】第510フレームにおいて各ユーザ端末のRAMに保持されている情報を示す図
【図15A】第512フレームにおけるユーザ端末間の関係を示す図
【図15B】第512フレームにおいて各ユーザ端末のRAMに保持されている情報を示す図
【図16A】第514フレームにおけるユーザ端末間の関係を示す図
【図16B】第514フレームにおいて各ユーザ端末のRAMに保持されている情報を示す図
【図17A】第516フレームにおけるユーザ端末間の関係を示す図
【図17B】第516フレームにおいて各ユーザ端末のRAMに保持されている情報を示す図
【図18A】第520フレームにおけるユーザ端末間の関係を示す図
【図18B】第520フレームにおいて各ユーザ端末のRAMに保持されている情報を示す図
【図19A】第520フレームにおけるユーザ端末間の関係を示す他の図
【図19B】第520フレームにおいて各ユーザ端末のRAMに保持されている情報を示す図
【図20A】第522フレームにおけるユーザ端末間の関係を示す図
【図20B】第522フレームにおいて各ユーザ端末のRAMに保持されている情報を示す他の図
【図21A】第522フレームにおけるユーザ端末間の関係を示す他の図
【図21B】第522フレームにおいて各ユーザ端末のRAMに保持されている情報を示す他の図
【図22A】第524フレームにおけるユーザ端末間の関係を示す図
【図22B】第524フレームにおいて各ユーザ端末のRAMに保持されている情報を示す図
【図23A】第526フレームにおけるユーザ端末間の関係を示す図
【図23B】第526フレームにおいて各ユーザ端末のRAMに保持されている情報を示す図
【図24A】第526フレームにおけるユーザ端末間の関係を示す他の図
【図24B】第526フレームにおいて各ユーザ端末のRAMに保持されている情報を示す他の図
【図25A】第528フレームにおけるユーザ端末間の関係を示す図
【図25B】第528フレームにおいて各ユーザ端末のRAMに保持されている情報を示す図
【図26A】第528フレームにおけるユーザ端末間の関係を示す他の図
【図26B】第528フレームにおいて各ユーザ端末のRAMに保持されている情報を示す他の図
【図27】従来のピアツーピア型ゲームシステムにおいて通信障害が発生したときの各ゲーム装置間の関係を示す図
【符号の説明】
【0060】
10 ユーザ端末
11 CPU
12 RAM
13 ハードディスク
14 通信部
15 入力部
16 表示部
20 ゲームプログラム
21 通信相手リスト
22 通信状態情報
22a 自身の通信状態情報
22b 通信相手の通信状態情報
23 フレームカウンタ

【特許請求の範囲】
【請求項1】
複数のゲーム装置間で相互にゲームデータを送受信し、他のゲーム装置から受信したゲームデータを利用して各ゲーム装置がゲーム処理を実行するゲームシステムにおいて、各ゲーム装置において実行されるゲームプログラムであって、前記ゲーム装置のコンピュータを、
自身のゲーム装置が属するネットワークに新たな通信相手として他のゲーム装置が接続されたときに、自身のゲーム装置の記憶部に保持されている通信相手の一覧を示す通信相手リストに、当該新たな通信相手を追加する通信相手リスト追加手段、
各通信相手からの信号の受信状況に基づいて、自身のゲーム装置と各通信相手との間の通信が可能か否かをそれぞれ判定する通信状態判定手段、
前記記憶部に保持されている、自身のゲーム装置と各通信相手との間の通信が可能か否かを示す通信状態情報を、前記通信状態判定手段の判定結果に基づいて随時更新する第1の通信状態情報更新手段、
自身のゲーム装置の通信状態情報を各通信相手に定期的に送信する通信状態情報送信手段、
各通信相手の通信状態情報を各通信相手からそれぞれ受信して前記記憶部に格納する通信状態情報受信手段、
前記通信状態情報受信手段によって受信された各通信相手の通信状態情報を参照し、いずれかの通信相手の通信状態情報において通信不可能な相手として示されているゲーム装置が存在したときに、前記記憶部に保持されている通信状態情報において当該ゲーム装置が通信不可能な相手として示されるように、当該通信状態情報を更新する第2の通信状態情報更新手段、
前記記憶部に保持されている、自身のゲーム装置の通信状態情報と各通信相手の通信状態情報を参照し、全ての通信状態情報において共通に通信不可能な相手として示されているゲーム装置が存在したときに、当該ゲーム装置を前記通信相手リストから削除する通信相手リスト削除手段、
前記通信相手リストに示されている各通信相手とゲームデータを定期的に送受信するゲームデータ送受信手段、および
前記ゲームデータ送受信手段によって受信された各通信相手のゲームデータに基づいてゲーム処理を実行するゲーム処理手段として機能させるためのゲームプログラム。
【請求項2】
前記通信状態情報送信手段は、前記ゲームデータ送受信手段がいずれかの通信相手にゲームデータを送信するときに、自身のゲーム装置の通信状態情報を当該ゲームデータと一緒に送信することを特徴とする、請求項1に記載のゲームプログラム。
【請求項3】
前記通信状態情報は、前記通信相手リストに含まれている通信相手のうち、前記通信状態判定手段によってその相手との通信が可能であると判定された通信相手のみから成るリストを含むことを特徴とする、請求項1に記載のゲームプログラム。
【請求項4】
前記通信状態判定手段は、各通信相手から信号を最後に受信してからの経過時間をそれぞれ計時し、その経過時間が一定時間を超えたか否かによって、各通信相手と通信が可能か否かを判定することを特徴とする、請求項1に記載のゲームプログラム。
【請求項5】
複数のゲーム装置間で相互にゲームデータを送受信し、他のゲーム装置から受信したゲームデータを利用して各ゲーム装置がゲーム処理を実行するゲームシステムに用いられるゲーム装置であって、
自身のゲーム装置が属するネットワークに新たな通信相手として他のゲーム装置が接続されたときに、自身のゲーム装置の記憶部に保持されている通信相手の一覧を示す通信相手リストに、当該新たな通信相手を追加する通信相手リスト追加手段、
各通信相手からの信号の受信状況に基づいて、自身のゲーム装置と各通信相手との間の通信が可能か否かをそれぞれ判定する通信状態判定手段、
前記記憶部に保持されている、自身のゲーム装置と各通信相手との間の通信が可能か否かを示す通信状態情報を、前記通信状態判定手段の判定結果に基づいて随時更新する第1の通信状態情報更新手段、
自身のゲーム装置の通信状態情報を各通信相手に定期的に送信する通信状態情報送信手段、
各通信相手の通信状態情報を各通信相手からそれぞれ受信して前記記憶部に格納する通信状態情報受信手段、
前記通信状態情報受信手段によって受信された各通信相手の通信状態情報を参照し、いずれかの通信相手の通信状態情報において通信不可能な相手として示されているゲーム装置が存在したときに、前記記憶部に保持されている通信状態情報において当該ゲーム装置が通信不可能な相手として示されるように、当該通信状態情報を更新する第2の通信状態情報更新手段、
前記記憶部に保持されている、自身のゲーム装置の通信状態情報と各通信相手の通信状態情報を参照し、全ての通信状態情報において共通に通信不可能な相手として示されているゲーム装置が存在したときに、当該ゲーム装置を前記通信相手リストから削除する通信相手リスト削除手段、
前記通信相手リストに示されている各通信相手とゲームデータを定期的に送受信するゲームデータ送受信手段、および
前記ゲームデータ送受信手段によって受信された各通信相手のゲームデータに基づいてゲーム処理を実行するゲーム処理手段を備えるゲーム装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7A】
image rotate

【図7B】
image rotate

【図7C】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11A】
image rotate

【図11B】
image rotate

【図12A】
image rotate

【図12B】
image rotate

【図13A】
image rotate

【図13B】
image rotate

【図14A】
image rotate

【図14B】
image rotate

【図15A】
image rotate

【図15B】
image rotate

【図16A】
image rotate

【図16B】
image rotate

【図17A】
image rotate

【図17B】
image rotate

【図18A】
image rotate

【図18B】
image rotate

【図19A】
image rotate

【図19B】
image rotate

【図20A】
image rotate

【図20B】
image rotate

【図21A】
image rotate

【図21B】
image rotate

【図22A】
image rotate

【図22B】
image rotate

【図23A】
image rotate

【図23B】
image rotate

【図24A】
image rotate

【図24B】
image rotate

【図25A】
image rotate

【図25B】
image rotate

【図26A】
image rotate

【図26B】
image rotate

【図27】
image rotate


【公開番号】特開2007−130338(P2007−130338A)
【公開日】平成19年5月31日(2007.5.31)
【国際特許分類】
【出願番号】特願2005−328149(P2005−328149)
【出願日】平成17年11月11日(2005.11.11)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】