説明

ゲームプログラム、ゲーム装置、及びゲーム制御方法

【課題】容量の小さい通信データを生成することにより、ゲームをスムーズに実行することができるようにする。
【解決手段】本プログラムでは、入力部17からの入力信号に基づいて、入力部17の入力状態を示す状態データ100が、生成される。そして、時間的に隣接する2つの入力信号が、同じ入力信号であるか否かが、制御部に判別される。そして、時間的に隣接する2つの入力信号が、同じ入力信号であった場合、入力信号の継続回数データ101が、算出される。そして、状態データ100と継続回数データ101とに基づいて、入力情報を規定するための入力データ500が、生成される。そして、この入力データが、通信部を介して、他のコンピュータに送信される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ゲームプログラム、特に、ネットワークを介して互いに接続される複数のコンピュータそれぞれにおいて実行されるゲームプログラムに関する。また、このゲームプログラムを実行可能なゲーム装置、およびこのゲームプログラムに基づいてコンピュータにより制御されるゲーム制御方法に関する。
【背景技術】
【0002】
従来から様々なビデオゲームが提案されている。これらビデオゲームは、ゲーム装置において実行されるようになっている。たとえば、一般的なゲーム装置は、モニタと、モニタとは別体のゲーム装置本体と、ゲーム装置本体とは別体の入力装置たとえばコントローラとを有している。コントローラには、複数の入力釦が配置されている。
【0003】
このようなゲーム装置において実現されるビデオゲームの1つとして、たとえば、野球ゲームが知られている(非特許文献1を参照)。この野球ゲームでは、プレイヤがコントローラを操作することによって、選手キャラクタに対する命令が制御部から発行されたり、自動制御プログラムに基づいて、選手キャラクタに対する命令が制御部から発行されたりする。このように、選手キャラクタに対する命令を制御部に発行させることにより、野球ゲームは実行されるようになっている。
【0004】
このような野球ゲームでは、プレイヤは、対戦モードや育成モード等を選択することができ、プレイヤが選択したモードでゲームを実行することができるようになっている。たとえば、対戦モードには、プレイヤが1つのチームの全ての選手キャラクタを指揮するタイプの対戦モードや、プレイヤが1つのチームの1人の選手キャラクタだけを指揮するタイプの対戦モード等が、用意されている。
【0005】
また、このような野球ゲームは、一台のゲーム装置(単体のゲーム装置)又は複数台のゲーム装置において実行される。たとえば、複数台のゲーム装置において、野球ゲームが実行される場合は、各ゲーム装置は、ネットワークを介して、互いに接続されている。
【0006】
たとえば、複数台のゲーム装置において実行される場合、あるゲーム装置(Aゲーム装置)において入力された入力データは、他のゲーム装置(Bゲーム装置)に送信され、Bゲーム装置において入力された入力データは、Aゲーム装置に送信される。すると、Aゲーム装置で入力された命令に基づいて、Aゲーム装置およびBゲーム装置で実行中のゲームが、制御される。また、Bゲーム装置で入力された命令に基づいて、Aゲーム装置およびBゲーム装置で実行中のゲームが、制御される。このようにして、Aゲーム装置で実行中のゲームと、Bゲーム装置で実行中のゲームとが、同期される。これにより、複数台のゲーム装置において、野球ゲームを同時に実行することができる。
【非特許文献1】プロ野球スピリッツ5、コナミ株式会社、2008年4月1日、PlayStation版
【発明の開示】
【発明が解決しようとする課題】
【0007】
従来の野球ゲームを複数台のゲーム装置において実行する場合、複数台のゲーム装置において、野球ゲームを同期する必要がある。このため、AプレイヤがAゲーム装置において入力した入力データは、Bゲーム装置に送信され、BプレイヤがBゲーム装置において入力した入力データは、Aゲーム装置に送信される。これにより、各ゲーム装置では、Aプレイヤが指示した命令およびBプレイヤが指示した命令を、野球ゲームにおいて実行することができる。すなわち、複数台のゲーム装置で実行中の野球ゲームを、同期することができる。
【0008】
このような同期処理がゲーム装置において実行される場合、回線のデータ送信能力が小さかったり、データ容量が大きすぎたりすると、データ送信時に、受け手側のゲーム装置にデータが到着しなくなってしまうおそれがある。ここで、受け手側のゲーム装置にデータが到着しなかった場合、受け手側のゲーム装置において実行中の野球ゲームが、一時的に停止される。そして、受け手側のゲーム装置から、送り手側のゲーム装置へと、データの問い合わせ信号が、送信される。また、このときには、受け手側のゲーム装置から、送り手側のゲーム装置へは、ゲーム実行用のデータが、送信されなくなるので、送り手側のゲーム装置において実行中の野球ゲームも、一時的に停止される。このように、あるゲーム装置にデータが到着しなくなった時点で、全てのゲーム装置において実行中の野球ゲームが、一斉に停止することになる。
【0009】
このため、上記のような理由で、データの不着が頻繁に発生してしまうと、全ての野球ゲーム装置で実行中の野球ゲームの映像(動画)が、スムーズに再現することができないという問題がある。
【0010】
ここで、データ不着による具体的な不具合の要因の一つとして、ゲームコントローラやキーボードのキー入力が、考えられる。キー入力はゲーム中のキャラクタ操作および情報確認等のために不可欠であり、このキー入力に付随するデータ不着が発生すると、頻繁に上記問題が発生する可能性がある。このため、結果として、ゲームの遊戯性、およびゲームシステムとしての信頼度を大きく損なう恐れがある。
【0011】
本発明は、このような問題に鑑みてなされたものであり、特に、キー入力の際に生じ得るデータ欠落を補完し、信頼度の高いゲームシステムを提供することにある。
【課題を解決するための手段】
【0012】
請求項1に係るゲームプログラムは、ゲームを実行可能な複数のコンピュータそれぞれに、以下の機能を実現させるためのプログラムである。ここで、複数のコンピュータは、ネットワークを介して互いに接続されている。
(1)入力部からの入力信号に基づいて、入力部の入力状態を示す状態データを、生成する処理を、制御部に実行させることにより、入力ボタンを特定する入力ボタン特定機能。
(2)時間的に隣接する2つの入力信号が、同じ入力信号であるか否かを制御部に判別させることにより、同一ボタンの継続入力の有無を判別する継続入力判別機能。
(3)時間的に隣接する2つの入力信号が、同じ入力信号であった場合、入力信号の継続回数データを算出する処理を、制御部に実行させることにより、入力ボタンの継続入力を検査する継続入力検査機能。
(4)状態データと入力信号の継続回数データとに基づいて、入力情報を規定するための入力データを生成する処理を、制御部に実行させることにより、入力データを規定する入力データ規定機能。
(5)入力データを、通信部を介して送信する命令を、制御部に発行させることにより、入力データを他のコンピュータに送信する入力データ送信機能。
【0013】
このゲームプログラムでは、入力ボタン特定機能において、入力部からの入力信号に基づいて、入力部の入力状態を示す状態データを、生成する処理を、制御部に実行させることにより、入力ボタンが特定される。継続入力判別機能においては、時間的に隣接する2つの入力信号が、同じ入力信号であるか否かを制御部に判別させることにより、同一ボタンの継続入力の有無が、判別される。継続入力検査機能においては、時間的に隣接する2つの入力信号が、同じ入力信号であった場合、入力信号の継続回数データを算出する処理を、制御部に実行させることにより、入力ボタンの継続入力が、検査される。入力データ規定機能においては、状態データと入力信号の継続回数データとに基づいて、入力情報を規定するための入力データを生成する処理を、制御部に実行させることにより、入力データが規定される。入力データ送信機能においては、入力データを、通信部を介して送信する命令を、制御部に発行させることにより、入力データが、他のコンピュータに送信される。
【0014】
上記構成によれば、本発明では、例えばキー入力の際に、どのキーが押されたかを識別するためのデータを、単発で送信するのではなく、時間的に過去の複数のデータ情報を、一つの入力データ(状態データおよび継続回数データ)として送信する。つまり、ある時点で送信される入力データは、その中に、時間的に過去の複数のデータを内在的に含んでいる。このため、仮にあるデータが欠落したとしても、入力データの中には複数の過去データが内在的に含まれていることになるので、この入力データを用いて、欠落データを補完することができる。なお、上記の入力データを構成する各データ(状態データ)は、内容が同一のデータである。この理由は、人間がキーを押す時間は1フレームで終わることはあり得ず、人為的な操作についてはキーを押して離すまで少なくとも3〜10フレームは押し続けることになるためである。このようなキー入力操作特有の特殊性に着目し、これを本発明では有効に利用している。
【0015】
このゲームプログラムが野球ゲームに適用された場合を一例として説明すると、たとえば、選手キャラクタを右に動かすためのボタンが、押された場合、このボタンが押された状態を示す状態データが、生成される。このようにして、入力されたボタン(入力ボタン)が、特定される。そして、時間的に連続する2フレーム分の入力信号が同じであるか否かが、制御部により判別される。これにより、同一ボタンが継続的に押されているか否かが、判別される。ここで、時間的に隣接する2フレーム分の入力信号が、同じ入力信号であった場合、すなわち、選手キャラクタを右に動かすためのボタンが、2フレーム分、継続して押された場合、このボタンが押されている間のフレーム数(継続回数データ)が、計算される。この処理を1フレームごとに実行することにより、入力ボタンの継続入力が、検査される。そして、状態データとフレーム数とに基づいて、入力されたボタンの情報を規定するための入力データが、1フレームごとに生成される。そして、入力データが生成されると、この入力データが、他のコンピュータに1フレームごとに送信される。
【0016】
この場合、入力データが、状態データと入力信号の継続回数データとに基づいて、生成される。ここで、状態データは、コントローラに配置された各種のボタンの入力状態を、示すものである。この状態データは、たとえば、次のようにして生成される。まず、初期設定として、全てのボタンのフラグが、オフに設定される。次に、あるボタンが押されると、押されたボタンのフラグが、オンに設定される。このような設定が、全てのボタンに対して実行され、全てのボタンのオンオフ状態を示す状態データが、生成される。
【0017】
また、継続回数データは、同じボタンが継続的に押されたときの継続状況を示すものであり、何フレーム分、継続して押されているかを示す回数である。この継続回数データは、たとえば、次のようにして算出される。まず、ある瞬間(フレーム)と次の瞬間(フレーム)とに同じボタンが継続的に押された場合、継続回数データ(初期値はゼロ)が、インクリメントされる。すると、継続回数データが、「1」に設定される。続いて、次の瞬間に再び同じボタンが継続的に押された場合、この継続回数データが、インクリメントされる。すると、継続回数データが、「2」に設定される。このようにして、同じボタンが押された回数すなわち継続回数データが、算出される。
【0018】
すると、上記のようにして求めた状態データと継続回数データとに基づいて、入力データが規定される。たとえば、コントローラが、「Aボタン、Bボタン、Cボタン、Dボタン、・・・」から構成されている場合、「1,0,0,0,・・・;n」のような入力データが、生成される。この入力データでは、「;」の前の数字が状態データに対応しており、「;」の後の数字が、各ボタンのフラグのオンオフを示す継続回数データに対応している。ここでは、Aボタンが押されたときの入力データが、示されている。そして、Aボタンが継続して入力されたときの回数nを示す継続回数データが、示されている。このように、本発明では、同じボタンが継続的に押された場合、継続回数データnの値が変化するだけであり、入力データの全体のデータ量は変化しない。
【0019】
ところで、同じボタンが継続的に押された場合の、「(1,0,0,0,・・・)、(1,0,0,0,・・・)、(1,0,0,0,・・・)、・・・」のような複数の入力データそれぞれを、そのデータ構成のまま、単純に一つの集合としてまとめて送信することも考えられる。しかしながら、回線容量が小さい場合には、多くのデータは、同時に送信することができないため、このデータ構成では、結果的に、データ欠落に対する補完の効果を、大きくは望むことができない。
【0020】
しかしながら、上述したように、本発明では、1個の入力データ(状態データ+1バイト(継続回数データ))のみで、数十個またはそれ以上の情報を表現することができる。すなわち、本発明では、欠落データを補完するために必要な多くの情報を、非常に小さなデータ量で提供することができる。言い換えると、データ量が非常に小さくても、信頼度の高い情報を、提供することができる。これにより、キー入力に伴うゲーム中断のリスクを、大きく低減することができる。
【0021】
請求項2に係るゲームプログラムは、請求項1に記載のゲームプログラムにおいて、コンピュータに、以下の機能をさらに実現させるためのプログラムである。
(6)通信部を介して他のコンピュータから受信した入力データを、記憶部に格納する入力データ格納機能。
(7)他のコンピュータから受信した入力データが欠落しているか否かを、制御部に判断させることにより、入力データの欠落の有無を検査する入力データ欠落検査機能。
(8)他のコンピュータから受信した入力データが欠落していた場合に、最新の入力データに含まれる、状態データと入力信号の継続回数データとに基づいて、欠落した入力データを生成する処理を、制御部に実行させることにより、欠落した入力データを補完する入力データ補完機能。
【0022】
このゲームプログラムでは、入力データ格納機能において、通信部を介して他のコンピュータから受信した入力データが、記憶部に格納される。入力データ欠落検査機能においては、他のコンピュータから受信した入力データが欠落しているか否かを、制御部に判断させることにより、入力データの欠落の有無が検査される。入力データ補完機能においては、他のコンピュータから受信した入力データが欠落していた場合に、最新の入力データに含まれる、状態データと入力信号の継続回数データとに基づいて、欠落した入力データを生成する処理を、制御部に実行させることにより、欠落した入力データが、補完される。
【0023】
このゲームプログラムが野球ゲームに適用された場合を一例として説明すると、たとえば、他のコンピュータにおいて選手キャラクタを左に動かすためのボタンが、押された場合、他のコンピュータで入力されたボタンの情報を規定するための入力データが、通信部を介して、記憶部に格納される。すると、他のコンピュータから受信した入力データが欠落しているか否かが、検査される。そして、他のコンピュータから受信した入力データが欠落していた場合に、最新の入力データに含まれる、状態データと入力信号の継続回数データとに基づいて、欠落した入力データが、生成される。これにより、欠落した入力データが、補完される。
【0024】
この場合、他のコンピュータから受信した入力データが欠落していた場合に、最新の入力データに含まれる、状態データと入力信号の継続回数データとに基づいて、欠落した入力データが、生成される。たとえば、他のコンピュータの1つ前の入力データが欠落しており、最新の入力データが「0,0,1,0,・・・;2」である場合、この最新の入力データを用いて、欠落した入力データが、生成される。具体的には、この最新の入力データを見ると、入力ボタン(Cボタン)が最初に押された後に、Cボタンが、さらに2回継続して押されていることがわかる。このため、他のコンピュータの1つ前の入力データが欠落していても、最新の入力データを用いて、欠落した入力データ、すなわち「0,0,1,0,・・・;1」を、生成することができる。このように、本発明では、過去の入力データが欠落していても、最新の入力データを用いて、欠落した入力データを補完することができる。
【0025】
請求項3に係るゲームプログラムは、請求項2に記載のゲームプログラムにおいて、入力データの送信番号に対応する識別データを、入力データに付加する処理が、制御部により実行される。そして、識別データが付加された入力データを、通信部を介して送信する命令が、制御部から発行される。このようにして、入力データが、他のコンピュータに送信される。この機能は、入力データ送信機能において実現される。また、入力データ欠落検査機能では、入力データに付加された識別データに基づいて、他のコンピュータから受信した入力データが欠落しているか否かを、制御部に判断させることにより、入力データの欠落が、検査される。
【0026】
たとえば、このゲームプログラムでは、入力データの送信番号に対応する識別データが、入力データに付加される。そして、識別データが付加された入力データが、通信部を介して送信される。一方で、他のコンピュータの入力データ、すなわち識別データが付加された入力データが、通信部を介して、記憶部に格納されると、この入力データに付加された識別データに基づいて、他のコンピュータから受信した入力データが欠落しているか否かが、検査される。
【0027】
この場合、他のコンピュータから送信された入力データを受け取ったコンピュータにおいて、他のコンピュータから送信された入力データの送信番号を、識別データに基づいて特定することができる。これにより、他のコンピュータから受信した入力データが欠落しているか否かを、検査することができる。このように、本発明では、過去の入力データが欠落していても、欠落した入力データを容易に検出することができる。
【0028】
請求項4に係るゲームプログラムは、請求項2又は3に記載のゲームプログラムにおいて、コンピュータに、以下の機能をさらに実現させるためのプログラムである。
(9)補完された入力データと、最新の入力データとに基づいて、他のコンピュータにおいて指示された命令を、制御部に発行させることにより、本コンピュータのゲームと他のコンピュータのゲームとの同期を回復するゲーム同期回復機能。
【0029】
このゲームプログラムでは、ゲーム同期回復機能において、補完された入力データと、最新の入力データとに基づいて、他のコンピュータにおいて指示された命令を、制御部に発行させることにより、他のコンピュータのゲームとの同期が回復される。
【0030】
このゲームプログラムが野球ゲームに適用された場合を一例として説明すると、たとえば、他のコンピュータにおいて選手キャラクタを左に動かすためのCボタンが押され、他のコンピュータから受信した入力データが欠落していた場合、欠落した入力データが、最新の入力データを用いて補完される。すると、補完された入力データと、最新の入力データとに基づいて、他のコンピュータにおいて指示された命令、たとえば、選手キャラクタを左に動かすための命令が、制御部から発行される。これにより、他のコンピュータにおいて実行中のゲームが、本コンピュータのゲーム上に同期される。
【0031】
この場合、他のコンピュータからの過去の入力データが欠落したとしても、最新の入力データを用いて、過去の入力データを補完することができる。そして、補完された入力データと、最新の入力データとに基づいて、他のコンピュータにおいて指示された命令を、本コンピュータにおいて実行中のゲームに反映することができる。このように、本発明では、他のコンピュータからの過去の入力データが欠落したとしても、最新の入力データを用いて、他のコンピュータにおいて実行中のゲームを、本コンピュータのゲーム上に同期することができる。
【0032】
請求項5に係るゲームプログラムは、請求項2から4のいずれかに記載のゲームプログラムにおいて、コンピュータに、以下の機能をさらに実現させるためのプログラムである。
(10)他のコンピュータから受信した入力データが欠落していなかった場合に、最新の入力データに基づいて、他のコンピュータにおいて指示された命令を、制御部に発行させることにより、他のコンピュータにおいて実行中のゲームを、本コンピュータのゲーム上に同期するゲーム同期機能。
【0033】
このゲームプログラムでは、ゲーム同期機能において、他のコンピュータから受信した入力データが欠落していなかった場合に、最新の入力データに基づいて、他のコンピュータにおいて指示された命令を、制御部に発行させることにより、他のコンピュータにおいて実行中のゲームが、本コンピュータのゲーム上に同期される。
【0034】
このゲームプログラムが野球ゲームに適用された場合を一例として説明すると、たとえば、他のコンピュータにおいて選手キャラクタを左に動かすためのCボタンが押され、他のコンピュータから受信した入力データが欠落していなかった場合、最新の入力データとに基づいて、他のコンピュータにおいて指示された命令、たとえば、選手キャラクタを左に動かすための命令が、制御部から発行される。これにより、他のコンピュータにおいて実行中のゲームが、本コンピュータのゲーム上に同期される。
【0035】
この場合、他のコンピュータからの過去の入力データが欠落していないので、最新の入力データのみを用いて、他のコンピュータにおいて指示された命令が、本コンピュータにおいて実行中のゲームに反映される。すなわち、本発明では、データ量の小さい入力データを用いて、他のコンピュータにおいて実行中のゲームを、本コンピュータのゲーム上に同期することができる。
【0036】
請求項6に係るゲームプログラムは、請求項1から5のいずれかに記載のゲームプログラムにおいて、コンピュータに、以下の機能をさらに実現させるためのプログラムである。
(11)入力部からの入力信号が制御部に認識されたときに、入力信号に対応する命令を、制御部に発行させることにより、コンピュータのゲームを制御するゲーム制御機能。
【0037】
このゲームプログラムでは、ゲーム制御機能において、入力部からの入力信号が制御部に認識されたときに、入力信号に対応する命令を、制御部に発行させることにより、コンピュータのゲームが、制御される。
【0038】
このゲームプログラムが野球ゲームに適用された場合を一例として説明すると、たとえば、本コンピュータにおいて選手キャラクタを右に動かすためのボタンが押されると、このボタンに対応する命令が、制御部から発行される。すると、実行中の本コンピュータのゲームにおいて、選手キャラクタが右に移動する状態が、画像表示部に表示される。
【0039】
この場合、本コンピュータにおいて選手キャラクタを右に動かすためのボタンが押されると、実行中の本コンピュータのゲームにおいて、選手キャラクタを右に移動させることができる。そして、このボタンが押されたときには、入力ボタンの情報を規定するための入力データが、通信部を介して、他のコンピュータに送信される。そして、他のコンピュータにおいても、選手キャラクタを右に移動させることができる。このように、本発明では、複数のコンピュータで実行されているゲームを、同期することができる。
【0040】
請求項7に係るゲーム装置は、ネットワークを介して他のゲーム装置に接続されるゲーム装置である。このゲーム装置は、入力部からの入力信号に基づいて、入力部の入力状態を示す状態データを、生成する処理を、制御部に実行させることにより、入力ボタンを特定する入力ボタン特定手段と、時間的に隣接する2つの入力信号が、同じ入力信号であるか否かを制御部に判別させることにより、同一ボタンの継続入力の有無を判別する継続入力判別手段と、時間的に隣接する2つの入力信号が、同じ入力信号であった場合、入力信号の継続回数データを算出する処理を、制御部に実行させることにより、入力ボタンの継続入力を検査する継続入力検査手段と、状態データと入力信号の継続回数データとに基づいて、入力情報を規定するための入力データを生成する処理を、制御部に実行させることにより、入力データを規定する入力データ規定手段と、入力データを、通信部を介して送信する命令を、制御部に発行させることにより、入力データを他のコンピュータに送信する入力データ送信手段と、を備えている。
【0041】
請求項8に係るゲーム制御方法は、ネットワークを介して互いに接続される複数のコンピュータそれぞれにおいてゲームを制御するゲーム制御方法である。このゲーム制御方法は、入力部からの入力信号に基づいて、入力部の入力状態を示す状態データを、生成する処理を、制御部に実行させることにより、入力ボタンを特定する入力ボタン特定ステップと、時間的に隣接する2つの入力信号が、同じ入力信号であるか否かを制御部に判別させることにより、同一ボタンの継続入力の有無を判別する継続入力判別ステップと、時間的に隣接する2つの入力信号が、同じ入力信号であった場合、入力信号の継続回数データを算出する処理を、制御部に実行させることにより、入力ボタンの継続入力を検査する継続入力検査ステップと、状態データと入力信号の継続回数データとに基づいて、入力情報を規定するための入力データを生成する処理を、制御部に実行させることにより、入力データを規定する入力データ規定ステップと、入力データを、通信部を介して送信する命令を、制御部に発行させることにより、入力データを他のコンピュータに送信する入力データ送信ステップと、を備えている。
【発明の効果】
【0042】
本発明では、本発明では、同じボタンが継続入力されても、入力データのデータ量は変化しない。このため、本発明において生成される入力データは、従来の入力データと比較して、データ量が小さくなり、データ送信時に回線の影響を受けにくくなる。また、本発明では、入力データを他のコンピュータに安定的に送り届けることができる。また、本発明では、他のコンピュータから受信した入力データが欠落していても、最新の入力データを用いて、欠落した入力データを容易に補完することができる。
【発明を実施するための最良の形態】
【0043】
〔ゲーム装置の構成と動作〕
図1は、本発明の一実施形態によるゲーム装置の基本構成を示している。ここでは、ビデオゲーム装置の一例として、家庭用ビデオゲーム装置をとりあげて説明を行うこととする。家庭用ビデオゲーム装置は、家庭用ゲーム機本体および家庭用テレビジョンを備える。家庭用ゲーム機本体には、記録媒体10が装填可能となっており、記録媒体10からゲームデータが適宜読み出されてゲームが実行される。このようにして実行されるゲーム内容が家庭用テレビジョンに表示される。
【0044】
家庭用ビデオゲーム装置のゲームシステムは、制御部1と、記憶部2と、画像表示部3と、音声出力部4と、操作入力部5とからなっており、それぞれがバス6を介して接続される。このバス6は、アドレスバス、データバス、およびコントロールバスなどを含んでいる。ここで、制御部1、記憶部2、音声出力部4および操作入力部5は、家庭用ビデオゲーム装置の家庭用ゲーム機本体に含まれており、画像表示部3は家庭用テレビジョンに含まれている。
【0045】
制御部1は、主に、ゲームプログラムに基づいてゲーム全体の進行を制御するために設けられている。制御部1は、たとえば、CPU(Central Processing Unit)7と、信号処理プロセッサ8と、画像処理プロセッサ9とから構成されている。CPU7と信号処理プロセッサ8と画像処理プロセッサ9とは、それぞれがバス6を介して互いに接続されている。CPU7は、ゲームプログラムからの命令を解釈し、各種のデータ処理や制御を行う。たとえば、CPU7は、信号処理プロセッサ8に対して、画像データを画像処理プロセッサに供給するように命令する。信号処理プロセッサ8は、主に、3次元空間上における計算と、3次元空間上から擬似3次元空間上への位置変換計算と、光源計算処理と、画像および音声データの生成加工処理とを行っている。画像処理プロセッサ9は、主に、信号処理プロセッサ8の計算結果および処理結果に基づいて、描画すべき画像データをRAM12に書き込む処理を行っている。
【0046】
記憶部2は、主に、プログラムデータや、プログラムデータで使用される各種データなどを格納しておくために設けられている。記憶部2は、たとえば、記録媒体10と、インターフェース回路11と、RAM(Random Access Memory)12とから構成されている。記録媒体10には、インターフェース回路11が接続されている。そして、インターフェース回路11とRAM12とはバス6を介して接続されている。記録媒体10は、オペレーションシステムのプログラムデータや、画像データ、音声データ並びに各種プログラムデータからなるゲームデータなどを記録するためのものである。この記録媒体10は、たとえば、ROM(Read Only Memory)カセット、光ディスク、およびフレキシブルディスクなどであり、オペレーティングシステムのプログラムデータやゲームデータなどが記憶される。なお、記録媒体10にはカード型メモリも含まれており、このカード型メモリは、主に、ゲームを中断するときに中断時点での各種ゲームパラメータを保存するために用いられる。RAM12は、記録媒体10から読み出された各種データを一時的に格納したり、制御部1からの処理結果を一時的に記録したりするために用いられる。このRAM12には、各種データとともに、各種データの記憶位置を示すアドレスデータが格納されており、任意のアドレスを指定して読み書きすることが可能になっている。
【0047】
画像表示部3は、主に、画像処理プロセッサ9によってRAM12に書き込まれた画像データや、記録媒体10から読み出される画像データなどを画像として出力するために設けられている。この画像表示部3は、たとえば、テレビジョンモニタ20と、インターフェース回路21と、D/Aコンバータ(Digital-To-Analogコンバータ)22とから構成されている。テレビジョンモニタ20にはD/Aコンバータ22が接続されており、D/Aコンバータ22にはインターフェース回路21が接続されている。そして、インターフェース回路21にバス6が接続されている。ここでは、画像データが、インターフェース回路21を介してD/Aコンバータ22に供給され、ここでアナログ画像信号に変換される。そして、アナログ画像信号がテレビジョンモニタ20に画像として出力される。
【0048】
ここで、画像データには、たとえば、ポリゴンデータやテクスチャデータなどがある。ポリゴンデータはポリゴンを構成する頂点の座標データのことである。テクスチャデータは、ポリゴンにテクスチャを設定するためのものであり、テクスチャ指示データとテクスチャカラーデータとからなっている。テクスチャ指示データはポリゴンとテクスチャとを対応づけるためのデータであり、テクスチャカラーデータはテクスチャの色を指定するためのデータである。ここで、ポリゴンデータとテクスチャデータとには、各データの記憶位置を示すポリゴンアドレスデータとテクスチャアドレスデータとが対応づけられている。このような画像データでは、信号処理プロセッサ8により、ポリゴンアドレスデータの示す3次元空間上のポリゴンデータ(3次元ポリゴンデータ)が、画面自体(視点)の移動量データおよび回転量データに基づいて座標変換および透視投影変換されて、2次元空間上のポリゴンデータ(2次元ポリゴンデータ)に置換される。そして、複数の2次元ポリゴンデータでポリゴン外形を構成して、ポリゴンの内部領域にテクスチャアドレスデータが示すテクスチャデータを書き込む。このようにして、各ポリゴンにテクスチャが貼り付けられた物体つまり各種キャラクタを表現することができる。
【0049】
音声出力部4は、主に、記録媒体10から読み出される音声データを音声として出力するために設けられている。音声出力部4は、たとえば、スピーカー13と、増幅回路14と、D/Aコンバータ15と、インターフェース回路16とから構成されている。スピーカー13には増幅回路14が接続されており、増幅回路14にはD/Aコンバータ15が接続されており、D/Aコンバータ15にはインターフェース回路16が接続されている。そして、インターフェース回路16にバス6が接続されている。ここでは、音声データが、インターフェース回路16を介してD/Aコンバータ15に供給され、ここでアナログ音声信号に変換される。このアナログ音声信号が増幅回路14によって増幅され、スピーカー13から音声として出力される。音声データには、たとえば、ADPCM(Adaptive Differential Pulse Code Modulation)データやPCM(Pulse Code Modulation)データなどがある。ADPCMデータの場合、上述と同様の処理方法で音声をスピーカー13から出力することができる。PCMデータの場合、RAM12においてPCMデータをADPCMデータに変換しておくことで、上述と同様の処理方法で音声をスピーカー13から出力することができる。
【0050】
操作入力部5は、主に、コントローラ17と、操作情報インターフェース回路18と、インターフェース回路19とから構成されている。コントローラ17には、操作情報インターフェース回路18が接続されており、操作情報インターフェース回路18にはインターフェース回路19が接続されている。そして、インターフェース回路19にバス6が接続されている。
【0051】
コントローラ17は、プレイヤが種々の操作命令を入力するために使用する操作装置であり、プレイヤの操作に応じた操作信号をCPU7に送出する。コントローラ17には、第1ボタン17a、第2ボタン17b、第3ボタン17c、第4ボタン17d、上方向キー17U、下方向キー17D、左方向キー17L、右方向キー17R、L1ボタン17L1、L2ボタン17L2、R1ボタン17R1、R2ボタン17R2、スタートボタン17e、セレクトボタン17f、左スティック17SL及び右スティック17SRが設けられている。
【0052】
上方向キー17U、下方向キー17D、左方向キー17L及び右方向キー17Rは、例えば、キャラクタやカーソルをテレビジョンモニタ20の画面上で上下左右に移動させるコマンドをCPU7に与えるために使用される。
【0053】
スタートボタン17eは、記録媒体10からゲームプログラムをロードするようにCPU7に指示するときや、実行中のゲームプログラムを一時停止するときなどに使用される。
【0054】
セレクトボタン17fは、記録媒体10からロードされたゲームプログラムに対して、各種選択をCPU7に指示するときなどに使用される。
【0055】
左スティック17SL及び右スティック17SRは、いわゆるジョイスティックとほぼ同一構成のスティック型コントローラである。このスティック型コントローラは、直立したスティックを有している。このスティックは、支点を中心として直立位置から前後左右を含む360°方向に亘って、傾倒可能な構成になっている。左スティック17SL及び右スティック17SRは、スティックの傾倒方向及び傾倒角度に応じて、直立位置を原点とするx座標及びy座標の値を、操作信号として操作情報インターフェース回路18とインターフェース回路19とを介してCPU7に送出する。
【0056】
第1ボタン17a、第2ボタン17b、第3ボタン17c、第4ボタン17d、L1ボタン17L1、L2ボタン17L2、R1ボタン17R1及びR2ボタン17R2には、記録媒体10からロードされるゲームプログラムに応じて種々の機能が割り振られている。
【0057】
なお、左スティック17SL及び右スティック17SRを除くコントローラ17の各ボタン及び各キーは、外部からの押圧力によって中立位置から押圧されるとオンになり、押圧力が解除されると中立位置に復帰してオフになるオンオフスイッチになっている。
【0058】
通信部23は、通信制御回路24および通信インターフェース25を有している。通信制御回路24および通信インターフェース25は、ゲーム装置をサーバや他のゲーム装置等に接続するために用いられる。通信制御回路24および通信インターフェース25は、バス6を介してCPU7に接続されている。通信制御回路24および通信インターフェース25は、CPU7からの命令に応じて、ゲーム装置をインターネットに接続するための接続信号を制御し発信する。また、通信制御回路24および通信インターフェース25は、インターネットを介してゲーム装置をサーバや他のゲーム装置に接続するための接続信号を制御し発信する。
【0059】
以上のような構成からなる家庭用ビデオゲーム装置の概略動作を、以下に説明する。電源スイッチ(図示省略)がオンにされゲームシステムに電源が投入されると、CPU7が、記録媒体10に記憶されているオペレーティングシステムに基づいて、記録媒体10から画像データ、音声データ、およびプログラムデータを読み出す。読み出された画像データ、音声データ、およびプログラムデータの一部若しくは全部は、RAM12に格納される。そして、CPU7が、RAM12に格納されたプログラムデータに基づいて、RAM12に格納された画像データや音声データにコマンドを発行する。
【0060】
画像データの場合、CPU7からのコマンドに基づいて、まず、信号処理プロセッサ8が、3次元空間上におけるキャラクタの位置計算および光源計算などを行う。次に、画像処理プロセッサ9が、信号処理プロセッサ8の計算結果に基づいて、描画すべき画像データのRAM12への書き込み処理などを行う。そして、RAM12に書き込まれた画像データが、インターフェース回路21を介してD/Aコンバータ22に供給される。ここで、画像データがD/Aコンバータ22でアナログ映像信号に変換される。そして、画像データはテレビジョンモニタ20に供給され画像として表示される。
【0061】
音声データの場合、まず、信号処理プロセッサ8が、CPU7からのコマンドに基づいて音声データの生成および加工処理を行う。ここでは、音声データに対して、たとえば、ピッチの変換、ノイズの付加、エンベロープの設定、レベルの設定及びリバーブの付加などの処理が施される。次に、音声データは、信号処理プロセッサ8から出力されて、インターフェース回路16を介してD/Aコンバータ15に供給される。ここで、音声データがアナログ音声信号に変換される。そして、音声データは増幅回路14を介してスピーカー13から音声として出力される。
【0062】
〔ゲーム装置における各種処理概要〕
本ゲーム装置は、他のゲーム装置に、ネットワークを介して接続されている。本ゲーム装置および他のゲーム装置において実行されるゲームは、たとえば、ネットワーク対戦用の野球ゲームである。本ゲーム装置および他のゲーム装置は、以下に示す手段を備えている。図2は、本発明で主要な役割を果たす機能を説明するための機能ブロック図である。
【0063】
ゲーム制御手段50は、コントローラ17からの入力信号がCPU7に認識されたときに、入力信号に対応する命令を、CPU7に発行させることにより、ゲーム装置において実行中のゲームを制御する機能を備えている。
【0064】
この手段では、コントローラ17からの入力信号がCPU7に認識されたときに、入力信号に対応する命令が、CPU7に発行される。すると、この命令に対応する制御が、実行中のゲームにおいて実行される。たとえば、選手キャラクタを右に動かすためのボタン、すなわち右方向キー17Rが、ゲーム実行中に押された場合、右移動命令が、CPU7から発行される。すると、選手キャラクタが右に移動する状態が、テレビジョンモニタ20に表示される。
【0065】
入力ボタン特定手段51は、コントローラ17からの入力信号に基づいて、コントローラ17の入力状態を示す状態データを、生成する処理を、CPU7に実行させることにより、入力ボタンを特定する機能を備えている。
【0066】
この手段では、コントローラ17からの入力信号がCPU7に認識されたときに、この入力信号に基づいて、コントローラ17の入力状態を示す状態データを、生成する処理が、CPU7により実行される。
【0067】
たとえば、選手キャラクタを右に動かすための右方向キー17Rが、ゲーム実行中に押された場合、コントローラ17から入力信号が発行され、この入力信号が、CPU7に認識される。すると、この入力信号に基づいて、プレイヤによって操作されたボタン(入力ボタン)、たとえば右方向キー17Rが、CPU7に認識される。すると、右方向キー用のフラグが、オンに設定される。すると、右方向キー用のフラグがオンであり、他のボタンのフラグがオフである状態の状態データが、生成される。このように状態データを生成することにより、入力ボタンの特定が実行される。
【0068】
継続入力判別手段52は、時間的に隣接する2つの入力信号が、同じ入力信号であるか否かをCPU7に判別させることにより、同一ボタンの継続入力の有無を判別する機能を備えている。
【0069】
この手段では、時間的に隣接する2つの入力信号が、同じ入力信号であるか否かが、CPU7により判別される。たとえば、この手段では、時間的に継続する2フレーム分の入力信号が同じであるか否かが、CPU7により判別される。より具体的には、選手キャラクタを右に動かすための右方向キー17Rが、押された場合、1フレームごとに、右方向キー17Rに対応する現フレームの入力信号と、1フレーム前の入力信号とが一致するか否かが、CPU7により判別される。この処理を実行することにより、同一ボタンの継続入力の有無が、判別される。
【0070】
継続入力検査手段53は、時間的に隣接する2つの入力信号が、同じ入力信号であった場合、入力信号の継続回数データを算出する処理を、CPU7に実行させることにより、入力ボタンの継続入力を検査する機能を備えている。
【0071】
この手段では、時間的に隣接する2つの入力信号が、同じ入力信号であった場合、入力信号の継続回数データを算出する処理が、CPU7により実行される。たとえば、この手段では、時間的に継続する2フレーム分の入力信号が同じであった場合、継続回数データ(初期値はゼロ)が、インクリメントする処理が、CPU7により実行される。より具体的には、選手キャラクタを右に動かすための右方向キー17Rが押され、右方向キー17Rに対応する現フレームの入力信号と、右方向キー17Rに対応する1フレーム前の入力信号とが一致した場合、継続回数データをインクリメントする処理が、CPU7により実行される。この処理を1フレームごとに実行することにより、同じボタンが押された回数すなわち継続回数データが、CPU7により算出される。このようにして、同一ボタンの継続入力が、検査される。
【0072】
入力データ規定手段54は、状態データと継続回数データとに基づいて、入力情報を規定するための入力データを生成する処理を、CPU7に実行させることにより、入力データを規定する機能を備えている。
【0073】
この手段では、状態データと継続回数データとに基づいて、入力情報を規定するための入力データを生成する処理が、CPU7により実行される。たとえば、選手キャラクタを右に動かすための右方向キー17Rが押され、右方向キー17Rに対応する現フレームの入力信号と、右方向キー17Rに対応する1フレーム前の入力信号とが一致した場合、右方向キー17Rが押されたことを示す状態データと、右方向キー17Rが継続入力された回数に対応する継続回数データとに基づいて、入力データを生成する処理が、CPU7により実行される。
【0074】
ここで用いられる状態データは、右方向キー用のフラグがオンであり、他のボタンのフラグがオフである状態のデータである。この場合、状態データと継続回数データとに基づいて、たとえば、「・・・,0,1,0,・・・;n」のような入力データが、生成される。この入力データでは、数値「1」が、右方向キー用のフラグがオンであることを示し、数値「0」が、他のボタン用のフラグがオフであることを示している。また、記号「n」は、継続回数を示している。このようにして、全てのボタンのオンオフ状態と、同一ボタンの継続回数とを示す入力データが、規定される。
【0075】
入力データ送信手段55は、入力データを、通信部23を介して送信する命令を、CPU7に発行させることにより、入力データを他のゲーム装置に送信する機能を備えている。
【0076】
この手段では、入力データを、通信部23を介して送信する命令を、CPU7に発行させることにより、入力データが、他のゲーム装置に送信される。たとえば、この手段では、入力データの送信番号に対応する識別データを、入力データに付加する処理が、CPU7により実行される。そして、識別データが付加された入力データを、通信部23を介して送信する命令が、CPU7から発行される。この処理を1フレームごとに実行することにより、入力データが他のゲーム装置に連続的に送信される。
【0077】
より具体的には、右方向キー用のフラグがオンである状態の入力データの場合、この入力データに対して識別データが付加されると、「k;・・・,0,1,0,・・・;n」のような入力データが、生成される。そして、この入力データが、通信部23を介して、他のゲーム装置に送信される。ここで、記号「k」は、送信番号を示している。
【0078】
なお、上記の処理は、他のゲーム装置においても同様に実行されている。このため、他のゲーム装置において生成された入力データは、他のゲーム装置から本ゲーム装置に送信される。
【0079】
入力データ格納手段56は、通信部23を介して他のゲーム装置から受信した入力データを、RAM12に格納する機能を備えている。
【0080】
この手段では、通信部23を介して他のゲーム装置から受信した入力データが、RAM12に格納される。たとえば、この手段では、他のゲーム装置でボタンが押された場合、入力されたボタンの情報を規定するための入力データが、通信部23を介して、RAM12に格納される。より具体的には、他のゲーム装置において選手キャラクタを左に動かすためのボタン、すなわち左方向キー17Lが、押された場合、上述したように、入力データを生成する処理が、他のゲーム装置のCPU7により実行される。そして、この入力データが、他のゲーム装置から、本ゲーム装置に対して送信される。すると、この入力データが、本ゲーム装置のRAM12に格納される。
【0081】
入力データ欠落検査手段57は、他のゲーム装置から受信した入力データが欠落しているか否かを、CPU7に判断させることにより、入力データの欠落の有無を検査する機能を備えている。
【0082】
この手段では、他のゲーム装置から受信した入力データが欠落しているか否かが、CPU7により判断される。たとえば、この手段では、入力データに付加された識別データに基づいて、他のゲーム装置から受信した入力データが欠落しているか否かが、CPU7により判断される。
【0083】
より具体的には、最新の入力データの識別データと、時間的に最新の入力データの1つ前に受信した入力データの識別データとを比較する処理が、CPU7により実行される。識別データは、送信番号を示すデータであるので、2つの入力データそれぞれの識別データが、連続した値であれば、他のゲーム装置から受信した入力データが正常に受信されたと、判断される。一方で、2つの入力データそれぞれの識別データが、不連続な値であれば、他のゲーム装置から受信した入力データが欠落したと、判断される。このようにして、入力データの欠落の有無が、検査される。
【0084】
入力データ補完手段58は、他のゲーム装置から受信した入力データが欠落していた場合に、最新の入力データに含まれる、状態データと継続回数データとに基づいて、欠落した入力データを生成する処理を、CPU7に実行させることにより、欠落した入力データを補完する機能を備えている。
【0085】
この手段では、他のゲーム装置から受信した入力データが欠落していた場合に、最新の入力データに含まれる、状態データと継続回数データとに基づいて、欠落した入力データを生成する処理が、CPU7により実行される。たとえば、最新の入力データの識別データと、時間的に最新の入力データの1つ前に受信した入力データの識別データとを比較し、他のゲーム装置から受信した入力データが、欠落していた場合、最新の入力データに含まれる、状態データと継続回数データとに基づいて、欠落した入力データを生成する処理が、CPU7により実行される。
【0086】
より具体的には、時間的に連続して受信した2つの入力データそれぞれの識別データが、不連続な値であった場合、最新の入力データに含まれる、状態データと継続回数データとに基づいて、欠落した入力データが補完される。たとえば、他のゲーム装置において選手キャラクタを左に動かすための左方向キー17Lが、押され、最新の入力データが「5;・・・,0,0,0,1,・・・;2」である場合、この最新の入力データを用いて、欠落した入力データが、生成される。この最新の入力データを見ると、左方向キー17Lが最初に押された後に、この左方向キー17Lがさらに2回継続して押されていることがわかる。このため、他のゲーム装置の1つ前の入力データ(「k=4」の入力データ)が欠落していても、この最新の入力データを用いて、欠落した入力データ、すなわち「4;・・・,0,0,0,1,・・・;1」を、生成することにより、欠落した入力データが、補完される。
【0087】
ゲーム同期回復手段59は、補完された入力データと、最新の入力データとに基づいて、他のゲーム装置において指示された命令を、CPU7に発行させることにより、本ゲーム装置のゲームと他のゲーム装置のゲームとの同期を回復する機能を備えている。
【0088】
この手段では、補完された入力データと、最新の入力データとに基づいて、他のゲーム装置において指示された命令が、CPU7から発行される。たとえば、他のゲーム装置において選手キャラクタを左に動かすための左方向キー17Lが押され、他のゲーム装置から受信した入力データが欠落していた場合、欠落した入力データが、上記のように、最新の入力データを用いて補完される。すると、補完された過去の入力データと、最新の入力データとに基づいて、選手キャラクタを左に動かすための命令が、制御部から発行される。すると、選手キャラクタが左に移動する状態が、本ゲーム装置のテレビジョンモニタ20に表示される。このようにして、他のゲーム装置において実行中のゲームが、本ゲーム装置のゲームに、反映され同期される。
【0089】
ゲーム同期手段60は、最新の入力データに基づいて、他のゲーム装置において指示された命令を、CPU7に発行させることにより、本ゲーム装置のゲームを、他のゲーム装置のゲームと同期する機能を備えている。
【0090】
この手段では、他のゲーム装置から受信した入力データが欠落していなかった場合、最新の入力データに基づいて、他のゲーム装置において指示された命令が、CPU7から発行される。これにより、他のゲーム装置において実行中のゲームが、本ゲーム装置のゲームに、反映され同期される。たとえば、他のゲーム装置において選手キャラクタを左に動かすための左方向キー17Lが押され、他のゲーム装置から受信した入力データが欠落していなかった場合、最新の入力データに基づいて、選手キャラクタを左に動かすための命令が、制御部から発行される。すると、選手キャラクタが左に移動する状態が、本ゲーム装置のテレビジョンモニタ20に表示される。このように、他のゲーム装置から受信した入力データが欠落していなかった場合においても、他のゲーム装置において実行中のゲームが、本ゲーム装置のゲームに、反映され同期される。
【0091】
〔野球ゲームにおけるデータ補完システムの概要〕
次に、野球ゲームにおけるデータ補完システムの具体的な内容について説明する。また、図9および図10に示すフローについても同時に説明する。なお、図9は野球ゲームの全体概要を説明するためのフローであり、図10は上記システムを説明するためのフローである。
【0092】
本ゲーム装置(第1ゲーム装置)は、他のゲーム装置(第2ゲーム装置)に、ネットワークを介して接続されている。第1ゲーム装置および第2ゲーム装置において実行される野球ゲームは、ネットワーク対戦用の野球ゲームである。
【0093】
まず、第1ゲーム装置および第2ゲーム装置の電源が投入され、これらゲーム装置が起動されると、野球ゲームプログラムが、記録媒体10からRAM12にロードされ格納される。このときには、野球ゲームを実行する上で必要となる各種の基本ゲームデータも、同時に、記録媒体10からRAM12にロードされ格納される(S1)。
【0094】
たとえば、基本ゲームデータには、3次元ゲーム空間用の各種の画像に関するデータが含まれている。そして、この3次元ゲーム空間用の各種の画像に関するデータ、たとえば、スタジアム用の画像データ、選手キャラクタ用の画像データ、および各種のオブジェクトの画像データ等が、CPU7に認識される。また、基本ゲームデータには、3次元ゲーム空間用の各種の画像に関するデータを3次元ゲーム空間に配置するための位置座標データが含まれている。また、基本ゲームデータには、上記システムで用いられるデータも、含まれている。
【0095】
続いて、RAM12に格納された野球ゲームプログラムが、基本ゲームデータに基づいて、CPU7により実行される(S2)。すると、野球ゲームの起動画面がテレビジョンモニタ20に表示される。すると、野球ゲームを実行するための各種の設定画面がテレビジョンモニタ20に表示される。ここでは、たとえば、野球ゲームのプレイモードを選択するためのモード選択画面が、テレビジョンモニタ20に表示される(図示しない)。このモード選択画面において、プレイヤがコントローラ17を操作することにより、プレイモードが決定される(S3)。プレイモードには、たとえば、12球団の中からチームを選択して1試合の対戦を楽しむ対戦モード、12球団の中からチームを選択してペナントレースを戦うペナントモード、プレイヤが監督の立場でチームの選手キャラクタを育成する育成モード、プレイヤがある1人の選手キャラクタの立場になって野球ゲームを体感する成長体感モード等が、用意されている。
【0096】
続いて、モード選択画面で選択されたプレイモードにおいて、各種のイベントが、CPU7により実行される(S4)。ここで実行される各種のイベントには、たとえば、自動制御プログラム(AIプログラム、Artificial Intelligence Program)に基づいてCPU7により自動制御されるイベントや、コントローラ17からの入力信号に基づいてプレイヤにより手動制御されるイベントがある。また、選手キャラクタの制御には、自動制御プログラムに基づいて選手キャラクタに命令を自動的に指示する自動制御や、コントローラ17からの入力信号に基づいて選手キャラクタに命令を直接的に指示する手動制御等がある。このように、本野球ゲームでは、コントローラ17からの指示や自動制御プログラムからの指示に応じて、イベントが制御されたり、選手キャラクタに命令が指示されたりするようになっている。
【0097】
なお、ここに示す自動制御プログラムとは、プレイヤに代わって、イベントに関する命令および選手キャラクタに対する命令を自動的に制御するためのプログラムである。この自動制御プログラムは、ゲームプログラムにおいて予め用意されている。
【0098】
続いて、選択されたプレイモードが終了したか否かが、CPU7により判断される(S5)。具体的には、プレイモードが終了したことを示す命令が発行されたか否かが、CPU7により判断される。そして、プレイモードが終了したことを示す命令が発行されたとCPU7により判断された場合(S5でYes)、ゲーム継続用のデータをRAM12に格納する処理が、CPU7により実行される。そして、ゲーム継続用のデータがRAM12に格納されると、この野球ゲームを終了するか否かを選択する選択画面が、テレビジョンモニタ20に表示される(S6)。そして、この選択画面において、プレイヤがコントローラ17を操作することにより、野球ゲームの終了を示す項目が選択されると(S6でYes)、野球ゲームを終了するための処理がCPU7により実行される(S7)。一方で、この選択画面において、プレイヤがコントローラ17を操作することにより、野球ゲームの継続を示す項目が選択されると(S6でNo)、ステップ3(S3)のモード選択画面が、テレビジョンモニタ20に再表示される。
【0099】
なお、プレイモードが終了するための命令が発行されたとCPU7に判断されない限り(S5でNo)、モード選択画面で選択されたプレイモードにおいて、各種のイベントがCPU7により実行される(S4)。
【0100】
次に、ネットワーク対戦用の野球ゲームにおいて実行されるデータ補完システムを、詳細に説明する。
【0101】
ここでは、野球ゲームにおいて、対戦モードが選択され、試合イベントが実行されているときに、本システムが実行される場合の例が、示される。また、第1ゲーム装置を操作するAプレイヤが、守備側の選手キャラクタを操作し、第2ゲーム装置を操作するBプレイヤが、攻撃側の選手キャラクタ(打者キャラクタ)を操作する場合の例が、示される。
【0102】
まず、1プレイが開始されてから終了するまでの間において、AプレイヤおよびBプレイヤが行うコントローラ17の操作、およびこの操作によって実行される命令についての概要を示す。
【0103】
Aプレイヤが、コントローラ17を操作することにより、投手キャラクタに対して投球に関する命令を、指示する。たとえば、Aプレイヤが、球種を選択した後に、コントローラ17の第3ボタン17cを押すと、投手キャラクタに対して投球開始命令が指示される。すると、投手キャラクタが投球動作を行う状態が、第1ゲーム装置および第2ゲーム装置のテレビジョンモニタ20に、表示される(図示しない)。そして、Aプレイヤが、所定のタイミングで、コントローラ17の第3ボタン17cを再び押すと、ボールのリリース命令が指示される。すると、投手キャラクタからリリースされたボールが、第1ゲーム装置および第2ゲーム装置のテレビジョンモニタ20に、表示される(図示しない)。
【0104】
続いて、Bプレイヤが、コントローラ17を操作することにより、打者キャラクタに対して打撃に関する命令を、指示する。たとえば、Bプレイヤが、コントローラ17の方向キー17U,17D,17L,17Rを押すと、ボールをミートするためのエリアを示すミートゾーン30の移動命令が、指示される。すると、図3に示すように、ミートゾーン30が移動する状態が、第1ゲーム装置および第2ゲーム装置のテレビジョンモニタ20に表示される。そして、Bプレイヤが、コントローラ17の第3ボタン17cを押すと、打者キャラクタに対してスイング開始命令が指示される。すると、打者キャラクタがスイング動作を行う状態が、第1ゲーム装置および第2ゲーム装置のテレビジョンモニタ20に表示される(図示しない)。そして、打者キャラクタによってボールが打ち返されると、打ち返されたボールが移動する状態が、第1ゲーム装置および第2ゲーム装置のテレビジョンモニタ20に、表示される(図示しない)。すると、打者キャラクタが一塁に向かって走塁する状態が、第1ゲームおよび第2ゲーム装置のテレビジョンモニタ20に、表示される(図示しない)。以下では、一二塁間にボールが転がっていく場合の例が、示される。
【0105】
続いて、二塁の選手キャラクタが移動対象の選手キャラクタとして選択された状態において、Aプレイヤが、コントローラ17の右方向キー17Rを押すと、二塁の選手キャラクタに対して移動命令が指示される。すると、図4に示すように、二塁の選手キャラクタが一塁の方向(右方向)に移動する状態が、第1ゲーム装置および第2ゲーム装置のテレビジョンモニタ20に、表示される。そして、二塁の選手キャラクタがボールを捕球した後、Aプレイヤが、コントローラ17の第2ボタン17bを押すと、二塁の選手キャラクタに対して一塁送球命令が指示される。すると、二塁の選手キャラクタがボールを一塁に送球する状態が、第1ゲーム装置および第2ゲーム装置のテレビジョンモニタ20に、表示される(図示しない)。
【0106】
続いて、一塁の選手キャラクタが、二塁の選手キャラクタから送球されたボールを捕球したときに、アウトか否かの判断が、CPU7により実行される。そして、この結果が、第1ゲーム装置および第2ゲーム装置のテレビジョンモニタ20に、表示される。このようにして、1プレイが終了する。
【0107】
ここで、第1ゲーム装置と第2ゲーム装置との間のデータ通信が、スムーズに行われているときには、上記のように、第1ゲーム装置および第2ゲーム装置において同期がとれた野球ゲームの画像が、各ゲーム装置のテレビジョンモニタ20に表示される。
【0108】
一方で、回線の影響等によって、第1ゲーム装置と第2ゲーム装置との間のデータ通信が、スムーズに行われない場合ある。この場合に発生し得る問題の1つに、データの欠落がある。このデータの欠落を補完するシステムが、データ修復システムである。
【0109】
以下では、上述した1プレイの間において、第2ゲーム装置においてBプレイヤが打者キャラクタに対してミートゾーン移動命令およびスイング開始命令を指示したときの入力データが、第2ゲーム装置から第1ゲーム装置へと送信されたときに、第1ゲーム装置においてデータ修復システムが実行される場合を、一例として説明を行う。
【0110】
図10は、本システムのフローである。以下では、この図10を用いて、本システムの詳細を説明する。なお、図10に示した「(1)」は、第1ゲーム装置において処理が実行されることを示す記号である。また、図10に示した「(2)」は、第2ゲーム装置において処理が実行されることを示す記号である。
【0111】
まず、たとえば、投手キャラクタからボールがリリースされたときに、Bプレイヤが、たとえば、ミートゾーン30を下に移動するために、コントローラ17の下方向キー17Dを押すと、コントローラ17から入力信号が発行され、この入力信号が、第2ゲーム装置のCPU7に認識される(S201)。すると、この入力信号に基づいて、プレイヤによって操作されたボタン(入力ボタン)、たとえば下方向キー17Dが、第2ゲーム装置のCPU7に認識される。すると、下方向キー用のフラグが、オンに設定される。すると、図6に示すように、下方向キー用のフラグがオンであり、他のボタンのフラグがオフ(初期値)である状態の状態データ100が、生成される(S202)。
【0112】
続いて、時間的に隣接する2つの入力信号が、同じ入力信号であるか否かが、第2ゲーム装置のCPU7により判別される(S203)。たとえば、ミートゾーン30を下に移動するために下方向キー17Dが、押された場合、1フレーム(1/60sec)ごとに、現フレームの入力信号と、1フレーム前の入力信号とが一致するか否かが、第2ゲーム装置のCPU7により判別される。より具体的には、下方向キー17Dが、1secの間、押されていた場合、1フレームごとに、現フレームの入力信号と1フレーム前の入力信号とが一致するか否かが、第2ゲーム装置のCPU7により、繰り返し判別される。このようにして、同一ボタンの継続入力の有無が、判別される。
【0113】
続いて、時間的に隣接する2つの入力信号が、同じ入力信号であった場合(S203でYes)、継続回数データ101を算出する処理が、第2ゲーム装置のCPU7により実行される(S204)。たとえば、時間的に連続する2フレーム分の状態データ100が同じであった場合、継続回数データ101(初期値はゼロ)を、インクリメントする処理が、第2ゲーム装置のCPU7により実行される。より具体的には、ミートゾーン30を下に動かすための下方向キー17Dが、1secの間、押され、現フレームの状態データ100と1フレーム前の状態データ100とが一致していた場合、継続回数データ101を、59回、インクリメントする処理が、第2ゲーム装置のCPU7により実行される(図6を参照)。このようにして、同じボタンが継続して押されている回数すなわち継続回数データ101が、CPU7により算出される。
【0114】
なお、時間的に隣接する2つの入力信号が、同じ入力信号でなかった場合(S203でNo)、継続回数データ101に所定の数値たとえば「0」を割り当てる処理が、CPU7により実行される。そして、後述するステップ205(S205)の処理が、CPU7により実行される。
【0115】
続いて、状態データ100と継続回数データ101とに基づいて、入力情報を規定するための入力データ500を生成する処理が、第2ゲーム装置のCPU7により実行される(S205)。たとえば、ミートゾーン30を下に動かすための下方向キー17Dが押され、現フレームの状態データ100と1フレーム前の状態データ100とが一致した場合、図6に示すように、下方向キー17Dが押されたことを示す状態データ100と、下方向キー17Dが継続入力された回数に対応する継続回数データ101とに基づいて、入力データ500を生成する処理が、第2ゲーム装置のCPU7により実行される。
【0116】
図6に示した状態データ100は、1フレームから60フレームまでの間が、下方向キー用のフラグがオンであり、他のボタンのフラグがオフである状態のデータを示している。この場合、状態データ100と継続回数データ101とに基づいて、たとえば、「・・・,0,1,0,・・・;0」、「・・・,0,1,0,・・・;1」、・・・、「・・・,0,1,0,・・・;59」のような入力データ500が、1フレームごとに、生成される。この入力データ500では、記号「;」の前の数値「1」が、下方向キー用のフラグがオンであることを示し、記号「;」の前の数値「0」が、他のボタン用のフラグがオフであることを示している。また、記号「;」の後の数値は、継続回数を示している。このようにして、全てのボタンのオンオフ状態と、同一ボタンの継続回数とを示す入力データ500が、1フレームごとに規定される。
【0117】
続いて、入力データ500の送信番号に対応する識別データ102を、入力データ500に付加する処理が、第2ゲーム装置のCPU7により実行される(S206)。たとえば、下方向キー用のフラグがオンである状態の入力データ500の場合、この入力データ500に対して識別データ102が付加されると、「1;・・・,0,1,0,・・・;0」、「2;・・・,0,1,0,・・・;1」、・・・、「60;・・・,0,1,0,・・・;59」のような入力データ500が、1フレームごとに、生成される(図6を参照)。ここでは、入力データ500の冒頭に付加された数値が、識別データ102に対応している。
【0118】
続いて、識別データ102が入力データ500に付加されると、識別データ102が付加された入力データ500を、送信する命令が、第2ゲーム装置のCPU7から発行される(S207)。すると、第2ゲーム装置において生成された入力データ500が、通信部23を介して、第1ゲーム装置に送信される。
【0119】
なお、入力データ500が生成されたときに、この入力データ500に識別データ102が付加され、識別データ102が付加された入力データ500が、通信部23を介して、第1ゲーム装置に送信される。この一連の処理は、1フレームごとに、CPU7により実行される。
【0120】
続いて、Bプレイヤが、たとえば、打者キャラクタに対してスイングを開始させるために、コントローラ17の第3ボタン17cを押した場合、上述した処理と同じ処理(ステップ201(S201))が、CPU7により実行される。すると、上述したものと同様の形態で、コントローラ17の第3ボタン17cが押された場合の入力データ500が、生成される(S202〜S205)。そして、この入力データ500に識別データ102を付加する処理が、CPU7により実行される(S206)。そして、この入力データ500を、送信する命令が、第2ゲーム装置のCPU7から発行される。すると、第2ゲーム装置において生成された入力データ500が、通信部23を介して、第1ゲーム装置に送信される(S207)。この処理も、1フレームごとに、第2ゲーム装置において実行される。
【0121】
具体的には、図6に示すように、「61;・・・,0,1,0,・・・;0」、「62;・・・,0,1,0,・・・;1」、・・・、「90;・・・,0,1,0,・・・;29」のような入力データ500が、1フレームごとに、生成される。そして、この入力データ500が、通信部23を介して、1フレームごとに、第1ゲーム装置に送信される。
【0122】
次に、図5に示すように、第2ゲーム装置から入力データ500が1フレームごとに送信されると、この入力データ500は、第1ゲーム装置のRAM12に格納される(S208)。たとえば、第2ゲーム装置において下方向キー17Dが押された場合、図6に示すように、下方向キー用のフラグがオンであり、他のボタンのフラグがオフ(初期値)である状態の入力データ500が、第1ゲーム装置のRAM12に格納される。また、第2ゲーム装置において第3ボタン17cが押された場合、図6に示すように、第3ボタン用のフラグがオンであり、他のボタンのフラグがオフ(初期値)である状態の入力データ500が、第1ゲーム装置のRAM12に格納される。なお、ここで、第1ゲーム装置のRAM12に格納される入力データ500は、第2ゲーム装置において生成された入力データ500である。
【0123】
続いて、第2ゲーム装置から受信した入力データ500が欠落しているか否かが、CPU7により判断される(S209)。たとえば、入力データ500に付加された識別データ102に基づいて、第2ゲーム装置から受信中の入力データ500が欠落しているか否かが、CPU7により判断される。より具体的には、最新の入力データ500の識別データ102と、時間的に最新の入力データ500の1つ前に受信した入力データ500の識別データ102とを比較する処理が、最新の入力データ500を受信時に、CPU7により実行される。
【0124】
ここで、識別データ102は、送信番号を示すデータであるので、2つの入力データ500それぞれの識別データ102が、連続した値であれば、第2ゲーム装置から受信した入力データ500が正常に受信されたと、判断される。たとえば、最新の入力データ500の送信番号が「ks」であった場合、1つ前の入力データ500の送信番号が「ks−1」であれば、第2ゲーム装置から受信した入力データ500が正常に受信されたと、判断される。一方で、最新の入力データ500の送信番号が「ks」であった場合、1つ前の入力データ500の送信番号が「ks−1」でなければ、第2ゲーム装置から受信した入力データ500が欠落したと、判断される。このようにして、入力データ500の欠落の有無が、検査される。
【0125】
続いて、第2ゲーム装置から受信した入力データ500が欠落していた場合(S209でYes)、第1ゲーム装置において実行中の野球ゲームを一時的に停止する命令が、第1ゲーム装置のCPU7から発行される。すると、第1ゲーム装置から第2ゲーム装置への信号が、途絶える。すると、第2ゲーム装置において実行中の野球ゲームを一時的に停止する命令が、第2ゲーム装置のCPU7から発行される。このように、第2ゲーム装置から第1ゲーム装置が受信した入力データ500が、欠落していた場合、第1ゲーム装置および第2ゲーム装置において実行中の野球ゲームが、一時停止される(S210)。
【0126】
続いて、最新の入力データ500に含まれる、状態データ100と継続回数データ101とに基づいて、欠落した入力データ500を生成する処理が、CPU7により実行される(S211)。たとえば、最新の入力データ500の識別データ102と、時間的に最新の入力データ500の1つ前に受信した入力データ500の識別データ102とを比較し、第2ゲーム装置から受信した入力データ500が、欠落していた場合、最新の入力データ500に含まれる、状態データ100と継続回数データ101とを用いて、欠落した入力データ500が、CPU7により生成される。
【0127】
ここで、上記のステップ209(S209)からステップ211(S211)までの処理を、具体的に説明する。
【0128】
まず、時間的に連続して受信した2つの入力データ500それぞれの識別データ102が、不連続であった場合、最新の入力データ500に含まれる、状態データ100と継続回数データ101とを用いて、欠落した入力データ500が補完される。
【0129】
たとえば、第2ゲーム装置においてミートゾーン30を下に動かすための下方向キー17Dが、押され、最新の入力データ500が「60;・・・,0,1,0,・・・;59」であり、1つ前の入力データ500が「58;・・・,0,1,0,・・・;57」であった場合、最新の入力データ500の送信番号と1つ前の入力データ500の送信番号とは、不連続になる。この場合に、最新の入力データ500を用いて、欠落した入力データ500が、CPU7により生成される。
【0130】
ここでは、たとえば、最新の入力データ500の継続回数データ101の値が、「59」となっている。これは、下方向キー17Dが、59回継続して押されていることを示している。これにより、同じ状態データ100が59回連続して形成されていることが、特定される。言い換えると、欠落した入力データ500が「59;・・・,0,1,0,・・・;58」であるということが、特定される。
【0131】
また、たとえば、第2ゲーム装置においてミートゾーン30を下に動かすための下方向キー17Dが、押され、第1ゲーム装置のRAM12に格納された最新の入力データ500が「60;・・・,0,1,0,・・・;59」であり、第1ゲーム装置のRAM12に格納された1つ前の入力データ500が「40;・・・,0,1,0,・・・;39」であった場合、最新の入力データ500の送信番号と1つ前の入力データ500の送信番号とは、不連続になる。この場合にも、最新の入力データ500を用いて、欠落した入力データ500が、CPU7により生成される。
【0132】
ここでも、たとえば、最新の入力データ500の継続回数データ101の値が、「59」となっている。これは、下方向キー17Dが、59回継続して押されていることを示している。これにより、欠落した入力データ500が、「41;・・・,0,1,0,・・・;40」、・・・、「59;・・・,0,1,0,・・・;58」と特定される。
【0133】
ここで、最新の入力データ500の送信番号が「ks」であり、最新の入力データ500の継続回数が「ns」であり、1つ前の入力データ500の送信番号が「k1」であり、1つ前の入力データ500の継続回数が「n1」である場合、欠落した入力データ500は、次のように、一般的に表記することができる。たとえば、欠落した入力データ500は、「k1+i;・・・,0,1,0,・・・;n1+j」と表記することができる。ここで、「i=1,・・・,(ks−k1)」、「j=1,・・・,(ns−n1)」となる。このようにして、欠落した入力データ500が補完される。このように、本実施形態では、「(最新の継続回数データ)−(1つ前の継続回数データ)」が示す数だけ、欠落した入力データ500を補完することができる。
【0134】
また、たとえば、第2ゲーム装置において、打者キャラクタに対してスイングを開始させるための第3ボタン17cが、押され、このときに第1ゲーム装置が受信した、最新の入力データ500の送信番号と1つ前の入力データ500の送信番号とが不連続になった場合も、第1ゲーム装置および第2ゲーム装置において実行中の野球ゲームが、一時停止される。たとえば、打者キャラクタのスイング動作の表示が、停止される。そして、上述したように、下方向キー17D用の入力データ500が欠落した場合と同様に、最新の入力データ500を用いて、欠落した入力データ500が、CPU7により生成され補完される。
【0135】
続いて、欠落した入力データ500が補完されると、一時停止中の第1ゲーム装置の野球ゲームを再開する命令が、CPU7から発行される。すると、補完された入力データ500と、最新の入力データ500とに基づいて、第2ゲーム装置において指示された命令が、CPU7から発行される。すると、一時停止中の第1ゲーム装置の野球ゲームが再開され(S212)、第2ゲーム装置において指示された命令に対応する画像が、第1ゲーム装置のテレビジョンモニタ20に表示される(S213)。
【0136】
たとえば、第2ゲーム装置においてミートゾーン30を下に動かすための下方向キー17Dが押され、この入力データ500が欠落していた場合、欠落した入力データ500が、上記のように、最新の入力データ500を用いて補完される。すると、一時停止中の第1ゲーム装置の野球ゲームを再開する命令が、CPU7から発行される。そして、補完された過去の入力データ500と、最新の入力データ500とに基づいて、ミートゾーン30を下に動かすための命令が、CPU7から発行される。すると、ミートゾーン30が下に移動する状態が、第1ゲーム装置のテレビジョンモニタ20に再表示される。
【0137】
なお、たとえば、第2ゲーム装置において打者キャラクタにスイングを開始させるための第3ボタン17cが押されたときに、この入力データ500が欠落した場合、欠落した入力データ500が、上述したように、下方向キー17D用の入力データ500が補完された場合と同様に、最新の入力データ500を用いて補完される。この場合も、上述したように、下方向キー17D用の入力データ500が補完された場合と同様に、一時停止中の第1ゲーム装置の野球ゲームを再開する命令が、CPU7から発行される。そして、補完された過去の入力データ500と、最新の入力データ500とに基づいて、野球ゲームの制御を再開する処理が、CPU7により実行される。そして、打者キャラクタがスイング動作を実行する状態が、第1ゲーム装置のテレビジョンモニタ20に表示される。
【0138】
ここで、一時停止中の第1ゲーム装置の野球ゲームを再開する命令が、CPU7から発行されると、第1ゲーム装置から第2ゲーム装置への信号の送信も再開され、第2ゲーム装置において一時停止中の野球ゲームを再開する命令が、第2ゲーム装置のCPU7から発行される。これにより、第1ゲーム装置および第2ゲーム装置において実行中の野球ゲームが、再開される。このようにして、第1ゲーム装置および第2ゲーム装置において実行中の野球ゲームが再開された後も、互いに同期される。
【0139】
一方で、第2ゲーム装置から受信した入力データ500が欠落していなかった場合(S209でNo)、最新の入力データ500に基づいて、第2ゲーム装置において指示された命令が、第1ゲーム装置のCPU7から発行される。これにより、第2ゲーム装置において実行中のゲームが、第1ゲーム装置のゲームにおいて、実行される。たとえば、第2ゲーム装置においてミートゾーン30を下に動かすための下方向キー17Dが、押され、第2ゲーム装置から受信した入力データ500が欠落していなかった場合、最新の入力データ500に基づいて、ミートゾーン30を下に動かすための命令が、第1ゲーム装置のCPU7から発行される。すると、ミートゾーン30が下に移動する状態が、第1ゲーム装置のテレビジョンモニタ20に表示される。このように、第2ゲーム装置から受信した入力データ500が欠落していなかった場合においても、第2ゲーム装置において実行中のゲームが、第1ゲーム装置のゲームに、反映され同期される。
【0140】
最後に、本システムを終了するか否かが、CPU7により判断される(S214)。そして、本システムが終了されなかった場合(S214でNo)、すなわち本システムが継続して実行された場合、ステップ201(S201)の処理が、再実行される。
【0141】
上記のように、本実施形態では、同じボタンが継続入力されとしても、状態データと継続回数データとに基づいて、常に同じ容量の入力データ500を生成することができる。このように、本実施形態では、データ量を抑制しつつ数十個またはそれ以上の情報を、1個の入力データ500によって表現できるので、欠落データを補完するために必要な情報量が、たとえ大きくなったとしても、非常に小さなデータ量で、欠落データを補完することができる。また、1個の入力データ500には、数十個またはそれ以上の情報が含まれているので、信頼度の高い情報を提供することができる。これにより、キー入力に伴うゲーム中断のリスクを大きく低減することができ、プレイヤはゲームをストレスなく実行することができる。
【0142】
〔他の実施形態〕
(a)前記実施形態では、Bプレイヤが打者キャラクタに対してミートゾーン移動命令およびスイング開始命令を指示したときの入力データ500が、第2ゲーム装置から第1ゲーム装置へと送信されたときに、データ修復システムが適用される場合を、一例として、説明を行った。
【0143】
しかしながら、本システムの適用は、前記実施形態に限定されず、上記の例とは異なる入力データ500が、第2ゲーム装置から第1ゲーム装置へと送信された場合にも、本システムは適用することができる。
【0144】
たとえば、Aプレイヤが野手キャラクタに対して移動命令を指示したときの入力データ500が、第1ゲーム装置から第2ゲーム装置へと送信されるときにも、データ修復システムを適用することができる。
【0145】
具体的には、Aプレイヤが、コントローラ17の右方向キー17Rを押し、二塁の選手キャラクタに対して移動命令が指示されると、図4に示すように、二塁の選手キャラクタが一塁の方向(右方向)に移動する状態が、第1ゲーム装置のテレビジョンモニタ20に表示される。このときには、図7に示すように、右方向キー17R用のフラグがオンであり、他のボタンのフラグがオフ(初期値)である状態の入力データ500が、1フレームごとに、第1ゲーム装置から第2ゲーム装置へと送信される。そして、この入力データ500が、第2ゲーム装置のRAM12に格納される。そして、この入力データ500に基づいて、上記の同様の形態で、入力データ500の欠落の有無が、CPU7により検査される。そして、入力データ500が欠落した場合、上記の同様の形態で、入力データ500の補完処理が、CPU7により実行される。そして、第1ゲーム装置と第2ゲーム装置において実行中の野球ゲームの同期処理が、CPU7により実行される。なお、図7には、右方向キー17Rが押されたときの送信番号が101であり、1secの間、この右方向キー17Rが押された場合の例が、示されている。
【0146】
このように、Aプレイヤが野手キャラクタに対して移動命令を指示したときの入力データ500が、第1ゲーム装置から第2ゲーム装置へと送信されるときにも、データ修復システムを適用することができ、この場合においても、前記実施形態と同様の効果を得ることができる。
(b)前記実施形態では、1つのボタン(キー)が継続的に押される場合に、本システムが適用される場合の例を示したが、継続的に押されるボタン(キー)が同じボタンであれば、同時に押されるボタン(キー)の数は、前記実施形態に限定されず、どのようなものでも良い。言い換えると、複数のボタンが同時に押された場合(L1ボタン17L1と第3ボタン17cとが同時に押された場合)にも、本システムは適用できる。この場合の入力データ500は、図8に示すようなデータになる。なお、図8には、L1ボタン17L1と第3ボタン17cとが同時に押されたときの送信番号が201であり、5フレームの間、これらのボタンが押された場合の例が、示されている。
(c)前記実施形態では、ゲームプログラムを適用しうるコンピュータの一例としての開発用のビデオゲーム装置を用いた場合の例を示したが、コンピュータは、前記実施形態に限定されず、モニタが別体に構成されたゲーム装置、モニタが一体に構成されたゲーム装置、ゲームプログラムを実行することによってゲーム装置として機能するパーソナルコンピュータやワークステーションなどにも同様に適用することができる。
(d)本発明には、前述したようなゲームを実行するプログラムおよびこのプログラムを記録したコンピュータ読み取り可能な記録媒体も含まれる。この記録媒体としては、カートリッジ以外に、たとえば、コンピュータ読み取り可能なフレキシブルディスク、半導体メモリ、CD−ROM、DVD、MO、ROMカセット、その他のものが挙げられる。
【図面の簡単な説明】
【0147】
【図1】本発明の一実施形態による開発用のゲーム装置の基本構成図。
【図2】前記ゲーム装置の一例としての機能ブロック図。
【図3】対戦画面を示す図。
【図4】野手がボールを捕球するときの図。
【図5】入力データの送信経路を示す図。
【図6】入力データの一例を示す図(その1)。
【図7】入力データの一例を示す図(その2)。
【図8】入力データの一例を示す図(その3)。
【図9】野球ゲームの全体概要を説明するためのフロー
【図10A】野球ゲームにおけるデータ修復システムを示すフロー。
【図10B】野球ゲームにおけるデータ修復システムを示すフロー。
【符号の説明】
【0148】
1 制御部
3 画像表示部
5 操作入力部
7 CPU
12 RAM
17 コントローラ
20 テレビジョンモニタ
50 ゲーム制御手段
51 入力ボタン特定手段
52 継続入力判別手段
53 継続入力検査手段
54 入力データ規定手段
55 入力データ送信手段
56 入力データ格納手段
57 入力データ欠落検査手段
58 入力データ補完手段
59 ゲーム同期回復手段
60 ゲーム同期手段
100 状態データ
101 継続回数データ
102 識別データ
500 入力データ

