〔ゲーム装置の構成と動作〕
図1は、本発明の一実施形態によるゲーム装置の基本構成を示している。ここでは、ビデオゲーム装置の一例として、家庭用ビデオゲーム装置をとりあげて説明を行うこととする。家庭用ビデオゲーム装置は、家庭用ゲーム機本体および家庭用テレビジョンを備える。家庭用ゲーム機本体には、記録媒体10が装填可能となっており、記録媒体10からゲームデータが適宜読み出されてゲームが実行される。このようにして実行されるゲーム内容が家庭用テレビジョンに表示される。
家庭用ビデオゲーム装置のゲームシステムは、制御部1と、記憶部2と、画像表示部3と、音声出力部4と、操作入力部5とからなっており、それぞれがバス6を介して接続される。このバス6は、アドレスバス、データバス、およびコントロールバスなどを含んでいる。ここで、制御部1、記憶部2、音声出力部4および操作入力部5は、家庭用ビデオゲーム装置の家庭用ゲーム機本体に含まれており、画像表示部3は家庭用テレビジョンに含まれている。
制御部1は、主に、ゲームプログラムに基づいてゲーム全体の進行を制御するために設けられている。制御部1は、たとえば、CPU(Central Processing Unit)7と、信号処理プロセッサ8と、画像処理プロセッサ9とから構成されている。CPU7と信号処理プロセッサ8と画像処理プロセッサ9とは、それぞれがバス6を介して互いに接続されている。CPU7は、ゲームプログラムからの命令を解釈し、各種のデータ処理や制御を行う。たとえば、CPU7は、信号処理プロセッサ8に対して、画像データを画像処理プロセッサに供給するように命令する。信号処理プロセッサ8は、主に、3次元空間上における計算と、3次元空間上から擬似3次元空間上への位置変換計算と、光源計算処理と、画像および音声データの生成加工処理とを行っている。画像処理プロセッサ9は、主に、信号処理プロセッサ8の計算結果および処理結果に基づいて、描画すべき画像データをRAM12に書き込む処理を行っている。
記憶部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には、各種データとともに、各種データの記憶位置を示すアドレスデータが格納されており、任意のアドレスを指定して読み書きすることが可能になっている。
画像表示部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に画像として出力される。
ここで、画像データには、たとえば、ポリゴンデータやテクスチャデータなどがある。ポリゴンデータはポリゴンを構成する頂点の座標データのことである。テクスチャデータは、ポリゴンにテクスチャを設定するためのものであり、テクスチャ指示データとテクスチャカラーデータとからなっている。テクスチャ指示データはポリゴンとテクスチャとを対応づけるためのデータであり、テクスチャカラーデータはテクスチャの色を指定するためのデータである。ここで、ポリゴンデータとテクスチャデータとには、各データの記憶位置を示すポリゴンアドレスデータとテクスチャアドレスデータとが対応づけられている。このような画像データでは、信号処理プロセッサ8により、ポリゴンアドレスデータの示す3次元空間上のポリゴンデータ(3次元ポリゴンデータ)が、画面自体(視点)の移動量データおよび回転量データに基づいて座標変換および透視投影変換されて、2次元空間上のポリゴンデータ(2次元ポリゴンデータ)に置換される。そして、複数の2次元ポリゴンデータでポリゴン外形を構成して、ポリゴンの内部領域にテクスチャアドレスデータが示すテクスチャデータを書き込む。このようにして、各ポリゴンにテクスチャが貼り付けられた物体つまり各種キャラクタを表現することができる。
音声出力部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から出力することができる。
操作入力部5は、主に、コントローラ17と、操作情報インターフェース回路18と、インターフェース回路19とから構成されている。コントローラ17には、操作情報インターフェース回路18が接続されており、操作情報インターフェース回路18にはインターフェース回路19が接続されている。そして、インターフェース回路19にバス6が接続されている。
コントローラ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が設けられている。
上方向キー17U、下方向キー17D、左方向キー17L及び右方向キー17Rは、例えば、キャラクタやカーソルをテレビジョンモニタ20の画面上で上下左右に移動させるコマンドをCPU7に与えるために使用される。
スタートボタン17eは、記録媒体10からゲームプログラムをロードするようにCPU7に指示するときや、実行中のゲームプログラムを一時停止するときなどに使用される。
セレクトボタン17fは、記録媒体10からロードされたゲームプログラムに対して、各種選択をCPU7に指示するときなどに使用される。
左スティック17SL及び右スティック17SRは、いわゆるジョイスティックとほぼ同一構成のスティック型コントローラである。このスティック型コントローラは、直立したスティックを有している。このスティックは、支点を中心として直立位置から前後左右を含む360°方向に亘って、傾倒可能な構成になっている。左スティック17SL及び右スティック17SRは、スティックの傾倒方向及び傾倒角度に応じて、直立位置を原点とするx座標及びy座標の値を、操作信号として操作情報インターフェース回路18とインターフェース回路19とを介してCPU7に送出する。
第1ボタン17a、第2ボタン17b、第3ボタン17c、第4ボタン17d、L1ボタン17L1、L2ボタン17L2、R1ボタン17R1及びR2ボタン17R2には、記録媒体10からロードされるゲームプログラムに応じて種々の機能が割り振られている。
なお、左スティック17SL及び右スティック17SRを除くコントローラ17の各ボタン及び各キーは、外部からの押圧力によって中立位置から押圧されるとオンになり、押圧力が解除されると中立位置に復帰してオフになるオンオフスイッチになっている。
通信部23は、通信制御回路24および通信インターフェース25を有している。通信制御回路24および通信インターフェース25は、ゲーム装置をサーバや他のゲーム装置等に接続するために用いられる。通信制御回路24および通信インターフェース25は、バス6を介してCPU7に接続されている。通信制御回路24および通信インターフェース25は、CPU7からの命令に応じて、ゲーム装置をインターネットに接続するための接続信号を制御し発信する。また、通信制御回路24および通信インターフェース25は、インターネットを介してゲーム装置をサーバや他のゲーム装置に接続するための接続信号を制御し発信する。
以上のような構成からなる家庭用ビデオゲーム装置の概略動作を、以下に説明する。電源スイッチ(図示省略)がオンにされゲームシステムに電源が投入されると、CPU7が、記録媒体10に記憶されているオペレーティングシステムに基づいて、記録媒体10から画像データ、音声データ、およびプログラムデータを読み出す。読み出された画像データ、音声データ、およびプログラムデータの一部若しくは全部は、RAM12に格納される。そして、CPU7が、RAM12に格納されたプログラムデータに基づいて、RAM12に格納された画像データや音声データにコマンドを発行する。
画像データの場合、CPU7からのコマンドに基づいて、まず、信号処理プロセッサ8が、3次元空間上におけるキャラクタの位置計算および光源計算などを行う。次に、画像処理プロセッサ9が、信号処理プロセッサ8の計算結果に基づいて、描画すべき画像データのRAM12への書き込み処理などを行う。そして、RAM12に書き込まれた画像データが、インターフェース回路21を介してD/Aコンバータ22に供給される。ここで、画像データがD/Aコンバータ22でアナログ映像信号に変換される。そして、画像データはテレビジョンモニタ20に供給され画像として表示される。
音声データの場合、まず、信号処理プロセッサ8が、CPU7からのコマンドに基づいて音声データの生成および加工処理を行う。ここでは、音声データに対して、たとえば、ピッチの変換、ノイズの付加、エンベロープの設定、レベルの設定及びリバーブの付加などの処理が施される。次に、音声データは、信号処理プロセッサ8から出力されて、インターフェース回路16を介してD/Aコンバータ15に供給される。ここで、音声データがアナログ音声信号に変換される。そして、音声データは増幅回路14を介してスピーカー13から音声として出力される。
〔ゲーム装置における各種処理概要〕
本ゲーム装置は、他のゲーム装置に、ネットワークを介して接続されている。本ゲーム装置および他のゲーム装置において実行されるゲームは、たとえば、ネットワーク対戦用の野球ゲームである。本ゲーム装置および他のゲーム装置は、以下に示す手段を備えている。図2は、本発明で主要な役割を果たす機能を説明するための機能ブロック図である。
ゲーム制御手段50は、コントローラ17からの入力信号がCPU7に認識されたときに、入力信号に対応する命令を、CPU7に発行させることにより、ゲーム装置において実行中のゲームを制御する機能を備えている。
この手段では、コントローラ17からの入力信号がCPU7に認識されたときに、入力信号に対応する命令が、CPU7に発行される。すると、この命令に対応する制御が、実行中のゲームにおいて実行される。たとえば、選手キャラクタを右に動かすためのボタン、すなわち右方向キー17Rが、ゲーム実行中に押された場合、右移動命令が、CPU7から発行される。すると、選手キャラクタが右に移動する状態が、テレビジョンモニタ20に表示される。
入力ボタン特定手段51は、コントローラ17からの入力信号に基づいて、コントローラ17の入力状態を示す状態データを、生成する処理を、CPU7に実行させることにより、入力ボタンを特定する機能を備えている。
この手段では、コントローラ17からの入力信号がCPU7に認識されたときに、この入力信号に基づいて、コントローラ17の入力状態を示す状態データを、生成する処理が、CPU7により実行される。
たとえば、選手キャラクタを右に動かすための右方向キー17Rが、ゲーム実行中に押された場合、コントローラ17から入力信号が発行され、この入力信号が、CPU7に認識される。すると、この入力信号に基づいて、プレイヤによって操作されたボタン(入力ボタン)、たとえば右方向キー17Rが、CPU7に認識される。すると、右方向キー用のフラグが、オンに設定される。すると、右方向キー用のフラグがオンであり、他のボタンのフラグがオフである状態の状態データが、生成される。このように状態データを生成することにより、入力ボタンの特定が実行される。
継続入力判別手段52は、時間的に隣接する2つの入力信号が、同じ入力信号であるか否かをCPU7に判別させることにより、同一ボタンの継続入力の有無を判別する機能を備えている。
この手段では、時間的に隣接する2つの入力信号が、同じ入力信号であるか否かが、CPU7により判別される。たとえば、この手段では、時間的に継続する2フレーム分の入力信号が同じであるか否かが、CPU7により判別される。より具体的には、選手キャラクタを右に動かすための右方向キー17Rが、押された場合、1フレームごとに、右方向キー17Rに対応する現フレームの入力信号と、1フレーム前の入力信号とが一致するか否かが、CPU7により判別される。この処理を実行することにより、同一ボタンの継続入力の有無が、判別される。
継続入力検査手段53は、時間的に隣接する2つの入力信号が、同じ入力信号であった場合、入力信号の継続回数データを算出する処理を、CPU7に実行させることにより、入力ボタンの継続入力を検査する機能を備えている。
この手段では、時間的に隣接する2つの入力信号が、同じ入力信号であった場合、入力信号の継続回数データを算出する処理が、CPU7により実行される。たとえば、この手段では、時間的に継続する2フレーム分の入力信号が同じであった場合、継続回数データ(初期値はゼロ)が、インクリメントする処理が、CPU7により実行される。より具体的には、選手キャラクタを右に動かすための右方向キー17Rが押され、右方向キー17Rに対応する現フレームの入力信号と、右方向キー17Rに対応する1フレーム前の入力信号とが一致した場合、継続回数データをインクリメントする処理が、CPU7により実行される。この処理を1フレームごとに実行することにより、同じボタンが押された回数すなわち継続回数データが、CPU7により算出される。このようにして、同一ボタンの継続入力が、検査される。
入力データ規定手段54は、状態データと継続回数データとに基づいて、入力情報を規定するための入力データを生成する処理を、CPU7に実行させることにより、入力データを規定する機能を備えている。
この手段では、状態データと継続回数データとに基づいて、入力情報を規定するための入力データを生成する処理が、CPU7により実行される。たとえば、選手キャラクタを右に動かすための右方向キー17Rが押され、右方向キー17Rに対応する現フレームの入力信号と、右方向キー17Rに対応する1フレーム前の入力信号とが一致した場合、右方向キー17Rが押されたことを示す状態データと、右方向キー17Rが継続入力された回数に対応する継続回数データとに基づいて、入力データを生成する処理が、CPU7により実行される。
ここで用いられる状態データは、右方向キー用のフラグがオンであり、他のボタンのフラグがオフである状態のデータである。この場合、状態データと継続回数データとに基づいて、たとえば、「・・・,0,1,0,・・・;n」のような入力データが、生成される。この入力データでは、数値「1」が、右方向キー用のフラグがオンであることを示し、数値「0」が、他のボタン用のフラグがオフであることを示している。また、記号「n」は、継続回数を示している。このようにして、全てのボタンのオンオフ状態と、同一ボタンの継続回数とを示す入力データが、規定される。
入力データ送信手段55は、入力データを、通信部23を介して送信する命令を、CPU7に発行させることにより、入力データを他のゲーム装置に送信する機能を備えている。
この手段では、入力データを、通信部23を介して送信する命令を、CPU7に発行させることにより、入力データが、他のゲーム装置に送信される。たとえば、この手段では、入力データの送信番号に対応する識別データを、入力データに付加する処理が、CPU7により実行される。そして、識別データが付加された入力データを、通信部23を介して送信する命令が、CPU7から発行される。この処理を1フレームごとに実行することにより、入力データが他のゲーム装置に連続的に送信される。
より具体的には、右方向キー用のフラグがオンである状態の入力データの場合、この入力データに対して識別データが付加されると、「k;・・・,0,1,0,・・・;n」のような入力データが、生成される。そして、この入力データが、通信部23を介して、他のゲーム装置に送信される。ここで、記号「k」は、送信番号を示している。
なお、上記の処理は、他のゲーム装置においても同様に実行されている。このため、他のゲーム装置において生成された入力データは、他のゲーム装置から本ゲーム装置に送信される。
入力データ格納手段56は、通信部23を介して他のゲーム装置から受信した入力データを、RAM12に格納する機能を備えている。
この手段では、通信部23を介して他のゲーム装置から受信した入力データが、RAM12に格納される。たとえば、この手段では、他のゲーム装置でボタンが押された場合、入力されたボタンの情報を規定するための入力データが、通信部23を介して、RAM12に格納される。より具体的には、他のゲーム装置において選手キャラクタを左に動かすためのボタン、すなわち左方向キー17Lが、押された場合、上述したように、入力データを生成する処理が、他のゲーム装置のCPU7により実行される。そして、この入力データが、他のゲーム装置から、本ゲーム装置に対して送信される。すると、この入力データが、本ゲーム装置のRAM12に格納される。
入力データ欠落検査手段57は、他のゲーム装置から受信した入力データが欠落しているか否かを、CPU7に判断させることにより、入力データの欠落の有無を検査する機能を備えている。
この手段では、他のゲーム装置から受信した入力データが欠落しているか否かが、CPU7により判断される。たとえば、この手段では、入力データに付加された識別データに基づいて、他のゲーム装置から受信した入力データが欠落しているか否かが、CPU7により判断される。
より具体的には、最新の入力データの識別データと、時間的に最新の入力データの1つ前に受信した入力データの識別データとを比較する処理が、CPU7により実行される。識別データは、送信番号を示すデータであるので、2つの入力データそれぞれの識別データが、連続した値であれば、他のゲーム装置から受信した入力データが正常に受信されたと、判断される。一方で、2つの入力データそれぞれの識別データが、不連続な値であれば、他のゲーム装置から受信した入力データが欠落したと、判断される。このようにして、入力データの欠落の有無が、検査される。
入力データ補完手段58は、他のゲーム装置から受信した入力データが欠落していた場合に、最新の入力データに含まれる、状態データと継続回数データとに基づいて、欠落した入力データを生成する処理を、CPU7に実行させることにより、欠落した入力データを補完する機能を備えている。
この手段では、他のゲーム装置から受信した入力データが欠落していた場合に、最新の入力データに含まれる、状態データと継続回数データとに基づいて、欠落した入力データを生成する処理が、CPU7により実行される。たとえば、最新の入力データの識別データと、時間的に最新の入力データの1つ前に受信した入力データの識別データとを比較し、他のゲーム装置から受信した入力データが、欠落していた場合、最新の入力データに含まれる、状態データと継続回数データとに基づいて、欠落した入力データを生成する処理が、CPU7により実行される。
より具体的には、時間的に連続して受信した2つの入力データそれぞれの識別データが、不連続な値であった場合、最新の入力データに含まれる、状態データと継続回数データとに基づいて、欠落した入力データが補完される。たとえば、他のゲーム装置において選手キャラクタを左に動かすための左方向キー17Lが、押され、最新の入力データが「5;・・・,0,0,0,1,・・・;2」である場合、この最新の入力データを用いて、欠落した入力データが、生成される。この最新の入力データを見ると、左方向キー17Lが最初に押された後に、この左方向キー17Lがさらに2回継続して押されていることがわかる。このため、他のゲーム装置の1つ前の入力データ(「k=4」の入力データ)が欠落していても、この最新の入力データを用いて、欠落した入力データ、すなわち「4;・・・,0,0,0,1,・・・;1」を、生成することにより、欠落した入力データが、補完される。
ゲーム同期回復手段59は、補完された入力データと、最新の入力データとに基づいて、他のゲーム装置において指示された命令を、CPU7に発行させることにより、本ゲーム装置のゲームと他のゲーム装置のゲームとの同期を回復する機能を備えている。
この手段では、補完された入力データと、最新の入力データとに基づいて、他のゲーム装置において指示された命令が、CPU7から発行される。たとえば、他のゲーム装置において選手キャラクタを左に動かすための左方向キー17Lが押され、他のゲーム装置から受信した入力データが欠落していた場合、欠落した入力データが、上記のように、最新の入力データを用いて補完される。すると、補完された過去の入力データと、最新の入力データとに基づいて、選手キャラクタを左に動かすための命令が、制御部から発行される。すると、選手キャラクタが左に移動する状態が、本ゲーム装置のテレビジョンモニタ20に表示される。このようにして、他のゲーム装置において実行中のゲームが、本ゲーム装置のゲームに、反映され同期される。
ゲーム同期手段60は、最新の入力データに基づいて、他のゲーム装置において指示された命令を、CPU7に発行させることにより、本ゲーム装置のゲームを、他のゲーム装置のゲームと同期する機能を備えている。
この手段では、他のゲーム装置から受信した入力データが欠落していなかった場合、最新の入力データに基づいて、他のゲーム装置において指示された命令が、CPU7から発行される。これにより、他のゲーム装置において実行中のゲームが、本ゲーム装置のゲームに、反映され同期される。たとえば、他のゲーム装置において選手キャラクタを左に動かすための左方向キー17Lが押され、他のゲーム装置から受信した入力データが欠落していなかった場合、最新の入力データに基づいて、選手キャラクタを左に動かすための命令が、制御部から発行される。すると、選手キャラクタが左に移動する状態が、本ゲーム装置のテレビジョンモニタ20に表示される。このように、他のゲーム装置から受信した入力データが欠落していなかった場合においても、他のゲーム装置において実行中のゲームが、本ゲーム装置のゲームに、反映され同期される。
〔野球ゲームにおけるデータ補完システムの概要〕
次に、野球ゲームにおけるデータ補完システムの具体的な内容について説明する。また、図9および図10に示すフローについても同時に説明する。なお、図9は野球ゲームの全体概要を説明するためのフローであり、図10は上記システムを説明するためのフローである。
本ゲーム装置(第1ゲーム装置)は、他のゲーム装置(第2ゲーム装置)に、ネットワークを介して接続されている。第1ゲーム装置および第2ゲーム装置において実行される野球ゲームは、ネットワーク対戦用の野球ゲームである。
まず、第1ゲーム装置および第2ゲーム装置の電源が投入され、これらゲーム装置が起動されると、野球ゲームプログラムが、記録媒体10からRAM12にロードされ格納される。このときには、野球ゲームを実行する上で必要となる各種の基本ゲームデータも、同時に、記録媒体10からRAM12にロードされ格納される(S1)。
たとえば、基本ゲームデータには、3次元ゲーム空間用の各種の画像に関するデータが含まれている。そして、この3次元ゲーム空間用の各種の画像に関するデータ、たとえば、スタジアム用の画像データ、選手キャラクタ用の画像データ、および各種のオブジェクトの画像データ等が、CPU7に認識される。また、基本ゲームデータには、3次元ゲーム空間用の各種の画像に関するデータを3次元ゲーム空間に配置するための位置座標データが含まれている。また、基本ゲームデータには、上記システムで用いられるデータも、含まれている。
続いて、RAM12に格納された野球ゲームプログラムが、基本ゲームデータに基づいて、CPU7により実行される(S2)。すると、野球ゲームの起動画面がテレビジョンモニタ20に表示される。すると、野球ゲームを実行するための各種の設定画面がテレビジョンモニタ20に表示される。ここでは、たとえば、野球ゲームのプレイモードを選択するためのモード選択画面が、テレビジョンモニタ20に表示される(図示しない)。このモード選択画面において、プレイヤがコントローラ17を操作することにより、プレイモードが決定される(S3)。プレイモードには、たとえば、12球団の中からチームを選択して1試合の対戦を楽しむ対戦モード、12球団の中からチームを選択してペナントレースを戦うペナントモード、プレイヤが監督の立場でチームの選手キャラクタを育成する育成モード、プレイヤがある1人の選手キャラクタの立場になって野球ゲームを体感する成長体感モード等が、用意されている。
続いて、モード選択画面で選択されたプレイモードにおいて、各種のイベントが、CPU7により実行される(S4)。ここで実行される各種のイベントには、たとえば、自動制御プログラム(AIプログラム、Artificial Intelligence Program)に基づいてCPU7により自動制御されるイベントや、コントローラ17からの入力信号に基づいてプレイヤにより手動制御されるイベントがある。また、選手キャラクタの制御には、自動制御プログラムに基づいて選手キャラクタに命令を自動的に指示する自動制御や、コントローラ17からの入力信号に基づいて選手キャラクタに命令を直接的に指示する手動制御等がある。このように、本野球ゲームでは、コントローラ17からの指示や自動制御プログラムからの指示に応じて、イベントが制御されたり、選手キャラクタに命令が指示されたりするようになっている。
なお、ここに示す自動制御プログラムとは、プレイヤに代わって、イベントに関する命令および選手キャラクタに対する命令を自動的に制御するためのプログラムである。この自動制御プログラムは、ゲームプログラムにおいて予め用意されている。
続いて、選択されたプレイモードが終了したか否かが、CPU7により判断される(S5)。具体的には、プレイモードが終了したことを示す命令が発行されたか否かが、CPU7により判断される。そして、プレイモードが終了したことを示す命令が発行されたとCPU7により判断された場合(S5でYes)、ゲーム継続用のデータをRAM12に格納する処理が、CPU7により実行される。そして、ゲーム継続用のデータがRAM12に格納されると、この野球ゲームを終了するか否かを選択する選択画面が、テレビジョンモニタ20に表示される(S6)。そして、この選択画面において、プレイヤがコントローラ17を操作することにより、野球ゲームの終了を示す項目が選択されると(S6でYes)、野球ゲームを終了するための処理がCPU7により実行される(S7)。一方で、この選択画面において、プレイヤがコントローラ17を操作することにより、野球ゲームの継続を示す項目が選択されると(S6でNo)、ステップ3(S3)のモード選択画面が、テレビジョンモニタ20に再表示される。
なお、プレイモードが終了するための命令が発行されたとCPU7に判断されない限り(S5でNo)、モード選択画面で選択されたプレイモードにおいて、各種のイベントがCPU7により実行される(S4)。
次に、ネットワーク対戦用の野球ゲームにおいて実行されるデータ補完システムを、詳細に説明する。
ここでは、野球ゲームにおいて、対戦モードが選択され、試合イベントが実行されているときに、本システムが実行される場合の例が、示される。また、第1ゲーム装置を操作するAプレイヤが、守備側の選手キャラクタを操作し、第2ゲーム装置を操作するBプレイヤが、攻撃側の選手キャラクタ(打者キャラクタ)を操作する場合の例が、示される。
まず、1プレイが開始されてから終了するまでの間において、AプレイヤおよびBプレイヤが行うコントローラ17の操作、およびこの操作によって実行される命令についての概要を示す。
Aプレイヤが、コントローラ17を操作することにより、投手キャラクタに対して投球に関する命令を、指示する。たとえば、Aプレイヤが、球種を選択した後に、コントローラ17の第3ボタン17cを押すと、投手キャラクタに対して投球開始命令が指示される。すると、投手キャラクタが投球動作を行う状態が、第1ゲーム装置および第2ゲーム装置のテレビジョンモニタ20に、表示される(図示しない)。そして、Aプレイヤが、所定のタイミングで、コントローラ17の第3ボタン17cを再び押すと、ボールのリリース命令が指示される。すると、投手キャラクタからリリースされたボールが、第1ゲーム装置および第2ゲーム装置のテレビジョンモニタ20に、表示される(図示しない)。
続いて、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に、表示される(図示しない)。以下では、一二塁間にボールが転がっていく場合の例が、示される。
続いて、二塁の選手キャラクタが移動対象の選手キャラクタとして選択された状態において、Aプレイヤが、コントローラ17の右方向キー17Rを押すと、二塁の選手キャラクタに対して移動命令が指示される。すると、図4に示すように、二塁の選手キャラクタが一塁の方向(右方向)に移動する状態が、第1ゲーム装置および第2ゲーム装置のテレビジョンモニタ20に、表示される。そして、二塁の選手キャラクタがボールを捕球した後、Aプレイヤが、コントローラ17の第2ボタン17bを押すと、二塁の選手キャラクタに対して一塁送球命令が指示される。すると、二塁の選手キャラクタがボールを一塁に送球する状態が、第1ゲーム装置および第2ゲーム装置のテレビジョンモニタ20に、表示される(図示しない)。
続いて、一塁の選手キャラクタが、二塁の選手キャラクタから送球されたボールを捕球したときに、アウトか否かの判断が、CPU7により実行される。そして、この結果が、第1ゲーム装置および第2ゲーム装置のテレビジョンモニタ20に、表示される。このようにして、1プレイが終了する。
ここで、第1ゲーム装置と第2ゲーム装置との間のデータ通信が、スムーズに行われているときには、上記のように、第1ゲーム装置および第2ゲーム装置において同期がとれた野球ゲームの画像が、各ゲーム装置のテレビジョンモニタ20に表示される。
一方で、回線の影響等によって、第1ゲーム装置と第2ゲーム装置との間のデータ通信が、スムーズに行われない場合ある。この場合に発生し得る問題の1つに、データの欠落がある。このデータの欠落を補完するシステムが、データ修復システムである。
以下では、上述した1プレイの間において、第2ゲーム装置においてBプレイヤが打者キャラクタに対してミートゾーン移動命令およびスイング開始命令を指示したときの入力データが、第2ゲーム装置から第1ゲーム装置へと送信されたときに、第1ゲーム装置においてデータ修復システムが実行される場合を、一例として説明を行う。
図10は、本システムのフローである。以下では、この図10を用いて、本システムの詳細を説明する。なお、図10に示した「(1)」は、第1ゲーム装置において処理が実行されることを示す記号である。また、図10に示した「(2)」は、第2ゲーム装置において処理が実行されることを示す記号である。
まず、たとえば、投手キャラクタからボールがリリースされたときに、Bプレイヤが、たとえば、ミートゾーン30を下に移動するために、コントローラ17の下方向キー17Dを押すと、コントローラ17から入力信号が発行され、この入力信号が、第2ゲーム装置のCPU7に認識される(S201)。すると、この入力信号に基づいて、プレイヤによって操作されたボタン(入力ボタン)、たとえば下方向キー17Dが、第2ゲーム装置のCPU7に認識される。すると、下方向キー用のフラグが、オンに設定される。すると、図6に示すように、下方向キー用のフラグがオンであり、他のボタンのフラグがオフ(初期値)である状態の状態データ100が、生成される(S202)。
続いて、時間的に隣接する2つの入力信号が、同じ入力信号であるか否かが、第2ゲーム装置のCPU7により判別される(S203)。たとえば、ミートゾーン30を下に移動するために下方向キー17Dが、押された場合、1フレーム(1/60sec)ごとに、現フレームの入力信号と、1フレーム前の入力信号とが一致するか否かが、第2ゲーム装置のCPU7により判別される。より具体的には、下方向キー17Dが、1secの間、押されていた場合、1フレームごとに、現フレームの入力信号と1フレーム前の入力信号とが一致するか否かが、第2ゲーム装置のCPU7により、繰り返し判別される。このようにして、同一ボタンの継続入力の有無が、判別される。
続いて、時間的に隣接する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により算出される。
なお、時間的に隣接する2つの入力信号が、同じ入力信号でなかった場合(S203でNo)、継続回数データ101に所定の数値たとえば「0」を割り当てる処理が、CPU7により実行される。そして、後述するステップ205(S205)の処理が、CPU7により実行される。
続いて、状態データ100と継続回数データ101とに基づいて、入力情報を規定するための入力データ500を生成する処理が、第2ゲーム装置のCPU7により実行される(S205)。たとえば、ミートゾーン30を下に動かすための下方向キー17Dが押され、現フレームの状態データ100と1フレーム前の状態データ100とが一致した場合、図6に示すように、下方向キー17Dが押されたことを示す状態データ100と、下方向キー17Dが継続入力された回数に対応する継続回数データ101とに基づいて、入力データ500を生成する処理が、第2ゲーム装置のCPU7により実行される。
図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フレームごとに規定される。
続いて、入力データ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に対応している。
続いて、識別データ102が入力データ500に付加されると、識別データ102が付加された入力データ500を、送信する命令が、第2ゲーム装置のCPU7から発行される(S207)。すると、第2ゲーム装置において生成された入力データ500が、通信部23を介して、第1ゲーム装置に送信される。
なお、入力データ500が生成されたときに、この入力データ500に識別データ102が付加され、識別データ102が付加された入力データ500が、通信部23を介して、第1ゲーム装置に送信される。この一連の処理は、1フレームごとに、CPU7により実行される。
続いて、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ゲーム装置において実行される。
具体的には、図6に示すように、「61;・・・,0,1,0,・・・;0」、「62;・・・,0,1,0,・・・;1」、・・・、「90;・・・,0,1,0,・・・;29」のような入力データ500が、1フレームごとに、生成される。そして、この入力データ500が、通信部23を介して、1フレームごとに、第1ゲーム装置に送信される。
次に、図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である。
続いて、第2ゲーム装置から受信した入力データ500が欠落しているか否かが、CPU7により判断される(S209)。たとえば、入力データ500に付加された識別データ102に基づいて、第2ゲーム装置から受信中の入力データ500が欠落しているか否かが、CPU7により判断される。より具体的には、最新の入力データ500の識別データ102と、時間的に最新の入力データ500の1つ前に受信した入力データ500の識別データ102とを比較する処理が、最新の入力データ500を受信時に、CPU7により実行される。
ここで、識別データ102は、送信番号を示すデータであるので、2つの入力データ500それぞれの識別データ102が、連続した値であれば、第2ゲーム装置から受信した入力データ500が正常に受信されたと、判断される。たとえば、最新の入力データ500の送信番号が「ks」であった場合、1つ前の入力データ500の送信番号が「ks−1」であれば、第2ゲーム装置から受信した入力データ500が正常に受信されたと、判断される。一方で、最新の入力データ500の送信番号が「ks」であった場合、1つ前の入力データ500の送信番号が「ks−1」でなければ、第2ゲーム装置から受信した入力データ500が欠落したと、判断される。このようにして、入力データ500の欠落の有無が、検査される。
続いて、第2ゲーム装置から受信した入力データ500が欠落していた場合(S209でYes)、第1ゲーム装置において実行中の野球ゲームを一時的に停止する命令が、第1ゲーム装置のCPU7から発行される。すると、第1ゲーム装置から第2ゲーム装置への信号が、途絶える。すると、第2ゲーム装置において実行中の野球ゲームを一時的に停止する命令が、第2ゲーム装置のCPU7から発行される。このように、第2ゲーム装置から第1ゲーム装置が受信した入力データ500が、欠落していた場合、第1ゲーム装置および第2ゲーム装置において実行中の野球ゲームが、一時停止される(S210)。
続いて、最新の入力データ500に含まれる、状態データ100と継続回数データ101とに基づいて、欠落した入力データ500を生成する処理が、CPU7により実行される(S211)。たとえば、最新の入力データ500の識別データ102と、時間的に最新の入力データ500の1つ前に受信した入力データ500の識別データ102とを比較し、第2ゲーム装置から受信した入力データ500が、欠落していた場合、最新の入力データ500に含まれる、状態データ100と継続回数データ101とを用いて、欠落した入力データ500が、CPU7により生成される。
ここで、上記のステップ209(S209)からステップ211(S211)までの処理を、具体的に説明する。
まず、時間的に連続して受信した2つの入力データ500それぞれの識別データ102が、不連続であった場合、最新の入力データ500に含まれる、状態データ100と継続回数データ101とを用いて、欠落した入力データ500が補完される。
たとえば、第2ゲーム装置においてミートゾーン30を下に動かすための下方向キー17Dが、押され、最新の入力データ500が「60;・・・,0,1,0,・・・;59」であり、1つ前の入力データ500が「58;・・・,0,1,0,・・・;57」であった場合、最新の入力データ500の送信番号と1つ前の入力データ500の送信番号とは、不連続になる。この場合に、最新の入力データ500を用いて、欠落した入力データ500が、CPU7により生成される。
ここでは、たとえば、最新の入力データ500の継続回数データ101の値が、「59」となっている。これは、下方向キー17Dが、59回継続して押されていることを示している。これにより、同じ状態データ100が59回連続して形成されていることが、特定される。言い換えると、欠落した入力データ500が「59;・・・,0,1,0,・・・;58」であるということが、特定される。
また、たとえば、第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により生成される。
ここでも、たとえば、最新の入力データ500の継続回数データ101の値が、「59」となっている。これは、下方向キー17Dが、59回継続して押されていることを示している。これにより、欠落した入力データ500が、「41;・・・,0,1,0,・・・;40」、・・・、「59;・・・,0,1,0,・・・;58」と特定される。
ここで、最新の入力データ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を補完することができる。
また、たとえば、第2ゲーム装置において、打者キャラクタに対してスイングを開始させるための第3ボタン17cが、押され、このときに第1ゲーム装置が受信した、最新の入力データ500の送信番号と1つ前の入力データ500の送信番号とが不連続になった場合も、第1ゲーム装置および第2ゲーム装置において実行中の野球ゲームが、一時停止される。たとえば、打者キャラクタのスイング動作の表示が、停止される。そして、上述したように、下方向キー17D用の入力データ500が欠落した場合と同様に、最新の入力データ500を用いて、欠落した入力データ500が、CPU7により生成され補完される。
続いて、欠落した入力データ500が補完されると、一時停止中の第1ゲーム装置の野球ゲームを再開する命令が、CPU7から発行される。すると、補完された入力データ500と、最新の入力データ500とに基づいて、第2ゲーム装置において指示された命令が、CPU7から発行される。すると、一時停止中の第1ゲーム装置の野球ゲームが再開され(S212)、第2ゲーム装置において指示された命令に対応する画像が、第1ゲーム装置のテレビジョンモニタ20に表示される(S213)。
たとえば、第2ゲーム装置においてミートゾーン30を下に動かすための下方向キー17Dが押され、この入力データ500が欠落していた場合、欠落した入力データ500が、上記のように、最新の入力データ500を用いて補完される。すると、一時停止中の第1ゲーム装置の野球ゲームを再開する命令が、CPU7から発行される。そして、補完された過去の入力データ500と、最新の入力データ500とに基づいて、ミートゾーン30を下に動かすための命令が、CPU7から発行される。すると、ミートゾーン30が下に移動する状態が、第1ゲーム装置のテレビジョンモニタ20に再表示される。
なお、たとえば、第2ゲーム装置において打者キャラクタにスイングを開始させるための第3ボタン17cが押されたときに、この入力データ500が欠落した場合、欠落した入力データ500が、上述したように、下方向キー17D用の入力データ500が補完された場合と同様に、最新の入力データ500を用いて補完される。この場合も、上述したように、下方向キー17D用の入力データ500が補完された場合と同様に、一時停止中の第1ゲーム装置の野球ゲームを再開する命令が、CPU7から発行される。そして、補完された過去の入力データ500と、最新の入力データ500とに基づいて、野球ゲームの制御を再開する処理が、CPU7により実行される。そして、打者キャラクタがスイング動作を実行する状態が、第1ゲーム装置のテレビジョンモニタ20に表示される。
ここで、一時停止中の第1ゲーム装置の野球ゲームを再開する命令が、CPU7から発行されると、第1ゲーム装置から第2ゲーム装置への信号の送信も再開され、第2ゲーム装置において一時停止中の野球ゲームを再開する命令が、第2ゲーム装置のCPU7から発行される。これにより、第1ゲーム装置および第2ゲーム装置において実行中の野球ゲームが、再開される。このようにして、第1ゲーム装置および第2ゲーム装置において実行中の野球ゲームが再開された後も、互いに同期される。
一方で、第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ゲーム装置のゲームに、反映され同期される。
最後に、本システムを終了するか否かが、CPU7により判断される(S214)。そして、本システムが終了されなかった場合(S214でNo)、すなわち本システムが継続して実行された場合、ステップ201(S201)の処理が、再実行される。
上記のように、本実施形態では、同じボタンが継続入力されとしても、状態データと継続回数データとに基づいて、常に同じ容量の入力データ500を生成することができる。このように、本実施形態では、データ量を抑制しつつ数十個またはそれ以上の情報を、1個の入力データ500によって表現できるので、欠落データを補完するために必要な情報量が、たとえ大きくなったとしても、非常に小さなデータ量で、欠落データを補完することができる。また、1個の入力データ500には、数十個またはそれ以上の情報が含まれているので、信頼度の高い情報を提供することができる。これにより、キー入力に伴うゲーム中断のリスクを大きく低減することができ、プレイヤはゲームをストレスなく実行することができる。
〔他の実施形態〕
(a)前記実施形態では、Bプレイヤが打者キャラクタに対してミートゾーン移動命令およびスイング開始命令を指示したときの入力データ500が、第2ゲーム装置から第1ゲーム装置へと送信されたときに、データ修復システムが適用される場合を、一例として、説明を行った。
しかしながら、本システムの適用は、前記実施形態に限定されず、上記の例とは異なる入力データ500が、第2ゲーム装置から第1ゲーム装置へと送信された場合にも、本システムは適用することができる。
たとえば、Aプレイヤが野手キャラクタに対して移動命令を指示したときの入力データ500が、第1ゲーム装置から第2ゲーム装置へと送信されるときにも、データ修復システムを適用することができる。
具体的には、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が押された場合の例が、示されている。
このように、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カセット、その他のものが挙げられる。