(57)【要約】【課題】容量の小さい通信データを生成することにより、ゲームをスムーズに実行することができるようにする。【解決手段】本プログラムでは、入力部１７からの入力信号に基づいて、入力部１７の入力状態を示す状態データ１００が、生成される。そして、時間的に隣接する２つの入力信号が、同じ入力信号であるか否かが、制御部に判別される。そして、時間的に隣接する２つの入力信号が、同じ入力信号であった場合、入力信号の継続回数データ１０１が、算出される。そして、状態データ１００と継続回数データ１０１とに基づいて、入力情報を規定するための入力データ５００が、生成される。そして、この入力データが、通信部を介して、他のコンピュータに送信される。【選択図】図２
2010142527.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して互いに接続され、ゲームを実行可能な複数のコンピュータそれぞれに、
入力部からの入力信号に基づいて、入力部の入力状態を示す状態データを、生成する処理を、制御部に実行させることにより、入力ボタンを特定する入力ボタン特定機能と、
時間的に隣接する２つの入力信号が、同じ入力信号であるか否かを制御部に判別させることにより、同一ボタンの継続入力の有無を判別する継続入力判別機能と、
時間的に隣接する２つの前記入力信号が、同じ入力信号であった場合、前記入力信号の継続回数データを算出する処理を、制御部に実行させることにより、入力ボタンの継続入力を検査する継続入力検査機能と、
前記状態データと前記入力信号の継続回数データとに基づいて、入力情報を規定するための入力データを生成する処理を、制御部に実行させることにより、入力データを規定する入力データ規定機能と、
前記入力データを、通信部を介して送信する命令を、制御部に発行させることにより、前記入力データを他の前記コンピュータに送信する入力データ送信機能と、
を実現するためのゲームプログラム。
【請求項２】
前記コンピュータに、
通信部を介して他の前記コンピュータから受信した前記入力データを、記憶部に格納する入力データ格納機能と、
他の前記コンピュータから受信した前記入力データが欠落しているか否かを、制御部に判断させることにより、入力データの欠落の有無を検査する入力データ欠落検査機能と、
他の前記コンピュータから受信した前記入力データが欠落していた場合に、最新の前記入力データに含まれる、前記状態データと前記入力信号の継続回数データとに基づいて、欠落した前記入力データを生成する処理を、制御部に実行させることにより、欠落した前記入力データを補完する入力データ補完機能と、
をさらに実現するための請求項１に記載のゲームプログラム。
【請求項３】
前記入力データ送信機能では、前記入力データの送信番号に対応する識別データを、前記入力データに付加する処理を、制御部に実行させ、前記識別データが付加された前記入力データを、通信部を介して送信する命令を、制御部に発行させることにより、前記入力データが他の前記コンピュータに送信され、
前記入力データ欠落検査機能では、前記入力データに付加された前記識別データに基づいて、他の前記コンピュータから受信した前記入力データが欠落しているか否かを、制御部に判断させることにより、入力データの欠落の有無が検査される、
請求項２に記載のゲームプログラム。
【請求項４】
前記コンピュータに、
補完された前記入力データと、最新の前記入力データとに基づいて、他の前記コンピュータにおいて指示された命令を、制御部に発行させることにより、前記コンピュータのゲームと他の前記コンピュータのゲームとの同期を回復するゲーム同期回復機能、
をさらに実現するための請求項２又は３のいずれかに記載のゲームプログラム。
【請求項５】
前記コンピュータに、
他の前記コンピュータから受信した前記入力データが欠落していなかった場合に、最新の前記入力データに基づいて、他の前記コンピュータにおいて指示された命令を、制御部に発行させることにより、前記コンピュータのゲームを、他の前記コンピュータのゲームと同期するゲーム同期機能、
をさらに実現するための請求項２から４のいずれかに記載のゲームプログラム。
【請求項６】
前記コンピュータに、
入力部からの前記入力信号が制御部に認識されたときに、前記入力信号に対応する命令を、制御部に発行させることにより、前記コンピュータのゲームを制御するゲーム制御機能、
をさらに実現するための請求項１から５のいずれかに記載のゲームプログラム。
【請求項７】
ネットワークを介して他のゲーム装置に接続されるゲーム装置であって、
入力部からの入力信号に基づいて、入力部の入力状態を示す状態データを、生成する処理を、制御部に実行させることにより、入力ボタンを特定する入力ボタン特定手段と、
時間的に隣接する２つの入力信号が、同じ入力信号であるか否かを制御部に判別させることにより、同一ボタンの継続入力の有無を判別する継続入力判別手段と、
時間的に隣接する２つの前記入力信号が、同じ入力信号であった場合、前記入力信号の継続回数データを算出する処理を、制御部に実行させることにより、入力ボタンの継続入力を検査する継続入力検査手段と、
前記状態データと前記入力信号の継続回数データとに基づいて、入力情報を規定するための入力データを生成する処理を、制御部に実行させることにより、入力データを規定する入力データ規定手段と、
前記入力データを、通信部を介して送信する命令を、制御部に発行させることにより、前記入力データを他の前記コンピュータに送信する入力データ送信手段と、
を備えるゲーム装置。
【請求項８】
ネットワークを介して互いに接続される複数のコンピュータそれぞれにおいてゲームを制御するゲーム制御方法であって、
入力部からの入力信号に基づいて、入力部の入力状態を示す状態データを、生成する処理を、制御部に実行させることにより、入力ボタンを特定する入力ボタン特定ステップと、
時間的に隣接する２つの入力信号が、同じ入力信号であるか否かを制御部に判別させることにより、同一ボタンの継続入力の有無を判別する継続入力判別ステップと、
時間的に隣接する２つの前記入力信号が、同じ入力信号であった場合、前記入力信号の継続回数データを算出する処理を、制御部に実行させることにより、入力ボタンの継続入力を検査する継続入力検査ステップと、
前記状態データと前記入力信号の継続回数データとに基づいて、入力情報を規定するための入力データを生成する処理を、制御部に実行させることにより、入力データを規定する入力データ規定ステップと、
前記入力データを、通信部を介して送信する命令を、制御部に発行させることにより、前記入力データを他の前記コンピュータに送信する入力データ送信ステップと、
を備えるゲーム制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ゲームプログラム、特に、ネットワークを介して互いに接続される複数のコンピュータそれぞれにおいて実行されるゲームプログラムに関する。また、このゲームプログラムを実行可能なゲーム装置、およびこのゲームプログラムに基づいてコンピュータにより制御されるゲーム制御方法に関する。
【背景技術】
【０００２】
従来から様々なビデオゲームが提案されている。これらビデオゲームは、ゲーム装置において実行されるようになっている。たとえば、一般的なゲーム装置は、モニタと、モニタとは別体のゲーム装置本体と、ゲーム装置本体とは別体の入力装置たとえばコントローラとを有している。コントローラには、複数の入力釦が配置されている。
【０００３】
このようなゲーム装置において実現されるビデオゲームの１つとして、たとえば、野球ゲームが知られている（非特許文献１を参照）。この野球ゲームでは、プレイヤがコントローラを操作することによって、選手キャラクタに対する命令が制御部から発行されたり、自動制御プログラムに基づいて、選手キャラクタに対する命令が制御部から発行されたりする。このように、選手キャラクタに対する命令を制御部に発行させることにより、野球ゲームは実行されるようになっている。
【０００４】
このような野球ゲームでは、プレイヤは、対戦モードや育成モード等を選択することができ、プレイヤが選択したモードでゲームを実行することができるようになっている。たとえば、対戦モードには、プレイヤが１つのチームの全ての選手キャラクタを指揮するタイプの対戦モードや、プレイヤが１つのチームの１人の選手キャラクタだけを指揮するタイプの対戦モード等が、用意されている。
【０００５】
また、このような野球ゲームは、一台のゲーム装置（単体のゲーム装置）又は複数台のゲーム装置において実行される。たとえば、複数台のゲーム装置において、野球ゲームが実行される場合は、各ゲーム装置は、ネットワークを介して、互いに接続されている。
【０００６】
たとえば、複数台のゲーム装置において実行される場合、あるゲーム装置（Ａゲーム装置）において入力された入力データは、他のゲーム装置（Ｂゲーム装置）に送信され、Ｂゲーム装置において入力された入力データは、Ａゲーム装置に送信される。すると、Ａゲーム装置で入力された命令に基づいて、Ａゲーム装置およびＢゲーム装置で実行中のゲームが、制御される。また、Ｂゲーム装置で入力された命令に基づいて、Ａゲーム装置およびＢゲーム装置で実行中のゲームが、制御される。このようにして、Ａゲーム装置で実行中のゲームと、Ｂゲーム装置で実行中のゲームとが、同期される。これにより、複数台のゲーム装置において、野球ゲームを同時に実行することができる。
【非特許文献１】プロ野球スピリッツ５、コナミ株式会社、２００８年４月１日、PlayStation版
【発明の開示】
【発明が解決しようとする課題】
【０００７】
従来の野球ゲームを複数台のゲーム装置において実行する場合、複数台のゲーム装置において、野球ゲームを同期する必要がある。このため、ＡプレイヤがＡゲーム装置において入力した入力データは、Ｂゲーム装置に送信され、ＢプレイヤがＢゲーム装置において入力した入力データは、Ａゲーム装置に送信される。これにより、各ゲーム装置では、Ａプレイヤが指示した命令およびＢプレイヤが指示した命令を、野球ゲームにおいて実行することができる。すなわち、複数台のゲーム装置で実行中の野球ゲームを、同期することができる。
【０００８】
このような同期処理がゲーム装置において実行される場合、回線のデータ送信能力が小さかったり、データ容量が大きすぎたりすると、データ送信時に、受け手側のゲーム装置にデータが到着しなくなってしまうおそれがある。ここで、受け手側のゲーム装置にデータが到着しなかった場合、受け手側のゲーム装置において実行中の野球ゲームが、一時的に停止される。そして、受け手側のゲーム装置から、送り手側のゲーム装置へと、データの問い合わせ信号が、送信される。また、このときには、受け手側のゲーム装置から、送り手側のゲーム装置へは、ゲーム実行用のデータが、送信されなくなるので、送り手側のゲーム装置において実行中の野球ゲームも、一時的に停止される。このように、あるゲーム装置にデータが到着しなくなった時点で、全てのゲーム装置において実行中の野球ゲームが、一斉に停止することになる。
【０００９】
このため、上記のような理由で、データの不着が頻繁に発生してしまうと、全ての野球ゲーム装置で実行中の野球ゲームの映像（動画）が、スムーズに再現することができないという問題がある。
【００１０】
ここで、データ不着による具体的な不具合の要因の一つとして、ゲームコントローラやキーボードのキー入力が、考えられる。キー入力はゲーム中のキャラクタ操作および情報確認等のために不可欠であり、このキー入力に付随するデータ不着が発生すると、頻繁に上記問題が発生する可能性がある。このため、結果として、ゲームの遊戯性、およびゲームシステムとしての信頼度を大きく損なう恐れがある。
【００１１】
本発明は、このような問題に鑑みてなされたものであり、特に、キー入力の際に生じ得るデータ欠落を補完し、信頼度の高いゲームシステムを提供することにある。
【課題を解決するための手段】
【００１２】
請求項１に係るゲームプログラムは、ゲームを実行可能な複数のコンピュータそれぞれに、以下の機能を実現させるためのプログラムである。ここで、複数のコンピュータは、ネットワークを介して互いに接続されている。
（１）入力部からの入力信号に基づいて、入力部の入力状態を示す状態データを、生成する処理を、制御部に実行させることにより、入力ボタンを特定する入力ボタン特定機能。
（２）時間的に隣接する２つの入力信号が、同じ入力信号であるか否かを制御部に判別させることにより、同一ボタンの継続入力の有無を判別する継続入力判別機能。
（３）時間的に隣接する２つの入力信号が、同じ入力信号であった場合、入力信号の継続回数データを算出する処理を、制御部に実行させることにより、入力ボタンの継続入力を検査する継続入力検査機能。
（４）状態データと入力信号の継続回数データとに基づいて、入力情報を規定するための入力データを生成する処理を、制御部に実行させることにより、入力データを規定する入力データ規定機能。
（５）入力データを、通信部を介して送信する命令を、制御部に発行させることにより、入力データを他のコンピュータに送信する入力データ送信機能。
【００１３】
このゲームプログラムでは、入力ボタン特定機能において、入力部からの入力信号に基づいて、入力部の入力状態を示す状態データを、生成する処理を、制御部に実行させることにより、入力ボタンが特定される。継続入力判別機能においては、時間的に隣接する２つの入力信号が、同じ入力信号であるか否かを制御部に判別させることにより、同一ボタンの継続入力の有無が、判別される。継続入力検査機能においては、時間的に隣接する２つの入力信号が、同じ入力信号であった場合、入力信号の継続回数データを算出する処理を、制御部に実行させることにより、入力ボタンの継続入力が、検査される。入力データ規定機能においては、状態データと入力信号の継続回数データとに基づいて、入力情報を規定するための入力データを生成する処理を、制御部に実行させることにより、入力データが規定される。入力データ送信機能においては、入力データを、通信部を介して送信する命令を、制御部に発行させることにより、入力データが、他のコンピュータに送信される。
【００１４】
上記構成によれば、本発明では、例えばキー入力の際に、どのキーが押されたかを識別するためのデータを、単発で送信するのではなく、時間的に過去の複数のデータ情報を、一つの入力データ（状態データおよび継続回数データ）として送信する。つまり、ある時点で送信される入力データは、その中に、時間的に過去の複数のデータを内在的に含んでいる。このため、仮にあるデータが欠落したとしても、入力データの中には複数の過去データが内在的に含まれていることになるので、この入力データを用いて、欠落データを補完することができる。なお、上記の入力データを構成する各データ（状態データ）は、内容が同一のデータである。この理由は、人間がキーを押す時間は１フレームで終わることはあり得ず、人為的な操作についてはキーを押して離すまで少なくとも３〜１０フレームは押し続けることになるためである。このようなキー入力操作特有の特殊性に着目し、これを本発明では有効に利用している。
【００１５】
このゲームプログラムが野球ゲームに適用された場合を一例として説明すると、たとえば、選手キャラクタを右に動かすためのボタンが、押された場合、このボタンが押された状態を示す状態データが、生成される。このようにして、入力されたボタン（入力ボタン）が、特定される。そして、時間的に連続する２フレーム分の入力信号が同じであるか否かが、制御部により判別される。これにより、同一ボタンが継続的に押されているか否かが、判別される。ここで、時間的に隣接する２フレーム分の入力信号が、同じ入力信号であった場合、すなわち、選手キャラクタを右に動かすためのボタンが、２フレーム分、継続して押された場合、このボタンが押されている間のフレーム数（継続回数データ）が、計算される。この処理を１フレームごとに実行することにより、入力ボタンの継続入力が、検査される。そして、状態データとフレーム数とに基づいて、入力されたボタンの情報を規定するための入力データが、１フレームごとに生成される。そして、入力データが生成されると、この入力データが、他のコンピュータに１フレームごとに送信される。
【００１６】
この場合、入力データが、状態データと入力信号の継続回数データとに基づいて、生成される。ここで、状態データは、コントローラに配置された各種のボタンの入力状態を、示すものである。この状態データは、たとえば、次のようにして生成される。まず、初期設定として、全てのボタンのフラグが、オフに設定される。次に、あるボタンが押されると、押されたボタンのフラグが、オンに設定される。このような設定が、全てのボタンに対して実行され、全てのボタンのオンオフ状態を示す状態データが、生成される。
【００１７】
また、継続回数データは、同じボタンが継続的に押されたときの継続状況を示すものであり、何フレーム分、継続して押されているかを示す回数である。この継続回数データは、たとえば、次のようにして算出される。まず、ある瞬間（フレーム）と次の瞬間（フレーム）とに同じボタンが継続的に押された場合、継続回数データ（初期値はゼロ）が、インクリメントされる。すると、継続回数データが、「１」に設定される。続いて、次の瞬間に再び同じボタンが継続的に押された場合、この継続回数データが、インクリメントされる。すると、継続回数データが、「２」に設定される。このようにして、同じボタンが押された回数すなわち継続回数データが、算出される。
【００１８】
すると、上記のようにして求めた状態データと継続回数データとに基づいて、入力データが規定される。たとえば、コントローラが、「Ａボタン、Ｂボタン、Ｃボタン、Ｄボタン、・・・」から構成されている場合、「１，０，０，０，・・・；ｎ」のような入力データが、生成される。この入力データでは、「；」の前の数字が状態データに対応しており、「；」の後の数字が、各ボタンのフラグのオンオフを示す継続回数データに対応している。ここでは、Ａボタンが押されたときの入力データが、示されている。そして、Ａボタンが継続して入力されたときの回数ｎを示す継続回数データが、示されている。このように、本発明では、同じボタンが継続的に押された場合、継続回数データｎの値が変化するだけであり、入力データの全体のデータ量は変化しない。
【００１９】
ところで、同じボタンが継続的に押された場合の、「（１，０，０，０，・・・）、（１，０，０，０，・・・）、（１，０，０，０，・・・）、・・・」のような複数の入力データそれぞれを、そのデータ構成のまま、単純に一つの集合としてまとめて送信することも考えられる。しかしながら、回線容量が小さい場合には、多くのデータは、同時に送信することができないため、このデータ構成では、結果的に、データ欠落に対する補完の効果を、大きくは望むことができない。
【００２０】
しかしながら、上述したように、本発明では、１個の入力データ（状態データ＋１バイト（継続回数データ））のみで、数十個またはそれ以上の情報を表現することができる。すなわち、本発明では、欠落データを補完するために必要な多くの情報を、非常に小さなデータ量で提供することができる。言い換えると、データ量が非常に小さくても、信頼度の高い情報を、提供することができる。これにより、キー入力に伴うゲーム中断のリスクを、大きく低減することができる。
【００２１】
請求項２に係るゲームプログラムは、請求項１に記載のゲームプログラムにおいて、コンピュータに、以下の機能をさらに実現させるためのプログラムである。
（６）通信部を介して他のコンピュータから受信した入力データを、記憶部に格納する入力データ格納機能。
（７）他のコンピュータから受信した入力データが欠落しているか否かを、制御部に判断させることにより、入力データの欠落の有無を検査する入力データ欠落検査機能。
（８）他のコンピュータから受信した入力データが欠落していた場合に、最新の入力データに含まれる、状態データと入力信号の継続回数データとに基づいて、欠落した入力データを生成する処理を、制御部に実行させることにより、欠落した入力データを補完する入力データ補完機能。
【００２２】
このゲームプログラムでは、入力データ格納機能において、通信部を介して他のコンピュータから受信した入力データが、記憶部に格納される。入力データ欠落検査機能においては、他のコンピュータから受信した入力データが欠落しているか否かを、制御部に判断させることにより、入力データの欠落の有無が検査される。入力データ補完機能においては、他のコンピュータから受信した入力データが欠落していた場合に、最新の入力データに含まれる、状態データと入力信号の継続回数データとに基づいて、欠落した入力データを生成する処理を、制御部に実行させることにより、欠落した入力データが、補完される。
【００２３】
このゲームプログラムが野球ゲームに適用された場合を一例として説明すると、たとえば、他のコンピュータにおいて選手キャラクタを左に動かすためのボタンが、押された場合、他のコンピュータで入力されたボタンの情報を規定するための入力データが、通信部を介して、記憶部に格納される。すると、他のコンピュータから受信した入力データが欠落しているか否かが、検査される。そして、他のコンピュータから受信した入力データが欠落していた場合に、最新の入力データに含まれる、状態データと入力信号の継続回数データとに基づいて、欠落した入力データが、生成される。これにより、欠落した入力データが、補完される。
【００２４】
この場合、他のコンピュータから受信した入力データが欠落していた場合に、最新の入力データに含まれる、状態データと入力信号の継続回数データとに基づいて、欠落した入力データが、生成される。たとえば、他のコンピュータの１つ前の入力データが欠落しており、最新の入力データが「０，０，１，０，・・・；２」である場合、この最新の入力データを用いて、欠落した入力データが、生成される。具体的には、この最新の入力データを見ると、入力ボタン（Ｃボタン）が最初に押された後に、Ｃボタンが、さらに２回継続して押されていることがわかる。このため、他のコンピュータの１つ前の入力データが欠落していても、最新の入力データを用いて、欠落した入力データ、すなわち「０，０，１，０，・・・；１」を、生成することができる。このように、本発明では、過去の入力データが欠落していても、最新の入力データを用いて、欠落した入力データを補完することができる。
【００２５】
請求項３に係るゲームプログラムは、請求項２に記載のゲームプログラムにおいて、入力データの送信番号に対応する識別データを、入力データに付加する処理が、制御部により実行される。そして、識別データが付加された入力データを、通信部を介して送信する命令が、制御部から発行される。このようにして、入力データが、他のコンピュータに送信される。この機能は、入力データ送信機能において実現される。また、入力データ欠落検査機能では、入力データに付加された識別データに基づいて、他のコンピュータから受信した入力データが欠落しているか否かを、制御部に判断させることにより、入力データの欠落が、検査される。
【００２６】
たとえば、このゲームプログラムでは、入力データの送信番号に対応する識別データが、入力データに付加される。そして、識別データが付加された入力データが、通信部を介して送信される。一方で、他のコンピュータの入力データ、すなわち識別データが付加された入力データが、通信部を介して、記憶部に格納されると、この入力データに付加された識別データに基づいて、他のコンピュータから受信した入力データが欠落しているか否かが、検査される。
【００２７】
この場合、他のコンピュータから送信された入力データを受け取ったコンピュータにおいて、他のコンピュータから送信された入力データの送信番号を、識別データに基づいて特定することができる。これにより、他のコンピュータから受信した入力データが欠落しているか否かを、検査することができる。このように、本発明では、過去の入力データが欠落していても、欠落した入力データを容易に検出することができる。
【００２８】
請求項４に係るゲームプログラムは、請求項２又は３に記載のゲームプログラムにおいて、コンピュータに、以下の機能をさらに実現させるためのプログラムである。
（９）補完された入力データと、最新の入力データとに基づいて、他のコンピュータにおいて指示された命令を、制御部に発行させることにより、本コンピュータのゲームと他のコンピュータのゲームとの同期を回復するゲーム同期回復機能。
【００２９】
このゲームプログラムでは、ゲーム同期回復機能において、補完された入力データと、最新の入力データとに基づいて、他のコンピュータにおいて指示された命令を、制御部に発行させることにより、他のコンピュータのゲームとの同期が回復される。
【００３０】
このゲームプログラムが野球ゲームに適用された場合を一例として説明すると、たとえば、他のコンピュータにおいて選手キャラクタを左に動かすためのＣボタンが押され、他のコンピュータから受信した入力データが欠落していた場合、欠落した入力データが、最新の入力データを用いて補完される。すると、補完された入力データと、最新の入力データとに基づいて、他のコンピュータにおいて指示された命令、たとえば、選手キャラクタを左に動かすための命令が、制御部から発行される。これにより、他のコンピュータにおいて実行中のゲームが、本コンピュータのゲーム上に同期される。
【００３１】
この場合、他のコンピュータからの過去の入力データが欠落したとしても、最新の入力データを用いて、過去の入力データを補完することができる。そして、補完された入力データと、最新の入力データとに基づいて、他のコンピュータにおいて指示された命令を、本コンピュータにおいて実行中のゲームに反映することができる。このように、本発明では、他のコンピュータからの過去の入力データが欠落したとしても、最新の入力データを用いて、他のコンピュータにおいて実行中のゲームを、本コンピュータのゲーム上に同期することができる。
【００３２】
請求項５に係るゲームプログラムは、請求項２から４のいずれかに記載のゲームプログラムにおいて、コンピュータに、以下の機能をさらに実現させるためのプログラムである。
（１０）他のコンピュータから受信した入力データが欠落していなかった場合に、最新の入力データに基づいて、他のコンピュータにおいて指示された命令を、制御部に発行させることにより、他のコンピュータにおいて実行中のゲームを、本コンピュータのゲーム上に同期するゲーム同期機能。
【００３３】
このゲームプログラムでは、ゲーム同期機能において、他のコンピュータから受信した入力データが欠落していなかった場合に、最新の入力データに基づいて、他のコンピュータにおいて指示された命令を、制御部に発行させることにより、他のコンピュータにおいて実行中のゲームが、本コンピュータのゲーム上に同期される。
【００３４】
このゲームプログラムが野球ゲームに適用された場合を一例として説明すると、たとえば、他のコンピュータにおいて選手キャラクタを左に動かすためのＣボタンが押され、他のコンピュータから受信した入力データが欠落していなかった場合、最新の入力データとに基づいて、他のコンピュータにおいて指示された命令、たとえば、選手キャラクタを左に動かすための命令が、制御部から発行される。これにより、他のコンピュータにおいて実行中のゲームが、本コンピュータのゲーム上に同期される。
【００３５】
この場合、他のコンピュータからの過去の入力データが欠落していないので、最新の入力データのみを用いて、他のコンピュータにおいて指示された命令が、本コンピュータにおいて実行中のゲームに反映される。すなわち、本発明では、データ量の小さい入力データを用いて、他のコンピュータにおいて実行中のゲームを、本コンピュータのゲーム上に同期することができる。
【００３６】
請求項６に係るゲームプログラムは、請求項１から５のいずれかに記載のゲームプログラムにおいて、コンピュータに、以下の機能をさらに実現させるためのプログラムである。
（１１）入力部からの入力信号が制御部に認識されたときに、入力信号に対応する命令を、制御部に発行させることにより、コンピュータのゲームを制御するゲーム制御機能。
【００３７】
このゲームプログラムでは、ゲーム制御機能において、入力部からの入力信号が制御部に認識されたときに、入力信号に対応する命令を、制御部に発行させることにより、コンピュータのゲームが、制御される。
【００３８】
このゲームプログラムが野球ゲームに適用された場合を一例として説明すると、たとえば、本コンピュータにおいて選手キャラクタを右に動かすためのボタンが押されると、このボタンに対応する命令が、制御部から発行される。すると、実行中の本コンピュータのゲームにおいて、選手キャラクタが右に移動する状態が、画像表示部に表示される。
【００３９】
この場合、本コンピュータにおいて選手キャラクタを右に動かすためのボタンが押されると、実行中の本コンピュータのゲームにおいて、選手キャラクタを右に移動させることができる。そして、このボタンが押されたときには、入力ボタンの情報を規定するための入力データが、通信部を介して、他のコンピュータに送信される。そして、他のコンピュータにおいても、選手キャラクタを右に移動させることができる。このように、本発明では、複数のコンピュータで実行されているゲームを、同期することができる。
【００４０】
請求項７に係るゲーム装置は、ネットワークを介して他のゲーム装置に接続されるゲーム装置である。このゲーム装置は、入力部からの入力信号に基づいて、入力部の入力状態を示す状態データを、生成する処理を、制御部に実行させることにより、入力ボタンを特定する入力ボタン特定手段と、時間的に隣接する２つの入力信号が、同じ入力信号であるか否かを制御部に判別させることにより、同一ボタンの継続入力の有無を判別する継続入力判別手段と、時間的に隣接する２つの入力信号が、同じ入力信号であった場合、入力信号の継続回数データを算出する処理を、制御部に実行させることにより、入力ボタンの継続入力を検査する継続入力検査手段と、状態データと入力信号の継続回数データとに基づいて、入力情報を規定するための入力データを生成する処理を、制御部に実行させることにより、入力データを規定する入力データ規定手段と、入力データを、通信部を介して送信する命令を、制御部に発行させることにより、入力データを他のコンピュータに送信する入力データ送信手段と、を備えている。
【００４１】
請求項８に係るゲーム制御方法は、ネットワークを介して互いに接続される複数のコンピュータそれぞれにおいてゲームを制御するゲーム制御方法である。このゲーム制御方法は、入力部からの入力信号に基づいて、入力部の入力状態を示す状態データを、生成する処理を、制御部に実行させることにより、入力ボタンを特定する入力ボタン特定ステップと、時間的に隣接する２つの入力信号が、同じ入力信号であるか否かを制御部に判別させることにより、同一ボタンの継続入力の有無を判別する継続入力判別ステップと、時間的に隣接する２つの入力信号が、同じ入力信号であった場合、入力信号の継続回数データを算出する処理を、制御部に実行させることにより、入力ボタンの継続入力を検査する継続入力検査ステップと、状態データと入力信号の継続回数データとに基づいて、入力情報を規定するための入力データを生成する処理を、制御部に実行させることにより、入力データを規定する入力データ規定ステップと、入力データを、通信部を介して送信する命令を、制御部に発行させることにより、入力データを他のコンピュータに送信する入力データ送信ステップと、を備えている。
【発明の効果】
【００４２】
本発明では、本発明では、同じボタンが継続入力されても、入力データのデータ量は変化しない。このため、本発明において生成される入力データは、従来の入力データと比較して、データ量が小さくなり、データ送信時に回線の影響を受けにくくなる。また、本発明では、入力データを他のコンピュータに安定的に送り届けることができる。また、本発明では、他のコンピュータから受信した入力データが欠落していても、最新の入力データを用いて、欠落した入力データを容易に補完することができる。
【発明を実施するための最良の形態】
【００４３】
〔ゲーム装置の構成と動作〕
図１は、本発明の一実施形態によるゲーム装置の基本構成を示している。ここでは、ビデオゲーム装置の一例として、家庭用ビデオゲーム装置をとりあげて説明を行うこととする。家庭用ビデオゲーム装置は、家庭用ゲーム機本体および家庭用テレビジョンを備える。家庭用ゲーム機本体には、記録媒体１０が装填可能となっており、記録媒体１０からゲームデータが適宜読み出されてゲームが実行される。このようにして実行されるゲーム内容が家庭用テレビジョンに表示される。
【００４４】
家庭用ビデオゲーム装置のゲームシステムは、制御部１と、記憶部２と、画像表示部３と、音声出力部４と、操作入力部５とからなっており、それぞれがバス６を介して接続される。このバス６は、アドレスバス、データバス、およびコントロールバスなどを含んでいる。ここで、制御部１、記憶部２、音声出力部４および操作入力部５は、家庭用ビデオゲーム装置の家庭用ゲーム機本体に含まれており、画像表示部３は家庭用テレビジョンに含まれている。
【００４５】
制御部１は、主に、ゲームプログラムに基づいてゲーム全体の進行を制御するために設けられている。制御部１は、たとえば、ＣＰＵ（Central Processing Unit）７と、信号処理プロセッサ８と、画像処理プロセッサ９とから構成されている。ＣＰＵ７と信号処理プロセッサ８と画像処理プロセッサ９とは、それぞれがバス６を介して互いに接続されている。ＣＰＵ７は、ゲームプログラムからの命令を解釈し、各種のデータ処理や制御を行う。たとえば、ＣＰＵ７は、信号処理プロセッサ８に対して、画像データを画像処理プロセッサに供給するように命令する。信号処理プロセッサ８は、主に、３次元空間上における計算と、３次元空間上から擬似３次元空間上への位置変換計算と、光源計算処理と、画像および音声データの生成加工処理とを行っている。画像処理プロセッサ９は、主に、信号処理プロセッサ８の計算結果および処理結果に基づいて、描画すべき画像データをＲＡＭ１２に書き込む処理を行っている。
【００４６】
記憶部２は、主に、プログラムデータや、プログラムデータで使用される各種データなどを格納しておくために設けられている。記憶部２は、たとえば、記録媒体１０と、インターフェース回路１１と、ＲＡＭ（Random Access Memory）１２とから構成されている。記録媒体１０には、インターフェース回路１１が接続されている。そして、インターフェース回路１１とＲＡＭ１２とはバス６を介して接続されている。記録媒体１０は、オペレーションシステムのプログラムデータや、画像データ、音声データ並びに各種プログラムデータからなるゲームデータなどを記録するためのものである。この記録媒体１０は、たとえば、ＲＯＭ（Read Only Memory）カセット、光ディスク、およびフレキシブルディスクなどであり、オペレーティングシステムのプログラムデータやゲームデータなどが記憶される。なお、記録媒体１０にはカード型メモリも含まれており、このカード型メモリは、主に、ゲームを中断するときに中断時点での各種ゲームパラメータを保存するために用いられる。ＲＡＭ１２は、記録媒体１０から読み出された各種データを一時的に格納したり、制御部１からの処理結果を一時的に記録したりするために用いられる。このＲＡＭ１２には、各種データとともに、各種データの記憶位置を示すアドレスデータが格納されており、任意のアドレスを指定して読み書きすることが可能になっている。
【００４７】
画像表示部３は、主に、画像処理プロセッサ９によってＲＡＭ１２に書き込まれた画像データや、記録媒体１０から読み出される画像データなどを画像として出力するために設けられている。この画像表示部３は、たとえば、テレビジョンモニタ２０と、インターフェース回路２１と、Ｄ／Ａコンバータ（Digital-To-Analogコンバータ）２２とから構成されている。テレビジョンモニタ２０にはＤ／Ａコンバータ２２が接続されており、Ｄ／Ａコンバータ２２にはインターフェース回路２１が接続されている。そして、インターフェース回路２１にバス６が接続されている。ここでは、画像データが、インターフェース回路２１を介してＤ／Ａコンバータ２２に供給され、ここでアナログ画像信号に変換される。そして、アナログ画像信号がテレビジョンモニタ２０に画像として出力される。
【００４８】
ここで、画像データには、たとえば、ポリゴンデータやテクスチャデータなどがある。ポリゴンデータはポリゴンを構成する頂点の座標データのことである。テクスチャデータは、ポリゴンにテクスチャを設定するためのものであり、テクスチャ指示データとテクスチャカラーデータとからなっている。テクスチャ指示データはポリゴンとテクスチャとを対応づけるためのデータであり、テクスチャカラーデータはテクスチャの色を指定するためのデータである。ここで、ポリゴンデータとテクスチャデータとには、各データの記憶位置を示すポリゴンアドレスデータとテクスチャアドレスデータとが対応づけられている。このような画像データでは、信号処理プロセッサ８により、ポリゴンアドレスデータの示す３次元空間上のポリゴンデータ（３次元ポリゴンデータ）が、画面自体(視点)の移動量データおよび回転量データに基づいて座標変換および透視投影変換されて、２次元空間上のポリゴンデータ（２次元ポリゴンデータ）に置換される。そして、複数の２次元ポリゴンデータでポリゴン外形を構成して、ポリゴンの内部領域にテクスチャアドレスデータが示すテクスチャデータを書き込む。このようにして、各ポリゴンにテクスチャが貼り付けられた物体つまり各種キャラクタを表現することができる。
【００４９】
音声出力部４は、主に、記録媒体１０から読み出される音声データを音声として出力するために設けられている。音声出力部４は、たとえば、スピーカー１３と、増幅回路１４と、Ｄ／Ａコンバータ１５と、インターフェース回路１６とから構成されている。スピーカー１３には増幅回路１４が接続されており、増幅回路１４にはＤ／Ａコンバータ１５が接続されており、Ｄ／Ａコンバータ１５にはインターフェース回路１６が接続されている。そして、インターフェース回路１６にバス６が接続されている。ここでは、音声データが、インターフェース回路１６を介してＤ／Ａコンバータ１５に供給され、ここでアナログ音声信号に変換される。このアナログ音声信号が増幅回路１４によって増幅され、スピーカー１３から音声として出力される。音声データには、たとえば、ＡＤＰＣＭ（Adaptive Differential Pulse Code Modulation）データやＰＣＭ（Pulse Code Modulation）データなどがある。ＡＤＰＣＭデータの場合、上述と同様の処理方法で音声をスピーカー１３から出力することができる。ＰＣＭデータの場合、ＲＡＭ１２においてＰＣＭデータをＡＤＰＣＭデータに変換しておくことで、上述と同様の処理方法で音声をスピーカー１３から出力することができる。
【００５０】
操作入力部５は、主に、コントローラ１７と、操作情報インターフェース回路１８と、インターフェース回路１９とから構成されている。コントローラ１７には、操作情報インターフェース回路１８が接続されており、操作情報インターフェース回路１８にはインターフェース回路１９が接続されている。そして、インターフェース回路１９にバス６が接続されている。
【００５１】
コントローラ１７は、プレイヤが種々の操作命令を入力するために使用する操作装置であり、プレイヤの操作に応じた操作信号をＣＰＵ７に送出する。コントローラ１７には、第１ボタン１７ａ、第２ボタン１７ｂ、第３ボタン１７ｃ、第４ボタン１７ｄ、上方向キー１７Ｕ、下方向キー１７Ｄ、左方向キー１７Ｌ、右方向キー１７Ｒ、Ｌ１ボタン１７Ｌ１、Ｌ２ボタン１７Ｌ２、Ｒ１ボタン１７Ｒ１、Ｒ２ボタン１７Ｒ２、スタートボタン１７ｅ、セレクトボタン１７ｆ、左スティック１７ＳＬ及び右スティック１７ＳＲが設けられている。
【００５２】
上方向キー１７Ｕ、下方向キー１７Ｄ、左方向キー１７Ｌ及び右方向キー１７Ｒは、例えば、キャラクタやカーソルをテレビジョンモニタ２０の画面上で上下左右に移動させるコマンドをＣＰＵ７に与えるために使用される。
【００５３】
スタートボタン１７ｅは、記録媒体１０からゲームプログラムをロードするようにＣＰＵ７に指示するときや、実行中のゲームプログラムを一時停止するときなどに使用される。
【００５４】
セレクトボタン１７ｆは、記録媒体１０からロードされたゲームプログラムに対して、各種選択をＣＰＵ７に指示するときなどに使用される。
【００５５】
左スティック１７ＳＬ及び右スティック１７ＳＲは、いわゆるジョイスティックとほぼ同一構成のスティック型コントローラである。このスティック型コントローラは、直立したスティックを有している。このスティックは、支点を中心として直立位置から前後左右を含む３６０°方向に亘って、傾倒可能な構成になっている。左スティック１７ＳＬ及び右スティック１７ＳＲは、スティックの傾倒方向及び傾倒角度に応じて、直立位置を原点とするｘ座標及びｙ座標の値を、操作信号として操作情報インターフェース回路１８とインターフェース回路１９とを介してＣＰＵ７に送出する。
【００５６】
第１ボタン１７ａ、第２ボタン１７ｂ、第３ボタン１７ｃ、第４ボタン１７ｄ、Ｌ１ボタン１７Ｌ１、Ｌ２ボタン１７Ｌ２、Ｒ１ボタン１７Ｒ１及びＲ２ボタン１７Ｒ２には、記録媒体１０からロードされるゲームプログラムに応じて種々の機能が割り振られている。
【００５７】
なお、左スティック１７ＳＬ及び右スティック１７ＳＲを除くコントローラ１７の各ボタン及び各キーは、外部からの押圧力によって中立位置から押圧されるとオンになり、押圧力が解除されると中立位置に復帰してオフになるオンオフスイッチになっている。
【００５８】
通信部２３は、通信制御回路２４および通信インターフェース２５を有している。通信制御回路２４および通信インターフェース２５は、ゲーム装置をサーバや他のゲーム装置等に接続するために用いられる。通信制御回路２４および通信インターフェース２５は、バス６を介してＣＰＵ７に接続されている。通信制御回路２４および通信インターフェース２５は、ＣＰＵ７からの命令に応じて、ゲーム装置をインターネットに接続するための接続信号を制御し発信する。また、通信制御回路２４および通信インターフェース２５は、インターネットを介してゲーム装置をサーバや他のゲーム装置に接続するための接続信号を制御し発信する。
【００５９】
以上のような構成からなる家庭用ビデオゲーム装置の概略動作を、以下に説明する。電源スイッチ（図示省略）がオンにされゲームシステムに電源が投入されると、ＣＰＵ７が、記録媒体１０に記憶されているオペレーティングシステムに基づいて、記録媒体１０から画像データ、音声データ、およびプログラムデータを読み出す。読み出された画像データ、音声データ、およびプログラムデータの一部若しくは全部は、ＲＡＭ１２に格納される。そして、ＣＰＵ７が、ＲＡＭ１２に格納されたプログラムデータに基づいて、ＲＡＭ１２に格納された画像データや音声データにコマンドを発行する。
【００６０】
画像データの場合、ＣＰＵ７からのコマンドに基づいて、まず、信号処理プロセッサ８が、３次元空間上におけるキャラクタの位置計算および光源計算などを行う。次に、画像処理プロセッサ９が、信号処理プロセッサ８の計算結果に基づいて、描画すべき画像データのＲＡＭ１２への書き込み処理などを行う。そして、ＲＡＭ１２に書き込まれた画像データが、インターフェース回路２１を介してＤ／Ａコンバータ２２に供給される。ここで、画像データがＤ／Ａコンバータ２２でアナログ映像信号に変換される。そして、画像データはテレビジョンモニタ２０に供給され画像として表示される。
【００６１】
音声データの場合、まず、信号処理プロセッサ８が、ＣＰＵ７からのコマンドに基づいて音声データの生成および加工処理を行う。ここでは、音声データに対して、たとえば、ピッチの変換、ノイズの付加、エンベロープの設定、レベルの設定及びリバーブの付加などの処理が施される。次に、音声データは、信号処理プロセッサ８から出力されて、インターフェース回路１６を介してＤ／Ａコンバータ１５に供給される。ここで、音声データがアナログ音声信号に変換される。そして、音声データは増幅回路１４を介してスピーカー１３から音声として出力される。
【００６２】
〔ゲーム装置における各種処理概要〕
本ゲーム装置は、他のゲーム装置に、ネットワークを介して接続されている。本ゲーム装置および他のゲーム装置において実行されるゲームは、たとえば、ネットワーク対戦用の野球ゲームである。本ゲーム装置および他のゲーム装置は、以下に示す手段を備えている。図２は、本発明で主要な役割を果たす機能を説明するための機能ブロック図である。
【００６３】
ゲーム制御手段５０は、コントローラ１７からの入力信号がＣＰＵ７に認識されたときに、入力信号に対応する命令を、ＣＰＵ７に発行させることにより、ゲーム装置において実行中のゲームを制御する機能を備えている。
【００６４】
この手段では、コントローラ１７からの入力信号がＣＰＵ７に認識されたときに、入力信号に対応する命令が、ＣＰＵ７に発行される。すると、この命令に対応する制御が、実行中のゲームにおいて実行される。たとえば、選手キャラクタを右に動かすためのボタン、すなわち右方向キー１７Ｒが、ゲーム実行中に押された場合、右移動命令が、ＣＰＵ７から発行される。すると、選手キャラクタが右に移動する状態が、テレビジョンモニタ２０に表示される。
【００６５】
入力ボタン特定手段５１は、コントローラ１７からの入力信号に基づいて、コントローラ１７の入力状態を示す状態データを、生成する処理を、ＣＰＵ７に実行させることにより、入力ボタンを特定する機能を備えている。
【００６６】
この手段では、コントローラ１７からの入力信号がＣＰＵ７に認識されたときに、この入力信号に基づいて、コントローラ１７の入力状態を示す状態データを、生成する処理が、ＣＰＵ７により実行される。
【００６７】
たとえば、選手キャラクタを右に動かすための右方向キー１７Ｒが、ゲーム実行中に押された場合、コントローラ１７から入力信号が発行され、この入力信号が、ＣＰＵ７に認識される。すると、この入力信号に基づいて、プレイヤによって操作されたボタン（入力ボタン）、たとえば右方向キー１７Ｒが、ＣＰＵ７に認識される。すると、右方向キー用のフラグが、オンに設定される。すると、右方向キー用のフラグがオンであり、他のボタンのフラグがオフである状態の状態データが、生成される。このように状態データを生成することにより、入力ボタンの特定が実行される。
【００６８】
継続入力判別手段５２は、時間的に隣接する２つの入力信号が、同じ入力信号であるか否かをＣＰＵ７に判別させることにより、同一ボタンの継続入力の有無を判別する機能を備えている。
【００６９】
この手段では、時間的に隣接する２つの入力信号が、同じ入力信号であるか否かが、ＣＰＵ７により判別される。たとえば、この手段では、時間的に継続する２フレーム分の入力信号が同じであるか否かが、ＣＰＵ７により判別される。より具体的には、選手キャラクタを右に動かすための右方向キー１７Ｒが、押された場合、１フレームごとに、右方向キー１７Ｒに対応する現フレームの入力信号と、１フレーム前の入力信号とが一致するか否かが、ＣＰＵ７により判別される。この処理を実行することにより、同一ボタンの継続入力の有無が、判別される。
【００７０】
継続入力検査手段５３は、時間的に隣接する２つの入力信号が、同じ入力信号であった場合、入力信号の継続回数データを算出する処理を、ＣＰＵ７に実行させることにより、入力ボタンの継続入力を検査する機能を備えている。
【００７１】
この手段では、時間的に隣接する２つの入力信号が、同じ入力信号であった場合、入力信号の継続回数データを算出する処理が、ＣＰＵ７により実行される。たとえば、この手段では、時間的に継続する２フレーム分の入力信号が同じであった場合、継続回数データ（初期値はゼロ）が、インクリメントする処理が、ＣＰＵ７により実行される。より具体的には、選手キャラクタを右に動かすための右方向キー１７Ｒが押され、右方向キー１７Ｒに対応する現フレームの入力信号と、右方向キー１７Ｒに対応する１フレーム前の入力信号とが一致した場合、継続回数データをインクリメントする処理が、ＣＰＵ７により実行される。この処理を１フレームごとに実行することにより、同じボタンが押された回数すなわち継続回数データが、ＣＰＵ７により算出される。このようにして、同一ボタンの継続入力が、検査される。
【００７２】
入力データ規定手段５４は、状態データと継続回数データとに基づいて、入力情報を規定するための入力データを生成する処理を、ＣＰＵ７に実行させることにより、入力データを規定する機能を備えている。
【００７３】
この手段では、状態データと継続回数データとに基づいて、入力情報を規定するための入力データを生成する処理が、ＣＰＵ７により実行される。たとえば、選手キャラクタを右に動かすための右方向キー１７Ｒが押され、右方向キー１７Ｒに対応する現フレームの入力信号と、右方向キー１７Ｒに対応する１フレーム前の入力信号とが一致した場合、右方向キー１７Ｒが押されたことを示す状態データと、右方向キー１７Ｒが継続入力された回数に対応する継続回数データとに基づいて、入力データを生成する処理が、ＣＰＵ７により実行される。
【００７４】
ここで用いられる状態データは、右方向キー用のフラグがオンであり、他のボタンのフラグがオフである状態のデータである。この場合、状態データと継続回数データとに基づいて、たとえば、「・・・，０，１，０，・・・；ｎ」のような入力データが、生成される。この入力データでは、数値「１」が、右方向キー用のフラグがオンであることを示し、数値「０」が、他のボタン用のフラグがオフであることを示している。また、記号「ｎ」は、継続回数を示している。このようにして、全てのボタンのオンオフ状態と、同一ボタンの継続回数とを示す入力データが、規定される。
【００７５】
入力データ送信手段５５は、入力データを、通信部２３を介して送信する命令を、ＣＰＵ７に発行させることにより、入力データを他のゲーム装置に送信する機能を備えている。
【００７６】
この手段では、入力データを、通信部２３を介して送信する命令を、ＣＰＵ７に発行させることにより、入力データが、他のゲーム装置に送信される。たとえば、この手段では、入力データの送信番号に対応する識別データを、入力データに付加する処理が、ＣＰＵ７により実行される。そして、識別データが付加された入力データを、通信部２３を介して送信する命令が、ＣＰＵ７から発行される。この処理を１フレームごとに実行することにより、入力データが他のゲーム装置に連続的に送信される。
【００７７】
より具体的には、右方向キー用のフラグがオンである状態の入力データの場合、この入力データに対して識別データが付加されると、「ｋ；・・・，０，１，０，・・・；ｎ」のような入力データが、生成される。そして、この入力データが、通信部２３を介して、他のゲーム装置に送信される。ここで、記号「ｋ」は、送信番号を示している。
【００７８】
なお、上記の処理は、他のゲーム装置においても同様に実行されている。このため、他のゲーム装置において生成された入力データは、他のゲーム装置から本ゲーム装置に送信される。
【００７９】
入力データ格納手段５６は、通信部２３を介して他のゲーム装置から受信した入力データを、ＲＡＭ１２に格納する機能を備えている。
【００８０】
この手段では、通信部２３を介して他のゲーム装置から受信した入力データが、ＲＡＭ１２に格納される。たとえば、この手段では、他のゲーム装置でボタンが押された場合、入力されたボタンの情報を規定するための入力データが、通信部２３を介して、ＲＡＭ１２に格納される。より具体的には、他のゲーム装置において選手キャラクタを左に動かすためのボタン、すなわち左方向キー１７Ｌが、押された場合、上述したように、入力データを生成する処理が、他のゲーム装置のＣＰＵ７により実行される。そして、この入力データが、他のゲーム装置から、本ゲーム装置に対して送信される。すると、この入力データが、本ゲーム装置のＲＡＭ１２に格納される。
【００８１】
入力データ欠落検査手段５７は、他のゲーム装置から受信した入力データが欠落しているか否かを、ＣＰＵ７に判断させることにより、入力データの欠落の有無を検査する機能を備えている。
【００８２】
この手段では、他のゲーム装置から受信した入力データが欠落しているか否かが、ＣＰＵ７により判断される。たとえば、この手段では、入力データに付加された識別データに基づいて、他のゲーム装置から受信した入力データが欠落しているか否かが、ＣＰＵ７により判断される。
【００８３】
より具体的には、最新の入力データの識別データと、時間的に最新の入力データの１つ前に受信した入力データの識別データとを比較する処理が、ＣＰＵ７により実行される。識別データは、送信番号を示すデータであるので、２つの入力データそれぞれの識別データが、連続した値であれば、他のゲーム装置から受信した入力データが正常に受信されたと、判断される。一方で、２つの入力データそれぞれの識別データが、不連続な値であれば、他のゲーム装置から受信した入力データが欠落したと、判断される。このようにして、入力データの欠落の有無が、検査される。
【００８４】
入力データ補完手段５８は、他のゲーム装置から受信した入力データが欠落していた場合に、最新の入力データに含まれる、状態データと継続回数データとに基づいて、欠落した入力データを生成する処理を、ＣＰＵ７に実行させることにより、欠落した入力データを補完する機能を備えている。
【００８５】
この手段では、他のゲーム装置から受信した入力データが欠落していた場合に、最新の入力データに含まれる、状態データと継続回数データとに基づいて、欠落した入力データを生成する処理が、ＣＰＵ７により実行される。たとえば、最新の入力データの識別データと、時間的に最新の入力データの１つ前に受信した入力データの識別データとを比較し、他のゲーム装置から受信した入力データが、欠落していた場合、最新の入力データに含まれる、状態データと継続回数データとに基づいて、欠落した入力データを生成する処理が、ＣＰＵ７により実行される。
【００８６】
より具体的には、時間的に連続して受信した２つの入力データそれぞれの識別データが、不連続な値であった場合、最新の入力データに含まれる、状態データと継続回数データとに基づいて、欠落した入力データが補完される。たとえば、他のゲーム装置において選手キャラクタを左に動かすための左方向キー１７Ｌが、押され、最新の入力データが「５；・・・，０，０，０，１，・・・；２」である場合、この最新の入力データを用いて、欠落した入力データが、生成される。この最新の入力データを見ると、左方向キー１７Ｌが最初に押された後に、この左方向キー１７Ｌがさらに２回継続して押されていることがわかる。このため、他のゲーム装置の１つ前の入力データ（「ｋ＝４」の入力データ）が欠落していても、この最新の入力データを用いて、欠落した入力データ、すなわち「４；・・・，０，０，０，１，・・・；１」を、生成することにより、欠落した入力データが、補完される。
【００８７】
ゲーム同期回復手段５９は、補完された入力データと、最新の入力データとに基づいて、他のゲーム装置において指示された命令を、ＣＰＵ７に発行させることにより、本ゲーム装置のゲームと他のゲーム装置のゲームとの同期を回復する機能を備えている。
【００８８】
この手段では、補完された入力データと、最新の入力データとに基づいて、他のゲーム装置において指示された命令が、ＣＰＵ７から発行される。たとえば、他のゲーム装置において選手キャラクタを左に動かすための左方向キー１７Ｌが押され、他のゲーム装置から受信した入力データが欠落していた場合、欠落した入力データが、上記のように、最新の入力データを用いて補完される。すると、補完された過去の入力データと、最新の入力データとに基づいて、選手キャラクタを左に動かすための命令が、制御部から発行される。すると、選手キャラクタが左に移動する状態が、本ゲーム装置のテレビジョンモニタ２０に表示される。このようにして、他のゲーム装置において実行中のゲームが、本ゲーム装置のゲームに、反映され同期される。
【００８９】
ゲーム同期手段６０は、最新の入力データに基づいて、他のゲーム装置において指示された命令を、ＣＰＵ７に発行させることにより、本ゲーム装置のゲームを、他のゲーム装置のゲームと同期する機能を備えている。
【００９０】
この手段では、他のゲーム装置から受信した入力データが欠落していなかった場合、最新の入力データに基づいて、他のゲーム装置において指示された命令が、ＣＰＵ７から発行される。これにより、他のゲーム装置において実行中のゲームが、本ゲーム装置のゲームに、反映され同期される。たとえば、他のゲーム装置において選手キャラクタを左に動かすための左方向キー１７Ｌが押され、他のゲーム装置から受信した入力データが欠落していなかった場合、最新の入力データに基づいて、選手キャラクタを左に動かすための命令が、制御部から発行される。すると、選手キャラクタが左に移動する状態が、本ゲーム装置のテレビジョンモニタ２０に表示される。このように、他のゲーム装置から受信した入力データが欠落していなかった場合においても、他のゲーム装置において実行中のゲームが、本ゲーム装置のゲームに、反映され同期される。
【００９１】
〔野球ゲームにおけるデータ補完システムの概要〕
次に、野球ゲームにおけるデータ補完システムの具体的な内容について説明する。また、図９および図１０に示すフローについても同時に説明する。なお、図９は野球ゲームの全体概要を説明するためのフローであり、図１０は上記システムを説明するためのフローである。
【００９２】
本ゲーム装置（第１ゲーム装置）は、他のゲーム装置（第２ゲーム装置）に、ネットワークを介して接続されている。第１ゲーム装置および第２ゲーム装置において実行される野球ゲームは、ネットワーク対戦用の野球ゲームである。
【００９３】
まず、第１ゲーム装置および第２ゲーム装置の電源が投入され、これらゲーム装置が起動されると、野球ゲームプログラムが、記録媒体１０からＲＡＭ１２にロードされ格納される。このときには、野球ゲームを実行する上で必要となる各種の基本ゲームデータも、同時に、記録媒体１０からＲＡＭ１２にロードされ格納される（Ｓ１）。
【００９４】
たとえば、基本ゲームデータには、３次元ゲーム空間用の各種の画像に関するデータが含まれている。そして、この３次元ゲーム空間用の各種の画像に関するデータ、たとえば、スタジアム用の画像データ、選手キャラクタ用の画像データ、および各種のオブジェクトの画像データ等が、ＣＰＵ７に認識される。また、基本ゲームデータには、３次元ゲーム空間用の各種の画像に関するデータを３次元ゲーム空間に配置するための位置座標データが含まれている。また、基本ゲームデータには、上記システムで用いられるデータも、含まれている。
【００９５】
続いて、ＲＡＭ１２に格納された野球ゲームプログラムが、基本ゲームデータに基づいて、ＣＰＵ７により実行される（Ｓ２）。すると、野球ゲームの起動画面がテレビジョンモニタ２０に表示される。すると、野球ゲームを実行するための各種の設定画面がテレビジョンモニタ２０に表示される。ここでは、たとえば、野球ゲームのプレイモードを選択するためのモード選択画面が、テレビジョンモニタ２０に表示される（図示しない）。このモード選択画面において、プレイヤがコントローラ１７を操作することにより、プレイモードが決定される（Ｓ３）。プレイモードには、たとえば、１２球団の中からチームを選択して１試合の対戦を楽しむ対戦モード、１２球団の中からチームを選択してペナントレースを戦うペナントモード、プレイヤが監督の立場でチームの選手キャラクタを育成する育成モード、プレイヤがある１人の選手キャラクタの立場になって野球ゲームを体感する成長体感モード等が、用意されている。
【００９６】
続いて、モード選択画面で選択されたプレイモードにおいて、各種のイベントが、ＣＰＵ７により実行される（Ｓ４）。ここで実行される各種のイベントには、たとえば、自動制御プログラム（ＡＩプログラム、Artificial Intelligence Program）に基づいてＣＰＵ７により自動制御されるイベントや、コントローラ１７からの入力信号に基づいてプレイヤにより手動制御されるイベントがある。また、選手キャラクタの制御には、自動制御プログラムに基づいて選手キャラクタに命令を自動的に指示する自動制御や、コントローラ１７からの入力信号に基づいて選手キャラクタに命令を直接的に指示する手動制御等がある。このように、本野球ゲームでは、コントローラ１７からの指示や自動制御プログラムからの指示に応じて、イベントが制御されたり、選手キャラクタに命令が指示されたりするようになっている。
【００９７】
なお、ここに示す自動制御プログラムとは、プレイヤに代わって、イベントに関する命令および選手キャラクタに対する命令を自動的に制御するためのプログラムである。この自動制御プログラムは、ゲームプログラムにおいて予め用意されている。
【００９８】
続いて、選択されたプレイモードが終了したか否かが、ＣＰＵ７により判断される（Ｓ５）。具体的には、プレイモードが終了したことを示す命令が発行されたか否かが、ＣＰＵ７により判断される。そして、プレイモードが終了したことを示す命令が発行されたとＣＰＵ７により判断された場合（Ｓ５でＹｅｓ）、ゲーム継続用のデータをＲＡＭ１２に格納する処理が、ＣＰＵ７により実行される。そして、ゲーム継続用のデータがＲＡＭ１２に格納されると、この野球ゲームを終了するか否かを選択する選択画面が、テレビジョンモニタ２０に表示される（Ｓ６）。そして、この選択画面において、プレイヤがコントローラ１７を操作することにより、野球ゲームの終了を示す項目が選択されると（Ｓ６でＹｅｓ）、野球ゲームを終了するための処理がＣＰＵ７により実行される（Ｓ７）。一方で、この選択画面において、プレイヤがコントローラ１７を操作することにより、野球ゲームの継続を示す項目が選択されると（Ｓ６でＮｏ）、ステップ３（Ｓ３）のモード選択画面が、テレビジョンモニタ２０に再表示される。
【００９９】
なお、プレイモードが終了するための命令が発行されたとＣＰＵ７に判断されない限り（Ｓ５でＮｏ）、モード選択画面で選択されたプレイモードにおいて、各種のイベントがＣＰＵ７により実行される（Ｓ４）。
【０１００】
次に、ネットワーク対戦用の野球ゲームにおいて実行されるデータ補完システムを、詳細に説明する。
【０１０１】
ここでは、野球ゲームにおいて、対戦モードが選択され、試合イベントが実行されているときに、本システムが実行される場合の例が、示される。また、第１ゲーム装置を操作するＡプレイヤが、守備側の選手キャラクタを操作し、第２ゲーム装置を操作するＢプレイヤが、攻撃側の選手キャラクタ（打者キャラクタ）を操作する場合の例が、示される。
【０１０２】
まず、１プレイが開始されてから終了するまでの間において、ＡプレイヤおよびＢプレイヤが行うコントローラ１７の操作、およびこの操作によって実行される命令についての概要を示す。
【０１０３】
Ａプレイヤが、コントローラ１７を操作することにより、投手キャラクタに対して投球に関する命令を、指示する。たとえば、Ａプレイヤが、球種を選択した後に、コントローラ１７の第３ボタン１７ｃを押すと、投手キャラクタに対して投球開始命令が指示される。すると、投手キャラクタが投球動作を行う状態が、第１ゲーム装置および第２ゲーム装置のテレビジョンモニタ２０に、表示される（図示しない）。そして、Ａプレイヤが、所定のタイミングで、コントローラ１７の第３ボタン１７ｃを再び押すと、ボールのリリース命令が指示される。すると、投手キャラクタからリリースされたボールが、第１ゲーム装置および第２ゲーム装置のテレビジョンモニタ２０に、表示される（図示しない）。
【０１０４】
続いて、Ｂプレイヤが、コントローラ１７を操作することにより、打者キャラクタに対して打撃に関する命令を、指示する。たとえば、Ｂプレイヤが、コントローラ１７の方向キー１７Ｕ，１７Ｄ，１７Ｌ，１７Ｒを押すと、ボールをミートするためのエリアを示すミートゾーン３０の移動命令が、指示される。すると、図３に示すように、ミートゾーン３０が移動する状態が、第１ゲーム装置および第２ゲーム装置のテレビジョンモニタ２０に表示される。そして、Ｂプレイヤが、コントローラ１７の第３ボタン１７ｃを押すと、打者キャラクタに対してスイング開始命令が指示される。すると、打者キャラクタがスイング動作を行う状態が、第１ゲーム装置および第２ゲーム装置のテレビジョンモニタ２０に表示される（図示しない）。そして、打者キャラクタによってボールが打ち返されると、打ち返されたボールが移動する状態が、第１ゲーム装置および第２ゲーム装置のテレビジョンモニタ２０に、表示される（図示しない）。すると、打者キャラクタが一塁に向かって走塁する状態が、第１ゲームおよび第２ゲーム装置のテレビジョンモニタ２０に、表示される（図示しない）。以下では、一二塁間にボールが転がっていく場合の例が、示される。
【０１０５】
続いて、二塁の選手キャラクタが移動対象の選手キャラクタとして選択された状態において、Ａプレイヤが、コントローラ１７の右方向キー１７Ｒを押すと、二塁の選手キャラクタに対して移動命令が指示される。すると、図４に示すように、二塁の選手キャラクタが一塁の方向（右方向）に移動する状態が、第１ゲーム装置および第２ゲーム装置のテレビジョンモニタ２０に、表示される。そして、二塁の選手キャラクタがボールを捕球した後、Ａプレイヤが、コントローラ１７の第２ボタン１７ｂを押すと、二塁の選手キャラクタに対して一塁送球命令が指示される。すると、二塁の選手キャラクタがボールを一塁に送球する状態が、第１ゲーム装置および第２ゲーム装置のテレビジョンモニタ２０に、表示される（図示しない）。
【０１０６】
続いて、一塁の選手キャラクタが、二塁の選手キャラクタから送球されたボールを捕球したときに、アウトか否かの判断が、ＣＰＵ７により実行される。そして、この結果が、第１ゲーム装置および第２ゲーム装置のテレビジョンモニタ２０に、表示される。このようにして、１プレイが終了する。
【０１０７】
ここで、第１ゲーム装置と第２ゲーム装置との間のデータ通信が、スムーズに行われているときには、上記のように、第１ゲーム装置および第２ゲーム装置において同期がとれた野球ゲームの画像が、各ゲーム装置のテレビジョンモニタ２０に表示される。
【０１０８】
一方で、回線の影響等によって、第１ゲーム装置と第２ゲーム装置との間のデータ通信が、スムーズに行われない場合ある。この場合に発生し得る問題の１つに、データの欠落がある。このデータの欠落を補完するシステムが、データ修復システムである。
【０１０９】
以下では、上述した１プレイの間において、第２ゲーム装置においてＢプレイヤが打者キャラクタに対してミートゾーン移動命令およびスイング開始命令を指示したときの入力データが、第２ゲーム装置から第１ゲーム装置へと送信されたときに、第１ゲーム装置においてデータ修復システムが実行される場合を、一例として説明を行う。
【０１１０】
図１０は、本システムのフローである。以下では、この図１０を用いて、本システムの詳細を説明する。なお、図１０に示した「（１）」は、第１ゲーム装置において処理が実行されることを示す記号である。また、図１０に示した「（２）」は、第２ゲーム装置において処理が実行されることを示す記号である。
【０１１１】
まず、たとえば、投手キャラクタからボールがリリースされたときに、Ｂプレイヤが、たとえば、ミートゾーン３０を下に移動するために、コントローラ１７の下方向キー１７Ｄを押すと、コントローラ１７から入力信号が発行され、この入力信号が、第２ゲーム装置のＣＰＵ７に認識される（Ｓ２０１）。すると、この入力信号に基づいて、プレイヤによって操作されたボタン（入力ボタン）、たとえば下方向キー１７Ｄが、第２ゲーム装置のＣＰＵ７に認識される。すると、下方向キー用のフラグが、オンに設定される。すると、図６に示すように、下方向キー用のフラグがオンであり、他のボタンのフラグがオフ（初期値）である状態の状態データ１００が、生成される（Ｓ２０２）。
【０１１２】
続いて、時間的に隣接する２つの入力信号が、同じ入力信号であるか否かが、第２ゲーム装置のＣＰＵ７により判別される（Ｓ２０３）。たとえば、ミートゾーン３０を下に移動するために下方向キー１７Ｄが、押された場合、１フレーム（１／６０ｓｅｃ）ごとに、現フレームの入力信号と、１フレーム前の入力信号とが一致するか否かが、第２ゲーム装置のＣＰＵ７により判別される。より具体的には、下方向キー１７Ｄが、１ｓｅｃの間、押されていた場合、１フレームごとに、現フレームの入力信号と１フレーム前の入力信号とが一致するか否かが、第２ゲーム装置のＣＰＵ７により、繰り返し判別される。このようにして、同一ボタンの継続入力の有無が、判別される。
【０１１３】
続いて、時間的に隣接する２つの入力信号が、同じ入力信号であった場合（Ｓ２０３でＹｅｓ）、継続回数データ１０１を算出する処理が、第２ゲーム装置のＣＰＵ７により実行される（Ｓ２０４）。たとえば、時間的に連続する２フレーム分の状態データ１００が同じであった場合、継続回数データ１０１（初期値はゼロ）を、インクリメントする処理が、第２ゲーム装置のＣＰＵ７により実行される。より具体的には、ミートゾーン３０を下に動かすための下方向キー１７Ｄが、１ｓｅｃの間、押され、現フレームの状態データ１００と１フレーム前の状態データ１００とが一致していた場合、継続回数データ１０１を、５９回、インクリメントする処理が、第２ゲーム装置のＣＰＵ７により実行される（図６を参照）。このようにして、同じボタンが継続して押されている回数すなわち継続回数データ１０１が、ＣＰＵ７により算出される。
【０１１４】
なお、時間的に隣接する２つの入力信号が、同じ入力信号でなかった場合（Ｓ２０３でＮｏ）、継続回数データ１０１に所定の数値たとえば「０」を割り当てる処理が、ＣＰＵ７により実行される。そして、後述するステップ２０５（Ｓ２０５）の処理が、ＣＰＵ７により実行される。
【０１１５】
続いて、状態データ１００と継続回数データ１０１とに基づいて、入力情報を規定するための入力データ５００を生成する処理が、第２ゲーム装置のＣＰＵ７により実行される（Ｓ２０５）。たとえば、ミートゾーン３０を下に動かすための下方向キー１７Ｄが押され、現フレームの状態データ１００と１フレーム前の状態データ１００とが一致した場合、図６に示すように、下方向キー１７Ｄが押されたことを示す状態データ１００と、下方向キー１７Ｄが継続入力された回数に対応する継続回数データ１０１とに基づいて、入力データ５００を生成する処理が、第２ゲーム装置のＣＰＵ７により実行される。
【０１１６】
図６に示した状態データ１００は、１フレームから６０フレームまでの間が、下方向キー用のフラグがオンであり、他のボタンのフラグがオフである状態のデータを示している。この場合、状態データ１００と継続回数データ１０１とに基づいて、たとえば、「・・・，０，１，０，・・・；０」、「・・・，０，１，０，・・・；１」、・・・、「・・・，０，１，０，・・・；５９」のような入力データ５００が、１フレームごとに、生成される。この入力データ５００では、記号「；」の前の数値「１」が、下方向キー用のフラグがオンであることを示し、記号「；」の前の数値「０」が、他のボタン用のフラグがオフであることを示している。また、記号「；」の後の数値は、継続回数を示している。このようにして、全てのボタンのオンオフ状態と、同一ボタンの継続回数とを示す入力データ５００が、１フレームごとに規定される。
【０１１７】
続いて、入力データ５００の送信番号に対応する識別データ１０２を、入力データ５００に付加する処理が、第２ゲーム装置のＣＰＵ７により実行される（Ｓ２０６）。たとえば、下方向キー用のフラグがオンである状態の入力データ５００の場合、この入力データ５００に対して識別データ１０２が付加されると、「１；・・・，０，１，０，・・・；０」、「２；・・・，０，１，０，・・・；１」、・・・、「６０；・・・，０，１，０，・・・；５９」のような入力データ５００が、１フレームごとに、生成される（図６を参照）。ここでは、入力データ５００の冒頭に付加された数値が、識別データ１０２に対応している。
【０１１８】
続いて、識別データ１０２が入力データ５００に付加されると、識別データ１０２が付加された入力データ５００を、送信する命令が、第２ゲーム装置のＣＰＵ７から発行される（Ｓ２０７）。すると、第２ゲーム装置において生成された入力データ５００が、通信部２３を介して、第１ゲーム装置に送信される。
【０１１９】
なお、入力データ５００が生成されたときに、この入力データ５００に識別データ１０２が付加され、識別データ１０２が付加された入力データ５００が、通信部２３を介して、第１ゲーム装置に送信される。この一連の処理は、１フレームごとに、ＣＰＵ７により実行される。
【０１２０】
続いて、Ｂプレイヤが、たとえば、打者キャラクタに対してスイングを開始させるために、コントローラ１７の第３ボタン１７ｃを押した場合、上述した処理と同じ処理（ステップ２０１（Ｓ２０１））が、ＣＰＵ７により実行される。すると、上述したものと同様の形態で、コントローラ１７の第３ボタン１７ｃが押された場合の入力データ５００が、生成される（Ｓ２０２〜Ｓ２０５）。そして、この入力データ５００に識別データ１０２を付加する処理が、ＣＰＵ７により実行される（Ｓ２０６）。そして、この入力データ５００を、送信する命令が、第２ゲーム装置のＣＰＵ７から発行される。すると、第２ゲーム装置において生成された入力データ５００が、通信部２３を介して、第１ゲーム装置に送信される（Ｓ２０７）。この処理も、１フレームごとに、第２ゲーム装置において実行される。
【０１２１】
具体的には、図６に示すように、「６１；・・・，０，１，０，・・・；０」、「６２；・・・，０，１，０，・・・；１」、・・・、「９０；・・・，０，１，０，・・・；２９」のような入力データ５００が、１フレームごとに、生成される。そして、この入力データ５００が、通信部２３を介して、１フレームごとに、第１ゲーム装置に送信される。
【０１２２】
次に、図５に示すように、第２ゲーム装置から入力データ５００が１フレームごとに送信されると、この入力データ５００は、第１ゲーム装置のＲＡＭ１２に格納される（Ｓ２０８）。たとえば、第２ゲーム装置において下方向キー１７Ｄが押された場合、図６に示すように、下方向キー用のフラグがオンであり、他のボタンのフラグがオフ（初期値）である状態の入力データ５００が、第１ゲーム装置のＲＡＭ１２に格納される。また、第２ゲーム装置において第３ボタン１７ｃが押された場合、図６に示すように、第３ボタン用のフラグがオンであり、他のボタンのフラグがオフ（初期値）である状態の入力データ５００が、第１ゲーム装置のＲＡＭ１２に格納される。なお、ここで、第１ゲーム装置のＲＡＭ１２に格納される入力データ５００は、第２ゲーム装置において生成された入力データ５００である。
【０１２３】
続いて、第２ゲーム装置から受信した入力データ５００が欠落しているか否かが、ＣＰＵ７により判断される（Ｓ２０９）。たとえば、入力データ５００に付加された識別データ１０２に基づいて、第２ゲーム装置から受信中の入力データ５００が欠落しているか否かが、ＣＰＵ７により判断される。より具体的には、最新の入力データ５００の識別データ１０２と、時間的に最新の入力データ５００の１つ前に受信した入力データ５００の識別データ１０２とを比較する処理が、最新の入力データ５００を受信時に、ＣＰＵ７により実行される。
【０１２４】
ここで、識別データ１０２は、送信番号を示すデータであるので、２つの入力データ５００それぞれの識別データ１０２が、連続した値であれば、第２ゲーム装置から受信した入力データ５００が正常に受信されたと、判断される。たとえば、最新の入力データ５００の送信番号が「ｋｓ」であった場合、１つ前の入力データ５００の送信番号が「ｋｓ−１」であれば、第２ゲーム装置から受信した入力データ５００が正常に受信されたと、判断される。一方で、最新の入力データ５００の送信番号が「ｋｓ」であった場合、１つ前の入力データ５００の送信番号が「ｋｓ−１」でなければ、第２ゲーム装置から受信した入力データ５００が欠落したと、判断される。このようにして、入力データ５００の欠落の有無が、検査される。
【０１２５】
続いて、第２ゲーム装置から受信した入力データ５００が欠落していた場合（Ｓ２０９でＹｅｓ）、第１ゲーム装置において実行中の野球ゲームを一時的に停止する命令が、第１ゲーム装置のＣＰＵ７から発行される。すると、第１ゲーム装置から第２ゲーム装置への信号が、途絶える。すると、第２ゲーム装置において実行中の野球ゲームを一時的に停止する命令が、第２ゲーム装置のＣＰＵ７から発行される。このように、第２ゲーム装置から第１ゲーム装置が受信した入力データ５００が、欠落していた場合、第１ゲーム装置および第２ゲーム装置において実行中の野球ゲームが、一時停止される（Ｓ２１０）。
【０１２６】
続いて、最新の入力データ５００に含まれる、状態データ１００と継続回数データ１０１とに基づいて、欠落した入力データ５００を生成する処理が、ＣＰＵ７により実行される（Ｓ２１１）。たとえば、最新の入力データ５００の識別データ１０２と、時間的に最新の入力データ５００の１つ前に受信した入力データ５００の識別データ１０２とを比較し、第２ゲーム装置から受信した入力データ５００が、欠落していた場合、最新の入力データ５００に含まれる、状態データ１００と継続回数データ１０１とを用いて、欠落した入力データ５００が、ＣＰＵ７により生成される。
【０１２７】
ここで、上記のステップ２０９（Ｓ２０９）からステップ２１１（Ｓ２１１）までの処理を、具体的に説明する。
【０１２８】
まず、時間的に連続して受信した２つの入力データ５００それぞれの識別データ１０２が、不連続であった場合、最新の入力データ５００に含まれる、状態データ１００と継続回数データ１０１とを用いて、欠落した入力データ５００が補完される。
【０１２９】
たとえば、第２ゲーム装置においてミートゾーン３０を下に動かすための下方向キー１７Ｄが、押され、最新の入力データ５００が「６０；・・・，０，１，０，・・・；５９」であり、１つ前の入力データ５００が「５８；・・・，０，１，０，・・・；５７」であった場合、最新の入力データ５００の送信番号と１つ前の入力データ５００の送信番号とは、不連続になる。この場合に、最新の入力データ５００を用いて、欠落した入力データ５００が、ＣＰＵ７により生成される。
【０１３０】
ここでは、たとえば、最新の入力データ５００の継続回数データ１０１の値が、「５９」となっている。これは、下方向キー１７Ｄが、５９回継続して押されていることを示している。これにより、同じ状態データ１００が５９回連続して形成されていることが、特定される。言い換えると、欠落した入力データ５００が「５９；・・・，０，１，０，・・・；５８」であるということが、特定される。
【０１３１】
また、たとえば、第２ゲーム装置においてミートゾーン３０を下に動かすための下方向キー１７Ｄが、押され、第１ゲーム装置のＲＡＭ１２に格納された最新の入力データ５００が「６０；・・・，０，１，０，・・・；５９」であり、第１ゲーム装置のＲＡＭ１２に格納された１つ前の入力データ５００が「４０；・・・，０，１，０，・・・；３９」であった場合、最新の入力データ５００の送信番号と１つ前の入力データ５００の送信番号とは、不連続になる。この場合にも、最新の入力データ５００を用いて、欠落した入力データ５００が、ＣＰＵ７により生成される。
【０１３２】
ここでも、たとえば、最新の入力データ５００の継続回数データ１０１の値が、「５９」となっている。これは、下方向キー１７Ｄが、５９回継続して押されていることを示している。これにより、欠落した入力データ５００が、「４１；・・・，０，１，０，・・・；４０」、・・・、「５９；・・・，０，１，０，・・・；５８」と特定される。
【０１３３】
ここで、最新の入力データ５００の送信番号が「ｋｓ」であり、最新の入力データ５００の継続回数が「ｎｓ」であり、１つ前の入力データ５００の送信番号が「ｋ１」であり、１つ前の入力データ５００の継続回数が「ｎ１」である場合、欠落した入力データ５００は、次のように、一般的に表記することができる。たとえば、欠落した入力データ５００は、「ｋ１＋ｉ；・・・，０，１，０，・・・；ｎ１＋ｊ」と表記することができる。ここで、「ｉ＝１，・・・，（ｋｓ−ｋ１）」、「ｊ＝１，・・・，（ｎｓ−ｎ１）」となる。このようにして、欠落した入力データ５００が補完される。このように、本実施形態では、「（最新の継続回数データ）−（１つ前の継続回数データ）」が示す数だけ、欠落した入力データ５００を補完することができる。
【０１３４】
また、たとえば、第２ゲーム装置において、打者キャラクタに対してスイングを開始させるための第３ボタン１７ｃが、押され、このときに第１ゲーム装置が受信した、最新の入力データ５００の送信番号と１つ前の入力データ５００の送信番号とが不連続になった場合も、第１ゲーム装置および第２ゲーム装置において実行中の野球ゲームが、一時停止される。たとえば、打者キャラクタのスイング動作の表示が、停止される。そして、上述したように、下方向キー１７Ｄ用の入力データ５００が欠落した場合と同様に、最新の入力データ５００を用いて、欠落した入力データ５００が、ＣＰＵ７により生成され補完される。
【０１３５】
続いて、欠落した入力データ５００が補完されると、一時停止中の第１ゲーム装置の野球ゲームを再開する命令が、ＣＰＵ７から発行される。すると、補完された入力データ５００と、最新の入力データ５００とに基づいて、第２ゲーム装置において指示された命令が、ＣＰＵ７から発行される。すると、一時停止中の第１ゲーム装置の野球ゲームが再開され（Ｓ２１２）、第２ゲーム装置において指示された命令に対応する画像が、第１ゲーム装置のテレビジョンモニタ２０に表示される（Ｓ２１３）。
【０１３６】
たとえば、第２ゲーム装置においてミートゾーン３０を下に動かすための下方向キー１７Ｄが押され、この入力データ５００が欠落していた場合、欠落した入力データ５００が、上記のように、最新の入力データ５００を用いて補完される。すると、一時停止中の第１ゲーム装置の野球ゲームを再開する命令が、ＣＰＵ７から発行される。そして、補完された過去の入力データ５００と、最新の入力データ５００とに基づいて、ミートゾーン３０を下に動かすための命令が、ＣＰＵ７から発行される。すると、ミートゾーン３０が下に移動する状態が、第１ゲーム装置のテレビジョンモニタ２０に再表示される。
【０１３７】
なお、たとえば、第２ゲーム装置において打者キャラクタにスイングを開始させるための第３ボタン１７ｃが押されたときに、この入力データ５００が欠落した場合、欠落した入力データ５００が、上述したように、下方向キー１７Ｄ用の入力データ５００が補完された場合と同様に、最新の入力データ５００を用いて補完される。この場合も、上述したように、下方向キー１７Ｄ用の入力データ５００が補完された場合と同様に、一時停止中の第１ゲーム装置の野球ゲームを再開する命令が、ＣＰＵ７から発行される。そして、補完された過去の入力データ５００と、最新の入力データ５００とに基づいて、野球ゲームの制御を再開する処理が、ＣＰＵ７により実行される。そして、打者キャラクタがスイング動作を実行する状態が、第１ゲーム装置のテレビジョンモニタ２０に表示される。
【０１３８】
ここで、一時停止中の第１ゲーム装置の野球ゲームを再開する命令が、ＣＰＵ７から発行されると、第１ゲーム装置から第２ゲーム装置への信号の送信も再開され、第２ゲーム装置において一時停止中の野球ゲームを再開する命令が、第２ゲーム装置のＣＰＵ７から発行される。これにより、第１ゲーム装置および第２ゲーム装置において実行中の野球ゲームが、再開される。このようにして、第１ゲーム装置および第２ゲーム装置において実行中の野球ゲームが再開された後も、互いに同期される。
【０１３９】
一方で、第２ゲーム装置から受信した入力データ５００が欠落していなかった場合（Ｓ２０９でＮｏ）、最新の入力データ５００に基づいて、第２ゲーム装置において指示された命令が、第１ゲーム装置のＣＰＵ７から発行される。これにより、第２ゲーム装置において実行中のゲームが、第１ゲーム装置のゲームにおいて、実行される。たとえば、第２ゲーム装置においてミートゾーン３０を下に動かすための下方向キー１７Ｄが、押され、第２ゲーム装置から受信した入力データ５００が欠落していなかった場合、最新の入力データ５００に基づいて、ミートゾーン３０を下に動かすための命令が、第１ゲーム装置のＣＰＵ７から発行される。すると、ミートゾーン３０が下に移動する状態が、第１ゲーム装置のテレビジョンモニタ２０に表示される。このように、第２ゲーム装置から受信した入力データ５００が欠落していなかった場合においても、第２ゲーム装置において実行中のゲームが、第１ゲーム装置のゲームに、反映され同期される。
【０１４０】
最後に、本システムを終了するか否かが、ＣＰＵ７により判断される（Ｓ２１４）。そして、本システムが終了されなかった場合（Ｓ２１４でＮｏ）、すなわち本システムが継続して実行された場合、ステップ２０１（Ｓ２０１）の処理が、再実行される。
【０１４１】
上記のように、本実施形態では、同じボタンが継続入力されとしても、状態データと継続回数データとに基づいて、常に同じ容量の入力データ５００を生成することができる。このように、本実施形態では、データ量を抑制しつつ数十個またはそれ以上の情報を、１個の入力データ５００によって表現できるので、欠落データを補完するために必要な情報量が、たとえ大きくなったとしても、非常に小さなデータ量で、欠落データを補完することができる。また、１個の入力データ５００には、数十個またはそれ以上の情報が含まれているので、信頼度の高い情報を提供することができる。これにより、キー入力に伴うゲーム中断のリスクを大きく低減することができ、プレイヤはゲームをストレスなく実行することができる。
【０１４２】
〔他の実施形態〕
（ａ）前記実施形態では、Ｂプレイヤが打者キャラクタに対してミートゾーン移動命令およびスイング開始命令を指示したときの入力データ５００が、第２ゲーム装置から第１ゲーム装置へと送信されたときに、データ修復システムが適用される場合を、一例として、説明を行った。
【０１４３】
しかしながら、本システムの適用は、前記実施形態に限定されず、上記の例とは異なる入力データ５００が、第２ゲーム装置から第１ゲーム装置へと送信された場合にも、本システムは適用することができる。
【０１４４】
たとえば、Ａプレイヤが野手キャラクタに対して移動命令を指示したときの入力データ５００が、第１ゲーム装置から第２ゲーム装置へと送信されるときにも、データ修復システムを適用することができる。
【０１４５】
具体的には、Ａプレイヤが、コントローラ１７の右方向キー１７Ｒを押し、二塁の選手キャラクタに対して移動命令が指示されると、図４に示すように、二塁の選手キャラクタが一塁の方向（右方向）に移動する状態が、第１ゲーム装置のテレビジョンモニタ２０に表示される。このときには、図７に示すように、右方向キー１７Ｒ用のフラグがオンであり、他のボタンのフラグがオフ（初期値）である状態の入力データ５００が、１フレームごとに、第１ゲーム装置から第２ゲーム装置へと送信される。そして、この入力データ５００が、第２ゲーム装置のＲＡＭ１２に格納される。そして、この入力データ５００に基づいて、上記の同様の形態で、入力データ５００の欠落の有無が、ＣＰＵ７により検査される。そして、入力データ５００が欠落した場合、上記の同様の形態で、入力データ５００の補完処理が、ＣＰＵ７により実行される。そして、第１ゲーム装置と第２ゲーム装置において実行中の野球ゲームの同期処理が、ＣＰＵ７により実行される。なお、図７には、右方向キー１７Ｒが押されたときの送信番号が１０１であり、１ｓｅｃの間、この右方向キー１７Ｒが押された場合の例が、示されている。
【０１４６】
このように、Ａプレイヤが野手キャラクタに対して移動命令を指示したときの入力データ５００が、第１ゲーム装置から第２ゲーム装置へと送信されるときにも、データ修復システムを適用することができ、この場合においても、前記実施形態と同様の効果を得ることができる。
（ｂ）前記実施形態では、１つのボタン（キー）が継続的に押される場合に、本システムが適用される場合の例を示したが、継続的に押されるボタン（キー）が同じボタンであれば、同時に押されるボタン（キー）の数は、前記実施形態に限定されず、どのようなものでも良い。言い換えると、複数のボタンが同時に押された場合（Ｌ１ボタン１７Ｌ１と第３ボタン１７ｃとが同時に押された場合）にも、本システムは適用できる。この場合の入力データ５００は、図８に示すようなデータになる。なお、図８には、Ｌ１ボタン１７Ｌ１と第３ボタン１７ｃとが同時に押されたときの送信番号が２０１であり、５フレームの間、これらのボタンが押された場合の例が、示されている。
（ｃ）前記実施形態では、ゲームプログラムを適用しうるコンピュータの一例としての開発用のビデオゲーム装置を用いた場合の例を示したが、コンピュータは、前記実施形態に限定されず、モニタが別体に構成されたゲーム装置、モニタが一体に構成されたゲーム装置、ゲームプログラムを実行することによってゲーム装置として機能するパーソナルコンピュータやワークステーションなどにも同様に適用することができる。
（ｄ）本発明には、前述したようなゲームを実行するプログラムおよびこのプログラムを記録したコンピュータ読み取り可能な記録媒体も含まれる。この記録媒体としては、カートリッジ以外に、たとえば、コンピュータ読み取り可能なフレキシブルディスク、半導体メモリ、ＣＤ−ＲＯＭ、ＤＶＤ、ＭＯ、ＲＯＭカセット、その他のものが挙げられる。
【図面の簡単な説明】
【０１４７】
【図１】本発明の一実施形態による開発用のゲーム装置の基本構成図。
【図２】前記ゲーム装置の一例としての機能ブロック図。
【図３】対戦画面を示す図。
【図４】野手がボールを捕球するときの図。
【図５】入力データの送信経路を示す図。
【図６】入力データの一例を示す図（その１）。
【図７】入力データの一例を示す図（その２）。
【図８】入力データの一例を示す図（その３）。
【図９】野球ゲームの全体概要を説明するためのフロー
【図１０Ａ】野球ゲームにおけるデータ修復システムを示すフロー。
【図１０Ｂ】野球ゲームにおけるデータ修復システムを示すフロー。
【符号の説明】
【０１４８】
１  制御部
３  画像表示部
５  操作入力部
７  ＣＰＵ
１２  ＲＡＭ
１７  コントローラ
２０  テレビジョンモニタ
５０  ゲーム制御手段
５１  入力ボタン特定手段
５２  継続入力判別手段
５３  継続入力検査手段
５４  入力データ規定手段
５５  入力データ送信手段
５６  入力データ格納手段
５７  入力データ欠落検査手段
５８  入力データ補完手段
５９  ゲーム同期回復手段
６０  ゲーム同期手段
１００  状態データ
１０１  継続回数データ
１０２  識別データ
５００  入力データ
【図１】
2010142527.tif 000003
【図２】
2010142527.tif 000004
【図３】
2010142527.tif 000005
【図４】
2010142527.tif 000006
【図５】
2010142527.tif 000007
【図６】
2010142527.tif 000008
【図７】
2010142527.tif 000009
【図８】
2010142527.tif 000010
【図９】
2010142527.tif 000011
【図１０Ａ】
2010142527.tif 000012
【図１０Ｂ】
2010142527.tif 000013