(57)【要約】    【構成】  ゲームシステム１００はハブ１０２を含み、ハブ１０２には複数のゲーム機１２が接続される。各ゲーム機１２は、マルチプレイゲームの開始に先立って、自身に割り当てられたＩＰアドレスをＶリトレースのタイミングで他のゲーム機１２に個別に送信する。このようにして、すべてのゲーム機１２でＩＰアドレスが交換される。また、各ゲーム機１２では、自身のＶリトレースのタイミングを基準として１フレームの期間をカウントし、他のゲーム機１２から送信されたＩＰアドレスを受信したときのカウント値を、当該ＩＰアドレスに対応して記憶する。各ゲーム機１２では、ＩＰアドレスとカウント値とから、自身のＶリトレースのタイミングを基準として将来に向かって一番近いＶリトレースのタイミングを持つゲーム機１２を、マルチプレイゲームのゲーム処理におけるゲームデータの送信先に決定する。    【効果】  通信効率を向上させ、ゲームを快適に進行させることができる。【選択図】  図３
2005137405.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークで接続された複数のゲーム機を備え、或るゲーム機から他のゲーム機へゲームデータを順番に通信することによりマルチプレイゲームを実行するゲームシステムであって、
前記ゲーム機の各々は前記ネットワークに接続された他のすべてのゲーム機と個別に通信可能であり、
前記ゲーム機は、
マルチプレイゲーム実行時に、所定周期で所定タイミングを発生する所定タイミング発生手段、
前記所定タイミング発生手段からの出力に基づいて、前記所定タイミングで他の１つのゲーム機にゲームデータを送信する第１送信制御手段、
他の１つのゲーム機の前記第１送信制御手段から送信されたゲームデータを受信する第１受信制御手段、
マルチプレイゲームの開始前に、自己の前記所定タイミングを知らせるための所定情報を他のゲーム機の各々に送信する第２送信制御手段、
他のゲーム機の各々の第２送信制御手段から送信された前記所定情報を受信する第２受信制御手段、および
前記第２受信制御手段によって受信された所定情報に基づいて、自己の前記所定タイミングを基準として将来に向かって一番近い前記所定タイミングを持つゲーム機を判断し、当該ゲーム機を前記第１送信制御手段による送信先のゲーム機に決定する送信先決定手段を備える、ゲームシステム。
【請求項２】
前記第２送信制御手段は、自己の前記所定タイミングにおいて少なくとも自己の識別情報を送信し、
前記ゲーム機は、タイマ、および前記第２受信制御手段によって他のゲーム機から前記識別情報を受信したときに、当該識別情報を受信したときの前記タイマのカウント値を当該識別情報と関連して記憶する所定タイミング情報記憶手段をさらに備え、
前記送信先決定手段は、前記所定タイミング情報記憶手段によって記憶された識別情報およびカウント値に基づいて、自己の前記所定タイミングを基準として将来に向かって一番近い前記所定タイミングを持つゲーム機を決定する、請求項１記載のゲームシステム。
【請求項３】
前記ゲーム機は、前記第２受信制御手段によって受信された他のゲーム機の前記識別情報を蓄積することにより、前記ネットワークに接続されたゲーム機の識別情報リストを生成する識別情報リスト生成手段、および
前記複数のゲーム機のすべてについて、前記識別情報リストを交換して、前記識別情報リストが共通したときに、マルチプレイゲームを実行可能にするマルチプレイゲーム実行許可手段をさらに備える、請求項２記載のゲームシステム。
【請求項４】
前記第２受信制御手段は、他のゲーム機の前記第２送信制御手段から送信された識別情報リストを受信し、
前記識別情報リスト生成手段は、前記第２受信手段によって受信された前記識別情報リストの中で自己の前記識別情報リストに存在しない識別情報を自己の前記識別情報リストに追加する識別情報リスト追加手段を含み、
前記マルチプレイゲーム実行許可手段は、前記第２受信制御手段によって受信された前記識別情報リストと自己の前記識別情報リストとに基づいて前記識別情報リストが共通するか否かを判断するリスト判断手段を含む、請求項３記載のゲームシステム。
【請求項５】
前記ゲーム機は、操作手段および当該操作手段の操作データを取得する操作データ取得手段をさらに備え、
前記第１送信制御手段および前記第１受信制御手段は、各ゲーム機の前記操作データ取得手段で取得された操作データを送受信し、
前記ゲーム機は、前記第１受信制御手段で受信された操作データを使用してゲーム処理を実行するゲーム処理実行手段をさらに備える、請求項１記載のゲームシステム。
【請求項６】
前記複数のゲーム機のうちのいずれか１つのゲーム機が最初にゲームデータを送信する親機となり、他のゲーム機は当該ゲーム機以外のゲーム機からゲームデータを受信した後にゲームデータを送信する子機となり、
前記ゲーム機は、操作手段、および、前記所定タイミングにおいて当該操作手段の操作データを取得する操作データ取得手段をさらに備え、
前記親機の前記第１送信制御手段は、前記操作データ取得手段によって取得された自己の前記操作データを操作情報データとして前記送信先のゲーム機に送信し、
前記子機の前記第１送信制御手段は、前記第１受信制御手段によって受信された操作情報データに、前記操作データ取得手段によって取得された自己の前記操作データを追加した後、追加後の操作情報データを前記送信先のゲーム機に送信し、
前記親機は、前記第１受信制御手段によって受信された操作情報データを回覧データに決定して前記送信先のゲーム機に送信し、かつ、当該回覧データに基づいてゲーム処理を実行し、
前記子機は、他のゲーム機から受信した前記回覧データを前記送信先のゲームに送信し、かつ、当該回覧データに基づいてゲーム処理を実行する、請求項１記載のゲームシステム。
【請求項７】
前記子機の前記第１送信制御手段は、前記第１受信制御手段によって他のゲーム機から操作情報データを受信したときに、前記所定タイミングが既に経過しているとき、前記所定タイミングに拘わらず、当該操作情報データに自己の前記操作データを追加して、すぐに前記送信先のゲーム機に送信する、請求項６記載のゲームシステム。
【請求項８】
前記親機は、前記第１受信制御手段によって操作情報データを受信した後すぐに前記回覧データを前記送信先のゲーム機に送信し、
前記子機は、前記回覧データを受信した後すぐに前記送信先のゲーム機に当該回覧データを送信する、請求項６記載のゲームシステム。
【請求項９】
前記マルチプレイゲーム実行許可手段によってマルチプレイゲームの実行を許可された後に、前記複数のゲーム機のいずれかから参加確定指示入力を受け付ける参加確定指示受付手段をさらに備え、
前記参加確定指示受付手段に対して参加確定指示を入力した１のゲーム機が最初にゲームデータを送信する親機となり、
他のゲーム機は、当該他のゲーム機以外のゲーム機からのゲームデータを受信した後にゲームデータを送信する子機となる、請求項３記載のゲームシステム。
【請求項１０】
前記所定タイミングは垂直リトレースのタイミングである、請求項１記載のゲームシステム。
【請求項１１】
ネットワークで接続された複数のゲーム機を備え、或るゲーム機から他のゲーム機へゲームデータを順番に通信することによりマルチプレイゲームを実行するゲームシステムにおいて各ゲーム機で実行されるゲームプログラムであって、
前記ゲーム機の各々は前記ネットワークに接続された他のすべてのゲーム機と個別に通信可能であり、
前記ゲーム機のプロセサに、
マルチプレイゲーム実行時に、所定周期で所定タイミングを発生する所定タイミング発生ステップ、
前記所定タイミング発生ステップからの出力に基づいて、前記所定タイミングで他の１つのゲーム機にゲームデータを送信する第１送信制御ステップ、
他の１つのゲーム機の前記第１送信制御ステップから送信されたゲームデータを受信する第１受信制御ステップ、
マルチプレイゲームの開始前に、自己の前記所定タイミングを知らせるための所定情報を他のゲーム機の各々に送信する第２送信制御ステップ、
他のゲーム機の各々の第２送信制御ステップから送信された前記所定情報を受信する第２受信制御ステップ、および
前記第２受信制御ステップによって受信された所定情報に基づいて、自己の前記所定タイミングを基準として将来に向かって一番近い前記所定タイミングを持つゲーム機を判断し、当該ゲーム機を前記第１送信制御ステップによる送信先のゲーム機に決定する送信先決定ステップを、実行させる、ゲームプログラム。
【請求項１２】
前記第２送信制御ステップは、自己の前記所定タイミングにおいて少なくとも自己の識別情報を送信し、
前記ゲーム機は、タイマ、および前記第２受信制御ステップによって他のゲーム機から前記識別情報を受信したときに、当該識別情報を受信したときの前記タイマのカウント値を当該識別情報と関連して記憶する所定タイミング情報記憶手段をさらに備え、
前記送信先決定ステップは、前記所定タイミング情報記憶手段によって記憶された識別情報およびカウント値に基づいて、自己の前記所定タイミングを基準として将来に向かって一番近い前記所定タイミングを持つゲーム機を決定する、請求項１１記載のゲームプログラム。
【請求項１３】
前記ゲーム機は、操作手段をさらに備え、
前記プロセサは、当該操作手段の操作データを取得する操作データ取得ステップをさらに実行し、
前記第１送信制御ステップおよび第１受信制御ステップは、各ゲーム機の前記操作データ取得手段で取得された操作データを送受信し、
前記プロセサは、前記第１受信制御手段で受信された操作データを使用してゲーム処理を実行するゲーム処理実行ステップをさらに実行する、請求項１１記載のゲームプログラム。
【請求項１４】
前記複数のゲーム機のうちのいずれか１つのゲーム機が最初にゲームデータを送信する親機となり、他のゲーム機は当該ゲーム機以外のゲーム機からゲームデータを受信した後にゲームデータを送信する子機となり、
前記ゲーム機は、操作手段をさらに備え、
前記プロセサは、前記所定タイミングにおいて当該操作手段の操作データを取得する操作データ取得ステップをさらに実行し、
前記親機において前記第１送信制御ステップは、前記操作データ取得ステップによって取得された自己の前記操作データを操作情報データとして前記送信先のゲーム機に送信し、
前記子機の前記第１送信制御ステップは、前記第１受信制御ステップによって受信された操作情報データに、前記操作データ取得スステップによって取得された自己の前記操作データを追加した後、追加後の操作情報データを前記送信先のゲーム機に送信し、
前記親機の前記プロセサは、前記第１受信制御ステップによって受信された操作情報データを回覧データに決定して前記送信先のゲーム機に送信し、かつ、当該回覧データに基づいて第１ゲーム処理ステップをさらに実行し、
前記子機の前記プロセサは、他のゲーム機から受信した前記回覧データを前記送信先のゲームに送信し、かつ、当該回覧データに基づいて第２ゲーム処理ステップをさらに実行する、請求項１１記載のゲームプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明はゲームシステムおよびゲームプログラムに関し、特にたとえば、ネットワークに接続された複数のゲーム機を備え、或るゲーム機から他のゲーム機へゲームデータを順番に通信することによりマルチプレイゲームを実行する、ゲームシステムおよびゲームプログラムに関する。
【背景技術】
【０００２】
従来のこの種のゲームシステムの一例が特許文献１に開示される。この特許文献１に開示されるゲームシステムでは、４台のゲーム機がリング状に接続され、ゲーム機は、前段のゲーム機からデータを受信するとともに、後段のゲーム機にデータを送信して、マルチプレイのゲームを実行するものである。
【特許文献１】特開平１１−１３７８５０号公報［Ａ６３Ｆ  ９／２２，Ｈ０４Ｌ  １２／２８］
【発明の開示】
【発明が解決しようとする課題】
【０００３】
一般的に、ゲーム機のゲーム処理においては、単位周期ごとに（例えば１フレームごとに）、プレイヤによる操作データを取得し、取得した操作データを使用してゲーム処理を実行することを繰り返すようにしてある。このため、このようなゲーム機を複数用いて通信ゲームをおこなうゲームシステムにおいても、単位周期ごとに（例えば、単位周期の区切りで）ゲームデータを送信するようにすれば、都合の良い場合がある。
【０００４】
しかし、単位周期ごとにゲームデータを送信するようにした場合、従来技術のゲームシステムでは、各ゲーム機の送信の順番が全く考慮されていないため、効率の良い通信が行われているとは言えない。たとえば、４台のゲーム機（ゲーム機１，２，３，４）において、ゲーム機１，２，３，４，１，…の順でゲームデータＡを一巡通信することとする。このような場合には、たとえば、図２４に示すように、ゲーム機１からゲーム機２への送信、および、ゲーム機２からゲーム機３への送信は、フレームＮの開始タイミングで送信することができるが、ゲーム機３からゲーム機４への送信は、フレームＮ＋１の開始タイミングで送信されることになり、また、ゲーム機４からゲーム機１への送信は、フレームＮ＋２の開始タイミングで送信されることになる。このように、送信の順番がフレームの開始タイミングの順番になっていない場合には、ゲームデータＡがゲーム機１〜４を一巡するのに要する時間（通信に要する時間）Ｔが長くなってしまい、ゲーム処理の遅延を引き起こしてしまっていた。さらに、上記の先行技術では各ゲーム機がリング状に固定的に接続されており、送信の順番を変更するためにはゲーム機の接続状態自体を変更しないといけないという問題点もある。
【０００５】
それゆえに、この発明の主たる目的は、新規な、ゲームシステムおよびゲームプログラムを提供することである。
【０００６】
また、この発明の他の目的は、通信効率の良い、ゲームシステムおよびゲームプログラムを提供することである。
【課題を解決するための手段】
【０００７】
請求項１の発明は、ネットワークで接続された複数のゲーム機を備え、或るゲーム機から他のゲーム機へゲームデータを順番に通信することによりマルチプレイゲームを実行するゲームシステムであって、ゲーム機の各々はネットワークに接続された他のすべてのゲーム機と個別に通信可能であり、ゲーム機は、マルチプレイゲーム実行時に、所定周期で所定タイミングを発生する所定タイミング発生手段、所定タイミング発生手段からの出力に基づいて、所定タイミングで他の１つのゲーム機にゲームデータを送信する第１送信制御手段、他の１つのゲーム機の第１送信制御手段から送信されたゲームデータを受信する第１受信制御手段、マルチプレイゲームの開始前に、自己の所定タイミングを知らせるための所定情報を他のゲーム機の各々に送信する第２送信制御手段、他のゲーム機の各々の第２送信制御手段から送信された所定情報を受信する第２受信制御手段、および第２受信制御手段によって受信された所定情報に基づいて、自己の所定タイミングを基準として将来に向かって一番近い所定タイミングを持つゲーム機を判断し、当該ゲーム機を第１送信制御手段による送信先のゲーム機に決定する送信先決定手段を備える、ゲームシステムである。
【０００８】
請求項１の発明では、ゲームシステム（１００：実施例における参照符号。以下同じ。）はネットワークで接続された複数のゲーム機（１２）を備え、或るゲーム機（１２）から他のゲーム機（１２）にゲームデータを順番に通信することにより、マルチプレイゲームを進行する。各ゲーム機（１２）は、ネットワークに接続される他のすべてのゲーム機（１２）と個別に通信可能である。ゲーム機（１２）では、所定タイミング発生手段（５８）がマルチプレイゲーム実行時に、所定周期で所定タイミングを発生する。第１送信制御手段（３６，６６，Ｓ３５，Ｓ７７）は、所定タイミング発生手段（５８）からの出力に基づいて、所定タイミングで他の１つのゲーム機（１２）にゲームデータを送信する。第１受信制御手段（３６，６６）は、他の１つのゲーム機（１２）の第１送信制御手段（３６，６６，Ｓ３５，Ｓ７７）から送信されたゲームデータを受信する。第２送信制御手段（３６，６６，Ｓ７）は、マルチプレイゲームの開始前に、自己の所定タイミングを知らせるための所定情報を他のゲーム機（１２）の各々に送信する。第２受信制御手段（３６，６６）は、他のゲーム機（１２）の各々の第２送信制御手段（３６，６６，Ｓ７）から送信された所定情報を受信する。送信先決定手段（３６，Ｓ２１，Ｓ２５）は、第２受信制御手段（３６，６６）によって受信された所定情報に基づいて、自己の所定タイミングを基準として将来に向かって一番近い所定タイミングを持つゲーム機を判断し、当該ゲーム機（１２）を第１送信制御手段（３６，６６，Ｓ３５，Ｓ７７）による送信先のゲーム機（１２）に決定する。これにより、ネットワークに接続されるゲーム機（１２）の間で、マルチプレイゲームにおけるゲームデータを送信する順番が決定される。
【０００９】
請求項１の発明によれば、自己の所定タイミングを基準として将来に向かって一番近い所定タイミングを持つゲーム機を送信先のゲーム機に決定するので、或るゲーム機からゲームデータを受信して他のゲーム機へゲームデータを送信するまでの時間を短くすることができる。すなわち、通信効率を向上させることができる。
【００１０】
請求項２の発明は請求項１に従属し、第２送信制御手段は、自己の所定タイミングにおいて少なくとも自己の識別情報を送信し、ゲーム機は、タイマ、および第２受信制御手段によって他のゲーム機から識別情報を受信したときに、当該識別情報を受信したときのタイマのカウント値を当該識別情報と関連して記憶する所定タイミング情報記憶手段をさらに備え、送信先決定手段は、所定タイミング情報記憶手段によって記憶された識別情報およびカウント値に基づいて、自己の所定タイミングを基準として将来に向かって一番近い所定タイミングを持つゲーム機を決定する。
【００１１】
請求項２の発明では、第２送信制御手段（３６，６６，Ｓ７）は、自己の所定タイミングにおいて少なくとも自己の識別情報を他のゲーム機（１２）に送信する。ゲーム機（１２）の各々は、所定期間をカウントするタイマ（６８）を備えており、自己の所定タイミングでタイマ（６８）をスタートさせる。所定タイミング情報記憶手段（３６，４０，Ｓ１５）は、第２受信制御手段（３６，６６）によって他のゲーム機（１２）から識別情報を受信したときに、当該識別情報を受信したときのタイマ（６８）のカウント値を当該識別情報と関連して記憶する。これにより、他のゲーム機（１２）の所定タイミングを取得するのである。送信先決定手段（３６，Ｓ２１，Ｓ２５）は、所定タイミング情報記憶手段（３６，４０，Ｓ１５）によって記憶された識別情報およびカウント値に基づいて、自己の所定タイミングを基準として将来に向かって一番近い所定タイミングを持つゲーム機を決定する。
【００１２】
請求項２の発明によれば、他のゲーム機の所定タイミングを簡単な構成で確実に取得することができ、送信先のゲーム機を容易に決定することができる。
【００１３】
請求項３の発明は請求項２に従属し、ゲーム機は、第２受信制御手段によって受信された他のゲーム機の識別情報を蓄積することにより、ネットワークに接続されたゲーム機の識別情報リストを生成する識別情報リスト生成手段、および複数のゲーム機のすべてについて、識別情報リストを交換して、識別情報リストが共通したときに、マルチプレイゲームを実行可能にするマルチプレイゲーム実行許可手段をさらに備える。
【００１４】
請求項３の発明では、識別情報リスト生成手段（３６，Ｓ１３）は、第２受信制御手段（３６，６６）によって受信された他のゲーム機（１２）の識別情報を蓄積することにより、ネットワークに接続されたゲーム機（１２）の識別情報リストを生成する。マルチプレイゲーム実行許可手段（３６，Ｓ１７）は、ネットワークに接続される複数のゲーム機（１２）のすべてについて、識別情報リストを交換して、識別情報リストが共通したときに、マルチプレイゲームを実行可能にする。
【００１５】
請求項３の発明によれば、他のゲーム機の所定タイミングを取得する処理において必然的に交換される識別情報を利用して、通信に参加するゲーム機が互いに認識しゲーム開始可能となったか否かの判定をすることができる。
【００１６】
請求項４の発明は請求項３に従属し、第２受信制御手段は、他のゲーム機の第２送信制御手段から送信された識別情報リストを受信し、識別情報リスト生成手段は、第２受信手段によって受信された識別情報リストの中で自己の識別情報リストに存在しない識別情報を自己の識別情報リストに追加する識別情報リスト追加手段を含み、マルチプレイゲーム実行許可手段は、第２受信制御手段によって受信された識別情報リストと自己の識別情報リストとに基づいて識別情報リストが共通するか否かを判断するリスト判断手段を含む。
【００１７】
請求項４の発明では、第２受信制御手段（３６，６６）は、他のゲーム機（１２）の第２送信制御手段（３６，６６，Ｓ７）から送信された識別情報リストを受信する。識別情報リスト追加手段（３６，Ｓ１３）は、第２受信制御手段（３６，６６）によって受信された識別情報リストの中で自己の識別情報リスト（内部リスト）に存在しない識別情報を自己の識別情報リストに追加する。これにより、識別情報リストが生成される。また、リスト判断手段（３６，Ｓ１７）は、第２受信制御手段（３６，６６）によって受信された識別情報リストと自己の識別情報リストとに基づいて識別情報リストが共通するか否かを判断する。
【００１８】
請求項４の発明によれば、受信した識別情報リストと自己の識別情報リストとが共通するか否かを判断するだけなので、すべてのゲーム機の間でリストが共通するか否かを効率よく判断することができる。
【００１９】
請求項５の発明は請求項１に従属し、ゲーム機は、操作手段および当該操作手段の操作データを取得する操作データ取得手段をさらに備え、第１送信制御手段および第１受信制御手段は、各ゲーム機の操作データ取得手段で取得された操作データを送受信し、ゲーム機は、第１受信制御手段で受信された操作データを使用してゲーム処理を実行するゲーム処理実行手段をさらに備える。
【００２０】
請求項５の発明では、ゲーム機（１２）は、操作手段（２２）を備える。操作データ取得手段（３６，５６，Ｓ３３，Ｓ７３）は、操作手段（２２）の操作データを取得する。第１送信制御手段（３６，６６，Ｓ３５，Ｓ７７）と第１受信制御手段（３６，６６）とによって、各ゲーム機（１２）の操作データ取得手段（３６，５６，Ｓ３３，Ｓ７３）で取得された操作データが送受信される。ゲーム処理実行手段（３６，Ｓ４３，Ｓ９７）は、操作データ取得手段（３６，５６，Ｓ３３，Ｓ７３）によって取得された操作データと第１受信制御手段（３６，６６）によって受信された操作データとに基づいてゲーム処理を実行する。
【００２１】
請求項５の発明によれば、他のゲーム機の操作データに基づいてゲーム処理を実行するので、他のゲーム機における操作情報を自己のゲーム機に反映させることができる。また、或るゲーム機の操作データが他のゲーム機に効率よく送信されるので、プレイヤが操作してからゲーム画面に反映されるまでのレスポンスがよい。
【００２２】
請求項６の発明は請求項１に従属し、複数のゲーム機のうちのいずれか１つのゲーム機が最初にゲームデータを送信する親機となり、他のゲーム機は当該ゲーム機以外のゲーム機からゲームデータを受信した後にゲームデータを送信する子機となり、ゲーム機は、操作手段、および、所定タイミングにおいて当該操作手段の操作データを取得する操作データ取得手段をさらに備え、親機の第１送信制御手段は、操作データ取得手段によって取得された自己の操作データを操作情報データとして送信先のゲーム機に送信し、子機の第１送信制御手段は、第１受信制御手段によって受信された操作情報データに、操作データ取得手段によって取得された自己の操作データを追加した後、追加後の操作情報データを送信先のゲーム機に送信し、親機は、第１受信制御手段によって受信された操作情報データを回覧データに決定して送信先のゲーム機に送信し、かつ、当該回覧データに基づいてゲーム処理を実行し、子機は、他のゲーム機から受信した回覧データを送信先のゲームに送信し、かつ、当該回覧データに基づいてゲーム処理を実行する。
【００２３】
請求項６の発明では、複数のゲーム機（１２）のうちのいずれか１つ（Ｇ１）が親機となり、他のゲーム機（１２；Ｇ２，Ｇ３，Ｇ４）は子機となる。親機は、マルチプレイゲームにおいて、最初にゲームデータを送信する。子機は、他のゲーム機からゲームデータを受信した後に、ゲームデータを送信する。ゲーム機（１２）は操作手段（２２）および所定タイミングにおいて当該操作手段（２２）の操作データを取得する操作データ取得手段（３６，５６，Ｓ３３，Ｓ７３）をさらに備える。親機の第１送信制御手段（３６，６６，Ｓ３５）は、操作データ取得手段（３６，５６，Ｓ３３）によって取得された自己の操作データを操作情報データとして送信先のゲーム機（１２）に送信する。一方、子機の第１送信制御手段（３６，６６，Ｓ７７）は、第１受信制御手段（３６，６６）によって受信された操作情報データに自己の操作データを追加した後、追加後の操作情報データを送信先のゲーム機（１２）に送信する。親機は、第１受信制御手段（３６，６６）によって受信された操作情報データを回覧データに決定して送信先のゲーム機（１２）に送信し、かつ、当該回覧データに基づいてゲーム処理を実行する。子機は、他のゲーム機（１２）から受信した回覧データを送信先のゲームに送信し、かつ、当該回覧データに基づいてゲーム処理を実行する。つまり、親機および子機では、回覧データのような共通の操作データに従ってゲーム処理が実行される。
【００２４】
請求項６の発明によれば、すべてのゲーム機で共通の操作データをゲーム処理で使用することにより、すべてのゲーム機で共通の内容のゲームを進行させることができる。
【００２５】
請求項７の発明は請求項６に従属し、子機の第１送信制御手段は、第１受信制御手段によって他のゲーム機から操作情報データを受信したときに、当該操作情報データに含まれる周期番号データが示す周期における所定タイミングが既に経過しているとき、所定タイミングに拘わらず、当該操作情報データに自己の操作データを追加して、すぐに送信先のゲーム機に送信する。
【００２６】
請求項７の発明では、子機の第１送信制御手段（３６，６６，Ｓ５５）は、第１受信制御手段（３６，６６）によって他のゲーム機（１２）から操作情報データを受信したときに、当該操作情報データに含まれる周期番号が示す周期における所定タイミングが既に経過しているとき（Ｓ５３でＹＥＳ）、所定タイミングに拘わらず、当該操作情報データに自己の操作データを追加して、すぐに送信先のゲーム機（１２）に送信する。つまり、所定タイミングが逆転してしまった場合には、自己の操作データを所定タイミングで取得および保存しておき（Ｓ７９）、送信元のゲーム機（１２）から操作情報データが送信されてきたときに、保存しておいた操作データを追加して、送信先のゲーム機（１２）に送信するのである。
【００２７】
請求項７の発明によれば、所定タイミングにずれが生じた場合であっても、いたずらに通信効率を低下させることがない。
【００２８】
請求項８の発明は請求項６に従属し、親機は、第１受信制御手段によって操作情報データを受信した後すぐに回覧データを送信先のゲーム機に送信し、子機は、回覧データを受信した後すぐに送信先のゲーム機に当該回覧データを送信する。
【００２９】
請求項８の発明では、親機は、第１受信制御手段（３６，６６）によって操作情報データを受信した後、すぐに回覧データを送信先のゲーム機（１２）に送信する（Ｓ４１）。子機は、回覧データを受信した後、すぐに回覧データを送信先のゲーム機（１２）に送信する（Ｓ９５）。
【００３０】
請求項８の発明によれば、回覧データは受信後、すぐに送信するので、レスポンスのよいゲームを提供することができる。
【００３１】
請求項９の発明は請求項３に従属し、マルチプレイゲーム実行許可手段によってマルチプレイゲームの実行を許可された後に、複数のゲーム機のいずれかから参加確定指示入力を受け付ける参加確定指示受付手段をさらに備え、参加確定指示受付手段に対して参加確定指示を入力した１のゲーム機が最初にゲームデータを送信する親機となり、他のゲーム機は、当該他のゲーム機以外のゲーム機からのゲームデータを受信した後、ゲームデータを送信する子機となる。
【００３２】
請求項９の発明では、参加確定指示受付手段（２２，３６，５６，Ｓ１９）が、マルチプレイゲーム実行許可手段（３６，Ｓ１７）によってマルチプレイゲームの実行を許可された後に、複数のゲーム機（１２）のいずれかから参加確定指示入力を受け付ける。参加確定指示受付手段（２２，３６，５６，Ｓ１９）に対して参加確定指示を入力した１のゲーム機（１２）が最初にゲームデータを送信する親機となる。このとき、当該ゲーム機（１２）以外のゲーム機（１２）は子機となる。子機は、他のゲーム機（１２）からゲームデータを受信した後、ゲームデータを送信する。
【００３３】
請求項９の発明によれば、親機を簡単に決定することができる。
【００３４】
請求項１０の発明は請求項１に従属し、所定タイミングは垂直リトレースのタイミングである。
【００３５】
請求項１０の発明によれば、所定タイミングは垂直リトレース（垂直帰線期間）のタイミングであるため、ラスタスキャン型ゲーム機等でゲーム処理の単位とされる垂直リトレースのタイミングを利用して、ゲームデータの通信処理を行うことができる。
【００３６】
請求項１１の発明は、ネットワークで接続された複数のゲーム機を備え、或るゲーム機から他のゲーム機へゲームデータを順番に通信することによりマルチプレイゲームを実行するゲームシステムにおいて各ゲーム機で実行されるゲームプログラムである。ゲーム機の各々はネットワークに接続された他のすべてのゲーム機と個別に通信可能であり、ゲームプログラムは、ゲーム機のプロセサに、マルチプレイゲーム実行時に、所定周期で所定タイミングを発生する所定タイミング発生ステップ、所定タイミング発生ステップからの出力に基づいて、所定タイミングで他の１つのゲーム機にゲームデータを送信する第１送信制御ステップ、他の１つのゲーム機の第１送信制御ステップから送信されたゲームデータを受信する第１受信制御ステップ、マルチプレイゲームの開始前に、自己の所定タイミングを知らせるための所定情報を他のゲーム機の各々に送信する第２送信制御ステップ、他のゲーム機の各々の第２送信制御ステップから送信された所定情報を受信する第２受信制御ステップ、および第２受信制御ステップによって受信された所定情報に基づいて、自己の所定タイミングを基準として将来に向かって一番近い所定タイミングを持つゲーム機を判断し、当該ゲーム機を第１送信制御ステップによる送信先のゲーム機に決定する送信先決定ステップを、実行させる。
【００３７】
請求項１１の発明においても、請求項１の発明と同様に、通信効率を向上させることができる。
【００３８】
請求項１２の発明は請求項１１に従属し、第２送信制御ステップは、自己の所定タイミングにおいて少なくとも自己の識別情報を送信し、ゲーム機は、タイマ、および第２受信制御ステップによって他のゲーム機から識別情報を受信したときに、当該識別情報を受信したときのタイマのカウント値を当該識別情報と関連して記憶する所定タイミング情報記憶手段をさらに備え、送信先決定ステップは、所定タイミング情報記憶手段によって記憶された識別情報およびカウント値に基づいて、自己の所定タイミングを基準として将来に向かって一番近い所定タイミングを持つゲーム機を決定する。
【００３９】
請求項１２の発明においても、請求項２の発明と同様に、他のゲーム機の所定タイミングを簡単な構成で確実に取得することができ、送信先のゲーム機を容易に決定することができる。
【００４０】
請求項１３の発明は請求項１１に従属し、ゲーム機は、操作手段をさらに備え、プロセサは、当該操作手段の操作データを取得する操作データ取得ステップをさらに実行し、第１送信制御ステップおよび第１受信制御ステップは、各ゲーム機の操作データ取得手段で取得された操作データを送受信し、プロセサは、第１受信制御手段で受信された操作データを使用してゲーム処理を実行するゲーム処理実行ステップをさらに実行する。
【００４１】
請求項１３の発明においても、請求項５の発明と同様に、プレイヤが操作してからゲーム画面に反映されるまでのレスポンスがよい。
【００４２】
請求項１４の発明は請求項１１に従属し、複数のゲーム機のうちのいずれか１つのゲーム機が最初にゲームデータを送信する親機となり、他のゲーム機は当該ゲーム機以外のゲーム機からゲームデータを受信した後にゲームデータを送信する子機となり、ゲーム機は、操作手段をさらに備え、プロセサは、所定タイミングにおいて当該操作手段の操作データを取得する操作データ取得ステップをさらに実行し、親機において第１送信制御ステップは、操作データ取得ステップによって取得された自己の操作データを操作情報データとして送信先のゲーム機に送信し、子機の第１送信制御ステップは、第１受信制御ステップによって受信された操作情報データに、操作データ取得スステップによって取得された自己の操作データを追加した後、追加後の操作情報データを送信先のゲーム機に送信し、親機のプロセサは、第１受信制御ステップによって受信された操作情報データを回覧データに決定して送信先のゲーム機に送信し、かつ、当該回覧データに基づいて第１ゲーム処理ステップをさらに実行し、子機のプロセサは、他のゲーム機から受信した回覧データを送信先のゲームに送信し、かつ、当該回覧データに基づいて第２ゲーム処理ステップをさらに実行する。
【００４３】
請求項１４の発明においても、請求項６の発明と同様に、すべてのゲーム機で共通の内容のゲームを進行させることができる。
【発明の効果】
【００４４】
この発明によれば、マルチプレイゲームの開始前に自己の所定タイミングを他のゲーム機に知らせておき、自己の所定タイミングを基準として将来に向かって一番近い所定タイミングを持つゲーム機にゲームデータを送信するので、同一周期において所定タイミングとなる時間が早い順番にゲームデータを送信することができる。これによりゲームデータを受信するための待ち時間を少なくすることができ、通信効率を向上させることができる。したがって、ゲーム処理の遅延を防止して、快適にゲームを進行させることができる。
【００４５】
この発明の上述の目的，その他の目的，特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【発明を実施するための最良の形態】
【００４６】
図１を参照して、この発明の一実施例であるゲームシステムに用いられるゲーム装置１０はビデオゲーム機（以下、単に「ゲーム機」という。）１２を含む。このゲーム機１２には電源が与えられるが、この電源は、実施例では、一般的なＡＣアダプタ（図示せず）であってよい。ＡＣアダプタは家庭用の標準的な壁ソケットに差し込まれ、家庭用電源を、ゲーム機１２を駆動するのに適した低いＤＣ電圧信号に変換する。他の実施例としては、電源として、バッテリが用いられてもよい。
【００４７】
ゲーム機１２は、略立方体のハウジング１４を含み、ハウジング１４の上端には光ディスクドライブ１６が設けられる。光ディスクドライブ１６には、ゲームプログラム等を記憶した情報記憶媒体の一例である光ディスク１８が装着される。ハウジング１４の前面には複数の（実施例では４つの）コネクタ２０が設けられる。これらコネクタ２０は、ケーブル２４によって、コントローラ２２をゲーム機１２に接続するためのものであり、この実施例では最大４つのコントローラ２２をゲーム機１２に接続することができる。
【００４８】
コントローラ２２には、その上面，下面，或いは側面などに、操作部（操作スイッチ）２６が設けられる。操作部２６は、たとえば２つのアナログジョイスティック，１つの十字キー，複数のボタンスイッチ（Ａボタン、Ｂボタン、Ｘボタン、Ｙボタン等）等を含む。１つのアナログジョイスティックは、スティックの傾き量と方向とによって、プレイヤキャラクタ（プレイヤがコントローラ２２によって操作可能な動画キャラクタ）の移動方向および／または移動速度ないし移動量などを入力するために用いられる。他のアナログジョイスティックは、傾斜方向によって、仮想カメラの移動を制御する。十字スイッチは、アナログジョイスティックに代えてプレイヤキャラクタの移動方向を指示するために用いられる。ボタンスイッチは、プレイヤキャラクタの動作を指示するために利用されたり、３次元画像の仮想カメラの視点を切り換えたり、プレイヤキャラクタの移動スピード調節等に用いられる。ボタンスイッチは、さらに、たとえばメニュー選択やポインタあるいはカーソル移動を制御する。
【００４９】
なお、この実施例ではコントローラ２２がそれと一体的に設けられるケーブル２４によってゲーム機１２に接続された。しかしながら、コントローラ２２は、他の方法、たとえば電磁波（たとえば電波または赤外線）を介してワイヤレスで、ゲーム機１２に接続されてもよい。また、コントローラ２２の操作部２６の具体的構成は、もちろん実施例の構成に限られるものではなく、任意の変形が可能である。たとえば、アナログジョイスティックは１つだけでもよいし、用いられなくてもよい。十字スイッチは用いられなくてもよい。
【００５０】
ゲーム機１２のハウジング１４の前面であり、コネクタ２０の下方には、１つまたは複数の（この実施例では２つの）メモリスロット２８が設けられる。このメモリスロット２８にはメモリカード３０が挿入される。メモリカード３０は、光ディスク１８から読み出したゲームプログラム等をローディングして一時的に記憶したり、このゲーム装置１０を利用してプレイしたゲームの状態データを保存（セーブ）しておいたりするために利用される。
【００５１】
ゲーム機１２のハウジング１４の後面には、ＡＶケーブルコネクタ（図示せず）が設けられ、そのコネクタを用いて、ＡＶケーブル３２を通してゲーム機１２にモニタ３４を接続する。このモニタ３４は典型的にはカラーテレビジョン受像機であり、ＡＶケーブル３２は、ゲーム機１２からの映像信号をカラーテレビのビデオ入力端子に入力し、音声信号を音声入力端子に与える。したがって、カラーテレビ（モニタ）３４の画面上にたとえば３次元（３Ｄ）ビデオゲームのゲーム画像が表示され、左右のスピーカ３４ａからゲーム音楽や効果音などのステレオゲーム音声、または２スピーカであってもサラウンド効果を出すことが可能な場合は、サラウンド音声を含むゲーム音声が出力される。
【００５２】
このゲーム装置１０において、ユーザまたはゲームプレイヤがゲーム（または他のアプリケーション）をプレイするために、ユーザはまずゲーム機１２の電源をオンし、次いで、ユーザはビデオゲーム（もしくはプレイしたいと思う他のアプリケーション）をストアしている適宜の光ディスク１８を選択し、その光ディスク１８をゲーム機１２のディスクドライブ１６にローディングする。応じて、ゲーム機１２がその光ディスク１８にストアされているソフトウェアに基づいてビデオゲームもしくは他のアプリケーションを実行し始めるようにする。ユーザはゲーム機１２に入力を与えるためにコントローラ２２を操作する。たとえば、操作部２６のどれかを操作することによってゲームもしくは他のアプリケーションをスタートさせる。操作部２６の他のものを動かすことによって、動画キャラクタ（プレイヤキャラクタ）を異なる方向に移動させ、または３次元（３Ｄ）のゲーム世界におけるユーザの視点（カメラ位置）を変化させることができる。
【００５３】
図２は図１実施例のゲーム装置１０（ゲーム機１２，光ディスク１８，コントローラ２２，メモリカード３０）およびモニタ３４の電気的な構成を示すブロック図である。ゲーム機１２には、中央処理ユニット（以下、「ＣＰＵ」という。）３６が設けられる。このＣＰＵ３６は、コンピュータ或いはプロセサなどとも呼ばれ、ゲーム機１２の全体的な制御を担当する。ＣＰＵ３６ないしコンピュータは、ゲームプロセサとして機能し、このＣＰＵ３６には、バスを介して、メモリコントローラ３８が結合される。メモリコントローラ３８は主として、ＣＰＵ３６の制御の下で、バスを介して結合されるメインメモリ４０の書込みや読出しを制御する。このメモリコントローラ３８にはＧＰＵ(Graphics Processing Unit:グラフィックス処理装置) ４２が結合される。
【００５４】
ＧＰＵ４２は、描画手段の一部を形成し、たとえばシングルチップＡＳＩＣで構成され、メモリコントローラ３８を介してＣＰＵ３６からのグラフィクスコマンド(graphics command ：作画命令) を受け、そのコマンドに従って、ジオメトリユニット４４およびレンダリングユニット４６によって３次元（３Ｄ）ゲーム画像を生成する。つまり、ジオメトリユニット４４は、３次元座標系の各種キャラクタやオブジェクト（複数のポリゴンで構成されている。そして、ポリゴンとは少なくとも３つの頂点座標によって定義される多角形平面をいう。）の回転，移動，変形等の座標演算処理を行う。レンダリングユニット４６は、各種オブジェクトの各ポリゴンにテクスチャ（Texture ：模様画像）を貼り付けるなどの画像生成処理を行う。したがって、ＧＰＵ４２によって、ゲーム画面上に表示すべき３Ｄ画像データが作成され、その画像データがフレームバッファ４８内に記憶される。
【００５５】
なお、ＧＰＵ４２が作画コマンドを実行するにあたって必要なデータ（プリミティブまたはポリゴンやテクスチャ等）は、ＧＰＵ４２がメモリコントローラ３８を介して、メインメモリ４０から入手する。
【００５６】
フレームバッファ４８は、たとえばラスタスキャンモニタ３４の１フレーム分の画像データを描画（蓄積）しておくためのメモリであり、ＧＰＵ４２によって１フレーム毎に書き換えられる。後述のビデオＩ／Ｆ５８がメモリコントローラ３８を介してフレームバッファ４８のデータを読み出すことによって、モニタ３４の画面上に３Ｄゲーム画像が表示される。
【００５７】
また、Ｚバッファ５０は、フレームバッファ４８に対応する画素数×１画素当たりの奥行きデータのビット数に相当する記憶容量を有し、フレームバッファ４８の各記憶位置に対応するドットの奥行き情報または奥行きデータ（Ｚ値）を記憶するものである。
【００５８】
なお、フレームバッファ４８およびＺバッファ５０は、ともにメインメモリ４０の一部を用いて構成されてもよい。
【００５９】
メモリコントローラ３８はまた、ＤＳＰ(Digital Signal Processor)５２を介して、ＡＲＡＭ５４に結合される。したがって、メモリコントローラ３８は、メインメモリ４０だけでなく、サブメモリとしてのＡＲＡＭ５４の書込みおよび／または読出しを制御する。
【００６０】
ＤＳＰ５２は、サウンドプロセサとして働き、メインメモリ４０に記憶されたサウンドデータを用いたり、ＡＲＡＭ５４に書き込まれている音波形データを用いたりして、ゲームに必要な音、音声或いは音楽に対応するオーディオデータを生成する。
【００６１】
メモリコントローラ３８は、さらに、バスによって、各インタフェース（Ｉ／Ｆ）５６，５８，６０，６２，６４，６６に結合される。コントローラＩ／Ｆ５６は、コントローラ２２のためのインタフェースであり、コントローラ２２の操作部２６の操作信号またはデータを、メモリコントローラ３８を通してＣＰＵ３６に与える。ビデオＩ／Ｆ５８は、フレームバッファ４８にアクセスし、ＧＰＵ４２で作成した画像データを読み出して、画像信号または画像データ（ディジタルＲＧＢピクセル値）をＡＶケーブル３２（図１）を介してモニタ３４に与える。
【００６２】
外部メモリＩ／Ｆ６０は、ゲーム機１２の前面に挿入されるメモリカード３０（図１）をメモリコントローラ３８に連係させる。それによって、メモリコントローラ３８を介して、ＣＰＵ３６がこのメモリカード３０にデータを書込み、またはメモリカード３０からデータを読み出すことができる。オーディオＩ／Ｆ６２は、メモリコントローラ３８を通してＤＳＰ５２から与えられるオーディオデータまたは光ディスク１８から読み出されたオーディオストリームを受け、それらに応じたオーディオ信号（音声信号）をモニタ３４に設けられるスピーカ３４ａに与える。
【００６３】
なお、ステレオ音声の場合には、スピーカ３４ａは、少なくとも、左右１つずつ設けられる。また、サラウンド処理することで、左右２つのスピーカのみであっても後方から音が発生しているように音を聞かせることも可能である。
【００６４】
ディスクＩ／Ｆ６４は、そのディスクドライブ１６をメモリコントローラ３８に結合し、したがって、ＣＰＵ３６がディスクドライブ１６を制御する。このディスクドライブ１６によって光ディスク１８から読み出されたプログラムデータやテクスチャデータ等が、ＣＰＵ３６の制御の下で、メインメモリ４０に書き込まれる。
【００６５】
そして、送受信Ｉ／Ｆ６６は、図示しないＬＡＮアダプタのようなＩ／Ｆであり、ケーブル等を用いて通信可能に接続される他のゲーム機１２との間でゲームデータなどのデータ或いはコマンドのやり取りをすることができる。
【００６６】
さらに、ＣＰＵ３６には、タイマ６８が接続される。タイマ６８は、ＣＰＵ３６の指示の下、本実施例では１フレームの開始タイミング（すなわち垂直帰線期間の終期のタイミング）で０にリセットされ、以降、例えば２５ナノ秒毎にカウントアップされる。そして、次のフレームの開始タイミングになったときに、再度リセットされて以降カウントアップされるという処理を繰り返す。
【００６７】
このような構成のゲーム装置１０を複数（この実施例では、８台）用いて、図３に示すようなゲームシステム１００が構成される。この実施例では、ゲームシステム１００はハブ（ＨＵＢ）１０２を含み、このハブ１０２には、８台のゲーム機１２が、それぞれ、たとえばケーブル（ＬＡＮケーブル）を用いて接続される。ただし、無線ＬＡＮによって通信可能にすることもできる。
【００６８】
なお、簡単のため、図３においては省略するが、ゲーム機１２の各々には、図１に示したように、光ディスク１８が装着されるとともに、コントローラ２２およびモニタ３４が接続される。また、必要に応じて、メモリカード３０も装着される。
【００６９】
このようなゲームシステム１００では、各々のゲーム機１２（Ｇ１，Ｇ２，…，Ｇ７，Ｇ８）には、個別のＩＰアドレスが割り当てられており、ハブ１０２を介して、他のゲーム機１２と個別に通信することができる。したがって、ゲームデータを互いに通信するようなマルチプレイゲームを実行することができるのである。ここで、マルチプレイゲームとは、複数のプレイヤが互いに協力し或いは対戦することにより、ゲームを進行させるゲームをいう。
【００７０】
マルチプレイゲームでは、各ゲーム機１２において、他のゲーム機１２の進行状況や操作情報を反映させるために、各ゲーム機１２で発生されるゲームデータを他のゲーム機１２に送信（通信）する必要がある。ここでは、ゲームデータは、ゲームの進行により随時発生されるゲームの状態データおよび各ゲーム機１２のコントローラ２２に入力されるプレイヤの操作に基づくデータ（操作データ）を含む。このようなゲームデータを通信する方法としては、たとえば複数のゲーム機１２をリング状に接続し、その物理的な接続状況（接続状態）によって、予め固定的に決定した順番に従ってゲームデータを送信する方法がある。
【００７１】
たとえば、各ゲーム機１２において、単位周期（１フレームの期間）における所定のタイミング（垂直リトレース（垂直帰線期間）のタイミング）ごとにゲームデータを送信することを考える。この場合、物理的な接続状況により、固定的に決定した順番に従ってゲームデータを送信すると、各ゲーム装置１０では、垂直リトレース（以下、「Ｖリトレース」という。）のタイミングが異なるため、ゲーム機１０接続の順番を何ら考慮していない場合には、或るゲーム機１２がゲームデータを受信した後、次のゲーム機にゲームデータを送信するまでの時間が長くなることがある（図２４参照）。このように、物理的な接続状況により、固定的に決定された順番でゲームデータを送信することは、通信効率を悪化させ、ゲーム処理に遅延を発生させてしまうという問題を引き起こすことになる。
【００７２】
そこで、この実施例では、マルチプレイゲームの開始に先立って、自身のＶリトレースのタイミングを他のゲーム機１２に知らせておき、自身のＶリトレースのタイミングを基準として将来に向かって一番近いＶリトレースのタイミングを持つゲーム機１２を送信先に決定するようにしてある。言い換えると、同一フレームにおけるＶリトレースのタイミングが時系列に従って並ぶように、ゲームデータを送信する順番をゲーム機１２間で決定する。これによって、或るゲーム機１２がゲームデータを受信した後、次のゲーム機にゲームデータを送信するまでの時間が短くなって、通信の効率を向上させることができる。なお、本実施例では、Ｖリトレースのタイミングは、垂直帰線期間の終期とタイミングとしている。
【００７３】
以下、図４ないし図１３を用いて具体的に説明する。ただし、簡単のため、４台のゲーム機１２（Ｇ１，Ｇ２，Ｇ３，Ｇ４）でマルチプレイゲームを実行しようとしており、各ゲーム機１２がハブ１０２に接続されている場合について説明することにする。
【００７４】
ゲーム機１２（Ｇ１），（Ｇ２），（Ｇ３）および（Ｇ４）では、マルチプレイゲームの準備段階において、各々の内部メモリ（メインメモリ４０）にＩＰリストおよびＶ情報が生成される（図４ないし図１３参照）。ここで、ＩＰリストとは、ハブ１０２に接続されて通信可能となっているゲーム機１２の各々に割り当てられるＩＰアドレスのリストである（自機および他のゲーム機のＩＰアドレスの両方を含む）。また、Ｖ情報とは、自身のＶリトレースのタイミングと他のゲーム機１２におけるＶリトレースのタイミングとの差分についての数値である。
【００７５】
Ｖリトレースの間隔は、１／６０秒（１６.６６…ミリ秒）であり、この実施例では、説明の都合上、当該間隔を１６ミリ秒としてある。また、各ゲーム機１２では、自身のＶリトレースのタイミングで自身のタイマ６８を０にリセットし、以降、カウントアップする。後述するように、各ゲーム機１２は、他のゲーム機１２からのＩＰリストを受信し、新しいＩＰアドレス（新規ＩＰアドレス）を自身のＩＰリストに追加するとき、当該新規ＩＰアドレスに対応して、当該ＩＰリストを受信したときの自身のタイマ６８のカウント値をＶ情報に追加する。したがって、Ｖ情報に追加されたカウント値は、自身のＶリトレースのタイミングを基準とした場合において、当該カウント値に対応するＩＰアドレスを有するゲーム機１２との間におけるＶリトレースのタイミングの差分（ずれ）を示しているのである。
【００７６】
前述の通り、本実施例ではタイマ６８は２５ナノ秒毎にカウントアップするが、図４ないし図１３においては、説明を簡略化するために、タイマ６８は１ミリ秒毎にカウントアップするものとしている。
【００７７】
ただし、タイマ６８のカウントアップの間隔を長くした場合には、あるゲーム機１２と他のゲーム機１２の間のＶリトレースのタイミングの差が小さい場合に、その差を検出することができない場合があるので、カウントアップの間隔の設定はケースバイケースで適切に決定する必要がある。
【００７８】
タイマ６８が１ミリ秒毎にカウントアップする場合、カウンタ値はＶリトレースのタイミングで０となり、以降、１５までカウントアップした後、次のＶリトレースのタイミングで０になる。
【００７９】
また、この実施例では、ＩＰリストの送信にかかる時間は、Ｖリトレースの間隔すなわち１フレームの期間に比して極めて短いため、無視してある。
【００８０】
たとえば、準備段階における初期状態では、各ゲーム機１２に生成されるＩＰリストおよびＶ情報は、図４のように示される。具体的には、各ゲーム機１２では、自身に割り当てられたＩＰアドレスがＩＰリストに書き込まれる（追加される）。ただし、ＩＰ１は（Ｇ１）のＩＰアドレスであり、ＩＰ２は（Ｇ２）のＩＰアドレスであり、ＩＰ３は（Ｇ３）のＩＰアドレスであり、ＩＰ４は（Ｇ４）のＩＰアドレスである。このとき、当該ＩＰアドレスに対応するＶ情報として「０」が追加される。これは、自身のＶリトレースのタイミングにおけるタイマ６８のカウント値は０であるからである。
【００８１】
その後、各ゲーム機１２（Ｇ１）,（Ｇ２）,（Ｇ３）および（Ｇ４）は、それぞれの自身のＶリトレースのタイミングで、自身のＩＰリストを他のゲーム機１２に個別に送信する。これにより、各ゲーム機１２（Ｇ１）〜（Ｇ４）は、他のゲーム機１２に対して、自身の存在を知らせるとともに、自身のＶリトレースのタイミングを知らせるのである。以下に、その詳細について説明するが、説明の便宜上、或る時点（準備処理を開始した時点）を基準とした場合に、ゲーム機１２（Ｇ１）,（Ｇ３）,（Ｇ２）,（Ｇ４）の順でＶリトレースのタイミングになると仮定してある。また、（Ｇ１）と（Ｇ３）の間のＶリトレースタイミングのずれを２ミリ秒とし、（Ｇ３）と（Ｇ２）の間のＶリトレースタイミングのずれを５ミリ秒とし、（Ｇ２）と（Ｇ４）の間のＶリトレースタイミングのずれを４ミリ秒と仮定してある。
【００８２】
図４に示した初期状態からゲーム機１２（Ｇ１）のＶリトレースのタイミングになると、図５（Ａ）に示すように、ゲーム機１２（Ｇ１）は、自身のＩＰリストを他のゲーム機１２（Ｇ２）,（Ｇ３）および（Ｇ４）に個別に送信する。すると、ゲーム機１２（Ｇ２）,（Ｇ３）および（Ｇ４）は、ゲーム機１２（Ｇ１）から送信されたＩＰリストを受信する。当該他のゲーム機１２（Ｇ２）,（Ｇ３）および（Ｇ４）では、受信したＩＰリストと自身のＩＰリストとを比較し、自身のＩＰリストに登録されていないＩＰアドレス、すなわち新規ＩＰアドレス（この場合、「ＩＰ１」）を追加する。また、このとき、当該ＩＰリストを受信したときの自身のタイマ６８のカウント値を、当該新規ＩＰアドレスに対応してＶ情報に追加する。したがって、図５（Ｂ）に示すように、ゲーム機１２（Ｇ２）,（Ｇ３）および（Ｇ４）では、ゲーム機１２（Ｇ１）のＩＰアドレス（ＩＰ１）がＩＰリストに追加されるとともに、当該ＩＰアドレス（ＩＰ１）に対応して、たとえば、Ｖ情報にカウント値「９」,「１４」および「５」が追加される。すなわち、（Ｇ２）が（Ｇ１）からＩＰリストを受信したときには（Ｇ２）のタイマ６８のカウント値は「９」であり、（Ｇ３）が（Ｇ１）からＩＰリストを受信したときには（Ｇ３）のタイマ６８のカウント値は「１４」であり、（Ｇ４）が（Ｇ１）からＩＰリストを受信したときには（Ｇ４）のタイマ６８のカウント値は「５」であったのである。
【００８３】
これにより、ゲーム機１２（Ｇ２）では、ゲーム機１２（Ｇ１）のＶリトレースのタイミングが自身のＶリトレースのタイミングから９ミリ秒後であることが分かる。また、ゲーム機１２（Ｇ３）では、ゲーム機１２（Ｇ１）のＶリトレースのタイミングが自身のＶリトレースのタイミングから１４ミリ秒後であることが分かる。さらに、ゲーム機１２（Ｇ４）では、ゲーム機１２（Ｇ１）のＶリトレースのタイミングが自身のＶリトレースのタイミングから５ミリ秒後であることが分かる。
【００８４】
なお、受信したＩＰリストに新規ＩＰアドレスがない場合、すなわち受信したＩＰリストと自身のＩＰリストとが一致する場合には、受信したＩＰリストは破棄され、Ｖ情報には何ら追加されない。以下、同様である。
【００８５】
次に、図５の状態から２ミリ秒が経過して、ゲーム機１２（Ｇ３）のＶリトレースのタイミングになると、図６（Ａ）に示すように、ゲーム機１２（Ｇ３）は自身のＩＰリストを他のゲーム機１２（Ｇ１）,（Ｇ２）および（Ｇ４）に送信する。すると、ゲーム機１２（Ｇ１）,（Ｇ２）および（Ｇ４）は、ゲーム機１２（Ｇ３）から送信されたＩＰリストを受信する。当該他のゲーム機１２（Ｇ１）,（Ｇ２）および（Ｇ４）では、受信したＩＰリストと自身のＩＰリストとを比較し、新規ＩＰアドレス（この場合、「ＩＰ３」）を追加する。また、このとき、ＩＰリストを受信したときのカウント値を「ＩＰ３」に対応させてＶ情報に追加する。したがって、図６（Ｂ）に示すように、ゲーム機１２（Ｇ１）,（Ｇ２）および（Ｇ４）では、ゲーム機１２（Ｇ３）のＩＰアドレス（ＩＰ３）がＩＰリストに追加されるとともに、当該ＩＰアドレス（ＩＰ３）に対応して、たとえば、Ｖ情報にカウント値「２」,「１１」および「７」が追加される。
【００８６】
これにより、ゲーム機１２（Ｇ１）では、ゲーム機１２（Ｇ３）のＶリトレースのタイミングが自身のＶリトレースのタイミングの２ミリ秒後であることが分かる。また、ゲーム機１２（Ｇ２）では、ゲーム機１２（Ｇ３）のＶリトレースのタイミングが自身のＶリトレースのタイミングの１１ミリ秒後であることが分かる。さらに、ゲーム機１２（Ｇ４）では、ゲーム機１２（Ｇ３）のＶリトレースのタイミングが自身のＶリトレースのタイミングの７ミリ秒後であることが分かる。
【００８７】
続いて、図６の状態から５ミリ秒が経過して、ゲーム機１２（Ｇ２）のＶリトレースのタイミングになると、図７に示すように、ゲーム機１２（Ｇ２）は自身のＩＰリストを他のゲーム機１２（Ｇ１）,（Ｇ３）および（Ｇ４）に送信する。すると、ゲーム機１２（Ｇ１）,（Ｇ３）および（Ｇ４）は、ゲーム機１２（Ｇ２）から送信されたＩＰリストを受信する。当該他のゲーム機１２（Ｇ１）,（Ｇ２）および（Ｇ４）では、受信したＩＰリストと自身のＩＰリストとを比較し、新規ＩＰアドレス（この場合、「ＩＰ２」）を追加する。また、このとき、ＩＰリストを受信したときのカウント値を「ＩＰ２」に対応させてＶ情報に追加する。したがって、図８に示すように、ゲーム機１２（Ｇ１）,（Ｇ３）および（Ｇ４）では、ゲーム機１２（Ｇ２）のＩＰアドレス（ＩＰ２）がＩＰリストに追加されるとともに、当該ＩＰアドレス（ＩＰ２）に対応して、たとえば、Ｖ情報にカウント値「７」,「５」および「１２」が追加される。
【００８８】
これにより、ゲーム機１２（Ｇ１）では、ゲーム機１２（Ｇ２）のＶリトレースのタイミングが自身のＶリトレースのタイミングの７ミリ秒後であることが分かる。また、ゲーム機１２（Ｇ３）では、ゲーム機１２（Ｇ２）のＶリトレースのタイミングが自身のＶリトレースのタイミングの５ミリ秒後であることが分かる。さらに、ゲーム機１２（Ｇ４）では、ゲーム機１２（Ｇ２）のＶリトレースのタイミングが自身のＶリトレースのタイミングの１２ミリ秒後であることが分かる。
【００８９】
そして、図７の状態から４ミリ秒が経過して、ゲーム機１２（Ｇ４）のＶリトレースのタイミングになると、図９に示すように、ゲーム機１２（Ｇ４）は自身のＩＰリストを他のゲーム装置（Ｇ１）,（Ｇ２）および（Ｇ３）に送信する。すると、ゲーム機１２（Ｇ１）,（Ｇ２）および（Ｇ３）は、ゲーム機１２（Ｇ４）から送信されたＩＰリストを受信する。当該他のゲーム機１２（Ｇ１）,（Ｇ２）および（Ｇ３）では、受信したＩＰリストと自身のＩＰリストとを比較し、新規ＩＰアドレス（この場合「ＩＰ４」）を追加する。また、このとき、ＩＰリストを受信したときのカウント値を「ＩＰ４」に対応させてＶ情報に追加する。したがって、図１０に示すように、ゲーム機１２（Ｇ１）,（Ｇ２）および（Ｇ３）では、ゲーム機１２（Ｇ４）のＩＰアドレス（ＩＰ４）がＩＰリストに追加されるとともに、当該ＩＰアドレス（ＩＰ４）に対応して、たとえば、Ｖ情報にカウント値「１１」,「４」および「９」が追加される。
【００９０】
これにより、ゲーム機１２（Ｇ１）では、ゲーム機１２（Ｇ４）のＶリトレースのタイミングが自身のＶリトレースのタイミングの１１ミリ秒後であることが分かる。また、ゲーム機１２（Ｇ２）では、ゲーム機１２（Ｇ４）のＶリトレースのタイミングが自身のＶリトレースのタイミングの４ミリ秒後であることが分かる。さらに、ゲーム機１２（Ｇ３）では、ゲーム機１２（Ｇ４）のＶリトレースのタイミングが自身のＶリトレースのタイミングの９ミリ秒後であることが分かる。
【００９１】
このように、Ｖリトレースのタイミングが一巡し、次のフレーム（次フレーム）についてのＶリトレースのタイミングとなる。次フレームにおいても上述と同様に、Ｖリトレースのタイミングで自身のＩＰリストが他のゲーム機１２に送信される。したがって、次フレームについてのゲーム機１２（Ｇ１）のＶリトレースのタイミングになると、図１１に示すように、自身のＩＰリストを他のゲーム機１２（Ｇ２）,（Ｇ３）および（Ｇ４）に送信する。すると、ゲーム機１２（Ｇ２）,（Ｇ３）および（Ｇ４）は、ゲーム機１２（Ｇ１）から送信されたＩＰリストを受信する。当該他のゲーム機１２（Ｇ２）,（Ｇ３）および（Ｇ４）では、受信したＩＰリストと自身のＩＰリストとを比較し、新規ＩＰアドレスを追加する。しかし、図１１に示すように、ゲーム機１２（Ｇ１）,（Ｇ２）,（Ｇ３）および（Ｇ４）では、ＩＰリストの内容は一致するため、ＩＰアドレスは追加されない。したがって、Ｖ情報にタイマ６８のカウント値が追加されることもない。ここで、（Ｇ２），（Ｇ３），（Ｇ４）は（Ｇ１）との間でリストが共通したことがわかる。
【００９２】
次に、当該次フレームについてのゲーム機１２（Ｇ３）のＶリトレースのタイミングになると、図１２に示すように、ゲーム機１２（Ｇ３）は他のゲーム機１２（Ｇ１）,（Ｇ２）および（Ｇ４）に自身のＩＰリストを送信する。上述したように、ゲーム機１２（Ｇ１）,（Ｇ２）,（Ｇ３）および（Ｇ４）では、ＩＰリストの内容が一致するため、当該他のゲーム機１２（Ｇ１）,（Ｇ２）および（Ｇ４）では、ＩＰアドレスが追加されず、また、カウント値がＶ情報に追加されることもない。ここで、（Ｇ１），（Ｇ２），（Ｇ４）は（Ｇ３）との間でリストが共通したことがわかる。
【００９３】
さらに、当該次フレームにおけるゲーム機１２（Ｇ２）のＶリトレースのタイミングになると、図１３に示すように、ゲーム機１２（Ｇ２）は他のゲーム機１２（Ｇ１）,（Ｇ３）および（Ｇ４）に自身のＩＰリストを送信する。ここでも、上述したように、ゲーム機１２（Ｇ１）,（Ｇ２）,（Ｇ３）および（Ｇ４）では、ＩＰリストの内容が一致するため、当該他のゲーム機１２（Ｇ１）,（Ｇ３）および（Ｇ４）では、ＩＰアドレスが追加されず、また、カウント値がＶ情報に追加されることもない。ここで、（Ｇ１），（Ｇ３），（Ｇ４）は（Ｇ２）との間でリストが共通したことがわかる。また、図９、１０の時点において、（Ｇ１），（Ｇ２），（Ｇ３）は（Ｇ４）との間でリストが共通したことがわかっているから、図９〜図１３の処理によって、ハブ１０２に接続されている（ネットワーク上の）ゲーム機１２（Ｇ１）,（Ｇ２）,（Ｇ３）および（Ｇ４）では、各々でＩＰリストが一致したことを認識でき、マルチプレイゲームを開始可能な状態となる。このように、マルチプレイゲームの開始可能な状態になると、ゲーム機１２（Ｇ１），（Ｇ２），（Ｇ３）および（Ｇ４）では、マルチプレイゲームの開始に先立って親機および子機が決定される。ここで、親機とは、マルチプレイゲーム中に、ゲームデータを他の（送信先の）ゲーム機１２に最初に送信するゲーム機１２をいう。また、子機とは、他のゲーム機１２からゲームデータを受信した後に、他の（送信先の）ゲーム機１２にゲームデータを送信するゲーム機１２をいう。
【００９４】
この実施例では、マルチプレイゲームの開始可能な状態になった後、あるゲーム機１２においてコントローラ２２の所定のボタン（以下、「参加確定ボタン」という。）が操作されることにより、当該操作のあったゲーム機１２が親機となる。なお、複数のゲーム機１２において参加確定ボタンが押された場合は、ＩＰアドレスの若いゲーム機１２を優先して親機に決定する。親機となったゲーム機１２は、自身のＶ情報および参加確定ボタンが押された旨の情報（以下、これらの情報を「参加確定情報」と呼ぶことにする。）を他のゲーム機１２に送信する。したがって、他のゲーム機１２では、参加確定情報を受信すると、子機となり、自身のＶ情報を親機のＶ情報に書き換える。つまり、受信したＶ情報を自身の内部メモリに上書きするのである。これによって、各ゲーム機においてＶ情報が共通することになる。
【００９５】
また、ゲーム機１２が親機または子機になると、ゲーム機１２（Ｇ１）,（Ｇ２）,（Ｇ３）および（Ｇ４）の各々では、自身のＩＰリストおよびＶ情報を参照して、マルチプレイゲーム中にゲームデータを送信すべきゲーム機１２を決定する。送信先のゲーム機１２は、自身のＶリトレースのタイミングを基準として将来に向かって一番早くＶリトレースのタイミングとなるゲーム機１２に決定される。つまり、時系列に従うＶリトレースのタイミングの順番で、ゲームデータを送信する順番が決定されるのである。
【００９６】
この実施例では、ゲーム機１２（Ｇ１）では、その内部リストに記憶されるＶ情報を参照して、自身のＶリトレースのタイミングを基準として将来に向かって最も近いＶリトレースのタイミングを持つのは、ゲーム機１２（Ｇ３）であることが分かる。したがって、ゲーム機１２（Ｇ１）では、送信先のゲーム機１２（Ｇ３）が決定される。
【００９７】
ゲーム機１２（Ｇ２）では、その内部リストに記憶されるＶ情報を参照して、自身のＶリトレースのタイミングを基準として将来に向かって最も近いＶリトレースのタイミングを持つのは、ゲーム機１２（Ｇ４）であることが分かる。したがって、ゲーム機１２（Ｇ２）では、送信先のゲーム機１２（Ｇ４）が決定される。
【００９８】
ゲーム機１２（Ｇ３）では、その内部リストに記憶されるＶ情報を参照して、自身のＶリトレースのタイミングを基準として将来に向かって最も近いＶリトレースのタイミングを持つのは、ゲーム機１２（Ｇ２）であることが分かる。したがって、ゲーム機１２（Ｇ３）では、送信先のゲーム機１２（Ｇ２）が決定される。
【００９９】
ゲーム機１２（Ｇ４）では、その内部リストに記憶されるＶ情報を参照して、自身のＶリトレースのタイミングを基準として将来に向かって最も近いＶリトレースのタイミングを持つのは、ゲーム機１２（Ｇ１）であることが分かる。したがって、ゲーム機１２（Ｇ４）では、送信先のゲーム機１２（Ｇ１）が決定される。
【０１００】
このようにして、ゲーム機１２（Ｇ１）,（Ｇ２）,（Ｇ３）および（Ｇ４）の各々で送信先のゲーム機１２が決定され、これにより、ゲームデータを送信する順番が決定される。この実施例では、ゲーム機１２（Ｇ１）を最初にゲームデータを送信するゲーム機１２と仮定した場合には、ゲームデータを送信する順番は、ゲーム機１２（Ｇ１）,（Ｇ３）,（Ｇ２）,（Ｇ４）,（Ｇ１）,…である。
【０１０１】
このような準備段階の処理を、図１４および図１５に示すフロー図に従って各々のゲーム機１２に内蔵されるＣＰＵ３６が実行する。図１４に示すように、ＣＰＵ３６は、準備段階の処理を開始すると、ステップＳ１で、内部リスト（内部メモリに記憶されているＩＰリスト）をクリアして、自己のＩＰアドレスを追加する。次のステップＳ３で、自己のＶ情報を、自己のＩＰアドレスに対応して「０」に設定する。
【０１０２】
なお、準備段階の処理は、ハブ１０２に接続されたゲーム機１２の主電源がオンされ、マルチプレイゲームが選択され、ＣＰＵ３６が自機のＩＰアドレスを取得した後に開始される。
【０１０３】
続くステップＳ５では、Ｖリトレースのタイミングになったか否かを判断する。ここで、Ｖリトレースのタイミングでなければ、“ＮＯ”と判断し、そのままステップＳ９に進む。しかし、Ｖリトレースのタイミングになれば、“ＹＥＳ”と判断し、ステップＳ７で、他のすべてのゲーム機１２（ゲーム装置１０）に対して個別にＩＰリストを送信してからステップＳ９に進む。
【０１０４】
図示は省略するが、Ｖリトレースのタイミングになったときに、ＣＰＵ３６はタイマ６８をリセットおよびスタートさせる。したがって、タイマ６８は、１フレームの期間（この実施例では、１６ミリ秒）をカウントし、それを繰り返す。また、ＶリトレースのタイミングはビデオＩ／Ｆ５８がバスを介してＣＰＵ３６に知らせるようにしてある。以下、同様である。
【０１０５】
ステップＳ９では、他のゲーム機１２からＩＰリストを受信したかどうかを判断する。ステップＳ９で“ＮＯ”であれば、つまり他のゲーム機１２からＩＰリストを受信していなければ、そのまま図１５に示すステップＳ１７に進む。一方、ステップＳ９で“ＹＥＳ”であれば、つまり他のゲーム機１２からＩＰリストを受信すれば、ステップＳ１１で、自身のＩＰリストと受信したＩＰリストとを比較して、新規ＩＰアドレスが在るか否かを判断する。ここで、“ＮＯ”であれば、つまり新規ＩＰアドレスが無ければ、そのままステップＳ１７に進む。しかし、“ＹＥＳ”であれば、つまり新規ＩＰアドレスが在れば、ステップＳ１３で、内部リストに新規ＩＰアドレスを追加し、ステップＳ１５で、当該ＩＰリストの受信時におけるタイマ６８のカウント値を、当該新規ＩＰアドレスに対応してＶ情報として記憶（追加）して、ステップＳ１７に進む。
【０１０６】
図１５に示すステップＳ１７では、ハブ１０２に接続されたすべてのゲーム機１２との間でＩＰリストが一致したか否かを判断する。ステップＳ１７で“ＮＯ”であれば、つまりすべてのゲーム機１２との間でＩＰリストが一致していなければ、図１４に示したステップＳ５に戻る。
【０１０７】
また、ステップＳ１７で“ＹＥＳ”であれば、つまりすべてのゲーム機１２との間でＩＰリストが一致すれば、マルチプレイゲームの開始可能な状態となり、ステップＳ１９で、プレイヤによって参加確定ボタン（たとえば、コントローラ２２のボタンスイッチ）が押されたかどうかを判断する。ここで、参加確定ボタンが押されれば、ステップＳ１９で“ＹＥＳ”となり、ステップＳ２１で、自機が親機となり、Ｖ情報を参照して、自己の次のＶリトレースタイミングを持つゲーム機１２を送信先に決定して、準備段階の処理を終了する。
【０１０８】
なお、図示は省略するが、上述したように、親機となったゲーム機１２は他のゲーム機１２に参加確定情報を送信する。
【０１０９】
しかし、参加確定ボタンが押されていなければ、ステップＳ１９で“ＮＯ”となり、ステップＳ２３で、他のゲーム機１２で参加確定ボタンが押されたかどうかを判断する（参加確定情報を受信したか否かによって判断する）。ステップＳ２３で“ＮＯ”であれば、つまり他のゲーム機１２で参加確定ボタンが押されていなければ、そのまま図１４に示したステップＳ５に戻る。
【０１１０】
ここで、いずれのゲーム機１２においても参加確定ボタンが押されていない場合に、ステップＳ５に戻るようにしてあるのは、参加確定ボタンが押されて、マルチプレイゲームが開始されるまでは、他のゲーム機１２の参加（エントリ）を受け付けるようにしてあるためである。したがって、一旦すべてのゲーム機１２でＩＰリストが一致した後もステップＳ５〜Ｓ１７の処理が繰り返されることによって、新たな他のゲーム機１２が自身のＩＰリストを送信してきた場合にはそれを受け付けて、さらに当該他のゲーム機１２を含むすべてのＩＰリストが一致するまで処理が繰り返されることになる。
【０１１１】
一方、ステップＳ２３で“ＹＥＳ”であれば、つまり他のゲーム機１２から参加確定情報を受信して、他のゲーム機１２で参加確定ボタンが押されたことを判断すれば、ステップＳ２５で、自機が子機となり、参加確定情報に含まれるＶ情報で自己のＶ情報を更新した後、そのＶ情報を参照して、自己の次のタイミングを持つゲーム機１２を送信先に決定して、準備段階の処理を終了する。
【０１１２】
このようにして、ハブ１０２に接続された各ゲーム機１２が、マルチプレイゲームの準備段階の処理を終了すると、マルチプレイゲームのゲーム処理（プレイヤキャラクタ等を制御してゲームをおこなう処理）を開始する。当該ゲーム処理中では、親機は送信先の子機に自身のゲームデータを送信する。本実施例では、各ゲーム機１２のコントローラ２２の操作データを送信することとし、親機は送信先の子機に自身の操作データを送信する。子機は、親機或いは他の子機から送信された操作データに自身の操作データを付加して送信先のゲーム機１２（親機または子機）に送信する。この処理が各ゲーム機１２で一巡すると、すべてのゲーム機１２における操作データのセット（以下、「操作データセット」という。）が生成され、生成された操作データセットが各ゲーム機１２に転送される。したがって、各ゲーム機１２では、共通の操作データセットに従ってゲーム処理を実行することができる。
【０１１３】
具体的なゲームデータの通信を、図１６ないし図１９を用いて説明することにする。ただし、ここでは、送信の順番が上述のように決定された順番（Ｇ１→Ｇ３→Ｇ２→Ｇ４→Ｇ１→…）であり、ゲーム機１２（Ｇ１）が親機となったと仮定してある。親機（Ｇ１）は、Ｖリトレースのタイミングで自身のコントローラ２２の操作データを取得すると、図１６および図１８に示すように、当該操作データを送信先のゲーム機１２すなわち子機１（Ｇ３）に送信する。ここで、図１６に示すように、操作データはパケット通信（送信）される。当該パケットには、パケットの種別を示すヘッダが設けられ、ヘッダに続いてフレーム番号および当該フレームにおける操作データが記述される。具体的には、ヘッダには、当該パケットが操作データセット生成パケットである旨を示す情報（たとえば、１バイトのデータ）が記述される。また、フレーム番号には、送信する操作データを取得したフレームのフレームＮ（Ｎ＝０,１,２,３,…,ｎ）の番号の数値データ（たとえば、１バイトのデータ）が記述される。そして、当該フレームＮにおける親機（Ｇ１）の操作データが付加される。
【０１１４】
子機１（Ｇ３）は、親機（Ｇ１）からの操作データセット生成パケットを受信すると、当該操作データセット生成パケットをメインメモリ４０に保存（一時記憶）し、自身のＶリトレースのタイミングで自身のコントローラ２２の操作データを取得し、保存しておいた操作データセット生成パケットに、取得した操作データを付加して、送信先の子機２（Ｇ２）に送信する。子機２（Ｇ２）は、子機１（Ｇ３）からの操作データセット生成パケットを受信すると、当該操作データセット生成パケットをメインメモリ４０に保存し、自身のＶリトレースのタイミングで自身のコントローラ２２の操作データを取得し、保存しておいた操作データセット生成パケットに、取得した操作データを付加して、送信先の子機３（Ｇ４）に送信する。子機３（Ｇ４）は、子機２（Ｇ２）からの操作データセット生成パケットを受信すると、当該操作データセット生成パケットをメインメモリ４０に保存し、自身のＶリトレースのタイミングで自身のコントローラ２２の操作データを取得し、保存しておいた操作データセット生成パケットに、取得した操作データを付加して、送信先の親機（Ｇ１）に送信する。
【０１１５】
ここで、子機３（Ｇ４）は、操作データセット生成パケットを最後に受けるため、子機３（Ｇ４）が自身の操作データを操作データセット生成パケットに付加したときに、操作データセットが完成される。したがって、親機（Ｇ１）では、子機３（Ｇ４）からの操作データセット生成パケットを受信すると、これをメインメモリ４０に記憶するとともに、図１７および図１８に示すように、フレーム番号および操作データセットを含むパケット（以下、「回覧データパケット」という。）を生成して、すぐに送信先の子機１（Ｇ３）に送信する。すると、子機１（Ｇ３）は、当該回覧データパケットをメインメモリ４０に記憶するとともに、すぐに送信先の子機２（Ｇ２）に送信する。
【０１１６】
また、図１７および図１８に示すように、回覧データパケットは、順番が最後となる子機３（Ｇ４）には送信されない。これは、子機３（Ｇ４）では、子機２（Ｇ２）から操作データセット生成パケットを受信し、当該操作データセット生成パケットに自身の操作データを追加した時点で、操作データセットが完成しているためである。
【０１１７】
このようにして、完成された操作データセットが各ゲーム機１２で取得される。各ゲーム機１２では、完成された操作データセットを取得すると、当該操作データセットに従ったゲーム処理を実行する。これにより、マルチプレイゲームが処理されるのである。
【０１１８】
操作データセット生成パケットおよび回覧データパケットは、順番に従って送信（転送）されるため、ゲームデータが短い期間で送信（転送）されることとなり、ゲーム処理がいたずらに遅延してしまうことがない。つまり、プレイヤが操作してからゲーム画面に反映されるまでのレスポンスがよい。
【０１１９】
上述のようにして操作データセット生成パケットや回覧データパケットが通信され、マルチプレイゲームが進行されるのであるが、通信するゲーム機１２間でＶリトレースのタイミングが逆転してしまう場合がある。これは、製造上の誤差により、各ゲーム機１２でＣＰＵクロックが完全に同一ではないことに起因するもので、特に、互いに通信するゲーム機１２間においてＶリトレースのタイミングの差が小さい場合などに起こり得る。たとえば、図１９に示すように、子機１（Ｇ３）と子機２（Ｇ２）とのＶリトレースのタイミングが逆転してしまった場合には、子機２（Ｇ２）では、フレームＮについてのＶリトレースのタイミングになった時点Ｐでは、当該フレームＮについての操作データセット生成パケットを受信していない状態となる。これでは、子機２（Ｇ２）は送信先の子機３（Ｇ４）に操作データセット生成パケットを送信することができない。
【０１２０】
そこで、この実施例では、かかる場合には、Ｖリトレースのタイミングで自身の操作データを取得および保存しておき、送信元のゲーム機１２（図１９では、子機１（Ｇ３））からの操作データセット生成パケットを受信した時点Ｑで、保存しておいた操作データを付加して、送信先のゲーム機１２（図１９では、子機３（Ｇ４））に送信するようにしてある。
【０１２１】
なお、このように、Ｖリトレースのタイミングが逆転してしまう場合があるが、この場合でも、なんら事前に通信順序を決定しない場合と比べて、無駄になる時間は少なく、レスポンスが悪くなりにくい。
【０１２２】
このようなゲーム実行時の処理は、ゲーム機１２のＣＰＵ３６によって実行されるが、ゲーム機１２が親機の場合（図２０参照）と子機の場合（図２１ないし図２３参照）とで処理が異なるため、分けて説明することにする。図２０に示すように、親機のＣＰＵ３６は、ゲーム実行時の処理を開始すると、ステップＳ３１で、Ｖリトレースのタイミングかどうかを判断する。ステップＳ３１で“ＮＯ”であれば、つまりＶリトレースのタイミングでなければ、そのままステップＳ３７に移行する。しかし、ステップＳ３１で“ＹＥＳ”であれば、つまりＶリトレースのタイミングであれば、ステップＳ３３で、自己のコントローラ２２の操作データを取得する。具体的には、コントローラＩ／Ｆ５６に設けられるコントロールバッファ（図示せず）に保持されている操作データを読み取る。次のステップＳ３５では、取得した操作データに現在のフレーム番号を付加して、操作データセット生成パケットを作成し、次の（送信先の）ゲーム機１２（子機）に送信して、ステップＳ３７に進む。
【０１２３】
ステップＳ３７では、操作データセットすなわち操作データセット生成パケットを受信したかどうかを判断する。ここで、“ＮＯ”であれば、操作データセット生成パケットを受信していないため、そのままステップＳ３１に戻る。しかし、“ＹＥＳ”であれば、操作データセット生成パケットを受信しているため、次のステップＳ３９で、受信した操作データセット生成パケット（操作データセット）を保存する。たとえば、当該操作データセットは、当該ゲーム機１２（親機）のメインメモリ４０に一時記憶される。
【０１２４】
そして、ステップＳ４１で、受信した操作データセットを回覧データとして次のゲーム機１２に送信する。つまり、回覧データパケットを作成して、送信先の子機に送信する。その後、ステップＳ４３で、回覧データすなわち完成された操作データセットの内容に基づいて、マルチプレイゲームのゲーム処理を実行し、ステップＳ３１に戻る。親機では、このような処理が繰り返し実行されて、マルチプレイゲームが進行されるのである。
【０１２５】
一方、子機では、図２１，図２２および図２３のフロー図で示す処理が並列的に実行される。これは、上述したように、Ｖリトレースのタイミングにずれが生じた場合であっても、ゲーム処理に不具合が生じるのを防止するためである。まず、図２１に示すように、子機のＣＰＵ３６は、ゲーム実行時の処理における操作データセット受信時の処理を開始すると、ステップＳ５１で、操作データセットを受信したかどうかを判断する。つまり、親機や他の子機からの操作データセット生成パケットを受信したかどうかを判断する。
【０１２６】
ステップＳ５１で“ＮＯ”であれば、つまり操作データセット生成パケットを受信していなければ、そのまま同じステップＳ５１に戻る。一方、ステップＳ５１で“ＹＥＳ”であれば、つまり操作データセット生成パケットを受信すれば、ステップＳ５３で、操作データバッファに操作データが保存されているかどうかを判断する。図示は省略するが、操作データバッファとしては、たとえば、当該ゲーム機１２（子機）のメインメモリ４０の一部が使用される。
【０１２７】
このステップＳ５３で“ＹＥＳ”であれば、つまり操作データバッファに操作データが保存されていれば、ステップＳ５１において受信した操作データセットに、操作データバッファに保存された操作データを追加して、次のゲーム機に送信し、ステップＳ５７で、操作データバッファをクリアしてからステップＳ５１に戻る。
【０１２８】
一方、ステップＳ５３で“ＮＯ”であれば、つまり操作データバッファに操作データが保存されていなければ、ステップＳ５９で、ステップＳ５１において受信した操作データセットを保存して、ステップＳ５１に戻る。
【０１２９】
また、図２２に示すように、子機のＣＰＵ３６は、ゲーム実行時処理におけるＶリトレースのタイミング時の処理を開始すると、ステップＳ７１で、Ｖリトレースのタイミングかどうかを判断する。ステップＳ７１で“ＮＯ”であれば、つまりＶリトレースのタイミングでなければ、同じステップＳ７１に戻る。一方、ステップＳ７１で“ＹＥＳ”であれば、つまりＶリトレースのタイミングであれば、ステップＳ７３で、操作データを取得して、操作データバッファに保存する。ここで、操作データバッファに、すでに操作データが保存されている場合には、今回取得した操作データが上書きされる。
【０１３０】
そして、次のステップＳ７５で、図２１に示したステップＳ５９において、保存した操作データセット（操作データセット生成パケット）が在るかどうかを判断する。ここで、保存された操作データセットがない場合には、ステップＳ７５で“ＮＯ”となり、そのままステップＳ７１に戻る。一方、保存された操作データセットが在る場合には、ステップＳ７５で“ＹＥＳ”となり、ステップＳ７７で、ステップＳ５９において保存された操作データセットに、操作データバッファに保存された操作データを追加して、次のゲーム機１２に送信し、ステップＳ７９で、操作データバッファをクリアして、ステップＳ７１に戻る。このため、Ｖリトレースのタイミングが逆転した場合であっても、次のゲーム機１２への操作データセット生成パケットの送信に大幅な時間遅延が発生することがない。したがって、ゲーム処理に不具合が発生することもない。
【０１３１】
さらに、図２３に示すように、子機のＣＰＵ３６は、ゲーム実行時の処理における回覧データの受信時の処理およびゲーム処理を開始すると、ステップＳ９１で、回覧データを受信したかどうかを判断する。ステップＳ９１で“ＮＯ”であれば、つまり回覧データを受信していなければ、同じステップＳ９１に戻る。一方、ステップＳ９１で“ＹＥＳ”であれば、つまり回覧データを受信すれば、ステップＳ９３で、回覧データを保存し、次のステップＳ９５で、当該回覧データを次のゲーム機１２に転送（送信）する。ただし、最後の子機への転送は不要である。ここで、自分が最後の子機であるかどうかは、ＩＰリストおよびＶ情報から容易に判断できる。その後、ステップＳ９７で、回覧データの内容すなわち操作データセットに含まれるすべての操作データに基づいてゲーム処理を実行し、ステップＳ９１に戻る。
【０１３２】
なお、ゲーム実行時の処理においては、ゲームデータとして操作データを通信する場合についてのみ説明したが、ゲームの状態データを通信するようにしてもよい。かかる場合には、他のゲーム機１２のゲーム進行状況を自身のゲーム機１２に反映することができる。たとえば、ゲームの状態データから他のゲーム機１２のプレイヤキャラクタの位置を取得することにより、他のゲーム機１２のプレイヤキャラクタの位置を更新することができる。したがって、カーレースゲームやサッカーゲームのように、プレイヤキャラクタの位置が頻繁に変更されるようなゲームであっても、簡単にプレイヤキャラクタの移動処理を行うことができる。
【０１３３】
この実施例によれば、マルチプレイゲームの開始に先立って、ネットワーク上のゲーム機の各々は自身のＩＰアドレスを他のゲーム機に知らせておき、自身のＶリトレースのタイミングを基準として将来に向かって一番近いＶリトレースのタイミングを持つゲーム機をゲームデータの送信先に決定するので、ゲームデータを受信するための待ち時間を少なくすることができる。つまり、或るゲーム機からゲームデータを受信してから他のゲーム機へゲームデータを送信するまでの時間を短くできるので、通信効率を向上させることができるのである。
【０１３４】
なお、上述の実施例では、モニタを別途設けたゲーム装置を用いたゲームシステムについて説明したが、モニタとゲーム装置とが一体に設けられる携帯型のゲーム装置、近距離無線機能とゲーム機能とを備える携帯電話機、ＰＤＡやラップトップ型のＰＣのようなコンピュータなどを用いてゲームシステムを構成することも可能である。また業務用ゲームシステムに適用することも実施も可能である。
【０１３５】
また、マルチプレイゲームを開始した後に、あるゲーム機１２が通信を続行できなくなった場合、たとえば、あるゲーム機１２の電源がオフになった等の場合は、残りの各ゲーム機１２において、ＩＰリストからそのゲーム機のＩＰアドレスを削除する処理をするようにしてもよい。
【図面の簡単な説明】
【０１３６】
【図１】図１はこの発明の一実施例のゲームシステムに用いられるゲーム装置およびモニタの一例を示す図解図である。
【図２】図２は図１に示すビデオゲーム装置およびモニタの電気的な構成を示すブロック図である。
【図３】図３はこの発明の一実施例のゲームシステムを示す図解図である。
【図４】図４は図３に示すゲームシステムでマルチプレイゲームを開始する前の準備段階における各ゲーム機の内部メモリの初期状態を示す図解図である。
【図５】図５は図３に示すゲームシステムでマルチプレイゲームを開始する前の準備段階における各ゲーム機の内部メモリの状態の一例を示す図解図である。
【図６】図６は図３に示すゲームシステムでマルチプレイゲームを開始する前の準備段階における各ゲーム機の内部メモリの状態の他の一例を示す図解図である。
【図７】図７は図３に示すゲームシステムでマルチプレイゲームを開始する前の準備段階における各ゲーム機の内部メモリの状態のその他の一例を示す図解図である。
【図８】図８は図３に示すゲームシステムでマルチプレイゲームを開始する前の準備段階における各ゲーム機の内部メモリの状態のさらに他の一例を示す図解図である。
【図９】図９は図３に示すゲームシステムでマルチプレイゲームを開始する前の準備段階における各ゲーム機の内部メモリの状態の他の一例を示す図解図である。
【図１０】図１０は図３に示すゲームシステムでマルチプレイゲームを開始する前の準備段階における各ゲーム機の内部メモリの状態のその他の一例を示す図解図である。
【図１１】図１１は図３に示すゲームシステムでマルチプレイゲームを開始する前の準備段階における各ゲーム機の内部メモリの状態のさらに他の一例を示す図解図である。
【図１２】図１２は図３に示すゲームシステムでマルチプレイゲームを開始する前の準備段階における各ゲーム機の内部メモリの状態の他の一例を示す図解図である。
【図１３】図１３は図３に示すゲームシステムでマルチプレイゲームを開始する前の準備段階における各ゲーム機の内部メモリの状態のその他の一例を示す図解図である。
【図１４】図１４は図２に示すゲーム機のＣＰＵの準備段階の処理の一部を示すフロー図である。
【図１５】図１５は図２に示すゲーム機のＣＰＵの準備段階の処理の他の一部を示すフロー図である。
【図１６】図１６は図３に示すゲームシステムでマルチプレイゲームを実行する場合にゲーム機間で操作データセット生成パケットが送受信される様子を示す図解図である。
【図１７】図１７は図３に示すゲームシステムでマルチプレイゲームを実行する場合にゲーム機間で回覧データパケットが送受信される様子を示す図解図である。
【図１８】図１８は図１６に示した操作データセット生成パケットおよび図１７に示した回覧データパケットが送受信される様子の一例を時系列に従って示した図解図である。
【図１９】図１９は図１６に示した操作データセット生成パケットおよび図１７に示した回覧データパケットが送受信される様子の他の一例を時系列に従って示した図解図である。
【図２０】図２０は図２に示したゲーム機が親機として働く場合のゲーム実行時の処理を示すフロー図である。
【図２１】図２１は図２に示したゲーム機が子機として働く場合のゲーム実行時の処理の一部を示すフロー図である。
【図２２】図２１は図２に示したゲーム機が子機として働く場合のゲーム実行時の処理の他の一部を示すフロー図である。
【図２３】図２１は図２に示したゲーム機が子機として働く場合のゲーム実行時の処理のその他一部を示すフロー図である。
【図２４】図２４は従来技術のゲームシステムにおいて、ゲーム機間でゲームデータが送受信される様子の一例を時系列に従って示した図解図である。
【符号の説明】
【０１３７】
１０  …ゲーム装置
１２  …ゲーム機
１８  …光ディスク
２２  …コントローラ
３４  …モニタ
３４ａ  …スピーカ
３６  …ＣＰＵ
３８  …メモリコントローラ
４０  …メインメモリ
４２  …ＧＰＵ
５２  …ＤＳＰ
５４  …ＡＲＡＭ
５６  …コントローラＩ／Ｆ
５８  …ビデオＩ／Ｆ
６０  …外部メモリＩ／Ｆ
６２  …オーディオＩ／Ｆ
６４  …ディスクＩ／Ｆ
６６  …送受信Ｉ／Ｆ
６８  …タイマ
１００  …ゲームシステム
１０２  …ハブ
【図１】
2005137405.tif 000003
【図２】
2005137405.tif 000004
【図３】
2005137405.tif 000005
【図４】
2005137405.tif 000006
【図５】
2005137405.tif 000007
【図６】
2005137405.tif 000008
【図７】
2005137405.tif 000009
【図８】
2005137405.tif 000010
【図９】
2005137405.tif 000011
【図１０】
2005137405.tif 000012
【図１１】
2005137405.tif 000013
【図１２】
2005137405.tif 000014
【図１３】
2005137405.tif 000015
【図１４】
2005137405.tif 000016
【図１５】
2005137405.tif 000017
【図１６】
2005137405.tif 000018
【図１７】
2005137405.tif 000019
【図１８】
2005137405.tif 000020
【図１９】
2005137405.tif 000021
【図２０】
2005137405.tif 000022
【図２１】
2005137405.tif 000023
【図２２】
2005137405.tif 000024
【図２３】
2005137405.tif 000025
【図２４】
2005137405.tif 000026