(57)【要約】【課題】接続状態が不安定もしくは接続不能になったゲーム装置を、ゲームの内容にズレが生じないように切り離すことのできるネットワークゲームシステムを提供すること。【解決手段】自身のゲーム装置と各通信相手との間の通信が可能か否かを示す通信状態情報を各通信相手に定期的に送信する。各通信相手の通信状態情報を各通信相手からそれぞれ受信し、いずれかの通信相手の通信状態情報において通信不可能な相手として示されているゲーム装置が存在したときに、自身の通信状態情報においてこのゲーム装置が通信不可能な相手として示されるように、自身の通信状態情報を更新する。全ての通信相手の通信状態情報において共通に通信不可能な相手として示されているゲーム装置が存在したときに、このゲーム装置を切断する。【選択図】図８
2007130338.tif 000002
【特許請求の範囲】
【請求項１】
複数のゲーム装置間で相互にゲームデータを送受信し、他のゲーム装置から受信したゲームデータを利用して各ゲーム装置がゲーム処理を実行するゲームシステムにおいて、各ゲーム装置において実行されるゲームプログラムであって、前記ゲーム装置のコンピュータを、
自身のゲーム装置が属するネットワークに新たな通信相手として他のゲーム装置が接続されたときに、自身のゲーム装置の記憶部に保持されている通信相手の一覧を示す通信相手リストに、当該新たな通信相手を追加する通信相手リスト追加手段、
各通信相手からの信号の受信状況に基づいて、自身のゲーム装置と各通信相手との間の通信が可能か否かをそれぞれ判定する通信状態判定手段、
前記記憶部に保持されている、自身のゲーム装置と各通信相手との間の通信が可能か否かを示す通信状態情報を、前記通信状態判定手段の判定結果に基づいて随時更新する第１の通信状態情報更新手段、
自身のゲーム装置の通信状態情報を各通信相手に定期的に送信する通信状態情報送信手段、
各通信相手の通信状態情報を各通信相手からそれぞれ受信して前記記憶部に格納する通信状態情報受信手段、
前記通信状態情報受信手段によって受信された各通信相手の通信状態情報を参照し、いずれかの通信相手の通信状態情報において通信不可能な相手として示されているゲーム装置が存在したときに、前記記憶部に保持されている通信状態情報において当該ゲーム装置が通信不可能な相手として示されるように、当該通信状態情報を更新する第２の通信状態情報更新手段、
前記記憶部に保持されている、自身のゲーム装置の通信状態情報と各通信相手の通信状態情報を参照し、全ての通信状態情報において共通に通信不可能な相手として示されているゲーム装置が存在したときに、当該ゲーム装置を前記通信相手リストから削除する通信相手リスト削除手段、
前記通信相手リストに示されている各通信相手とゲームデータを定期的に送受信するゲームデータ送受信手段、および
前記ゲームデータ送受信手段によって受信された各通信相手のゲームデータに基づいてゲーム処理を実行するゲーム処理手段として機能させるためのゲームプログラム。
【請求項２】
前記通信状態情報送信手段は、前記ゲームデータ送受信手段がいずれかの通信相手にゲームデータを送信するときに、自身のゲーム装置の通信状態情報を当該ゲームデータと一緒に送信することを特徴とする、請求項１に記載のゲームプログラム。
【請求項３】
前記通信状態情報は、前記通信相手リストに含まれている通信相手のうち、前記通信状態判定手段によってその相手との通信が可能であると判定された通信相手のみから成るリストを含むことを特徴とする、請求項１に記載のゲームプログラム。
【請求項４】
前記通信状態判定手段は、各通信相手から信号を最後に受信してからの経過時間をそれぞれ計時し、その経過時間が一定時間を超えたか否かによって、各通信相手と通信が可能か否かを判定することを特徴とする、請求項１に記載のゲームプログラム。
【請求項５】
複数のゲーム装置間で相互にゲームデータを送受信し、他のゲーム装置から受信したゲームデータを利用して各ゲーム装置がゲーム処理を実行するゲームシステムに用いられるゲーム装置であって、
自身のゲーム装置が属するネットワークに新たな通信相手として他のゲーム装置が接続されたときに、自身のゲーム装置の記憶部に保持されている通信相手の一覧を示す通信相手リストに、当該新たな通信相手を追加する通信相手リスト追加手段、
各通信相手からの信号の受信状況に基づいて、自身のゲーム装置と各通信相手との間の通信が可能か否かをそれぞれ判定する通信状態判定手段、
前記記憶部に保持されている、自身のゲーム装置と各通信相手との間の通信が可能か否かを示す通信状態情報を、前記通信状態判定手段の判定結果に基づいて随時更新する第１の通信状態情報更新手段、
自身のゲーム装置の通信状態情報を各通信相手に定期的に送信する通信状態情報送信手段、
各通信相手の通信状態情報を各通信相手からそれぞれ受信して前記記憶部に格納する通信状態情報受信手段、
前記通信状態情報受信手段によって受信された各通信相手の通信状態情報を参照し、いずれかの通信相手の通信状態情報において通信不可能な相手として示されているゲーム装置が存在したときに、前記記憶部に保持されている通信状態情報において当該ゲーム装置が通信不可能な相手として示されるように、当該通信状態情報を更新する第２の通信状態情報更新手段、
前記記憶部に保持されている、自身のゲーム装置の通信状態情報と各通信相手の通信状態情報を参照し、全ての通信状態情報において共通に通信不可能な相手として示されているゲーム装置が存在したときに、当該ゲーム装置を前記通信相手リストから削除する通信相手リスト削除手段、
前記通信相手リストに示されている各通信相手とゲームデータを定期的に送受信するゲームデータ送受信手段、および
前記ゲームデータ送受信手段によって受信された各通信相手のゲームデータに基づいてゲーム処理を実行するゲーム処理手段を備えるゲーム装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ゲームプログラムおよびゲーム装置に関し、特に、複数のゲーム装置間で相互にゲームデータを送受信し、他のゲーム装置から受信したゲームデータを利用して各ゲーム装置がゲーム処理を実行するゲームシステムに用いられるゲームプログラムおよびゲーム装置に関する。
【背景技術】
【０００２】
ネットワークゲームシステムには、大きく分けてクライアント／サーバ型のネットワークゲームシステムとピアツーピア型のネットワークゲームシステムが存在する。
【０００３】
クライアント／サーバ型ネットワークゲームシステムは、ユーザ端末がクライアントとしてゲームサーバに接続し、主にゲームサーバがゲーム処理を実行することによってゲームが進行するネットワークゲームシステムである。このクライアント／サーバ型ネットワークゲームシステムは、ゲームサーバに同時に接続されているユーザ端末の数が増えるほどゲームサーバの処理負担が大きくなるため、十分に高性能なゲームサーバを用意する必要があり、ネットワークゲームシステムの構築のためのコストが高いという不利な点がある。
【０００４】
これに対して、ピアツーピア型ネットワークゲームシステムは、基本的にはユーザ端末同士で通信をすることによってゲームが進行するネットワークゲームシステムであるため、クライアント／サーバ型ネットワークゲームシステムのような高性能なゲームサーバは必要なく、またユーザ端末間のデータ転送もゲームサーバを経由せずに行うことができるため、例えばレースゲームのようなリアルタイムな処理が要求されるゲームに適している。非特許文献１には、このようなピアツーピア型ネットワークゲームシステムの一例が開示されている。
【非特許文献１】「オンラインゲームプログラミング」、ソフトバンクパブリッシング株式会社、Ｊｕｎｇ  ＷｕｎＣｈｕｌ著、２００５年３月３日  初版、Ｐ２１８〜２２２
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記非特許文献１には、ピアツーピア型ネットワークにユーザ端末を接続していく手法については開示されているが、接続状態が不安定もしくは接続不能になった端末を切り離す手法については開示されていない。
【０００６】
また、前述したように、ピアツーピア型ネットワークゲームシステムは、クライアント／サーバ型ネットワークゲームシステムとは異なり、他のユーザ端末から受け取る信号に基づいて各ユーザ端末が個別に演算を行う特徴を有しているため、接続状態が不安定もしくは接続不能になった端末を単純に切り離せば、各ユーザ端末で実行されるゲームの内容にズレが生じ、場合によってはゲームの進行に深刻な影響を与えてしまうという問題がある。
【０００７】
例えば、図２７に示すように４台のゲーム装置で構成されたピアツーピア型ネットワークゲームシステムにおいて、ゲーム装置Ａとゲーム装置Ｂとの間の通信回線に障害が発生した場合には、ゲーム装置Ａは、ゲーム装置Ｂからの信号が受信できなくなったことから自身のゲームデータとゲーム装置Ｃおよびゲーム装置Ｄから送信されてくるゲームデータ（すなわちゲーム装置Ａ、ゲーム装置Ｃおよびゲーム装置Ｄの３台のゲーム装置のゲームデータ）に基づいてゲーム処理を続行するが、ゲーム装置Ｃは、自身のゲームデータとゲーム装置Ａ、ゲーム装置Ｂおよびゲーム装置Ｄから送信されてくるゲームデータ（すなわちゲーム装置Ａ、ゲーム装置Ｂ、ゲーム装置Ｃおよびゲーム装置Ｄの４台のゲーム装置のゲームデータ）に基づいてゲーム処理を続行する。この結果、ゲーム装置Ａで実行されるゲーム処理の結果とゲーム装置Ｃで実行されるゲーム処理の結果にズレが生じてしまうことになる。
【０００８】
それゆえに本発明の目的は、上記の従来のピアツーピア型ネットワークゲームシステムの問題点を解消し、接続状態が不安定もしくは接続不能になった端末を、ゲームの内容にズレが生じないように切り離すことのできるネットワークゲームシステムを提供することである。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、本発明は以下の構成を採用した。なお、括弧内の参照符号および図番号は本発明の理解を助けるために図面との対応関係を示したものであって、本発明の範囲を何ら限定するものではない。
【００１０】
本発明の第１の局面は、複数のゲーム装置（１０）間で相互にゲームデータを送受信し、他のゲーム装置から受信したゲームデータを利用して各ゲーム装置がゲーム処理を実行するゲームシステムにおいて、各ゲーム装置において実行されるゲームプログラム（２０）である。当該ゲームプログラムは、前記ゲーム装置のコンピュータ（１１）を、通信相手リスト追加手段（Ｓ１２）、通信状態判定手段（Ｓ３０）、第１の通信状態情報更新手段（Ｓ３２）、通信状態情報送信手段（Ｓ３８）、通信状態情報受信手段（Ｓ１６）、第２の通信状態情報更新手段（Ｓ３６）、通信相手リスト削除手段（Ｓ４２）、ゲームデータ送受信手段（Ｓ３８、Ｓ１６）、およびゲーム処理手段（Ｓ２３）として機能させるためのゲームプログラムである。通信相手リスト追加手段は、自身のゲーム装置が属するネットワークに新たな通信相手として他のゲーム装置が接続されたときに、自身のゲーム装置の記憶部（１２）に保持されている通信相手の一覧を示す通信相手リスト（２１）に、当該新たな通信相手を追加する手段である。通信状態判定手段は、各通信相手からの信号の受信状況（２３）に基づいて、自身のゲーム装置と各通信相手との間の通信が可能か否かをそれぞれ判定する手段である。第１の通信状態情報更新手段は、前記記憶部に保持されている、自身のゲーム装置と各通信相手との間の通信が可能か否かを示す通信状態情報（２２ａ）を、前記通信状態判定手段の判定結果に基づいて随時更新する手段である。通信状態情報送信手段は、自身のゲーム装置の通信状態情報（２２ａ）を各通信相手に定期的に送信する手段である。通信状態情報受信手段は、各通信相手の通信状態情報（２２ｂ）を各通信相手からそれぞれ受信して前記記憶部に格納する手段である。第２の通信状態情報更新手段は、前記通信状態情報受信手段によって受信された各通信相手の通信状態情報を参照し、いずれかの通信相手の通信状態情報において通信不可能な相手として示されているゲーム装置が存在したときに、前記記憶部に保持されている通信状態情報（２２ａ）において当該ゲーム装置が通信不可能な相手として示されるように、当該通信状態情報を更新する手段である。通信相手リスト削除手段は、前記記憶部に保持されている、自身のゲーム装置の通信状態情報（２２ａ）と各通信相手の通信状態情報（２２ｂ）を参照し、全ての通信状態情報において共通に通信不可能な相手として示されているゲーム装置が存在したときに、当該ゲーム装置を前記通信相手リスト（２１）から削除する手段である。ゲームデータ送受信手段は、前記通信相手リストに示されている各通信相手とゲームデータを定期的に送受信する手段である。ゲーム処理手段は、前記ゲームデータ送受信手段によって受信された各通信相手のゲームデータに基づいてゲーム処理を実行する手段である。
【００１１】
なお変形例として、前記通信状態情報送信手段は、前記ゲームデータ送受信手段がいずれかの通信相手にゲームデータを送信するときに、自身のゲーム装置の通信状態情報を当該ゲームデータと一緒に送信してもよい。
【００１２】
また変形例として、前記通信状態情報は、前記通信相手リストに含まれている通信相手のうち、前記通信状態判定手段によってその相手との通信が可能であると判定された通信相手のみから成るリストを含んでいてもよい（図７Ａ）。
【００１３】
また変形例として、前記通信状態判定手段は、各通信相手から信号を最後に受信してからの経過時間をそれぞれ計時し、その経過時間が一定時間を超えたか否かによって、各通信相手と通信が可能か否かを判定してもよい。
【００１４】
本発明の第２の局面は、複数のゲーム装置（１０）間で相互にゲームデータを送受信し、他のゲーム装置から受信したゲームデータを利用して各ゲーム装置がゲーム処理を実行するゲームシステムに用いられるゲーム装置である。当該ゲーム装置は、通信相手リスト追加手段（１１、Ｓ１２）、通信状態判定手段（１１、Ｓ３０）、第１の通信状態情報更新手段（１１、Ｓ３２）、通信状態情報送信手段（１１、Ｓ３８）、通信状態情報受信手段（１１、Ｓ１６）、第２の通信状態情報更新手段（１１、Ｓ３６）、通信相手リスト削除手段（１１、Ｓ４２）、ゲームデータ送受信手段（１１、Ｓ３８、Ｓ１６）、およびゲーム処理手段（１１、Ｓ２３）を備えている。
【発明の効果】
【００１５】
本発明によれば、通信不可能となったゲーム装置をすぐに切断するのではなく、通信相手リストに含まれている全ての通信相手においてそのゲーム装置を切断する準備ができていることを、各通信相手から受信した通信状態情報に基づいて確認してから、はじめてその通信不可能となったゲーム装置を切断する。よって、例えばピアツーピア型ネットワークゲームシステムにおいて、あるゲーム装置は３台分のゲーム装置のゲームデータに基づいてゲーム処理を続行し、別のゲーム装置は４台分のゲーム装置のゲームデータに基づいてゲーム処理を続行する、というような状況を確実に回避することができ、各ゲーム装置で実行されるゲーム処理の結果にズレが生じてしまうことを防止することができる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の好ましい一実施形態について図面を参照して説明する。
【００１７】
図１は、本発明の好ましい一実施形態としてのゲームシステムの構成を示す図である。ゲームシステムは、複数のユーザ端末（ゲーム装置）１０で構成される。これらの複数のユーザ端末間で相互にゲームデータが送受信され、各ユーザ端末では、他のユーザ端末から受信したゲームデータを利用してゲーム処理が実行される。
【００１８】
図２に、ユーザ端末１０の典型的な構成例を示す。ユーザ端末１０は、ＣＰＵ１１、ＲＡＭ１２、ハードディスク１３、通信部１４、入力部１５および表示部１６を備えている。ＣＰＵ１１は、ハードディスク１３に格納されているゲームプログラムをＲＡＭ１２にロードして実行する。なお、ここではゲームプログラムがハードディスク１３に予め格納されている例を説明しているが、本発明はこれに限らず、メモリカードやカートリッジやＤＶＤ−ＲＯＭ等の外部記録媒体を通じてゲームプログラムがユーザ端末１０に供給されても良いし、通信部１４を通じてゲームプログラムがユーザ端末１０に供給されても良い。ＣＰＵ１１は、ゲームプログラムを実行することにより、レースゲームなどのビデオゲームを実現する。入力部１５はゲームの操作のために利用され、表示部１６はゲーム画像の表示のために利用される。
【００１９】
図３は、ユーザ端末１０のＲＡＭ１２のメモリマップの一例である。ＲＡＭ１２には、ハードディスク１３からロードされたゲームプログラム２０の他に、通信相手リスト２１、通信状態情報２２、およびフレームカウンタ２３が格納され、通信相手リスト２１、通信状態情報２２、およびフレームカウンタ２３は、ゲームの進行に応じて適宜に更新される。
【００２０】
通信相手リスト２１とは、ゲームデータを送受信する相手のユーザ端末を示すリストである。例えば、ユーザ端末Ａ、ユーザ端末Ｂ、ユーザ端末Ｃおよびユーザ端末Ｄの４台のユーザ端末でゲームシステムが構成されており、各ユーザ端末間で通信が正常に行われている場合には、ユーザ端末ＡのＲＡＭに保持される通信相手リストは図４のようになる。
【００２１】
通信状態情報２２とは、自身のユーザ端末と通信相手リスト２１に含まれている各通信相手との間の通信が可能か否かを示す情報である。なお、この通信状態情報２２はユーザ端末間で相互に送受信され、各ユーザ端末では、自身の通信状態情報２２ａと、各通信相手から受信した通信状態情報（すなわち各通信相手の通信状態情報）２２ｂとがＲＡＭ１２に保持される。図５に、ユーザ端末ＡのＲＡＭに保持される通信状態情報２２の一具体例を示す。
【００２２】
フレームカウンタ２３とは、通信相手リスト２１に含まれている各通信相手から信号を最後に受信してからの経過時間（経過フレーム数）をそれぞれ計時するためのカウンタである。図５に、ユーザ端末ＡのＲＡＭに保持されるフレームカウンタ２３の一具体例を示す。後述するように、フレームカウンタ２３において、あるユーザ端末のカウント値が予め定められた閾値（例えば３００）に達すると、このユーザ端末と通信不能になったと判断される。なお、この閾値は、ゲームの進行状況に応じて適宜に変更してもよい。例えば、レースゲームへの参加を受付けている間と、レースゲームにおけるレース中とで、通信不能と判断する閾値を変化させても良い。
【００２３】
なお、通信状態情報２２は、前述したように、自身のユーザ端末と通信相手リスト２１に含まれている各通信相手との間の通信が可能か否かを示す情報であるが、そのデータ構造としては複数のバリエーションが考えられる。図７Ａ、図７Ｂ、図７Ｃは、ユーザ端末Ａ、ユーザ端末Ｂ、ユーザ端末Ｃおよびユーザ端末Ｄの４台のユーザ端末でゲームシステムが構成されているが、ユーザ端末Ａとユーザ端末Ｂとの間で通信不能になった場合において、ユーザ端末ＡのＲＡＭに保持される通信状態情報（自身の通信状態情報２２ａ）の３つの具体例を示している。図７Ａは、通信相手リスト２１に含まれている通信相手のうち、通信可能な通信相手だけがリストアップされる例である。図７Ｂは、通信相手リスト２１に含まれている通信相手毎に、その通信相手と通信可能か通信不可能かが示される例である。図７Ｃは、通信相手リスト２１に含まれている通信相手のうち、通信不可能な通信相手だけがリストアップされる例である。以下では、通信状態情報２２が図７Ａに示すデータ構造を有するものとして説明を行う。
【００２４】
以下、図８〜図１０のフローチャートを参照して、ゲームプログラム２０に基づくユーザ端末１０のＣＰＵ１１の処理の流れを説明する。
【００２５】
図８はメイン処理の流れを示すフローチャートである。メイン処理が開始されると、まずＣＰＵ１１は、ステップＳ１０で、自身のユーザ端末に新たなユーザ端末が接続されたかどうかを判断し、新たなユーザ端末が接続された場合には処理はステップＳ１２に進み、新たなユーザ端末が接続されていない場合には処理はステップＳ１４に進む。
【００２６】
ステップＳ１２では、新たに接続されたユーザ端末（より正確には、そのユーザ端末を示す識別情報）を、ＲＡＭ１２に保持されている通信相手リスト２１に追加する。
【００２７】
ステップＳ１４では、通信状態情報送信処理を実行する。以下、図９を参照して、この通信状態情報送信処理の詳細を説明する。
【００２８】
図９のステップＳ２６で、ＣＰＵ１１は、通信相手リスト２１をコピーして自身の通信状態情報２２ａに上書きする。
【００２９】
ステップＳ２８では、フレームカウンタ２３における各ユーザ端末のカウント値をそれぞれ１加算する。
【００３０】
ステップＳ３０では、フレームカウンタ２３のカウント値が所定の閾値（例えば３００）以上となっているユーザ端末が存在するかどうかを判断し、存在すれば処理はステップＳ３２に進み、存在しなければ処理はステップＳ３４に進む。
【００３１】
ステップＳ３２では、フレームカウンタ２３のカウント値が所定の閾値以上となっているユーザ端末を、自身の通信状態情報２２ａから削除する。
【００３２】
ステップＳ３４では、他のユーザ端末から受信した通信状態情報、すなわちＲＡＭ１２に格納されている通信相手の通信状態情報２２ｂのいずれかにおいて、通信不可能であると示されているユーザ端末が存在するかどうかを判断し、存在すれば処理はステップＳ３６に進み、存在しなければ処理はステップＳ３８に進む。例えば、ユーザ端末Ａ、ユーザ端末Ｂ、ユーザ端末Ｃ、ユーザ端末Ｄの４台のユーザ端末でゲームシステムが構成されているときに、ユーザ端末Ａから図７Ａのような通信状態情報をユーザ端末Ｃが受信した場合には、この通信状態情報は、ユーザ端末Ａがユーザ端末Ｂと通信不可能であることを示しているので、ユーザ端末ＣにおけるステップＳ３４の判断結果は肯定となる。
【００３３】
ステップＳ３６では、すなわちＲＡＭ１２に格納されている通信相手の通信状態情報２２ｂのいずれかにおいて、通信不可能であると示されているユーザ端末を、自身の通信状態情報２２ａから削除する。上記の例では、ユーザ端末Ｃにおいて、自身の通信状態情報２２ａからユーザ端末Ｂが削除されることになる。
【００３４】
ステップＳ３８では、通信相手リスト２１に含まれている全ての通信相手に、ゲームデータと一緒に自身の通信状態情報２２ａを送信する（ただし、必ずしもゲームデータと一緒に送信する必要はない）。この結果、通信相手リスト２１から自身のユーザ端末が切断しようとしているユーザ端末と他のユーザ端末が切断しようとしているユーザ端末とを削除した、残りのユーザ端末のリストが通信状態情報として通信相手に送信されることになる。ステップＳ３８で通信状態情報を送信し終えると、通信状態情報送信処理を終了して処理は図８のステップＳ１６に進む。
【００３５】
ステップＳ１６では、通信相手から通信状態情報を受信したかどうかを判断し、受信した場合には処理はステップＳ１８に進み、受信していない場合には処理はステップＳ２２に進む。
【００３６】
ステップＳ１８では、通信相手から受信した通信状態情報を、通信相手の通信状態情報２２ｂとしてＲＡＭ１２に上書きする。
【００３７】
ステップＳ２０では、受信した通信状態情報の送信元のユーザ端末に対応するフレームカウンタ２３のカウント値を０にリセットする。
【００３８】
ステップＳ２２では、切断処理を実行する。以下、図１０を参照して、この切断処理の詳細を説明する。
【００３９】
図１０のステップＳ４０で、ＣＰＵ１１は、ＲＡＭ１２に格納されている、通信リスト２１に含まれている各通信相手から受信した通信状態情報を参照し、それらの全ての通信状態情報において共通に通信不可能と示されているユーザ端末が存在するかどうかを判断し、存在する場合には処理はステップＳ４２に進み、存在しなければ切断処理を終了して処理は図８のステップＳ２４に進む。
【００４０】
ステップＳ４２では、ＲＡＭ１２に格納されている全ての通信状態情報において共通に通信不可能と示されているユーザ端末を、通信相手リスト２１から削除する。こうして通信相手リスト２１から削除されたユーザ端末に対しては、以降はゲームデータも通信状態情報も送信されないことになる。ステップＳ４２の処理を終えると切断処理を終了し、処理は図８のステップＳ２３に進む。
【００４１】
ステップＳ２３では、入力部１５からの入力および通信相手から受信したゲームデータに基づいてゲーム処理を実行する。
【００４２】
ステップＳ２４では、ゲームが終了したかどうかを判断し、終了した場合にはメイン処理を終了する。一方、ゲームが終了していない場合には処理はステップＳ１０に戻り、ゲームが終了するまでステップＳ１０〜Ｓ２３の処理を１フレーム期間（６０分の１秒）の周期で繰り返し実行する。
【００４３】
以上のようなユーザ端末１０の動作の結果、あるユーザ端末を切断するときに、通信相手から送信される通信状態情報に基づいて、自身のユーザ端末に接続されている全ての通信相手においてそのユーザ端末を切断する用意ができていることを確認してから切断するので、ユーザ端末間でゲーム処理の結果にズレが生じてしまうことを確実に回避することができる。
【００４４】
なお、以上の説明では、図９のステップＳ３８においてゲームデータと一緒に自身の通信状態情報を毎フレーム送信するとしているが、本発明はこれに限らず、ゲームデータと通信状態情報を個別に送信しても良い。また、ゲームデータおよび通信状態情報を、複数の通信相手に対して順番に送信しても良い。例えばユーザ端末Ａからユーザ端末Ｂにゲームデータおよび通信状態情報を送信し、そこから２フレーム経過後にユーザ端末Ａからユーザ端末Ｃにゲームデータおよび通信状態情報を送信し、そこから２フレーム経過後にユーザ端末Ａからユーザ端末Ｄにゲームデータおよび通信状態情報を送信し、そこから２フレーム後にユーザ端末Ａからユーザ端末Ｂにゲームデータおよび通信状態情報を送信するようにしてもよい。
【００４５】
以下、図１１Ａ〜図２６Ｂを参照して、ユーザ端末Ａ、ユーザ端末Ｂ、ユーザ端末Ｃ、ユーザ端末Ｄの４台のユーザ端末で構成されるゲームシステムにおいて、ユーザ端末Ａとユーザ端末Ｂとの間の通信回線に障害が発生したときの処理の流れを具体的に説明する。なお、ここでは、通信状態情報は２フレーム毎に各通信相手に順番に送信される（つまり送信先が６フレーム期間で一巡する）ものとする。また、データ通信のタイムラグは約１０フレーム期間であると仮定する。
【００４６】
図１１Ａは、第２０４フレームにおけるユーザ端末間の関係を示す図であり、この時点ではまだ通信回線に障害が発生していない。図１１Ｂは、第２０４フレームにおいて各ユーザ端末のＲＡＭに保持されている情報を示す図である。例えば、ユーザ端末Ａに保持されている通信相手リスト２１にはユーザ端末Ｂ、ユーザ端末Ｃ、ユーザ端末Ｄが含まれている。また、ユーザ端末Ａに保持されているフレームカウンタ２３において、ユーザ端末Ｂのカウント値は２、ユーザ端末Ｃのカウント値は０、ユーザ端末Ｄのカウント値は４となっている。また、ユーザ端末Ａには通信相手の通信状態情報２２ｂとしてユーザ端末Ｂの通信状態情報とユーザ端末Ｃの通信状態情報とユーザ端末Ｄの通信状態情報が保持されており、例えばユーザ端末Ｂの通信状態情報にはユーザ端末Ａとユーザ端末Ｃとユーザ端末Ｄが含まれている。また、ユーザ端末Ａに保持されている自身の通信状態情報２２ａには、ユーザ端末Ｂとユーザ端末Ｃとユーザ端末Ｄが含まれている。
【００４７】
第２０４フレームの直後にユーザ端末Ａとユーザ端末Ｂとの間の通信回線に障害が発生すると、第５００フレームにおいてユーザ端末間の接続関係および各ユーザ端末のＲＡＭに保持されている情報は、それぞれ図１２Ａ、図１２Ｂのようになる。第５００フレームでは、ユーザ端末Ｂのフレームカウンタにおけるユーザ端末Ａのカウント値が所定の閾値（３００）を超えるので。ユーザ端末Ｂ（より正確にはユーザ端末ＢのＣＰＵ）は、ユーザ端末Ａと通信不能と判断し、自身の通信状態情報からユーザ端末Ａを削除する。なお、ユーザ端末Ｂの通信状態情報からユーザ端末Ａが削除されたことは、通信状態情報の送信タイミングや通信のタイムラグなどにより、数フレーム〜十数フレーム後に他のユーザ端末に伝わることになる。
【００４８】
第５０２フレームでは、ユーザ端末間の接続関係および各ユーザ端末のＲＡＭに保持されている情報は、それぞれ図１３Ａ、図１３Ｂのようになる。このフレームでは、ユーザ端末Ａのフレームカウンタにおけるユーザ端末Ｂのカウント値が所定の閾値（３００）を超えるので、ユーザ端末Ａは、ユーザ端末Ｂと通信不能と判断し、自身の通信状態情報からユーザ端末Ｂを削除する。
【００４９】
第５１０フレームでは、ユーザ端末間の接続関係および各ユーザ端末のＲＡＭに保持されている情報は、それぞれ図１４Ａ、図１４Ｂのようになる。このフレームでは、ユーザ端末Ｂから送信された通信状態情報がユーザ端末Ｃによって受信される。ユーザ端末Ｃは、ユーザ端末Ｂの通信状態情報からユーザ端末Ａが削除されていることを受けて、自身の通信状態情報からユーザ端末Ａを削除する。
【００５０】
第５１２フレームでは、ユーザ端末間の接続関係および各ユーザ端末のＲＡＭに保持されている情報は、それぞれ図１５Ａ、図１５Ｂのようになる。このフレームでは、ユーザ端末Ｂから送信された通信状態情報がユーザ端末Ｄによって受信される。ユーザ端末Ｄは、ユーザ端末Ｂの通信状態情報からユーザ端末Ａが削除されていることを受けて、自身の通信状態情報からユーザ端末Ａを削除する。
【００５１】
第５１４フレームでは、ユーザ端末間の接続関係および各ユーザ端末のＲＡＭに保持されている情報は、それぞれ図１６Ａ、図１６Ｂのようになる。このフレームでは、ユーザ端末Ａから送信された通信状態情報がユーザ端末Ｃによって受信される。ユーザ端末Ｃは、ユーザ端末Ａの通信状態情報からユーザ端末Ｂが削除されていることを受けて、自身の通信状態情報からユーザ端末Ｂを削除する。
【００５２】
第５１６フレームでは、ユーザ端末間の接続関係および各ユーザ端末のＲＡＭに保持されている情報は、それぞれ図１７Ａ、図１７Ｂのようになる。このフレームでは、ユーザ端末Ａから送信された通信状態情報がユーザ端末Ｄによって受信される。ユーザ端末Ｄは、ユーザ端末Ａの通信状態情報からユーザ端末Ｂが削除されていることを受けて、自身の通信状態情報からユーザ端末Ｂを削除する。
【００５３】
第５２０フレームでは、ユーザ端末間の接続関係および各ユーザ端末のＲＡＭに保持されている情報は、それぞれ図１８Ａ、図１８Ｂのようになる。このフレームでは、ユーザ端末Ｃから送信された通信状態情報がユーザ端末Ｄによって受信される。ユーザ端末Ｄは、ユーザ端末Ｃの通信状態情報からユーザ端末Ａが削除されており、さらに他の通信相手の通信状態情報にもユーザ端末Ａが含まれていないので、図１９Ｂに示すように、通信相手リストからユーザ端末Ａを削除する。この結果、図１９Ａに示すように、ユーザ端末Ａとユーザ端末Ｄが切断される。
【００５４】
第５２２フレームでは、ユーザ端末間の接続関係および各ユーザ端末のＲＡＭに保持されている情報は、それぞれ図２０Ａ、図２０Ｂのようになる。このフレームでは、ユーザ端末Ｃから送信された通信状態情報がユーザ端末Ａによって受信され、ユーザ端末Ｄから送信された通信状態情報がユーザ端末Ｃによって受信される。ユーザ端末Ｃは、ユーザ端末Ｄの通信状態情報からユーザ端末Ａが削除されており、さらに他の通信相手の通信状態情報にもユーザ端末Ａが含まれていないので、図２１Ｂに示すように、通信相手リストからユーザ端末Ａを削除する。この結果、図２１Ａに示すように、ユーザ端末Ａとユーザ端末Ｃが切断される。
【００５５】
第５２４フレームでは、ユーザ端末間の接続関係および各ユーザ端末のＲＡＭに保持されている情報は、それぞれ図２２Ａ、図２２Ｂのようになる。このフレームでは、ユーザ端末Ｃから送信された通信状態情報がユーザ端末Ｂによって受信される。
【００５６】
第５２６フレームでは、ユーザ端末間の接続関係および各ユーザ端末のＲＡＭに保持されている情報は、それぞれ図２３Ａ、図２３Ｂのようになる。このフレームでは、ユーザ端末Ｄから送信された通信状態情報がユーザ端末Ｂによって受信され、ユーザ端末Ｃから送信された通信状態情報がユーザ端末Ｄによって受信される。ユーザ端末Ｄは、ユーザ端末Ｃの通信状態情報からユーザ端末Ｂが削除されており、さらに他の通信相手の通信状態情報にもユーザ端末Ｂが含まれていないので、図２４Ｂに示すように、通信相手リストからユーザ端末Ｂを削除する。この結果、図２４Ａに示すように、ユーザ端末Ｂとユーザ端末Ｄが切断される。
【００５７】
第５２８フレームでは、ユーザ端末間の接続関係および各ユーザ端末のＲＡＭに保持されている情報は、それぞれ図２５Ａ、図２５Ｂのようになる。このフレームでは、ユーザ端末Ｄから送信された通信状態情報がユーザ端末Ｃによって受信される。ユーザ端末Ｃは、ユーザ端末Ｄの通信状態情報からユーザ端末Ｂが削除されており、さらに他の通信相手の通信状態情報にもユーザ端末Ｂが含まれていないので、図２６Ｂに示すように、通信相手リストからユーザ端末Ｂを削除する。この結果、図２６Ａに示すように、ユーザ端末Ｂとユーザ端末Ｃが切断される。
【００５８】
こうして、以降はユーザ端末Ｃとユーザ端末Ｄとの間でゲームが進行することになる。なお、ユーザ端末Ａは、他のユーザ端末から信号を受信することがなくなるので、フレームカウンタにおける各通信相手のカウント値が増え続け、全ての通信相手のカウント値が３００以上となった時点でゲーム処理を終了する。ユーザ端末Ｂについても同様である。
【図面の簡単な説明】
【００５９】
【図１】本発明の好ましい一実施形態としてのネットワークシステムの構成を示す図
【図２】ユーザ端末１０の典型的な構成例
【図３】ＲＡＭ１２のメモリマップの一例
【図４】通信相手リスト２１の一具体例
【図５】通信状態情報２２の一具体例
【図６】フレームカウンタ２３の一具体例
【図７Ａ】通信状態情報２２のデータ構造の第１のバリエーション
【図７Ｂ】通信状態情報２２のデータ構造の第２のバリエーション
【図７Ｃ】通信状態情報２２のデータ構造の第３のバリエーション
【図８】ＣＰＵ１１の処理の流れを示すフローチャート
【図９】通信状態情報送信処理の流れを示すフローチャート
【図１０】切断処理の流れを示すフローチャート
【図１１Ａ】第２０４フレームにおけるユーザ端末間の関係を示す図
【図１１Ｂ】第２０４フレームにおいて各ユーザ端末のＲＡＭに保持されている情報を示す図
【図１２Ａ】第５００フレームにおけるユーザ端末間の関係を示す図
【図１２Ｂ】第５００フレームにおいて各ユーザ端末のＲＡＭに保持されている情報を示す図
【図１３Ａ】第５０２フレームにおけるユーザ端末間の関係を示す図
【図１３Ｂ】第５０２フレームにおいて各ユーザ端末のＲＡＭに保持されている情報を示す図
【図１４Ａ】第５１０フレームにおけるユーザ端末間の関係を示す図
【図１４Ｂ】第５１０フレームにおいて各ユーザ端末のＲＡＭに保持されている情報を示す図
【図１５Ａ】第５１２フレームにおけるユーザ端末間の関係を示す図
【図１５Ｂ】第５１２フレームにおいて各ユーザ端末のＲＡＭに保持されている情報を示す図
【図１６Ａ】第５１４フレームにおけるユーザ端末間の関係を示す図
【図１６Ｂ】第５１４フレームにおいて各ユーザ端末のＲＡＭに保持されている情報を示す図
【図１７Ａ】第５１６フレームにおけるユーザ端末間の関係を示す図
【図１７Ｂ】第５１６フレームにおいて各ユーザ端末のＲＡＭに保持されている情報を示す図
【図１８Ａ】第５２０フレームにおけるユーザ端末間の関係を示す図
【図１８Ｂ】第５２０フレームにおいて各ユーザ端末のＲＡＭに保持されている情報を示す図
【図１９Ａ】第５２０フレームにおけるユーザ端末間の関係を示す他の図
【図１９Ｂ】第５２０フレームにおいて各ユーザ端末のＲＡＭに保持されている情報を示す図
【図２０Ａ】第５２２フレームにおけるユーザ端末間の関係を示す図
【図２０Ｂ】第５２２フレームにおいて各ユーザ端末のＲＡＭに保持されている情報を示す他の図
【図２１Ａ】第５２２フレームにおけるユーザ端末間の関係を示す他の図
【図２１Ｂ】第５２２フレームにおいて各ユーザ端末のＲＡＭに保持されている情報を示す他の図
【図２２Ａ】第５２４フレームにおけるユーザ端末間の関係を示す図
【図２２Ｂ】第５２４フレームにおいて各ユーザ端末のＲＡＭに保持されている情報を示す図
【図２３Ａ】第５２６フレームにおけるユーザ端末間の関係を示す図
【図２３Ｂ】第５２６フレームにおいて各ユーザ端末のＲＡＭに保持されている情報を示す図
【図２４Ａ】第５２６フレームにおけるユーザ端末間の関係を示す他の図
【図２４Ｂ】第５２６フレームにおいて各ユーザ端末のＲＡＭに保持されている情報を示す他の図
【図２５Ａ】第５２８フレームにおけるユーザ端末間の関係を示す図
【図２５Ｂ】第５２８フレームにおいて各ユーザ端末のＲＡＭに保持されている情報を示す図
【図２６Ａ】第５２８フレームにおけるユーザ端末間の関係を示す他の図
【図２６Ｂ】第５２８フレームにおいて各ユーザ端末のＲＡＭに保持されている情報を示す他の図
【図２７】従来のピアツーピア型ゲームシステムにおいて通信障害が発生したときの各ゲーム装置間の関係を示す図
【符号の説明】
【００６０】
１０  ユーザ端末
１１  ＣＰＵ
１２  ＲＡＭ
１３  ハードディスク
１４  通信部
１５  入力部
１６  表示部
２０  ゲームプログラム
２１  通信相手リスト
２２  通信状態情報
２２ａ  自身の通信状態情報
２２ｂ  通信相手の通信状態情報
２３  フレームカウンタ
【図１】
2007130338.tif 000003
【図２】
2007130338.tif 000004
【図３】
2007130338.tif 000005
【図４】
2007130338.tif 000006
【図５】
2007130338.tif 000007
【図６】
2007130338.tif 000008
【図７Ａ】
2007130338.tif 000009
【図７Ｂ】
2007130338.tif 000010
【図７Ｃ】
2007130338.tif 000011
【図８】
2007130338.tif 000012
【図９】
2007130338.tif 000013
【図１０】
2007130338.tif 000014
【図１１Ａ】
2007130338.tif 000015
【図１１Ｂ】
2007130338.tif 000016
【図１２Ａ】
2007130338.tif 000017
【図１２Ｂ】
2007130338.tif 000018
【図１３Ａ】
2007130338.tif 000019
【図１３Ｂ】
2007130338.tif 000020
【図１４Ａ】
2007130338.tif 000021
【図１４Ｂ】
2007130338.tif 000022
【図１５Ａ】
2007130338.tif 000023
【図１５Ｂ】
2007130338.tif 000024
【図１６Ａ】
2007130338.tif 000025
【図１６Ｂ】
2007130338.tif 000026
【図１７Ａ】
2007130338.tif 000027
【図１７Ｂ】
2007130338.tif 000028
【図１８Ａ】
2007130338.tif 000029
【図１８Ｂ】
2007130338.tif 000030
【図１９Ａ】
2007130338.tif 000031
【図１９Ｂ】
2007130338.tif 000032
【図２０Ａ】
2007130338.tif 000033
【図２０Ｂ】
2007130338.tif 000034
【図２１Ａ】
2007130338.tif 000035
【図２１Ｂ】
2007130338.tif 000036
【図２２Ａ】
2007130338.tif 000037
【図２２Ｂ】
2007130338.tif 000038
【図２３Ａ】
2007130338.tif 000039
【図２３Ｂ】
2007130338.tif 000040
【図２４Ａ】
2007130338.tif 000041
【図２４Ｂ】
2007130338.tif 000042
【図２５Ａ】
2007130338.tif 000043
【図２５Ｂ】
2007130338.tif 000044
【図２６Ａ】
2007130338.tif 000045
【図２６Ｂ】
2007130338.tif 000046
【図２７】
2007130338.tif 000047