(57)【要約】【課題】ゲームの進行において各プレイヤが受ける有利不利の偏りが生じない通信ゲームシステムを提供する。【解決手段】本発明は、複数のゲーム装置を接続することによって単一のゲームを複数のプレイヤでプレイすることが可能な通信ゲームシステムである。各ゲーム装置は、親判定データ記憶手段と、親判定手段と、親処理実行手段と、子処理実行手段と、親判定データ更新手段とを備えている。親判定データ記憶手段は、自機が親機であるか否かを示すための親判定データを記憶する。親判定手段は、親判定データに基づいて自機が親機であるか否かを判定する。親処理実行手段は、親処理を実行する。子処理実行手段は、子処理を実行する。以上によって、各ゲーム装置のプレイヤが受ける有利不利の偏りが生じず、公平にゲームをプレイすることができる。【選択図】        図５
2004174091.tif 000002
【特許請求の範囲】
【請求項１】
複数のゲーム装置を接続することによって単一のゲームを複数のプレイヤでプレイすることが可能な通信ゲームシステムであって、
各前記ゲーム装置は、
自機が親機であるか否かを示すための親判定データを記憶する親判定データ記憶手段と、
前記親判定データに基づいて自機が親機であるか否かを判定する親判定手段と、
自機が親機である場合、ゲーム装置の状態を示す状態データに基づいて、前記複数のゲーム装置がゲーム処理で共通に使用するデータを生成するための親処理を実行する親処理実行手段と、
前記複数のゲーム装置のいずれかにおいて実行された親処理の結果に基づいて各ゲーム装置に個別の子処理を実行する子処理実行手段と、
親処理と子処理とからなる処理サイクルが所定回数実行される度に、各ゲーム装置が順番に親機となるように前記親判定データを更新する親判定データ更新手段とを備え、
前記親処理実行手段は、
親処理を実行するための前記状態データを前記各ゲーム装置から取得する状態データ取得手段と、
前記状態データ取得手段によって取得された状態データに基づいて親処理を実行し、当該親処理の結果を示す結果データを生成する結果データ生成手段と、
前記結果データ生成手段によって生成された結果データを、自機を含む各ゲーム装置へ送信する結果データ送信手段とを含み、
前記子処理実行手段は、親機から送信された結果データに基づいて、子処理を実行する、通信ゲームシステム。
【請求項２】
前記状態データ取得手段は、
自機を含む各ゲーム装置に対して、状態データの送信を要求する送信要求手段と、
当該各ゲーム装置から送信されてくる状態データを受信する状態データ受信手段とを含み、
各前記ゲーム装置は、親機からの送信要求に応じて自機の状態データを送信する状態データ送信手段をさらに備える、請求項１に記載の通信ゲームシステム。
【請求項３】
前記通信ゲームシステムにおいては、親機が最初にデータを送信した後、各子機が順番にデータを送信し、
前記親判定データは、親であるか否かを示すとともに、子機がデータを送信する順番を示すデータであり、
前記親判定データ更新手段は、親機から送信されてくるデータに基づいて前記親判定データを更新する、請求項１に記載の通信ゲームシステム。
【請求項４】
前記親判定データ更新手段は、前記処理サイクルが実行される度に前記親判定データを更新し、
前記親判定手段は、前記処理サイクルが実行される度に、自機が親機であるか否かを前記親判定データに基づいて判定する、請求項１に記載の通信ゲームシステム。
【請求項５】
親機以外のゲーム装置は、親機であるゲーム装置がデータを送信したことに応じてのみ、データを送信することが可能であることを特徴とする、請求項１に記載の通信ゲームシステム。
【請求項６】
他のゲーム装置とデータの送受信を行うための通信手段を有し、他のゲーム装置と接続することによって通信ゲームシステムを構成することが可能なゲーム装置であって、
自機が親機であるか否かを示すための親判定データを記憶する親判定データ記憶手段と、
前記親判定データに基づいて自機が親機であるか否かを判定する親判定手段と、
自機が親機である場合、ゲーム装置の状態を示す状態データに基づいて、前記ゲームシステムを構成する複数のゲーム装置がゲーム処理で共通に使用するデータを生成するための親処理を実行する親処理実行手段と、
前記複数のゲーム装置のいずれかにおいて実行された親処理の結果に基づいて各ゲーム装置に個別の子処理を実行する子処理実行手段と、
親処理と子処理とからなる処理サイクルが所定回数実行される度に、各ゲーム装置が順番に親機となるように前記親判定データを更新する親判定データ更新手段とを備え、
前記親処理実行手段は、
親処理を実行するための前記状態データを前記各ゲーム装置から取得する状態データ取得手段と、
前記状態データ取得手段によって取得された状態データに基づいて親処理を実行し、当該親処理の結果を示す結果データを生成する結果データ生成手段と、
前記結果データ生成手段によって生成された結果データを、自機を含む各ゲーム装置へ送信する結果データ送信手段とを含み、
前記子処理実行手段は、親機から送信された結果データに基づいて、子処理を実行する、ゲーム装置。
【請求項７】
前記通信ゲームシステムにおいては、親機が最初にデータを送信した後、各子機が順番にデータを送信し、
前記親判定データは、親であるか否かを示すとともに、子機がデータを送信する順番を示すデータであり、
前記親判定データ更新手段は、親機から送信されてくるデータに基づいて前記親判定データを更新する、請求項６に記載のゲーム装置。
【請求項８】
他機とデータの送受信を行うための通信手段を有し、他機と接続することによって通信ゲームシステムを構成することが可能なゲーム装置に、
自機が親機であるか否かを示すための親判定データに基づいて、自機が親機であるか否かを判定する親判定ステップと、
自機が親機である場合、ゲーム装置の状態を示す状態データに基づいて、前記通信ゲームシステムを構成する複数のゲーム装置がゲーム処理で共通に使用するデータを生成するための親処理を実行する親処理実行ステップと、
前記複数のゲーム装置のいずれかにおいて実行された親処理の結果に基づいて各ゲーム装置に個別の子処理を実行する子処理実行ステップと、
親処理と子処理とからなる処理サイクルが所定回数実行される度に、各ゲーム装置が順番に親機となるように前記親判定データを更新する親判定データ更新ステップとを実行させるためのコンピュータ読み取り可能なゲームプログラムであって、
前記親処理実行ステップは、
親処理を実行するための前記状態データを前記各ゲーム装置から取得する状態データ取得ステップと、
前記状態データ取得ステップにおいて取得された状態データに基づいて親処理を実行し、当該親処理の結果を示す結果データを生成する結果データ生成ステップと、
前記結果データ生成ステップにおいて生成された結果データを、自機を含む各ゲーム装置へ送信する結果データ送信ステップとを含み、
前記子処理実行ステップは、親機から送信された結果データに基づいて、子処理を実行する、ゲームプログラム。
【請求項９】
前記状態データ取得ステップは、
自機を含む各ゲーム装置に対して、状態データの送信を要求する送信要求ステップと、
当該各ゲーム装置から送信されてくる状態データを受信する状態データ受信ステップとを含み、
親機からの送信要求に応じて自機の状態データを送信する状態データ送信ステップをさらにゲーム装置に実行させるための、請求項８に記載のゲームプログラム。
【請求項１０】
前記通信ゲームシステムにおいては、親機が最初にデータを送信した後、各子機が順番にデータを送信し、
前記親判定データは、親であるか否かを示すとともに、子機がデータを送信する順番を示すデータであり、
前記親判定データ更新ステップは、親機から送信されてくるデータに基づいて前記親判定データを更新する、請求項８に記載のゲームプログラム。
【請求項１１】
前記親判定データ更新ステップは、前記処理サイクルが実行される度に前記親判定データを更新し、
前記親判定ステップは、前記処理サイクルが実行される度に、自機が親機であるか否かを前記親判定データに基づいて判定する、請求項８に記載のゲームプログラム。
【請求項１２】
親機以外のゲーム装置は、親機であるゲーム装置がデータを送信したことに応じてのみ、データを送信することが可能であることを特徴とする、請求項８に記載のゲームプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は通信ゲームシステムに関し、より特定的には、ゲームシステムを構成するゲーム装置自身がサーバとして動作する通信ゲームシステムに関する。
【０００２】
【従来の技術】
従来から、複数のゲーム装置（パソコンを含む）を接続することによって単一のゲームを複数のプレイヤがプレイする通信ゲームシステムがある。このような通信ゲームシステムを構成するための形態として、特別なサーバを用意することなく、各プレイヤが使用するゲーム装置のみを接続する形態が考えられる。さらに、このような形態のシステムとしては、システムを構成するゲーム装置のいずれかがサーバ（親機）としての機能を果たし、それ以外のゲーム装置がクライアント（子機）としての機能を果たすシステムがある（例えば、非特許文献１参照。）。かかるシステムでは、例えば、親機は、各子機から所定の情報（例えば、操作データ等）を集め、当該所定の情報に基づいて、親機および子機に共通のゲーム処理を行う。このゲーム処理の処理結果が各子機に返され、親機および各子機は、当該処理結果に基づいて各ゲーム装置ごとのゲーム処理（例えば、処理結果を反映したゲーム画像の生成および表示処理）を行う。
【０００３】
ところで、通信ゲームシステムの各ゲーム装置間で行われる通信の方法には、種々の方法がある。例えば、各ゲーム装置がデータを送信する順番を予め設定しておく方法がある（例えば、特許文献１参照。）。この方法では、１番目にデータを送信するゲーム装置が他のゲーム装置へデータを送信した後、２番目、３番目のゲーム装置が順番にデータを送信する。このような通信ゲームシステムにおいては、１番目のゲーム装置によって通信が管理される。つまり、１番目のゲーム装置が通信を開始しない限り、他のゲーム装置はデータ送信を行うことができない。また、親機によって通信が管理されているようなゲームシステムには、各子機の処理状況とは無関係に親機が通信を開始するようなシステムがある。
【０００４】
【特許文献１】
特開２００２−１８６７８５号公報（段落番号００６２〜００６３）
【非特許文献１】
“Ｎｅｔｗｏｒｋ  Ｇａｍｅ  基礎知識／サーバプログラム”、２００１年３月３１日、スミスプロジェクト、［２００２年１１月２２日検索］、インターネット＜ＵＲＬ：ｈｔｔｐ：／／ｗｗｗ．ｓｍｉｔｈ−ｐｒｏｊｅｃｔ．ｊｐ／ｍａｉｎ／ｈｓｐ／ｈｓｐ０９．ｈｔｍｌ＞
【０００５】
【発明が解決しようとする課題】
上述したような、ゲーム装置のいずれかがサーバ（親機）としての機能を果たすゲームシステムにおいては、親機は、各ゲーム装置に共通するゲーム処理を行い、各ゲーム装置（親機を含む）は、当該ゲーム処理の結果に基づいた処理を行う。このとき、親機によって通信が管理されているような通信方法が用いられる通信ゲームシステムでは、以下のような問題が生じるおそれがある。
【０００６】
図８は、従来の通信ゲームシステムにおけるゲーム処理のタイミングを示す図である。図８では、４台のゲーム装置（ゲーム装置Ａ、Ｂ、ＣおよびＤ）によってゲームシステムが構成されている。ここでは、ゲーム装置Ａが親機であり、ゲーム装置Ｂ〜Ｄが子機である。図８に示すように、親機（ゲーム装置Ａ）は、各子機（ゲーム機Ｂ〜Ｄ）から操作データ（キーデータ）を集め（Ｓ９１）、当該操作データに基づいて所定のゲーム処理（親処理）を行う（Ｓ９２）。Ｓ９２の親処理は、ゲームシステムを構成するすべてのゲーム装置に共通の処理である。親処理の結果は、各子機に送信され（Ｓ９３）、各ゲーム装置において実行される処理（子処理）のために用いられる。つまり、ゲーム装置Ａ〜Ｄは、それぞれ、親処理の結果に基づいて子処理を行う（Ｓ９４ａ、Ｓ９４ｂ、Ｓ９４ｃおよびＳ９４ｄ）。
【０００７】
Ｓ９４において各ゲーム装置で実行される子処理は、例えば、親処理の結果に基づいたゲームの表示画面を生成する等であるが、子処理としては、各ゲーム装置ごとに別々の処理を行うことが好ましい。例として、親処理の結果に基づいたゲーム画像の生成および表示処理を子処理として行う場合を考えると、各ゲーム装置は、自機のゲーム状況に応じた別個のゲーム画像を生成することによって、より娯楽性の高いゲームを提供することができる。例えば、全てのゲーム装置の画面に同じゲーム画像が表示されるよりも、各ゲーム装置の画面に各プレイヤが操作するプレイヤキャラクタの視点からみたゲーム画像が表示される方が、プレイヤがゲームの臨場感をより味わえ、ゲームがより面白くなる。また、大きな（１画面では表示しきれない）ゲーム世界の中を各プレイヤキャラクタが自由に移動するようなゲームであれば、全てのゲーム装置で同じ表示画面にすることは、現実的に不可能である。
【０００８】
以上の観点から、各ゲーム装置ごとに別々の処理を行う場合を考えると、子処理に要する処理時間は、各ゲーム装置によって異なることになる（図８参照）。例えば、親処理の結果に基づいたゲーム画像の生成および表示処理を子処理として行う場合、子処理に要する処理時間は、ゲーム画像の内容によって異なることがある。従って、各ゲーム装置においてゲーム画像を生成・表示するために必要となる処理時間は異なってしまう。以上のように、各ゲーム装置において子処理に要する処理時間は同一ではなく、その結果、各ゲーム装置において子処理が終了するタイミングはばらばらになる。
【０００９】
ここで、上述したような、親機が各子機の処理状況とは無関係に通信を開始するシステムにおいては、親機は、全ゲーム装置において子処理が終了したことを待たずに次の処理を開始してしまうことがある。すなわち、全ての子処理の終了を待ってから次の親処理を開始すると、次の親処理を開始するまでに非常に時間がかかることによってゲームの面白さを損なってしまう場合、子処理の終了を待たずに親処理を開始する必要がある。特に、親機から送信されるデータ（親処理の結果のデータ）が非常に大きい場合には、子機で行われる子処理の終了が親機で行われる子処理よりも大きく遅れてしまうことが考えられ、このような場合、全ての子処理の終了を待っていると、次の親処理の開始が非常に遅れてしまう。以上を考慮して、親機が全ゲーム装置における子処理の終了を待たない場合を考えると、図８においては、親機は、自機の子処理（Ｓ９４ａ）が終了すると、次の親処理（Ｓ９６）のために各子機に対して新たなキーデータを要求してしまう。図８においては、ゲーム装置ＢおよびＤでは子処理（Ｓ９４ｂおよびＳ９４ｄ）がまだ終了していないのに、親機がキーデータを取得してしまう（Ｓ９５）。このため、ゲーム装置Ｂのプレイヤおよびゲーム装置Ｄのプレイヤは、ゲーム進行上、不利を受けてしまう。以下、これらのプレイヤが不利となってしまう具体例を説明する。
【００１０】
例えば、子処理として、親処理の結果を画面に表示する処理が行われる場合を考える。ゲーム装置Ａおよびゲーム装置Ｃでは子処理（Ｓ９４ａおよびＳ９４ｃ）が終了しているので、ゲーム装置Ａのプレイヤおよびゲーム装置Ｃのプレイヤは、Ｓ９４の子処理によって表示されたゲーム画像に応じた操作を行うことができる。つまり、Ｓ９５の時点で、ゲーム装置Ａのプレイヤおよびゲーム装置Ｃのプレイヤは、Ｓ９２の親処理の結果が反映されたゲーム画像を見ることができ、そのゲーム画像に応じてゲーム操作をすることができる。
【００１１】
一方、ゲーム装置Ｂおよびゲーム装置Ｄでは子処理（Ｓ９４ｂおよびＳ９４ｄ）が終了していないので、ゲーム装置Ｂのプレイヤおよびゲーム装置Ｄのプレイヤは、Ｓ９４の子処理によって表示されたゲーム画像に応じて、ゲーム操作を行うことができない。つまり、Ｓ９５の時点で、ゲーム装置Ｂのプレイヤおよびゲーム装置Ｄのプレイヤは、Ｓ９２の親処理の結果が反映されたゲーム画像を見ることができない。従って、ゲーム装置Ｂのプレイヤおよびゲーム装置Ｄのプレイヤは、ゲーム装置Ａのプレイヤおよびゲーム装置Ｃのプレイヤよりも、親処理の結果が反映されたゲーム画像に対する反応が遅くなってしまい、操作が遅れてしまうので、ゲームの進行上不利である。
【００１２】
以上のような不利をどのプレイヤが受けるかは、各プレイヤが使用するゲーム装置が子処理に要した時間によって決まる。子処理に要する時間は、ゲームの内容やそのときのゲーム状況によって変化するので、特定のプレイヤが常に不利を受けるというわけではない。しかし、親機を使用するプレイヤは、親機が子処理を行うのに時間を要した場合でも不利を受けない。なぜなら、親機によって通信が管理されており、親機は自機の都合のよいタイミングで通信を行うことができるからである。つまり、親機は、自機が子処理を終了した後、キーデータを取得するので、親機のプレイヤは、親処理の結果が反映されたゲーム画像を必ず見ることができ、そのゲーム画像に応じてゲーム操作をすることができる。
【００１３】
以上より、従来の通信ゲームシステムにおいては、親機のプレイヤのみが上述した不利を受けないことから、結果として、親機のプレイヤが他のプレイヤよりも有利になってしまう。これによって、複数のプレイヤが同時に１つのゲーム楽しむという通信ゲームの面白みが半減してしまう。
【００１４】
それ故に、本発明の目的は、ゲームの進行において各プレイヤが受ける有利不利の偏りが生じない通信ゲームシステムを提供することである。
【００１５】
【課題を解決するための手段および発明の効果】
この発明は、上記の目的を達成するために、次のように構成される。
すなわち、請求項１に記載の発明は、複数のゲーム装置（後述の実施形態との対応関係を示せば、例えばゲーム装置１０である。以下同様にかっこ内に実施形態との対応関係を示す。）を接続することによって単一のゲームを複数のプレイヤでプレイすることが可能な通信ゲームシステムである。各ゲーム装置は、親判定データ記憶手段（ワークＲＡＭ２６）と、親判定手段（Ｓ１２を実行するＣＰＵ２１。以下、単にステップ番号のみを示す。）と、親処理実行手段（Ｓ１３およびＳ１５〜Ｓ１７、親処理プログラム２６１ｃを実行するＣＰＵ２１）と、子処理実行手段（Ｓ１８およびＳ２０、子処理プログラム２６１ｄを実行するＣＰＵ２１）と、親判定データ更新手段（Ｓ２２）とを備えている。親判定データ記憶手段は、自機が親機であるか否かを示すための親判定データ（２６２ｃ）を記憶する。親判定手段は、親判定データに基づいて自機が親機であるか否かを判定する。親処理実行手段は、自機が親機である場合、親処理（Ｓ３２）を実行する。親処理とは、ゲーム装置の状態を示す状態データに基づいて、複数のゲーム装置がゲーム処理で共通に使用するデータを生成するための処理である。子処理実行手段は、子処理（Ｓ３４ａ〜Ｓ３４ｄ）を実行する。子処理とは、複数のゲーム装置のいずれかにおいて実行された親処理の結果に基づいて実行される、各ゲーム装置に個別の処理である。親判定データ更新手段は、親処理と子処理とからなる処理サイクルが所定回数実行される度に、各ゲーム装置が順番に親機となるように親判定データを更新する。また、親処理実行手段は、状態データ取得手段（Ｓ１３およびＳ１５）と、結果データ生成手段（Ｓ１６）と、結果データ送信手段（Ｓ１７）とを含んでいる。状態データ取得手段は、親処理を実行するための状態データを各ゲーム装置から取得する。結果データ生成手段は、状態データ取得手段によって取得された状態データに基づいて親処理を実行し、当該親処理の結果を示す結果データを生成する。結果データ送信手段は、結果データ生成手段によって生成された結果データを、自機を含む各ゲーム装置へ送信する。また、子処理実行手段は、親機から送信された結果データに基づいて、子処理を実行する。
【００１６】
上記の発明によれば、処理サイクルが所定の回数実行される度に、親機が順番に変更される。従って、各ゲーム装置に対して均等に親処理を実行する機会が与えられる。各ゲーム装置のプレイヤは、親機を用いてゲームをプレイすることによる有利さを、公平に受けることになるので、ゲームの進行において各プレイヤが受ける有利不利の偏りが生じない。従って、複数のゲーム装置を接続することによって複数のプレイヤが同時にゲームをプレイする通信ゲームシステムの楽しみが、十分に発揮される。
【００１７】
請求項２の発明は、請求項１に記載の通信ゲームシステムであって、状態データ取得手段は、送信要求手段（Ｓ１３）と、状態データ受信手段（Ｓ１５）とを含んでいる。送信要求手段は、自機を含む各ゲーム装置に対して、状態データの送信を要求する。状態データ受信手段は、当該各ゲーム装置から送信されてくる状態データを受信する。ここで、各ゲーム装置は、状態データ送信手段（Ｓ１９）をさらに備えている。状態データ送信手段は、親機からの送信要求に応じて自機の状態データを送信する。
【００１８】
請求項３の発明は、請求項１に記載の通信ゲームシステムであって、親機が最初にデータを送信した後、各子機が順番にデータを送信する。ここで、親判定データは、親であるか否かを示すとともに、子機がデータを送信する順番を示すデータである。このとき、親判定データ更新手段は、親機から送信されてくるデータに基づいて親判定データを更新する。
【００１９】
上記の発明によれば、親機判定データは親機から送信されてくるデータに基づいて更新されるので、親機がデータを送信した後に子機がデータを送信する順番が決まっているシステムにおいて、親機の変更に合わせて子機の順番を自動的に設定することができる。
【００２０】
請求項４の発明は、請求項１に記載の通信ゲームシステムであって、親判定データ更新手段は、処理サイクルが実行される度に親判定データを更新する。また、親判定手段は、処理サイクルが実行される度に、自機が親機であるか否かを親判定データに基づいて判定する。
【００２１】
上記の発明によれば、処理サイクル１回実行される度に親機が変更される。従って、例えば、結果データを受け取ったことに応じて親判定データを変更したり、子処理が終了したことに応じて親判定データを変更する等、１回の処理サイクルつき１回実行される処理に応じて親判定データを変更することができる。そのため、親判定データの変更処理を容易に行い、不利を受ける状況をより頻繁に分散させることができる。
【００２２】
請求項５の発明は、請求項１に記載の通信ゲームシステムであって、親機以外のゲーム装置は、親機であるゲーム装置がデータを送信したことに応じてのみ、データを送信することが可能であることを特徴とする。
【００２３】
請求項６の発明は、他のゲーム装置とデータの送受信を行うための通信手段を有し、他のゲーム装置と接続することによって通信ゲームシステムを構成することが可能なゲーム装置（ゲーム装置１０）である。ゲーム装置は、親判定データ記憶手段（ワークＲＡＭ２６）と、親判定手段（Ｓ１２）と、親処理実行手段（Ｓ１３およびＳ１５〜Ｓ１７、親処理プログラム２６１ｃを実行するＣＰＵ２１）と、子処理実行手段（Ｓ１８およびＳ２０、子処理プログラム２６１ｄを実行するＣＰＵ２１）と、親判定データ更新手段（Ｓ２２）とを備えている。親判定データ記憶手段は、自機が親機であるか否かを示すための親判定データ（２６２ｃ）を記憶する。親判定手段は、親判定データに基づいて自機が親機であるか否かを判定する。親処理実行手段は、自機が親機である場合、親処理（Ｓ３２）を実行する。親処理とは、ゲーム装置の状態を示す状態データに基づいて、前記ゲームシステムを構成する複数のゲーム装置がゲーム処理で共通に使用するデータを生成するための処理である。子処理実行手段は、子処理（Ｓ３４ａ〜Ｓ３４ｄ）を実行する。子処理とは、複数のゲーム装置のいずれかにおいて実行された親処理の結果に基づいて実行される、各ゲーム装置に個別の処理である。親判定データ更新手段は、親処理と子処理とからなる処理サイクルが所定回数実行される度に、各ゲーム装置が順番に親機となるように親判定データを更新する。また、親処理実行手段は、状態データ取得手段（Ｓ１３およびＳ１５）と、結果データ生成手段（Ｓ１６）と、結果データ送信手段（Ｓ１７）とを含んでいる。状態データ取得手段は、親処理を実行するための状態データを各ゲーム装置から取得する。結果データ生成手段は、状態データ取得手段によって取得された状態データに基づいて親処理を実行し、当該親処理の結果を示す結果データを生成する。結果データ送信手段は、結果データ生成手段によって生成された結果データを、自機を含む各ゲーム装置へ送信する。また、子処理実行手段は、親機から送信された結果データに基づいて、子処理を実行する。
【００２４】
請求項７の発明は、請求項６に記載のゲーム装置であって、通信ゲームシステムにおいては、親機が最初にデータを送信した後、各子機が順番にデータを送信する。ここで、親判定データは、親であるか否かを示すとともに、子機がデータを送信する順番を示すデータである。このとき、親判定データ更新手段は、親機から送信されてくるデータに基づいて親判定データを更新する。
【００２５】
請求項８の発明は、他機とデータの送受信を行うための通信手段を有し、他機と接続することによって通信ゲームシステムを構成することが可能なゲーム装置に、次のステップを実行させるためのコンピュータ読み取り可能なゲームプログラム（２６１ａ〜２６１ｄ）である。すなわち、ゲームプログラムは、親判定ステップ（Ｓ１２）と、親処理実行ステップ（Ｓ１３およびＳ１５〜Ｓ１７）と、子処理実行ステップ（Ｓ１８およびＳ２０）と、親判定データ更新ステップ（Ｓ２２）とを実行させる。親判定ステップでは、自機が親機であるか否かを示すための親判定データ（２６２ｃ）に基づいて、自機が親機であるか否かが判定される。親処理実行ステップでは、自機が親機である場合、親処理（Ｓ３２）が実行される。親処理とは、ゲーム装置の状態を示す状態データに基づいて、前記通信ゲームシステムを構成する複数のゲーム装置がゲーム処理で共通に使用するデータを生成するための処理である。子処理実行ステップでは、複数のゲーム装置のいずれかにおいて実行された親処理の結果に基づいて各ゲーム装置に個別の子処理（Ｓ３４ａ〜Ｓ３４ｄ）が実行される。親判定データ更新ステップでは、親処理と子処理とからなる処理サイクルが所定回数実行される度に、各ゲーム装置が順番に親機となるように親判定データが更新される。また、親処理実行ステップは、状態データ取得ステップ（Ｓ１３およびＳ１５）と、結果データ生成ステップ（Ｓ１６）と、結果データ送信ステップ（Ｓ１７）とを含んでいる。状態データ取得ステップでは、親処理を実行するための状態データが各ゲーム装置から取得される。結果データ生成ステップでは、状態データ取得ステップにおいて取得された状態データに基づいて親処理を実行し、当該親処理の結果を示す結果データが生成される。結果データ送信ステップでは、結果データ生成ステップにおいて生成された結果データが、自機を含む各ゲーム装置へ送信される。また、子処理実行ステップでは、親機から送信された結果データに基づいて、子処理が実行される。
【００２６】
請求項９の発明は、請求項８に記載のゲームプログラムであって、状態データ取得ステップは、送信要求ステップ（Ｓ１３）と、状態データ受信ステップ（Ｓ１５）とを含んでいる。送信要求ステップは、自機を含む各ゲーム装置に対して、状態データの送信を要求する。状態データ受信ステップは、当該各ゲーム装置から送信されてくる状態データを受信する。ここで、ゲームプログラムは、状態データ送信ステップ（Ｓ１９）をさらにゲーム装置に実行させるためのものである。状態データ送信ステップは、親機からの送信要求に応じて自機の状態データを送信する。
【００２７】
請求項１０の発明は、請求項８に記載のゲームプログラムであって、親機が最初にデータを送信した後、各子機が順番にデータを送信する。ここで、親判定データは、親であるか否かを示すとともに、子機がデータを送信する順番を示すデータである。このとき、親判定データ更新ステップは、親機から送信されてくるデータに基づいて親判定データを更新する。
【００２８】
請求項１１の発明は、請求項８に記載のゲームプログラムであって、親判定データ更新ステップは、処理サイクルが実行される度に親判定データを更新する。また、親判定ステップは、処理サイクルが実行される度に、自機が親機であるか否かを親判定データに基づいて判定する。
【００２９】
請求項１２の発明は、請求項８に記載のゲームプログラムであって、親機以外のゲーム装置は、親機であるゲーム装置がデータを送信したことに応じてのみ、データを送信することが可能であることを特徴とする。
【００３０】
【発明の実施の形態】
図１は、本発明の一実施形態に係る通信ゲームシステムの全体構成を示す図である。本実施形態においては、４台のゲーム装置（ゲーム装置１０ａ、１０ｂ、１０ｃおよび１０ｄ）によって、通信ゲームシステムが構成されている。各ゲーム装置は、３本のケーブル（ケーブル２７ａ、２７ｂおよび２７ｃ）によって接続される。なお、４台のゲーム装置１０ａ〜１０ｄは、いずれも同一の構成である。従って、これらのゲーム装置を特に区別する必要がない場合は、ゲーム装置１０のように符号を付して説明する。ケーブル２７ａ〜２７ｃについてもゲーム装置１０ａ〜１０ｄと同様に、ケーブル２７のように符号を付して説明することがある。また、理解を容易にするため、ゲーム装置１０ａ〜１０ｄを、それぞれ、ゲーム装置Ａ、ゲーム装置Ｂ、ゲーム装置Ｃ、ゲーム装置Ｄと呼ぶこともある。
【００３１】
本通信ゲームシステムにおいては、４台のゲーム装置１０ａ〜１０ｄのうち１台が、親機（サーバ）の役割を果たす。すなわち、４台のうち１台のゲーム装置が、４台のゲーム装置１０ａ〜１０ｄの個々のゲーム処理（子処理）で共通に用いられるデータを生成するためのゲーム処理（親処理）を行う。また、各ゲーム装置１０ａ〜１０ｄは、親処理の結果に基づいて子処理を行う。子処理は、各ゲーム装置１０ａ〜１０ｄが個別に実行する。つまり、ゲーム装置Ａは、ゲーム装置Ａの子処理を行い、ゲーム装置Ｂは、ゲーム装置Ｂの子処理を行う。ゲーム装置Ｃおよびゲーム装置Ｄについても同様である。ここで、親機に設定されているゲーム装置以外のゲーム装置を、子機と呼ぶ。例えば、ゲーム装置Ａが親機である場合、ゲーム装置Ｂ〜Ｄは子機である。また、本発明の特徴として、４台のゲーム装置は、親機の役割を順番に交代する。つまり、親機の役割は、４台のゲーム装置を順番に回される。
【００３２】
また、親機は、通信ゲームシステムにおける各ゲーム装置間の通信を管理する。すなわち、親機が通信を開始し、当該通信が終了した後に、子機は自機のデータを送信することができる。換言すれば、親機が通信を開始しない限り、子機は自機のデータを送信することができない。このように、本実施形態においては、通信ゲームシステムにおける各ゲーム装置間の通信は、親機の主導で行われる。
【００３３】
なお、ケーブル２７は、両端のコネクタ（図示せず）に加え、中央付近にコネクタ２８を有している。本通信ゲームシステムにおいては、このコネクタ２８を用いて、３本のケーブル２７によって４台のゲーム装置Ａ〜Ｄを接続することが可能である。ここで、図１に示すように、本通信ゲームシステムにおいては、ケーブル２７によって接続される各ゲーム装置Ａ〜Ｄの接続関係は、同じではない。例えば、ゲーム装置Ａはケーブル２７ａによってゲーム装置Ｂと接続されているのに対して、ゲーム装置Ｃは、（ゲーム装置ではなく）ケーブル２７ａのコネクタ２８ａと接続されている。このような接続関係に基づいて、各ゲーム装置は、親の順番を予め決定することができる。以下、具体例を説明する。
【００３４】
本実施形態においては、ケーブル２７の両端に接続されるゲーム装置（図１では、ゲーム装置ＡおよびＢ）のいずれか一方が最初（１番目）に親機となり、他方が２番目に親機となる。なお、１番目と２番目となるゲーム装置については接続関係が同じであるので、予め条件を定めておく。ここでは、ゲーム装置Ａを１番目とし、ゲーム装置Ｂを２番目とする。さらに、ゲーム装置Ａとゲーム装置Ｂとを接続するケーブル２７ａのコネクタ２８ａと接続されるゲーム装置Ｃを、３番目とする。また、３番目のゲーム装置Ｃとコネクタ２８ａとを接続するケーブル２７ｂのコネクタ２８ｂと接続されるゲーム装置Ｄを、４番目とする。以上によって、本実施形態においては、親機となる順番は、ゲーム装置Ａ、ゲーム装置Ｂ、ゲーム装置Ｃ、ゲーム装置Ｄの順番に一意に定められる。
【００３５】
なお、各ゲーム装置１０が親機となる順番は、各ゲーム装置の接続関係によって定められる他、どのような方法によって定められてもよい。例えば、ゲーム装置が接続された際にデータ通信を行い、所定の条件に従い順番を定めるようにしてもよい。
【００３６】
図２は、本実施形態に係るゲーム装置１０の概観を示す図である。ゲーム装置１０は、ユーザが把持するためのハウジング１１を含む。ハウジング１１の一方主面（図示の表面）には、液晶ディスプレイ（以下「ＬＣＤ」という。）１２が設けられるとともに、ＬＣＤ１２の外側の空き領域にスピーカ１６が設けられ、ＬＣＤ１２を挟んで操作スイッチが設けられる。操作スイッチ（図３に示す操作スイッチ１３）は、プレイヤがゲーム操作のための操作信号を入力するためのスイッチ（ボタン）である。操作スイッチの内、方向指示ボタン（十字キー）１３１、スタートボタン１３２およびセレクトボタン１３３がＬＣＤ１２の左側に配置される。また、操作スイッチの内、Ａボタン１３ａおよびＢボタン１３ｂがＬＣＤ１２右側に配置される。さらに、Ｒボタン１３ＲおよびＬボタン１３Ｌがハウジング１１の上部側面の左右に配置される。方向指示ボタン１３１は、例えば、プレイヤキャラクタの移動方向の指示に用いられる。Ａボタン１３ａ、Ｂボタン１３ｂ、Ｒボタン１３ＲおよびＬボタン１３Ｌは、例えば、プレイヤキャラクタの動作指示（ジャンプ、蹴る、投げる等）に主に用いられる。また、スタートボタン１３２は、例えば、ゲームスタートの指示に用いられる。セレクトボタン１３３は、例えば、画面に表示されたメニューの選択等に用いられる。
【００３７】
さらに、ゲーム装置１０の右側面には、ケーブル２７を接続するためのコネクタ１５が設けられる。また、ゲーム装置１０の背面上部には、ゲームカートリッジ（以下、「カートリッジ」という）３０を着脱自在に装着するためのカートリッジ挿入孔（図示せず）が形成される。カートリッジ３０は、半導体メモリ等（図２に示すプログラムＲＯＭ３１およびバックアップＲＡＭ３２）を内蔵している。
【００３８】
図３は、本実施形態に係る通信ゲームシステムの詳細な構成を示すブロック図である。ゲーム装置１０ａには、ＣＰＵ２１が含まれる。ＣＰＵ２１には、操作スイッチ１３、ＬＣＤドライバ２２、サウンド発生回路２３、通信用インターフェース２４、表示用ＲＡＭ２５、およびワークＲＡＭ２６が接続される。通信用インターフェース２４には、コネクタ１５が接続される。コネクタ１５に接続されるケーブル２７によって、ゲーム装置１０は他のゲーム装置と接続される。ＬＣＤドライバ２２には、ＬＣＤ（ＬＣＤ  ＰＡＮＥＬ）１２が接続される。サウンド発生回路２３には、スピーカ１６が接続される。また、ゲームの開始に先立って、所望のカートリッジ３０が装着される。プレイヤは、カートリッジ３０を交換することによって、所望のゲームソフトをプレイすることができる。なお、図３においては、ゲーム装置１０ａのみの詳細を示したが、他のゲーム装置１０ｂ〜１０ｄの構成もゲーム装置１０ａと同様である。
【００３９】
ＣＰＵ２１は、装着されたカートリッジ３０のプログラムＲＯＭ３１に記憶されているゲームプログラムを読み出す。さらに、操作スイッチ１３によって入力される操作信号と当該ゲームプログラムとに基づいてゲーム処理を実行し、処理途中のデータをワークＲＡＭ２６に記憶させるとともに、画像データを表示用ＲＡＭ２５に一時記憶させる。なお、ゲーム処理を行う際には、通信用インターフェース２４を介して他のゲーム装置との間でデータが適宜送受信される。ここで、通信用インターフェース２４には、他のゲーム装置へ送信すべきデータを格納するための送信用バッファと、他のゲーム装置から受信したデータを格納する受信用バッファが設けられている。ＣＰＵ２１は、表示用ＲＡＭ２５に一時記憶されている画像データを表示タイミングに合わせてＬＣＤドライバ２２に与える。ＬＣＤドライバ２２は、ＣＰＵ２１から供給された画像データをＬＣＤ１２に表示させるための表示制御を行う。また、ＣＰＵ２１は、ゲームプログラムに基づいてゲームの進行に応じたゲーム音楽または効果音の音声データを発生させ、当該音声データをサウンド発生回路２３に与える。サウンド発生回路２３は、Ｄ−Ａ変換回路および増幅回路を含み、音声データを音声信号（アナログ信号）に変換しかつ適宜増幅してスピーカ１６から音声出力させる。
【００４０】
一方、カートリッジ３０は、プログラムＲＯＭ３１およびバックアップＲＡＭ３２を含む。プログラムＲＯＭ３１には、ゲームプログラム、およびゲームプログラムに利用される各種データが固定的に記憶される。バックアップＲＡＭ３２には、ゲームプログラムの実行によって得られたゲームデータが書き換え可能かつ不揮発的に記憶される。バックアップＲＡＭ３２に記憶されるゲームデータとしては、例えば、ゲームを終了したときの経過を示すバックアップデータ（取得したアイテム、モンスター、ライフ、進んだマップ数等）が含まれる。
【００４１】
図４は、図３に示すワークＲＡＭ２６に記憶されるデータを示す図である。ワークＲＡＭ２６には、ゲーム処理において生成される一時的なデータが記憶される。ワークＲＡＭ２６のプログラム記憶領域には、メインプログラム２６１ａと、親判定データ設定プログラム２６１ｂと、親処理プログラム２６１ｃと、子処理プログラム２６１ｄとが記憶される。メインプログラムは、ゲーム処理のメインプログラムであり、メインプログラムの実行開始によってゲーム処理が開始される（図６参照）。親判定データ設定プログラム２６１ｂは、親判定データを設定、変更等するためのプログラムである（図６のＳ１１およびＳ２４参照）。親判定データとは、自機が現時点での親機であるか否かを判定するためのデータである。親処理プログラム２６１ｃは、親処理およびそれに必要な処理を行うためのプログラムである（図６のＳ１３〜Ｓ１７参照）。子処理プログラム２６１ｄは、子処理およびそれに必要な処理を行うためのプログラムである（図６のＳ１８、Ｓ２１およびＳ２２参照）。
【００４２】
ワークＲＡＭ２６のデータ記憶領域には、受信データバッファ２６２ａおよび送信データバッファ２６２ｂが設定される。受信データバッファ２６２ａは、通信用インターフェース２４の受信用バッファに格納されているデータが適宜記憶される。ゲーム装置１０のＣＰＵ２１は、受信データバッファ２６２ａに記憶されているデータを読み取ることによって、他のゲーム装置から受信したデータを取得することができる。なお、受信データバッファ２６２ａには、ゲーム装置１０と通信可能な他のゲーム装置の数の分だけ領域が用意される。例えば、ゲーム装置Ａの受信データバッファ２６２ａには、ゲーム装置Ｂのための領域、ゲーム装置Ｃのための領域およびゲーム装置Ｄのための領域が設けられる。また、送信データバッファ２６２ｂは、通信用インターフェース２４の送信用バッファに格納されるデータが記憶される。当該送信用バッファには、ゲーム装置１０が他のゲーム装置へ送信するデータが格納される。ゲーム装置１０のＣＰＵ２１は、他のゲーム装置へ送信するデータがある場合、送信データバッファ２６２ｂに記憶されているデータを送信用バッファに書き込む。送信用バッファに書き込まれたデータは、他のゲーム装置へ適宜送信される。
【００４３】
また、ワークＲＡＭ２６のデータ記憶領域には、親判定データ２６２ｃと、ゲーム用画像データ２６２ｄと、ゲーム用サウンドデータ２６２ｅとが記憶される。親判定データ２６２ｃは、上述したように、自機が現時点での親機であるか否かを判定するためのデータである。例えば、親判定データ２６２ｃは、１から４のいずれかの数で表してもよい。また、親判定データ２６２ｃが“１”であることは、自機が現時点での親機であることを意味するように決めることができる。ゲーム用画像データ２６２ｄは、ゲーム装置１０のＬＣＤ１２に表示されるゲーム画像を生成するためのデータである。ゲーム用サウンドデータ２６２ｅは、ゲーム装置１０のスピーカ１６から出力されるゲーム音声を生成するためのデータである。
【００４４】
次に、本通信ゲームシステムにおける通信方法を説明する。ここでは、ゲーム装置Ａが親機である場合を例として説明する。上述したように、本通信ゲームシステムにおける通信では、親機によって通信が管理される。すなわち、ゲーム装置間の通信は、親機がデータを送信することによって必ず開始される。ここで、本通信ゲームシステムの通信方法は、親機が主導で通信を行うものであればよい。例えば、ゲーム装置Ａがゲーム装置Ｂへデータを送信し、ゲーム装置Ｂがゲーム装置Ｃにデータを送信する、というように、あるゲーム装置から送信されるデータが次のゲーム装置へ順に送信されるような方法であってもよい。また、例えば、ゲーム装置Ａが他のゲーム装置Ｂ〜Ｄに一度にデータを送信した次に、ゲーム装置Ｂが他のゲーム装置Ａ、ＣおよびＤに一度にデータを送信する、というように、各ゲーム装置は他のゲーム装置に一斉にデータを送信する方法であってもよい。また、本実施形態においては、親機が最初にデータを送信した後、各子機がデータを送信する順番は、ゲーム開始時において設定される親機の順番に従うようにしてもよい。具体的には、１番目に親機になるゲーム装置がデータを送信した次に、２番目に親機となるゲーム装置がデータを送信する。その後、３番目に親機となるゲーム装置がデータを送信し、最後に、４番目に親機となるゲーム装置がデータを送信する。
【００４５】
次に、本通信ゲームシステムの詳細な動作を説明する前に、理解を容易にする目的で本通信ゲームシステムの動作の概要を説明する。なお、以下では、ゲーム処理の具体例として、単一のゲーム空間内において、複数のプレイヤが各々のプレイヤキャラクタを操作するゲームを考える。また、ゲーム装置１０のＬＣＤ１２には、自機によって操作されるプレイヤキャラクタの付近のゲーム空間が表示されるものとする。従って、各ゲーム装置における表示は、必ずしも同じ表示とはならないものとする。
【００４６】
図５は、本通信ゲームシステムの動作の概要を示す図である。前述のように、本通信ゲームシステムにおいては、ゲーム装置Ａ〜Ｄのいずれか１つが、親機（サーバ）の役割を果たす。親機に設定されているゲーム装置は、親処理を行う。ここで、親処理とは、例えば、以下の例が挙げられる。
（親処理例１）複数のプレイヤキャラクタが協力して何らかの動作（例えば、ゲーム空間に存在する石を持ち上げる）を行うための処理
（親処理例２）全プレイヤキャラクタに対するイベント（例えば、ゲーム空間内に出現させたアイテムを各プレイヤキャラクタが取り合うイベント）を行うための処理
（親処理例３）プレイヤキャラクタに設定されている属性（例えば、生命力や所持金）に応じて何らかの処理（例えば、各プレイヤキャラクタの所持金の額に応じてアイテムが与えられる）
このように、親処理には、ロールプレイングゲームやレースゲームといったゲームの種類や、ゲームの内容によって様々な処理が考えられる。
【００４７】
また、親処理に対応する子処理は、全てのゲーム装置（ゲーム装置Ａ〜Ｄ）において行われる。子処理とは、親処理の結果を受けて各ゲーム装置で行われる処理であるが、例えば、以下のような例が挙げられる。
（親処理例１に対する子処理）石を持ち上げる動作を各ゲーム装置のゲーム画面に表示するための処理
（親処理例２に対する子処理）ゲーム空間内にアイテムを表示する処理
（親処理例３に対する子処理）与えられたアイテムをプレイヤキャラクタが装備しているゲーム画像を表示する処理、および、プレイヤキャラクタが所持しているアイテムを示すデータを更新する処理
なお、以上の例からもわかるように、子処理の具体的な内容は、各プレイヤキャラクタ（各ゲーム装置）によって異なるものとなる。
【００４８】
以上のように、本通信ゲームシステムにおいては、ゲームを進行させるためのゲーム処理は、親処理とそれに対応する子処理とを単位として行われる。ここで、親処理と子処理とからなる処理の集まりを処理サイクルと呼ぶ。つまり、１回の処理サイクルでは、１回の親処理および１回の子処理が行われる。
【００４９】
ここで、本実施形態では、処理サイクルが１回完了するごとに、親機が交代するものとする。具体的に図５を参照して説明すると、１回目の処理サイクルの親処理はゲーム装置Ａにおいて行われる。この親処理に対する子処理が各ゲーム装置Ａ〜Ｄにおいて実行されると、次に行われる親処理、すなわち、２回目の処理サイクルの親処理は、ゲーム装置Ｂによって行われる。さらに、３回目の処理サイクルにおいては、ゲーム装置Ｃが親機となり、４回目の処理サイクルにおいては、ゲーム装置Ｄが親機となる。なお、５回目の処理サイクルにおいては、親機の順番が元に戻って、ゲーム装置Ａが親機となる。このように、本実施形態においては、処理サイクルが１回実行される度に、親機に設定されるゲーム装置が変更される。
【００５０】
以上のように、本実施形態においては、処理サイクルが実行される度に、各ゲーム装置に親機の役割を回していく。これによって、各ゲーム装置は、均等に親機となる機会を得ることができ、親機になることによる有利と、子機になったときに被るおそれのある不利とを公平に受けることができる。従って、親機をどのゲーム装置にするか（どのゲーム装置を使用するか）によってプレイヤが受ける有利不利をなくすことができ、プレイヤ間の有利不利を公平にすることができる。なお、本実施形態においては、１回の処理サイクルの度に親機を変更するが、他の実施形態においては、所定回数の処理サイクルが実行される度に親機を変更するようにしてもよい。
【００５１】
以下、本通信ゲームシステムのゲーム装置１０の詳細な動作を、図６を参照して説明する。図６は、本通信ゲームシステムのゲーム装置１０において実行される処理のフローチャートである。以下の処理は、ゲーム装置１０の電源が投入された後、ＣＰＵ２１がワークＲＡＭ２６のメインプログラム２６１ａを実行することによって行われる。
【００５２】
まず、Ｓ１１において、初期化処理が行われる。具体的には、ワークＲＡＭ２６に記憶される親判定データ２６２ｃの設定や、ゲーム処理に用いられる変数の初期化が行われる。Ｓ１１においては、親判定データ２６２ｃを設定するために、ワークＲＡＭ２６に記憶されている親判定データ設定プログラム２６１ｂが実行される。ここで、親判定データ２６２ｃは、上述したゲーム装置１０の接続関係に基づいて、“１”から“４”のいずれかの値が設定される。ここで、ゲーム処理開始時に設定される親判定データの値は、ゲーム開始時に自機が何番目に親機となるかを示す。すなわち、ゲーム開始時において１番目に親機となるゲーム装置Ａの場合、親判定データは“１”に設定される。また、２番目に親機となるゲーム装置Ｂにおいては、親判定データは“２”に設定される。同様に、３番目に親機となるゲーム装置Ｃにおいては、親判定データは“３”に設定され、４番目に親機となるゲーム装置Ｄにおいては、親判定データは“４”に設定される。なお、以上のように親判定データを設定することで、親判定データによって、子機がデータを送信する順番を表現するようにしてもよい。
【００５３】
Ｓ１２において、自機が親機になる番か否かが判定される。自機が親機になるか否かは、ワークＲＡＭ２６に記憶される親判定データ２６２ｃの値が“１”であるか否かによって判定される。従って、ワークＲＡＭ２６に記憶される親判定データ２６２ｃの値が“１”である場合、自機が親機になる番であると判定され、Ｓ１３〜Ｓ１８の処理が行われる。一方、ワークＲＡＭ２６に記憶される親判定データ２６２ｃの値が“１”でない場合、自機が親機になる番でない（子機になる番である）と判定され、Ｓ１９〜Ｓ２２の処理が行われる。
【００５４】
上記Ｓ１２において自機が親機になる番であると判定されると、ワークＲＡＭ２６に記憶されている親処理プログラム２６１ｃが実行されることによって、親処理およびそれに関連する処理（Ｓ１３、Ｓ１５〜Ｓ１７）が行われる。すなわち、まず、Ｓ１３およびＳ１５において、各ゲーム装置（自機を含む）から状態データが取得される。ここで、状態データとは、ゲーム装置の状態を示すデータであり、親処理を実行するために必要なデータである。ゲーム装置の状態とは、当該ゲーム装置の操作スイッチになされた操作状態（すなわち、操作データ）や、ゲーム装置のプレイヤキャラクタの各種パラメータ（例えば、生命力や得点）等を含む概念である。例えば、親処理として、プレイヤキャラクタが協力して何らかの動作（例えば、ゲーム空間に存在する石を持ち上げる）を行うための処理（親処理例１参照）が実行される場合、状態データは、各ゲーム装置Ａ〜Ｄの操作データであってもよい。ここで、操作データとは、ゲーム装置１０の操作スイッチ１３に入力された操作を示すデータをいう。なお、状態データの種類は、親処理の内容によって異なり、状態データは、例えばプレイヤキャラクタの属性値を示すデータであってもよいし、ゲームの得点を示すデータであってもよい。
【００５５】
具体的には、Ｓ１３において、自機を含む各ゲーム装置に対して状態データの送信が要求される。例えば、状態データとして操作データを要求する場合、親機は、操作データを送信する旨の命令を各ゲーム装置へ送信する。具体的には、状態データを送信する旨の命令を示すデータが、送信データバッファ２６２ｂに書き込まれる。送信データバッファ２６２ｂに書き込まれたデータは、親機を含む各ゲーム装置に送信される。
【００５６】
続くＳ１４において、状態データを送信する旨の要求に応じて、親機（自機）へ状態データが送信される。つまり、親機は、自機に対しても当該要求を送信し、自ら受信する。さらに、要求に応じて自機に対して状態データを送信する。このとき、親機の受信データバッファ２６２ａには、状態データを送信する旨の命令を示すデータが書き込まれ、さらに、送信データバッファ２６２ｂには、状態データが書き込まれる。これによって、親機は自機に対して送信したデータを受信し、自機に対してデータを送信することができる。なお、ここでは、親機は、自機に対して状態データの送信要求を送信し、それに対する状態データを自ら受信する形態としたが、自機に対しては状態データの送信を要求しない形態であってもかまわない。なお、Ｓ１３の送信要求に対して、各子機は、親機からの要求に応じた状態データを送信する（Ｓ１９参照）。送信された状態データは、親機の受信データバッファ２６２ａに書き込まれる。
【００５７】
Ｓ１５において、各ゲーム装置から送信されてきた状態データが受信される。具体的には、ＣＰＵ２１は、受信データバッファ２６２ａに書き込まれている状態データを読み込む。以上のＳ１３〜Ｓ１５によって、親機は、全てのゲーム装置１０ａ〜１０ｄの状態データを取得することができる。
【００５８】
Ｓ１６において、Ｓ１３〜Ｓ１５の処理において取得された状態データに基づいて、親処理が実行される。親処理が実行された結果、親処理の結果を示す結果データが生成される。上述した例（親処理例１参照）で言えば、結果データは、「石を持ち上げる」旨の命令を示すデータである。続くＳ１７において、Ｓ１６において生成された結果データが各ゲーム装置へ送信される。具体的には、結果データが送信データバッファ２６２ｂに書き込まれる。これによって、結果データが各ゲーム装置に送信される。以上のＳ１３およびＳ１５〜Ｓ１７によって、親処理プログラム２６１ｃによって実行される処理が終了する。
【００５９】
親処理およびそれに関連する処理（Ｓ１３およびＳ１５〜Ｓ１７）が終了すると、Ｓ１８において、ワークＲＡＭ２６の子処理プログラム２６１ｄが実行される。その結果、受信した（自機から送信されて、自機で受信した）結果データに基づいて子処理が実行される。具体的には、受信データバッファ２６２ａに格納されている結果データの内容に従い、子処理が実行される。子処理は、上述した例（親処理例１参照）で言えば、「石を持ち上げる」旨の命令を示す結果データに基づいて、石を持ち上げる画像を生成し、ＬＣＤ１２に表示させる処理である。Ｓ１８の後、Ｓ２２の処理が行われる。
【００６０】
次に、Ｓ１２において自機が子機であると判定された場合の処理について説明する。まず、Ｓ１９において、状態データを送信する旨の要求に応じて、親機へ状態データを送信する。具体的には、親機から送信された当該要求を示すデータが受信データバッファ２６２ａに書き込まれるので、これを読み取る。さらに、読み取った当該要求に応じた状態データを送信データバッファ２６２ｂに書き込む。これによって、状態データが親機へ送信される。
【００６１】
Ｓ１９の後、Ｓ２０において、ワークＲＡＭ２６の子処理プログラム２６１ｄが実行される。その結果、親機から送信されてくる結果データに基づいて子処理が実行される。具体的には、受信データバッファ２６２ａに格納されている結果データの内容に従い、子処理が実行される。なお、Ｓ１９の終了後Ｓ２０までの間に、親機では親処理が実行され、結果データが各子機へ送信される。従って、Ｓ１９の終了後Ｓ２０までの間に、受信データバッファ２６２ａに格納されているデータの内容は更新されて、結果データが格納されている。Ｓ２０の後、Ｓ２１の処理が行われる。
【００６２】
Ｓ２１において、ゲームを終了するか否かが判定される。例えば、プレイヤキャラクタの生命力が０になったためにゲームオーバーになったか否かや、ゲームを終了させるための所定の操作が行われたか否か等が判定される。ゲームを終了すると判定された場合、ゲーム処理を終了する。一方、ゲームを終了しないと判定された場合、Ｓ２２の処理が行われる。
【００６３】
Ｓ２２において、ワークＲＡＭ２６に記憶されている親判定データ２６２ｃの内容が更新される。具体的には、親判定データ２６２ｃの値が“１”増加される。なお、親判定データ２６２ｃの値が“４”である場合、値は、“１”に更新される。これによって、親機になるか否かの設定が変更されたことになる。本実施形態においては、親判定データ２６２ｃの値は、１回の処理サイクルが実行される度に、“１”、“２”、“３”、“４”と変化し、その次に、“１”に戻る。従って、ゲーム装置１０は、４回の処理サイクルにつき１回、自機が親機となる。なお、上述したように、親判定データは、親であるか否かを示すとともに、データを送信する子機の順番を示す。従って、Ｓ２２のように親判定データを更新することで、各子機においては、親判定データの更新によって、データを送信する順番が決定されることとなる。換言すれば、Ｓ２２のように親判定データを更新することで、各子機は、親判定データの更新時に、データを送信する順番を改めて決定する必要がない。Ｓ２４の後、Ｓ１２の処理に戻り、ゲームが終了するまでＳ１２〜Ｓ２２の処理が繰り返される。なお、Ｓ１２〜Ｓ２２のループが上記処理サイクルに相当する。
【００６４】
なお、図６において、親判定データを更新するステップ（Ｓ２２）は、１回の処理サイクルにおいて１回実行されるならば、どのタイミングで行ってもよい。例えば、Ｓ２２の処理は、結果データが生成された直後（Ｓ１６の直後）や、結果データが受信された直後に行われてもよい。
【００６５】
次に、本通信ゲームシステムにおける動作のより具体的な例を示す。図７は、本通信ゲームシステムにおける各処理のタイミングを示す図である。なお、以下では、ゲーム処理中のある一部分における処理の具体例を説明する。すなわち、親処理において、各ゲーム装置の操作データに基づいて、ゲーム空間にアイテムが表示される場合の処理を説明する。より具体的には、ある処理サイクルにおいて、４つのプレイヤキャラクタがゲーム空間内のある場所にいる場合に、４人のプレイヤがある操作（例えば、Ａボタンを押下する操作）を行うと、ゲーム空間内にアイテムが出現する例について説明する。なお、図７のＳ３１の時点では、ゲーム装置Ａが親機であり、次の親機はゲーム装置Ｂであるとする。
【００６６】
まず、Ｓ３１において、親機であるゲーム装置Ａは、各ゲーム装置（自機を含む）から操作データ（キーデータ）を取得する。すなわち、ゲーム装置Ａにおいて、図６に示すＳ１３〜Ｓ１５が行われる。また、各子機（ゲーム装置Ｂ〜Ｄ）においては、図６に示すＳ１９が行われる。次に、Ｓ３２において、ゲーム装置Ａは、親処理を行う（図６に示すＳ１６参照）。ここで、Ｓ３１で取得された各ゲーム装置の操作データはすべてＡボタンを押下する操作を示すものであるとする。従って、親処理では、「ゲーム空間内にアイテムを出現させる」旨の結果データが生成されるものとする。
【００６７】
Ｓ３３において、親機は、Ｓ３２で生成された結果データを各子機に送信する。すなわち、ゲーム装置Ａにおいて、図６に示すＳ１７が行われる。次に、各ゲーム装置は、結果データに基づいてそれぞれ子処理を行う（Ｓ３４ａ〜Ｓ３４ｄ）。具体的には、「ゲーム空間内にアイテムを出現させる」旨の結果データに基づいて、ゲーム画像やゲーム音声を生成し、ＬＣＤ１２やスピーカ１６に出力させる。なお、各ゲーム装置においてそれぞれ行われる子処理に要する時間は、それぞれ異なっている。なぜなら、各プレイヤキャラクタがいる場所や各プレイヤキャラクタの状態によって、画像データの生成等に要するする時間が異なるからである。子処理が終了することによって、１つの処理サイクルが終了する。
【００６８】
各ゲーム装置は、１つの処理サイクルが終了すると、ゲーム終了か否かを判定した後（図６に示すＳ２１）、親判定データを更新する（図６に示すＳ２２）。Ｓ３１〜Ｓ３４の処理サイクルでは、ゲーム装置Ａが親機であったので、次の処理サイクルでは、ゲーム装置Ｂが親機となる。つまり、ゲーム装置Ｂでは、Ｓ３４の後に更新された親判定データの値が“１”となる。
【００６９】
Ｓ３５においては、ゲーム装置Ｂは、各子機（ゲーム装置Ａ、ＣおよびＤ）から操作データを取得するものとする。ここで、仮に、あるゲーム装置においては、前の処理サイクルの子処理（Ｓ３４）が終了する前に、Ｓ３５の処理が行われたとする。この場合、Ｓ３５の時点で、当該ゲーム装置においては、まだゲーム空間にアイテムが表示されていない。従って、当該ゲーム装置のプレイヤは、アイテムを取得するための操作を行うことができず、他のゲーム装置のプレイヤよりも不利である。しかし、Ｓ３５の処理は、ゲーム装置Ｂの前の処理サイクルの子処理（Ｓ３４ｂ）が終了してから行われるので、ゲーム装置Ｂのプレイヤは、Ｓ３４ｂの処理に長時間を要しても、他のプレイヤに比べて不利になることがない。
【００７０】
さらに、次の処理サイクルにおいては、ゲーム装置Ｃが親機となるため、ゲーム装置Ｃのプレイヤは、他のプレイヤに比べて不利になることがない。本実施形態では、親機が順番に変わっていくため、親機となることによる有利さを各プレイヤが均等に得ることができる。さらに、子機になった場合にプレイヤが被るおそれのある不利な状況は、各プレイヤに均等に割り振られることになる。
【００７１】
なお、以上に説明した実施形態においては、ゲーム装置１０が携帯型の装置であったが、ゲーム装置１０はこれに限らず、据置型の装置であっても構わない。また、ゲーム装置間の通信は、ケーブルを用いた有線通信に限らず、無線通信であっても構わない。
【００７２】
また、本実施形態においては、複数台のゲーム装置によって構成される通信ゲームシステムを例として説明した。なお、１台のゲーム装置で複数のプレイヤがプレイする形態であっても、プレイヤの数に応じて複数台のゲーム装置が１台のゲーム装置の内部に仮想的に設定されるような場合がある。このような場合であっても、本発明と同様、親処理を担当する（仮想的な）ゲーム装置に対応するプレイヤが有利となる場合が考えられる。このような場合は、本発明と同様、親処理の役割を回すことによって、１人のプレイヤのみが有利となる不公平さを解消することができる。
【図面の簡単な説明】
【図１】本発明の一実施形態に係る通信ゲームシステムの全体構成を示す図である。
【図２】本実施形態に係るゲーム装置１０の概観を示す図である。
【図３】本実施形態に係る通信ゲームシステムの詳細な構成を示すブロック図である。
【図４】図３に示すワークＲＡＭ２６に記憶されるデータを示す図である。
【図５】本通信ゲームシステムの動作の概要を示す図である。
【図６】本通信ゲームシステムのゲーム装置１０において実行される処理のフローチャートである。
【図７】本通信ゲームシステムにおける各処理のタイミングを示す図である。
【図８】従来の通信ゲームシステムにおけるゲーム処理のタイミングを示す図である。
【符号の説明】
１０  ゲーム装置
１２  ＬＣＤ
１３  操作スイッチ
２１  ＣＰＵ
２６  ワークＲＡＭ
２７  ケーブル
２８  コネクタ
３０  ゲームカートリッジ
【図１】
2004174091.tif 000003
【図２】
2004174091.tif 000004
【図３】
2004174091.tif 000005
【図４】
2004174091.tif 000006
【図５】
2004174091.tif 000007
【図６】
2004174091.tif 000008
【図７】
2004174091.tif 000009
【図８】
2004174091.tif 000010