【特許請求の範囲】
【請求項1】
ネットワークを介して互いに接続され、ゲームを実行可能な複数のコンピュータそれぞれに、
入力部からの入力信号に基づいて、入力部の入力状態を示す状態データを、生成する処理を、制御部に実行させることにより、入力ボタンを特定する入力ボタン特定機能と、
時間的に隣接する2つの入力信号が、同じ入力信号であるか否かを制御部に判別させることにより、同一ボタンの継続入力の有無を判別する継続入力判別機能と、
時間的に隣接する2つの前記入力信号が、同じ入力信号であった場合、前記入力信号の継続回数データを算出する処理を、制御部に実行させることにより、入力ボタンの継続入力を検査する継続入力検査機能と、
前記状態データと前記入力信号の継続回数データとに基づいて、入力情報を規定するための入力データを生成する処理を、制御部に実行させることにより、入力データを規定する入力データ規定機能と、
前記入力データを、通信部を介して送信する命令を、制御部に発行させることにより、前記入力データを他の前記コンピュータに送信する入力データ送信機能と、
を実現するためのゲームプログラム。
【請求項2】
前記コンピュータに、
通信部を介して他の前記コンピュータから受信した前記入力データを、記憶部に格納する入力データ格納機能と、
他の前記コンピュータから受信した前記入力データが欠落しているか否かを、制御部に判断させることにより、入力データの欠落の有無を検査する入力データ欠落検査機能と、
他の前記コンピュータから受信した前記入力データが欠落していた場合に、最新の前記入力データに含まれる、前記状態データと前記入力信号の継続回数データとに基づいて、欠落した前記入力データを生成する処理を、制御部に実行させることにより、欠落した前記入力データを補完する入力データ補完機能と、
をさらに実現するための請求項1に記載のゲームプログラム。
【請求項3】
前記入力データ送信機能では、前記入力データの送信番号に対応する識別データを、前記入力データに付加する処理を、制御部に実行させ、前記識別データが付加された前記入力データを、通信部を介して送信する命令を、制御部に発行させることにより、前記入力データが他の前記コンピュータに送信され、
前記入力データ欠落検査機能では、前記入力データに付加された前記識別データに基づいて、他の前記コンピュータから受信した前記入力データが欠落しているか否かを、制御部に判断させることにより、入力データの欠落の有無が検査される、
請求項2に記載のゲームプログラム。
【請求項4】
前記コンピュータに、
補完された前記入力データと、最新の前記入力データとに基づいて、他の前記コンピュータにおいて指示された命令を、制御部に発行させることにより、前記コンピュータのゲームと他の前記コンピュータのゲームとの同期を回復するゲーム同期回復機能、
をさらに実現するための請求項2又は3のいずれかに記載のゲームプログラム。
【請求項5】
前記コンピュータに、
他の前記コンピュータから受信した前記入力データが欠落していなかった場合に、最新の前記入力データに基づいて、他の前記コンピュータにおいて指示された命令を、制御部に発行させることにより、前記コンピュータのゲームを、他の前記コンピュータのゲームと同期するゲーム同期機能、
をさらに実現するための請求項2から4のいずれかに記載のゲームプログラム。
【請求項6】
前記コンピュータに、
入力部からの前記入力信号が制御部に認識されたときに、前記入力信号に対応する命令を、制御部に発行させることにより、前記コンピュータのゲームを制御するゲーム制御機能、
をさらに実現するための請求項1から5のいずれかに記載のゲームプログラム。
【請求項7】
ネットワークを介して他のゲーム装置に接続されるゲーム装置であって、
入力部からの入力信号に基づいて、入力部の入力状態を示す状態データを、生成する処理を、制御部に実行させることにより、入力ボタンを特定する入力ボタン特定手段と、
時間的に隣接する2つの入力信号が、同じ入力信号であるか否かを制御部に判別させることにより、同一ボタンの継続入力の有無を判別する継続入力判別手段と、
時間的に隣接する2つの前記入力信号が、同じ入力信号であった場合、前記入力信号の継続回数データを算出する処理を、制御部に実行させることにより、入力ボタンの継続入力を検査する継続入力検査手段と、
前記状態データと前記入力信号の継続回数データとに基づいて、入力情報を規定するための入力データを生成する処理を、制御部に実行させることにより、入力データを規定する入力データ規定手段と、
前記入力データを、通信部を介して送信する命令を、制御部に発行させることにより、前記入力データを他の前記コンピュータに送信する入力データ送信手段と、
を備えるゲーム装置。
【請求項8】
ネットワークを介して互いに接続される複数のコンピュータそれぞれにおいてゲームを制御するゲーム制御方法であって、
入力部からの入力信号に基づいて、入力部の入力状態を示す状態データを、生成する処理を、制御部に実行させることにより、入力ボタンを特定する入力ボタン特定ステップと、
時間的に隣接する2つの入力信号が、同じ入力信号であるか否かを制御部に判別させることにより、同一ボタンの継続入力の有無を判別する継続入力判別ステップと、
時間的に隣接する2つの前記入力信号が、同じ入力信号であった場合、前記入力信号の継続回数データを算出する処理を、制御部に実行させることにより、入力ボタンの継続入力を検査する継続入力検査ステップと、
前記状態データと前記入力信号の継続回数データとに基づいて、入力情報を規定するための入力データを生成する処理を、制御部に実行させることにより、入力データを規定する入力データ規定ステップと、
前記入力データを、通信部を介して送信する命令を、制御部に発行させることにより、前記入力データを他の前記コンピュータに送信する入力データ送信ステップと、
を備えるゲーム制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10A】
image rotate

【図10B】
image rotate