(57)【特許請求の範囲】
【請求項１】
仮想ゲーム空間に登場する複数のオブジェクトの移動を管理する管理コンピュータと、前記管理コンピュータと通信可能に接続されるかつ前記複数のオブジェクトのうち少なくとも１つのオブジェクトを操作対象としてプレイヤに操作させる操作手段を備えるゲーム装置とを含む、通信ゲームシステムであって、
前記ゲーム装置は、
前記操作手段によって入力される前記操作対象のオブジェクトの移動軌跡を取得する軌跡取得手段、および
前記軌跡取得手段によって取得された前記移動軌跡を前記管理コンピュータに送信する軌跡送信手段を備え、
前記軌跡送信手段は、前記操作手段からの前記移動軌跡の入力が途切れたときに入力終了情報をさらに送信し、
前記管理コンピュータは、
前記軌跡送信手段からの前記移動軌跡を受信する軌跡受信手段、
前記軌跡受信手段によって受信した前記移動軌跡によって前記仮想ゲーム空間における前記操作対象のオブジェクトの移動を制御する移動制御手段、および
前記移動制御手段によって移動された前記オブジェクトを含む前記仮想ゲーム空間を描画するための描画情報を前記ゲーム装置に送信する描画情報送信手段を備え、
前記移動制御手段は、前記入力終了情報を受信したことを条件として、前記オブジェクトの移動を開始し、
前記ゲーム装置は、
前記描画情報送信手段からの前記描画情報を受信する描画情報受信手段、および
前記描画情報受信手段によって受信した前記描画情報によって、前記操作対象のオブジェクトを含むゲーム画面を生成して表示する画面表示手段をさらに備える、通信ゲームシステム。
【請求項２】
前記軌跡取得手段は、前記移動軌跡上の点の数が第１閾値以上になったとき、当該移動軌跡の入力を受け付けない、請求項１記載の通信ゲームシステム。
【請求項３】
前記軌跡送信手段は、前記軌跡取得手段による取得中に前記移動軌跡の長さが第２閾値以上になるごとに、逐次前記移動軌跡を送信する、請求項１または２記載の通信ゲームシステム。
【請求項４】
前記軌跡取得手段は、前記操作対象のオブジェクトに対して移動軌跡が入力されていない状態から入力されている状態に遷移したとき、取得済みの当該オブジェクトの移動軌跡をクリアする、請求項１ないし３のいずれかに記載の通信ゲームシステム。
【請求項５】
前記軌跡送信手段は、前記操作対象のオブジェクトに対して移動軌跡が入力されていない状態から入力されている状態に遷移したとき、前記オブジェクトの前記移動軌跡のクリア情報をさらに送信し、
前記移動制御手段は、前記オブジェクトの前記移動軌跡のクリア情報を受信したとき、受信済みの当該オブジェクトの移動軌跡をクリアする、請求項１ないし４のいずれかに記載の通信ゲームシステム。
【請求項６】
前記軌跡取得手段は、複数のオブジェクトから前記操作対象として選択されたオブジェクトを特定して、当該オブジェクトの移動軌跡を取得する、請求項１ないし５のいずれかに記載の通信ゲームシステム。
【請求項７】
前記操作手段はポインティングデバイスであり、
前記軌跡取得手段は、前記ポインティングデバイスの入力から連続的に検出される複数の座標を前記移動軌跡として取得する、請求項１ないし６のいずれかに記載の通信ゲームシステム。
【請求項８】
前記管理コンピュータは、当該管理コンピュータの操作対象であるオブジェクトの動作をプレイヤが指示するための動作指示手段をさらに備え、
前記移動制御手段は、当該管理コンピュータの操作対象のオブジェクトの移動を前記動作指示手段による移動指示に基づいて制御する、請求項１ないし７のいずれかに記載の通信ゲームシステム。
【請求項９】
前記ゲーム装置は、前記描画情報送信手段からの前記描画情報を一定時間受信しないとき、少なくとも前記操作対象のオブジェクトの位置を、前記軌跡取得手段によって取得した前記移動軌跡に基づいて予測する予測手段をさらに備える、請求項１ないし８のいずれかに記載の通信ゲームシステム。
【請求項１０】
通信ゲームシステムにおいて仮想ゲーム空間に登場する複数のオブジェクトの移動を管理する管理コンピュータと通信可能に接続されるゲーム装置であって、
前記複数のオブジェクトのうち少なくとも１つのオブジェクトを操作対象としてプレイヤに操作させる操作手段、
前記操作手段によって入力される前記操作対象のオブジェクトの移動軌跡を取得する軌跡取得手段、
前記軌跡取得手段によって取得される前記移動軌跡を前記管理コンピュータに送信する軌跡送信手段、
前記移動軌跡によって移動された前記オブジェクトを含む前記仮想ゲーム空間を描画するための描画情報を前記管理コンピュータから受信する描画情報受信手段、および
前記描画情報受信手段によって受信した前記描画情報によって、前記操作対象の前記オブジェクトを含むゲーム画面を生成して表示する画面表示手段を備え、
前記軌跡送信手段は、前記操作手段からの前記移動軌跡の入力が途切れたときに入力終了情報をさらに送信する、ゲーム装置。
【請求項１１】
通信ゲームシステムにおいて仮想ゲーム空間に登場する複数のオブジェクトの移動を管理する管理コンピュータと通信可能に接続される、かつ、前記複数のオブジェクトのうち少なくとも１つのオブジェクトを操作対象としてプレイヤに操作させる操作手段を備えるゲーム装置のゲームプログラムであって、
前記ゲーム装置を、
前記操作手段によって入力される前記操作対象のオブジェクトの移動軌跡を取得する軌跡取得手段、
前記軌跡取得手段によって取得される前記移動軌跡を前記管理コンピュータに送信する軌跡送信手段、
前記移動軌跡によって移動された前記オブジェクトを含む前記仮想ゲーム空間を描画するための描画情報を前記管理コンピュータから受信する描画情報受信手段、および
前記描画情報受信手段によって受信した前記描画情報によって、前記操作対象の前記オブジェクトを含むゲーム画面を生成して表示する画面表示手段として機能させ、
前記軌跡送信手段は、前記操作手段からの前記移動軌跡の入力が途切れたときに入力終了情報をさらに送信する、ゲームプログラム。
【請求項１２】
通信ゲームシステムにおいて仮想ゲーム空間に登場する複数のオブジェクトのうち少なくとも１つのオブジェクトを操作対象としてプレイヤに操作させる操作手段を備えるゲーム装置と通信可能に接続される、かつ、前記複数のオブジェクトの移動を管理する管理コンピュータであって、
前記ゲーム装置の前記操作手段によって取得されて送信される前記オブジェクトの移動軌跡を受信する軌跡受信手段、
前記軌跡受信手段によって受信した前記移動軌跡によって前記仮想ゲーム空間における前記操作対象のオブジェクトの移動を制御する移動制御手段、および
前記移動制御手段によって移動された前記オブジェクトを含む前記仮想ゲーム空間を描画するための描画情報を前記ゲーム装置に送信する描画情報送信手段を備え、
前記移動制御手段は、前記ゲーム装置から入力終了情報を受信したことを条件として、前記オブジェクトの移動を開始する、管理コンピュータ。
【請求項１３】
通信ゲームシステムにおいて仮想ゲーム空間に登場する複数のオブジェクトのうち少なくとも１つのオブジェクトを操作対象としてプレイヤに操作させる操作手段を備えるゲーム装置と通信可能に接続される、かつ、前記複数のオブジェクトの移動を管理する管理コンピュータのゲームプログラムであって、
前記管理コンピュータを、
前記ゲーム装置の前記操作手段によって取得されて送信される前記オブジェクトの移動軌跡を受信する軌跡受信手段、
前記軌跡受信手段によって受信した前記移動軌跡によって前記仮想ゲーム空間における前記操作対象のオブジェクトの移動を制御する移動制御手段、および
前記移動制御手段によって移動された前記オブジェクトを含む前記仮想ゲーム空間を描画するための描画情報を前記ゲーム装置に送信する描画情報送信手段として機能させ、
前記移動制御手段は、前記ゲーム装置から入力終了情報を受信したことを条件として、前記オブジェクトの移動を開始する、ゲームプログラム。
【請求項１４】
仮想ゲーム空間に登場する複数のオブジェクトの移動を管理する親機と、前記複数のオブジェクトのうち少なくとも１つのオブジェクトを操作対象としてプレイヤに操作させる操作手段を備える子機としてそれぞれ機能する複数のゲーム装置を含む通信ゲームシステムのためのゲームプログラムであって、
前記子機として動作する場合の前記ゲーム装置を、
前記操作手段によって入力される当該操作対象のオブジェクトの移動軌跡を取得する軌跡取得手段、
前記軌跡取得手段によって取得される前記移動軌跡を前記親機に送信する軌跡送信手段、
前記移動軌跡によって移動された前記オブジェクトを含む前記仮想ゲーム空間を描画するための描画情報を前記親機から受信する描画情報受信手段、および
前記描画情報受信手段によって受信した前記描画情報によって、前記操作対象のオブジェクトを含むゲーム画面を生成して表示する画面表示手段として機能させ、
前記軌跡送信手段は、前記操作手段からの前記移動軌跡の入力が途切れたときに入力終了情報をさらに送信し、
前記親機として動作する場合の前記ゲーム装置を、
前記子機から送信される前記オブジェクトの移動軌跡を受信する軌跡受信手段、
前記軌跡受信手段によって受信した前記移動軌跡によって前記仮想ゲーム空間における前記操作対象のオブジェクトの移動を制御する移動制御手段、および
前記移動制御手段によって移動された前記オブジェクトを含む前記仮想ゲーム空間を描画するための描画情報を前記子機に送信する描画情報送信手段として機能させ、
前記移動制御手段は、前記入力終了情報を受信したことを条件として、前記オブジェクトの移動を開始する、ゲームプログラム。
【請求項１５】
仮想ゲーム空間に登場する複数のオブジェクトの移動を管理する管理コンピュータと、前記管理コンピュータと通信可能に接続されるかつ前記複数のオブジェクトのうち少なくとも１つのオブジェクトを操作対象としてプレイヤに操作させる操作手段を備えるゲーム装置とを含む、通信ゲームシステムのゲーム制御方法であって、
前記ゲーム装置は、
（ａ）前記操作手段によって入力される当該操作対象のオブジェクトの移動軌跡を取得し、
（ｂ）前記ステップ（ａ）において取得する前記移動軌跡を前記管理コンピュータに送信し、
（ｃ）前記移動軌跡によって移動された前記オブジェクトを含む前記仮想ゲーム空間を描画するための描画情報を前記管理コンピュータから受信し、そして
（ｄ）前記ステップ（ｃ）において受信した前記描画情報によって、前記操作対象のオブジェクトを含むゲーム画面を生成して表示し、
前記ステップ（ｂ）は、前記操作手段からの前記移動軌跡の入力が途切れたときに入力終了情報をさらに送信し、
前記管理コンピュータは、
（ｅ）前記ゲーム装置から送信される前記オブジェクトの移動軌跡を受信し、
（ｆ）前記ステップ（ｅ）において受信した前記移動軌跡によって前記仮想ゲーム空間における前記操作対象のオブジェクトの移動を制御し、そして
（ｇ）前記ステップ（ｆ）において移動した前記オブジェクトを含む前記仮想ゲーム空間を描画するための描画情報を前記ゲーム装置に送信し、
前記ステップ（ｆ）は、前記入力終了情報を受信したことを条件として、前記オブジェクトの移動を開始する、ゲーム制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、通信ゲームシステムに関し、特にたとえば、通信ネットワークを介して通信可能な複数のコンピュータを含み、仮想ゲーム空間に複数のオブジェクトが登場する通信ゲームが実行される、通信ゲームシステムに関する。
【背景技術】
【０００２】
この種の通信ゲームシステムの一例が特許文献１に開示されている。特許文献１の技術は、ゲームサーバと通信端末がネットワークを介して接続されたネットワークゲームシステムであり、ゲームサーバで各端末のキャラクタ（オブジェクト）の情報を示すフラグの管理が行われ、変化のあった情報のみが他の端末に送信される。具体的には、端末ＢでキャラクタＢを移動させる操作指示が入力されると、移動行動を指示するリクエストが当該端末Ｂからゲームサーバに送信される。このリクエストに応じて、ゲームサーバは、キャラクタＢの移動処理を行い、フラグテーブルに、当該キャラクタＢの移動変更指示を他の端末Ａに送信するための情報を書き込む。そして、ゲームサーバは、キャラクタＢ移動変更指示と位置情報を端末Ａに送信する。これによって、端末Ａでは、キャラクタＢの移動が表示されることとなる。
【特許文献１】特開２００３−１８１１４６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、サーバと端末間または複数のゲーム装置間にネットワークが介在すると、通信遅延が生じることによって、端末間やゲーム装置間で食い違いが発生する恐れがあった。たとえば、キー操作によってキャラクタの移動方向を指示するような場合、端末で連続的な移動が入力されていたとしても、通信遅延によって移動指示データの受信が遅れると、ゲームサーバの移動処理では、キャラクタの移動が途中で停止されるという問題があった。そして、そのような実際の入力と異なる移動情報が他の端末に送信されてしまう。
【０００４】
一方、サーバや親機が端末や子機からキャラクタの移動指示を含む操作データを集めて一括してゲーム処理を行い、処理結果をすべての端末や子機に送信するような通信ゲームシステムも存在している。このようなシステムでは、通信遅延によってサーバや親機から処理結果データが表示タイミングまでに届かないとき、端末や子機はキャラクタの移動を続行することが困難となり、端末や子機では実際の入力とは異なり当該キャラクタが移動を止めてしまうという問題があった。
【０００５】
それゆえに、この発明の主たる目的は、新規な、通信ゲームシステム、ゲーム装置、管理コンピュータおよびゲームプログラムを提供することである。
【０００６】
この発明の他の目的は、通信遅延をプレイヤに感じさせることなくオブジェクトの移動を制御できる、通信ゲームシステム、ゲーム装置、管理コンピュータおよびゲームプログラムを提供することである。
【課題を解決するための手段】
【０００７】
第１の発明（請求項１の発明）は、仮想ゲーム空間に登場する複数のオブジェクトの移動を管理する管理コンピュータと、管理コンピュータと通信可能に接続されるかつ複数のオブジェクトのうち少なくとも１つのオブジェクトを操作対象としてプレイヤに操作させる操作手段を備えるゲーム装置とを含む、通信ゲームシステムである。ゲーム装置は、軌跡取得手段および軌跡送信手段を備える。軌跡取得手段は、操作手段によって入力される操作対象のオブジェクトの移動軌跡を取得する。軌跡送信手段は、軌跡取得手段によって取得された移動軌跡を管理コンピュータに送信する。また、軌跡送信手段は、操作手段からの移動軌跡の入力が途切れたときに入力終了情報をさらに送信する。管理コンピュータは、軌跡受信手段、移動制御手段および描画情報送信手段を備える。軌跡受信手段は、軌跡送信手段からの移動軌跡を受信する。移動制御手段は、軌跡受信手段によって受信した移動軌跡によって仮想ゲーム空間における操作対象のオブジェクトの移動を制御する。描画情報送信手段は、移動制御手段によって移動されたオブジェクトを含む仮想ゲーム空間を描画するための描画情報をゲーム装置に送信する。ゲーム装置は、描画情報受信手段および画面表示手段をさらに備える。描画情報受信手段は、描画情報送信手段からの描画情報を受信する。画面表示手段は、描画情報受信手段によって受信した描画情報によって、操作対象のオブジェクトを含むゲーム画面を生成して表示する。また、移動制御手段は、入力終了情報を受信したことを条件として、オブジェクトの移動を開始する。
【０００８】
請求項１の発明では、通信ゲームシステム（２００：後述する実施例で相当する参照符号。以下同じ。）は、管理コンピュータ（１０）およびゲーム装置（１０）含む。この通信ゲームシステムでは、仮想ゲーム空間に複数のオブジェクトが登場する通信ゲームが実行される。ゲーム装置のプレイヤは、操作手段（２２）によって複数のオブジェクト（１３２）のうちの少なくとも１つのオブジェクトを操作する。複数のオブジェクトの移動は管理コンピュータによって管理される。管理コンピュータは、たとえば、ゲーム装置とネットワーク（２０２）を介して接続されるサーバであってよい。あるいは、通信ゲームシステムがサーバを含まず複数のゲーム装置を含む場合、ゲーム装置の１つが管理コンピュータすなわち親機として機能してよい。ゲーム装置の軌跡取得手段（４２、５４、７４、８８、Ｓ９９）は、操作手段によって入力される操作対象のオブジェクトの移動軌跡を取得する。たとえば、操作手段はタッチパネルであり、このタッチパネルで連続的に検出される複数の座標に基づいて、このゲーム装置の操作対象のオブジェクトの移動しようとする経路が取得される。軌跡送信手段（４２、６４、９０、Ｓ９１、Ｓ１０３、Ｓ１１３）は移動軌跡を管理コンピュータに送信する。また、軌跡送信手段（Ｓ１０９−Ｓ１１３）は、操作手段からの移動軌跡の入力が途切れたときに入力終了情報をさらに送信する。管理コンピュータの軌跡受信手段（４２、６４、８０、Ｓ７、Ｓ９）は移動軌跡を受信する。移動制御手段（４２、８２、Ｓ１１）は、受信した移動軌跡によって、送信してきたゲーム装置の操作対象のオブジェクトの移動を制御する。これによって、当該オブジェクトは移動軌跡に沿って仮想ゲーム空間内を移動する。描画情報送信手段（４２、６４、８４、Ｓ１５）は、移動されたオブジェクトを含む仮想ゲーム空間を描画するための描画情報をゲーム装置に送信する。描画情報は、たとえば、ゲーム空間に登場するオブジェクトの位置、向きおよびモーションに関する情報を含む。これに応じて、ゲーム装置の描画情報受信手段（４２、６４、９２、Ｓ１１７、Ｓ１１９）は、親機からの描画情報を受信する。画面表示手段（４２、５０、５２、６０、７６、Ｓ１３５）は、受信した描画情報によって、操作対象のオブジェクトを含むゲーム画面を生成して表示する。これによって、入力された移動軌跡に沿って移動するオブジェクトが表示される。また、管理コンピュータの移動制御手段（Ｓ４５、Ｓ４９、Ｓ６５、Ｓ７１）は、入力終了情報を受信したことを条件として、オブジェクトの移動を開始する。
【０００９】
請求項１の発明によれば、ゲーム装置からオブジェクトの移動軌跡を取得し、管理コンピュータでオブジェクトの移動を制御するようにした。そのため、オブジェクトの移動しようとする経路を予め取得しているので、通信遅延が生じても当該オブジェクトの移動を進めることができ、プレイヤに通信遅延を感じさせずにオブジェクトの移動を制御できる。また、入力終了情報を受信したことを条件として、オブジェクトの移動を開始することにより、ゲーム装置で入力された移動軌跡を全て取得してから管理コンピュータで当該オブジェクトを移動させ始めるので、通信遅延によって当該オブジェクトの移動が中断されてしまうようなことがない。
【００１２】
請求項２の発明は、請求項１の発明に従属し、軌跡取得手段は、移動軌跡上の点の数が第１閾値以上になったとき、当該移動軌跡の入力を受け付けない。
【００１３】
請求項２の発明では、軌跡取得手段は、移動軌跡上の点の数が所定の第１閾値以上になったと判定されるとき（Ｓ９７）、当該移動軌跡の入力を受け付けないようにした。このように、移動軌跡として取得される点の数に上限を設けて、入力可能な移動軌跡の長さを制限するようにしたので、一度の入力でオブジェクトを移動可能な距離を適切な範囲に限定することができる。
【００１４】
請求項３の発明は、請求項１または２の発明に従属し、軌跡送信手段は、軌跡取得手段による取得中に移動軌跡の長さが第２閾値以上になるごとに、逐次移動軌跡を送信する。
【００１５】
請求項３の発明では、軌跡送信手段は、移動軌跡の取得中に長さが所定の第２閾値以上になったと判定されるごとに（Ｓ１０１）、当該移動軌跡を管理コンピュータに逐次送信するようにした。このように、一定長さごとに移動軌跡を逐次送信するようにしたので、一度に送信するデータ量を低減することができる。
【００１６】
請求項４の発明は、請求項１ないし３の発明のいずれかに従属し、軌跡取得手段は、操作対象のオブジェクトに対して移動軌跡が入力されていない状態から入力されている状態に遷移したとき、取得済みの当該オブジェクトの移動軌跡をクリアする。
【００１７】
請求項４の発明では、軌跡取得手段（Ｓ８３−Ｓ８９）は、操作対象のオブジェクトに対して移動軌跡が入力され始めたと判定されるときに、過去に取得された当該オブジェクトに対する移動軌跡をクリアする。つまり、ゲーム装置では、操作対象のオブジェクトに対して、次の移動軌跡の入力が開始されるまで、取得済みの移動軌跡情報を記憶しておくことができるので、必要に応じて当該移動軌跡情報に基づいてゲーム処理（たとえば、描画情報を受信できなかったときの位置予測）を行うことができる。
【００１８】
請求項５の発明は、請求項１ないし４の発明のいずれかに従属し、軌跡送信手段は、操作対象のオブジェクトに対して移動軌跡が入力されていない状態から入力されている状態に遷移したとき、オブジェクトの移動軌跡のクリア情報をさらに送信し、移動制御手段は、オブジェクトの移動軌跡のクリア情報を受信したとき、受信済みの当該オブジェクトの移動軌跡をクリアする。
【００１９】
請求項５の発明では、軌跡送信手段（Ｓ８３−Ｓ８７、Ｓ９１）は、操作対象のオブジェクトに対して移動軌跡が入力され始めたと判定されるときに、オブジェクトの移動軌跡のクリア情報を管理コンピュータに送信する。管理コンピュータの移動制御手段（Ｓ３１−Ｓ３５）は、上記クリア情報を受信したとき、受信済みの当該オブジェクトの移動軌跡をクリアする。このように、管理コンピュータでは、ゲーム装置で次の移動軌跡の入力が開始されたときに、受信済みの移動軌跡をクリアするので、受信済みの移動軌跡に基づく移動を実行中の場合には、当該移動を停止することができる。
【００２０】
請求項６の発明は、請求項１ないし５の発明のいずれかに従属し、軌跡取得手段は、複数のオブジェクトから操作対象として選択されたオブジェクトを特定して、当該オブジェクトの移動軌跡を取得する。
【００２１】
請求項６の発明では、軌跡取得手段（Ｓ８５、Ｓ８７、Ｓ９９）によって、操作対象として選択されたオブジェクトごとの移動軌跡を取得することができるので、当該ゲーム装置のプレイヤは、移動軌跡入力によって複数のキャラクタを操作できる。
【００２２】
請求項７の発明は、請求項１ないし６の発明のいずれかに従属し、操作手段はポインティングデバイスであり、軌跡取得手段は、ポインティングデバイスの入力から連続的に検出される複数の座標を移動軌跡として取得する。
【００２３】
請求項７の発明では、ゲーム装置では、操作手段としてたとえばタッチパネルなどのポインティングデバイスが適用され、当該ポインティングデバイスの入力から連続的に検出された複数の座標が移動軌跡として取得される。このように、プレイヤは、オブジェクトの移動軌跡をポインティングデバイスでの連続的な座標指示によって入力することができるので、直感的な操作でオブジェクトの移動を操作することができる。
【００２４】
請求項８の発明は、請求項１ないし７の発明のいずれかに従属し、管理コンピュータは、当該管理コンピュータの操作対象であるオブジェクトの動作をプレイヤが指示するための動作指示手段をさらに備え、移動制御手段は、当該管理コンピュータの操作対象のオブジェクトの移動を動作指示手段による移動指示に基づいて制御する。
【００２５】
請求項８の発明では、管理コンピュータは、動作指示手段（２０）をさらに備えており、つまり、この場合の管理コンピュータは親機として機能するゲーム装置であり、当該親機のプレイヤが操作するオブジェクト（１３４）が、子機として機能するゲーム装置のオブジェクトとともに仮想ゲーム空間に登場する。当該親機の操作対象のオブジェクトの移動は、当該親機のプレイヤによる動作指示手段の移動指示に基づいて制御される（Ｓ３、Ｓ５）。したがって、子機のオブジェクトを移動軌跡に沿って移動させ、一方、親機のオブジェクトを動作指示によってリアルタイムに移動させることができるので、通信遅延の悪影響を回避可能な上に、興趣性および戦略性の高い通信ゲームを実現できる。
【００２６】
請求項９の発明は、請求項１ないし８の発明のいずれかに従属し、ゲーム装置は、描画情報送信手段からの描画情報を一定時間受信しないとき、少なくとも操作対象のオブジェクトの位置を、軌跡取得手段によって取得した移動軌跡に基づいて予測する予測手段をさらに備える。
【００２７】
請求項９の発明では、ゲーム装置の予測手段（Ｓ１２５−Ｓ１３１）は、描画情報を一定時間受信できなかったときには、少なくとも当該ゲーム装置の操作対象のオブジェクトの位置を、移動軌跡に基づいて予測する。したがって、描画情報の受信が遅れたとしても、ゲーム装置では、記憶された移動軌跡に基づいて、操作対象のオブジェクトの次の位置を精度良く予測することができる。さらに、予測が正確に行えるので、予測後に描画情報を受信したときに位置修正を行っても、当該オブジェクトを滑らかに移動させることができる。
【００２８】
第２の発明（請求項１０の発明）は、通信ゲームシステムにおいて仮想ゲーム空間に登場する複数のオブジェクトの移動を管理する管理コンピュータと通信可能に接続されるゲーム装置である。このゲーム装置は、操作手段、軌跡取得手段、軌跡送信手段、描画情報受信手段、および画面表示手段を備える。操作手段は、複数のオブジェクトのうち少なくとも１つのオブジェクトを操作対象としてプレイヤに操作させるためのものである。軌跡取得手段は、操作手段によって入力される操作対象のオブジェクトの移動軌跡を取得する。軌跡送信手段は、軌跡取得手段によって取得される移動軌跡を管理コンピュータに送信する。描画情報受信手段は、移動軌跡によって移動されたオブジェクトを含む仮想ゲーム空間を描画するための描画情報を管理コンピュータから受信する。画面表示手段は、描画情報受信手段によって受信した描画情報によって、操作対象のオブジェクトを含むゲーム画面を生成して表示する。また、軌跡送信手段は、操作手段からの移動軌跡の入力が途切れたときに入力終了情報をさらに送信する。
【００２９】
請求項１０の発明は、第１の発明の通信ゲームシステムにおいて適用されるゲーム装置であり、第１の発明と同様にして、通信遅延を感じさせずにオブジェクトを移動させることができる通信ゲームを実現できる。
【００３０】
第３の発明（請求項１１の発明）は、通信ゲームシステムにおいて仮想ゲーム空間に登場する複数のオブジェクトの移動を管理する管理コンピュータと通信可能に接続される、かつ、複数のオブジェクトのうち少なくとも１つのオブジェクトを操作対象としてプレイヤに操作させる操作手段を備えるゲーム装置のゲームプログラムである。このゲームプログラムは、ゲーム装置を、軌跡取得手段、軌跡送信手段、描画情報受信手段、および画面表示手段として機能させる。軌跡取得手段は、操作手段によって入力される操作対象のオブジェクトの移動軌跡を取得する。軌跡送信手段は、軌跡取得手段によって取得される移動軌跡を管理コンピュータに送信する。描画情報受信手段は、移動軌跡によって移動されたオブジェクトを含む仮想ゲーム空間を描画するための描画情報を管理コンピュータから受信する。画面表示手段は、描画情報受信手段によって受信した描画情報によって、操作対象のオブジェクトを含むゲーム画面を生成して表示する。また、軌跡送信手段は、操作手段からの移動軌跡の入力が途切れたときに入力終了情報をさらに送信する。
【００３１】
請求項１１の発明は、第１の発明の通信ゲームシステムにおいて適用される第２の発明のゲーム装置のゲームプログラムであり、第２の発明と同様の効果を奏する。
【００３２】
第４の発明（請求項１２の発明）は、通信ゲームシステムにおいて仮想ゲーム空間に登場する複数のオブジェクトのうち少なくとも１つのオブジェクトを操作対象としてプレイヤに操作させる操作手段を備えるゲーム装置と通信可能に接続される、かつ、複数のオブジェクトの移動を管理する管理コンピュータである。この管理コンピュータは、軌跡受信手段、移動制御手段、および描画情報送信手段を備える。軌跡受信手段は、ゲーム装置の操作手段によって取得されて送信されるオブジェクトの移動軌跡を受信する。移動制御手段は、軌跡受信手段によって受信した移動軌跡によって仮想ゲーム空間における操作対象のオブジェクトの移動を制御する。描画情報送信手段は、移動制御手段によって移動されたオブジェクトを含む仮想ゲーム空間を描画するための描画情報をゲーム装置に送信する。また、移動制御手段は、ゲーム装置から入力終了情報を受信したことを条件として、オブジェクトの移動を開始する。
【００３３】
請求項１２の発明は、第１の発明の通信ゲームシステムにおいて適用される管理コンピュータであり、第１の発明と同様にして、通信遅延を感じさせずにオブジェクトを移動させることができる通信ゲームを実現できる。
【００３４】
第５の発明（請求項１３の発明）は、通信ゲームシステムにおいて仮想ゲーム空間に登場する複数のオブジェクトのうち少なくとも１つのオブジェクトを操作対象としてプレイヤに操作させる操作手段を備えるゲーム装置と通信可能に接続される、かつ、複数のオブジェクトの移動を管理する管理コンピュータのゲームプログラムである。このゲームプログラムは、管理コンピュータを、軌跡受信手段、移動制御手段、および描画情報送信手段として機能させる。軌跡受信手段は、ゲーム装置の操作手段によって取得されて送信されるオブジェクトの移動軌跡を受信する。移動制御手段は、軌跡受信手段によって受信した移動軌跡によって仮想ゲーム空間における操作対象のオブジェクトの移動を制御する。描画情報送信手段は、移動制御手段によって移動されたオブジェクトを含む仮想ゲーム空間を描画するための描画情報をゲーム装置に送信する。また、移動制御手段は、ゲーム装置から入力終了情報を受信したことを条件として、オブジェクトの移動を開始する。
【００３５】
請求項１３の発明は、第１の発明の通信ゲームシステムにおいて適用される第４の発明の管理コンピュータのゲームプログラムであり、第４の発明と同様の効果を奏する。
【００３６】
第６の発明（請求項１４の発明）は、仮想ゲーム空間に登場する複数のオブジェクトの移動を管理する親機と、複数のオブジェクトのうち少なくとも１つのオブジェクトを操作対象としてプレイヤに操作させる操作手段を備える子機としてそれぞれ機能する複数のゲーム装置を含む通信ゲームシステムのためのゲームプログラムである。このゲームプログラムは、子機として動作する場合のゲーム装置を、軌跡取得手段、軌跡送信手段、描画情報受信手段、および画面表示手段として機能させる。軌跡取得手段は、操作手段によって入力される当該操作対象のオブジェクトの移動軌跡を取得する。軌跡送信手段は、軌跡取得手段によって取得される移動軌跡を親機に送信する。描画情報受信手段は、移動軌跡によって移動されたオブジェクトを含む仮想ゲーム空間を描画するための描画情報を親機から受信する。画面表示手段は、描画情報受信手段によって受信した描画情報によって、操作対象のオブジェクトを含むゲーム画面を生成して表示する。また、軌跡送信手段は、操作手段からの移動軌跡の入力が途切れたときに入力終了情報をさらに送信する。さらに、このゲームプログラムは、親機として動作する場合のゲーム装置を、軌跡受信手段、移動制御手段、および描画情報送信手段として機能させる。軌跡受信手段は、子機から送信されるオブジェクトの移動軌跡を受信する。移動制御手段は、軌跡受信手段によって受信した移動軌跡によって仮想ゲーム空間における操作対象のオブジェクトの移動を制御する。描画情報送信手段は、移動制御手段によって移動されたオブジェクトを含む仮想ゲーム空間を描画するための描画情報を子機に送信する。また、移動制御手段は、入力終了情報を受信したことを条件として、オブジェクトの移動を開始する。
【００３７】
請求項１４の発明は、複数のゲーム装置によって第１の発明の通信ゲームシステムを実現するためのゲームプログラムであり、複数のゲーム装置のそれぞれに適用されてゲーム装置を親機および子機として機能させる。この請求項１４の発明によれば、上述の第１の発明と同様にして、プレイヤに通信遅延を感じさせずにオブジェクトの移動を制御できる。
第７の発明（請求項１５の発明）は、仮想ゲーム空間に登場する複数のオブジェクトの移動を管理する管理コンピュータと、管理コンピュータと通信可能に接続されるかつ複数のオブジェクトのうち少なくとも１つのオブジェクトを操作対象としてプレイヤに操作させる操作手段を備えるゲーム装置とを含む、通信ゲームシステムのゲーム制御方法である。ゲーム装置は、（ａ）操作手段によって入力される当該操作対象のオブジェクトの移動軌跡を取得し、（ｂ）ステップ（ａ）において取得する移動軌跡を管理コンピュータに送信し、（ｃ）移動軌跡によって移動されたオブジェクトを含む仮想ゲーム空間を描画するための描画情報を管理コンピュータから受信し、そして（ｄ）ステップ（ｃ）において受信した描画情報によって、操作対象のオブジェクトを含むゲーム画面を生成して表示し、ステップ（ｂ）は、操作手段からの移動軌跡の入力が途切れたときに入力終了情報をさらに送信する。管理コンピュータは、（ｅ）ゲーム装置から送信されるオブジェクトの移動軌跡を受信し、（ｆ）ステップ（ｅ）において受信した移動軌跡によって仮想ゲーム空間における操作対象のオブジェクトの移動を制御し、そして（ｇ）ステップ（ｆ）において移動したオブジェクトを含む仮想ゲーム空間を描画するための描画情報をゲーム装置に送信し、ステップ（ｆ）は、入力終了情報を受信したことを条件として、オブジェクトの移動を開始する。
請求項１５の発明は、第１の発明の通信ゲームシステムのゲーム制御方法であり、第１の発明と同様にして、通信遅延を感じさせずにオブジェクトを移動させることができる通信ゲームを実現できる。
【発明の効果】
【００３８】
この発明によれば、プレイヤが当該オブジェクトの移動を指示する情報を移動軌跡としてゲーム装置ないし子機で取得して、管理コンピュータないし親機で移動軌跡によって当該オブジェクトの移動を制御するようにしたので、通信遅延が生じても、オブジェクトの移動を続行させることができ、移動中であるにもかかわらずオブジェクトの移動が中断してしまうような事態を回避できる。したがって、通信遅延をプレイヤに感じさせることなくオブジェクトを移動させてゲームを進行させることができる。
【００３９】
この発明の上述の目的，その他の目的，特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【発明を実施するための最良の形態】
【００４０】
図１を参照して、この発明の実施例であるゲーム装置１０は、第１の液晶表示器（ＬＣＤ）１２および第２のＬＣＤ１４を含む。このＬＣＤ１２およびＬＣＤ１４は、所定の配置位置となるようにハウジング１６に収納される。この実施例では、ハウジング１６は、上側ハウジング１６ａと下側ハウジング１６ｂとによって構成され、ＬＣＤ１２は上側ハウジング１６ａに収納され、ＬＣＤ１４は下側ハウジング１６ｂに収納される。したがって、ＬＣＤ１２とＬＣＤ１４とは縦（上下）に並ぶように近接して配置される。
【００４１】
なお、この実施例では、表示器としてＬＣＤを用いるようにしてあるが、ＬＣＤに代えて、ＥＬ(Electronic Luminescence)ディスプレイやプラズマディスプレイを用いるようにしてもよい。
【００４２】
図１からも分かるように、上側ハウジング１６ａは、ＬＣＤ１２の平面形状よりも少し大きな平面形状を有し、一方主面からＬＣＤ１２の表示面を露出するように開口部が形成される。一方、下側ハウジング１６ｂは、その平面形状が上側ハウジング１６ａよりも横長に選ばれ、横方向の略中央部にＬＣＤ１４の表示面を露出するように開口部が形成される。また、下側ハウジング１６ｂには、音抜き孔１８が形成されるとともに、操作スイッチ２０（２０ａ，２０ｂ，２０ｃ，２０ｄ，２０ｅ，２０Ｌおよび２０Ｒ）が設けられる。
【００４３】
また、上側ハウジング１６ａと下側ハウジング１６ｂとは、上側ハウジング１６ａの下辺（下端）と下側ハウジング１６ｂの上辺（上端）の一部とが回動可能に連結されている。したがって、たとえば、ゲームをプレイしない場合には、ＬＣＤ１２の表示面とＬＣＤ１４の表示面とが対面するように、上側ハウジング１６ａを回動させて折りたたんでおけば、ＬＣＤ１２の表示面およびＬＣＤ１４の表示面に傷がつくなどの破損を防止することができる。ただし、上側ハウジング１６ａと下側ハウジング１６ｂとは、回動可能に連結せずに、それらを一体的（固定的）に設けたハウジング１６を形成するようにしてもよい。
【００４４】
操作スイッチ２０は、方向指示スイッチ（十字スイッチ）２０ａ，スタートスイッチ２０ｂ、セレクトスイッチ２０ｃ、動作スイッチ（Ａボタン）２０ｄ、動作スイッチ（Ｂボタン）２０ｅ、動作スイッチ（Ｌボタン）２０Ｌおよび動作スイッチ（Ｒボタン）２０Ｒを含む。スイッチ２０ａ，２０ｂおよび２０ｃは、下側ハウジング１６ｂの一方主面において、ＬＣＤ１４の左側に配置される。また、スイッチ２０ｄおよび２０ｅは、下側ハウジング１６ｂの一方主面において、ＬＣＤ１４の右側に配置される。さらに、スイッチ２０Ｌおよびスイッチ２０Ｒは、それぞれ、下側ハウジング１６ｂの上端（天面）の一部であり上側ハウジング１６ａとの連結部以外の部分において、当該連結部を挟むようにして左右に配置される。
【００４５】
方向指示スイッチ２０ａは、ディジタルジョイスティックとして機能する。４つの押圧部の１つを操作することによって、プレイヤによって操作可能なプレイヤキャラクタ(またはプレイヤオブジェクト)やカーソルの移動方向の指示等が可能である。スタートスイッチ２０ｂは、プッシュボタンで構成され、ゲームの開始（再開）、や一時停止等のために用いられる。セレクトスイッチ２０ｃは、プッシュボタンで構成され、ゲームモードの選択等のために用いられる。
【００４６】
動作スイッチ２０ｄすなわちＡボタンは、プッシュボタンで構成され、方向指示以外の動作、すなわち、プレイヤキャラクタに打つ（パンチ）、投げる、つかむ（取得）、乗る、ジャンプする、切る等の任意の動作（アクション）をさせることができる。たとえば、アクションゲームにおいては、ジャンプ、パンチ、武器を動かす等を指示することができる。また、ロールプレイングゲーム(ＲＰＧ)やシミュレーションＲＰＧにおいては、アイテムの取得、武器やコマンドの選択および決定等を指示することができる。動作スイッチ２０ｅすなわちＢボタンは、プッシュボタンで構成され、セレクトスイッチ２０ｃで選択したゲームモードの変更やＡボタン２０ｄで決定したアクションの取り消し等のために用いられる。
【００４７】
動作スイッチ２０Ｌ（Ｌボタン）および動作スイッチ２０Ｒ（Ｒボタン）は、プッシュボタンで構成され、Ｌボタン２０ＬおよびＲボタン２０Ｒは、Ａボタン２０ｄおよびＢボタン２０ｅと同様の操作に用いることができ、また、Ａボタン２０ｄおよびＢボタン２０ｅの補助的な操作に用いることができる。
【００４８】
また、ＬＣＤ１４の上面には、タッチパネル２２が装着される。タッチパネル２２としては、たとえば、抵抗膜方式、光学式(赤外線方式)および静電容量結合式のいずれかの種類のものを用いることができる。また、タッチパネル２２は、その上面をスティック２４ないしはペン（スタイラスペン）或いは指（以下、これらを「スティック２４等」という場合がある。）で、押圧したり、撫でたり、触れたり、叩いたりすることにより操作すると、スティック２４等によって操作された（つまり、タッチされた）位置の座標を検出して、当該検出座標に対応する座標データを出力する。
【００４９】
なお、この実施例では、ＬＣＤ１４（ＬＣＤ１２も同じ、または略同じ。）の表示面の解像度は２５６ｄｏｔ×１９２ｄｏｔであり、タッチパネル２２の検出精度（操作面）も表示画面に対応して２５６ｄｏｔ×１９２ｄｏｔとしてある。ただし、図１では、タッチパネル２２を分かり易く示すために、タッチパネル２２をＬＣＤ１４と異なる大きさで示してあるが、ＬＣＤ１４の表示画面の大きさとタッチパネル２２の操作面の大きさとは同じ大きさである。なお、タッチパネル２２の検出精度は、表示画面の解像度よりも低くてもよく、高くてもよい。
【００５０】
ＬＣＤ１２およびＬＣＤ１４には異なるゲーム画面が表示され得る。また、たとえば、２つのＬＣＤ１２および１４を合わせて１つの画面として用いることにより、プレイヤキャラクタが倒さなければならない巨大な怪物（敵キャラクタ）を表示することもできる。プレイヤはスティック２４等でタッチパネル２２を操作することにより、ＬＣＤ１４の画面に表示されるプレイヤキャラクタ、敵キャラクタ、アイテムキャラクタ、文字情報、アイコン等のキャラクタ画像を指示したり、コマンドを選択したりすることができる。なお、ゲームの種類によっては、その他の入力指示、たとえばＬＣＤ１４に表示されたアイコンの選択または操作、座標入力指示等に用いることもできる。
【００５１】
このように、ゲーム装置１０は、２画面分の表示部となるＬＣＤ１２およびＬＣＤ１４を有し、いずれか一方（この実施例では、ＬＣＤ１４）の上面にタッチパネル２２が設けられるので、２画面（１２，１４）と２系統の操作部（２０，２２）とを有する構成になっている。
【００５２】
また、この実施例では、スティック２４は、たとえば上側ハウジング１６ａの側面（右側面）近傍に設けられる収納部（穴ないし凹部）２６に収納することができ、必要に応じて取り出される。ただし、スティック２４を設けない場合には、収納部２６を設ける必要もない。
【００５３】
さらに、ゲーム装置１０はメモリカード（またはゲームカートリッジ）２８を含む。このメモリカード２８は着脱自在であり、下側ハウジング１６ｂの裏面ないしは底面（下端）に設けられる挿入口３０から挿入される。図１では省略するが、挿入口３０の奥部には、メモリカード２８の挿入方向先端部に設けられるコネクタ（図示せず）と接合するためのコネクタ４６（図２参照）が設けられており、したがって、メモリカード２８が挿入口３０に挿入されると、コネクタ同士が接合され、ゲーム装置１０のＣＰＵコア４２（図２参照）がメモリカード２８にアクセス可能となる。
【００５４】
なお、図１では表現できないが、下側ハウジング１６ｂの音抜き孔１８と対応する位置であり、この下側ハウジング１６ｂの内部には、スピーカ３２（図２参照）が設けられる。
【００５５】
また、図１では省略するが、たとえば、下側ハウジング１６ｂの裏面側には、電池収容ボックスが設けられ、また、下側ハウジング１６ｂの底面側には、電源スイッチ、音量スイッチ、外部拡張コネクタおよびイヤフォンジャックなども設けられる。
【００５６】
図２はゲーム装置１０の電気的な構成を示すブロック図である。図２を参照して、ゲーム装置１０は電子回路基板４０を含み、この電子回路基板４０にはＣＰＵコア４２等の回路コンポーネントが実装される。ＣＰＵコア４２は、バス４４を介してコネクタ４６に接続されるとともに、ＲＡＭ４８、第１のグラフィック処理ユニット（ＧＰＵ）５０、第２のＧＰＵ５２、入出カインターフェイス回路（以下、「Ｉ／Ｆ回路」という。）５４、ＬＣＤコントローラ６０およびワイヤレス通信部６４に接続される。
【００５７】
コネコタ４６には、上述したように、メモリカード２８が着脱自在に接続される。メモリカード２８は、ＲＯＭ２８ａおよびＲＡＭ２８ｂを含み、図示は省略するが、ＲＯＭ２８ａおよびＲＡＭ２８ｂは、互いにバスで接続され、さらに、コネクタ４６と接合されるコネクタ（図示せず）に接続される。したがって、上述したように、ＣＰＵコア４２は、ＲＯＭ２８ａおよびＲＡＭ２８ｂにアクセスすることができるのである。
【００５８】
ＲＯＭ２８ａは、ゲーム装置１０で実行すべきゲーム（仮想ゲーム）のためのゲームプログラム、画像データ（キャラクタ画像、背景画像、アイテム画像、アイコン（ボタン）画像、メッセージ画像など）およびゲームに必要な音（音楽）のデータ（音データ）等を予め記憶する。ＲＡＭ（バックアップＲＡＭ）２８ｂは、そのゲームの途中データやゲームの結果データを記憶（セーブ）する。
【００５９】
ＲＡＭ４８は、バッファメモリないしはワーキングメモリとして使用される。つまり、ＣＰＵコア４２は、メモリカード２８のＲＯＭ２８ａに記憶されたゲームプログラム、画像データおよび音データ等をＲＡＭ４８にロードし、ロードしたゲームプログラムを実行する。また、ＣＰＵコア４２は、ゲームの進行に応じて発生または取得されるデータ（ゲームデータやフラグデータ等）をＲＡＭ４８に記憶しつつゲーム処理を実行する。
【００６０】
なお、ゲームプログラム、画像データおよび音データ等は、ＲＯＭ２８ａから一度に全部または必要に応じて部分的にかつ順次的に読み出され、ＲＡＭ４８に記憶される。ただし、この実施例のように、固定的にプログラムおよびデータを記憶している記憶媒体をＣＰＵコア４２に直接接続可能なゲーム装置１０の場合には、ＣＰＵコア４２が記憶媒体に直接アクセスできるので、ＲＡＭ４８にプログラムやデータを転送して保持しなくてよい。
【００６１】
ＧＰＵ５０およびＧＰＵ５２は、それぞれ、描画手段の一部を形成し、たとえばシングルチップＡＳＩＣで構成され、ＣＰＵコア４２からのグラフィックスコマンド（graphics command ：作画命令）を受け、そのグラフィックスコマンドに従ってゲーム画像データを生成する。ただし、ＣＰＵコア４２は、グラフィックスコマンドに加えて、ゲーム画像データの生成に必要な画像生成プログラム（ゲームプログラムに含まれる。）をＧＰＵ５０およびＧＰＵ５２のそれぞれに与える。
【００６２】
また、ＧＰＵ５０には、第１のビデオＲＡＭ（以下、「ＶＲＡＭ」という。）５６が接続され、ＧＰＵ５２には、第２のＶＲＡＭ５８が接続される。ＧＰＵ５０およびＧＰＵ５２が作画コマンドを実行するにあたって必要なデータ（画像データ：キャラクタデータやテクスチャ等のデータ）は、ＧＰＵ５０およびＧＰＵ５２が、それぞれ、第１のＶＲＡＭ５６および第２のＶＲＡＭ５８にアクセスして取得する。ただし、ＣＰＵコア４２は、描画に必要な画像データをＲＡＭ４８から読み出し、ＧＰＵ５０およびＧＰＵ５２を介して第１のＶＲＡＭ５６および第２のＶＲＡＭ５８に書き込む。ＧＰＵ５０はＶＲＡＭ５６にアクセスして表示のためのゲーム画像データを作成し、その画像データをＶＲＡＭ５６の描画バッファに記憶する。ＧＰＵ５２はＶＲＡＭ５８にアクセスして描画のためのゲーム画像データを作成し、その画像データをＶＲＡＭ５８の描画バッファに記憶する。描画バッファとしてはフレームバッファまたはラインバッファ等が採用されてよい。
【００６３】
ＶＲＡＭ５６およびＶＲＡＭ５８は、ＬＣＤコントローラ６０に接続される。ＬＣＤコントローラ６０はレジスタ６２を含み、レジスタ６２はたとえば１ビットで構成され、ＣＰＵコア４２の指示によって「０」または「１」の値（データ値）を記憶する。ＬＣＤコントローラ６０は、レジスタ６２のデータ値が「０」である場合には、ＧＰＵ５０によって作成されたゲーム画像データをＬＣＤ１２に出力し、ＧＰＵ５２によって作成されたゲーム画像データをＬＣＤ１４に出力する。一方、レジスタ６２のデータ値が「１」である場合には、ＬＣＤコントローラ６０は、ＧＰＵ５０によって作成されたゲーム画像データをＬＣＤ１４に出力し、ＧＰＵ５２によって作成されたゲーム画像データをＬＣＤ１２に出力する。
【００６４】
なお、ＬＣＤコントローラ６０は、ＶＲＡＭ５６およびＶＲＡＭ５８から直接画像データを読み出すことができるし、あるいはＧＰＵ５０およびＧＰＵ５２を介してＶＲＡＭ５６およびＶＲＡＭ５８から画像データを読み出すこともできる。
【００６５】
また、ＶＲＡＭ５６およびＶＲＡＭ５８はＲＡＭ４８に設けられてもよいし、あるいはその描画バッファおよびＺバッファがＲＡＭ４８に設けられてもよい。
【００６６】
Ｉ／Ｆ回路５４には、操作スイッチ２０，タッチパネル２２およびスピーカ３２が接続される。ここで、操作スイッチ２０は、上述したスイッチ２０ａ，２０ｂ，２０ｃ，２０ｄ，２０ｅ，２０Ｌおよび２０Ｒであり、操作スイッチ２０が操作されると、対応する操作信号（操作データ）がＩ／Ｆ回路５４を介してＣＰＵコア４２に入力される。また、タッチパネル２２から出力される操作データ（座標データ）がＩ／Ｆ回路５４を介してＣＰＵコア４２に入力される。さらに、ＣＰＵコア４２は、ゲーム音楽（ＢＧＭ）、効果音またはゲームキャラクタの音声（擬制音）などのゲームに必要な音データをＲＡＭ４８から読み出し、Ｉ／Ｆ回路５４を介してスピーカ３２からその音を出力する。
【００６７】
ワイヤレス通信部６４は他のゲーム装置１０や通信機器との間で無線によってデータを送受信するための通信手段である。ワイヤレス通信部６４は、相手方への通信データを無線信号に変調してアンテナから送信し、また、相手方からの無線信号を同じアンテナで受信して通信データに復調する。このワイヤレス通信部６４を介して、ゲーム装置１０は、他のゲーム装置１０との間でデータを通信して通信ゲームを実行する。ワイヤレス通信部６４は、たとえばＩＥＥＥ８０２．１１（Ｗｉ−Ｆｉ）に対応しており、無線ＬＡＮによって他のゲーム装置１０や通信機器とデータを通信することが可能である。ゲーム装置１０は、たとえば近くに存在する他のゲーム装置１０との間で無線ＬＡＮによって通信ゲームを実行してよい。また、ゲーム装置１０は、ＴＣＰ／ＩＰプロトコルを用いてインターネットを介して他のコンピュータ（サーバおよびゲーム装置１０等）とデータを通信することができる。したがって、ゲーム装置１０は、たとえば家庭内ＬＡＮや公衆無線ＬＡＮの無線ＬＡＮアクセスポイントからインターネットサービスプロバイダ（ＩＳＰ）にアクセスし、ＩＳＰを介してインターネットないしＷＡＮ（Wide Area Network）のようなネットワークに接続し、離れた場所でインターネットに接続している他のゲーム装置１０との間で通信ゲームを実行することができる。
【００６８】
なお、ワイヤレス通信部６４は無線ＬＡＮ規格の代わりにたとえばBluetoothのような他の無線通信規格に従って動作してもよい。
【００６９】
また、このワイヤレス通信部６４は、たとえば時分割多元接続方式をベースとした無線通信を実行することも可能である。近くの他のゲーム装置１０との間での通信ゲームはこの無線通信方式で実行されてよい。たとえば、各ゲーム装置１０には１通信サイクル中にタイムスロットが割り当てられ、割り当てられたスロットで自己のデータを送信する。なお、このような無線通信の技術は、本件出願人による特開２００４−１３５７７８号公報および特開２００４−１３６００９号公報などに詳細に開示されるので参照されたい。
【００７０】
複数台の上述のようなゲーム装置１０を用いて、この実施例の通信ゲームシステム２００が構成される。すなわち、図３に示すように、この通信ゲームシステム２００では、複数のゲーム装置１０がインターネットなどのネットワーク２０２を介して互いに通信可能に接続される。なお、各ゲーム装置１０は、無線によって図示しないアクセスポイントからネットワーク２０２に接続している。
【００７１】
これら複数のゲーム装置１０間で、仮想ゲーム空間に複数のオブジェクトが登場する通信ゲームが実行される。各ゲーム装置１０には、複数のオブジェクトのうち１または複数のオブジェクトが操作対象として割り当てられている。つまり、各ゲーム装置１０のプレイヤは、１または複数のオブジェクトを自らのプレイヤオブジェクトとして操作する。
【００７２】
また、この実施例では、複数のゲーム装置１０のうちの１つが親機となり、その他は子機となって、親機と子機との間でデータが送受信される。なお、自機が親機になるか子機になるかはたとえば選択画面で各プレイヤによって選択される。
【００７３】
複数のゲーム装置１０間で整合性を取り食違いを生じさせないために、親機でゲーム空間の管理が行われる。具体的には、親機はゲーム空間内の複数のオブジェクトの移動などの動作制御を管理する。各子機は、当該子機で当該プレイヤによって入力されたオブジェクトに対する操作の情報を親機に送信する。親機は、各子機からの操作情報を受信し、当該受信した操作情報に基づいて、当該子機に対応するオブジェクトを移動させる。さらに、親機は、各オブジェクトが移動されたゲーム空間の状態を更新し、当該移動後のオブジェクトを含むゲーム空間を描画するための描画情報を生成して、各子機に描画情報を送信する。各子機は、描画情報を受信して、当該描画情報によってゲーム画面を生成して表示する。このようにして、各ゲーム装置１０では、同期が取られ、矛盾のないゲーム画面が表示される。
【００７４】
ところが、通信ゲームシステム２００では、ネットワーク２０２上の中継機器の通過や通信距離などによって通信遅延が生ずる。たとえば、子機での方向指示スイッチ２０ａの操作があるたびにあるいは連続的な操作が行われている場合に子機が１つ１つの操作情報を親機に送信するような方法では、親機では通信遅延によって当該操作情報の受信が遅れることがあり得る。このような受信の遅れによって、親機では当該オブジェクトの移動が途中で停止されてしまう恐れがあり、移動が途中で停止された場合には、そのような当該子機での実際の操作入力と異なる描画情報が各子機に送信されてしまうこととなる。
【００７５】
そこで、この実施例では、子機ではプレイヤの入力に基づいてオブジェクトの移動軌跡を取得するようにした。具体的には、子機では、オブジェクトがこれから移動しようとする経路を示す移動軌跡が入力情報から取得されて、当該移動軌跡が親機に送信されるようにした。親機では、当該移動軌跡に沿って当該子機に対応するオブジェクトが仮想ゲーム空間内で移動され、当該移動後のオブジェクトを含む仮想ゲーム空間を描画するための描画情報が各子機に送信される。このように各子機に対応するオブジェクトの移動軌跡を親機に送信するようにすれば、従来のように方向指示スイッチの１つ１つの操作情報を親機に送信する場合に比べると一度の入力で複数操作情報に相当する情報を送信することができる。これにより、親機では、移動軌跡の受信後に通信遅延が生じても、移動軌跡として当該オブジェクトの移動しようとする経路が既に取得されているので、当該オブジェクトの移動が途中で停止するような事態を回避することができる。
【００７６】
図４から図６にはメモリマップの一例が示される。図４にはメモリカード２８のＲＯＭ２８ａのメモリマップの一例が示される。ＲＯＭ２８ａはゲームプログラム記憶領域７０およびデータ記憶領域７２を含む。なお、図４にはメモリマップの一部のみが示されており、ゲームプログラム記憶領域７０およびデータ記憶領域７２には図中に明示された以外にも必要な各種プログラムおよびデータが予め記憶されている。
【００７７】
ゲームプログラム記憶領域７０の記憶領域７４には入力情報取得プログラムが記憶されている。このプログラムによって、たとえば、一定時間（１フレーム等）ごとに、入力情報として操作スイッチ２０からの操作情報およびタッチパネル２２で検出された操作情報（検出座標を含む）が取得される。プレイヤによる入力が無い場合には入力無しを示す情報が取得される。
【００７８】
記憶領域７６には画面生成プログラムが記憶されている。このプログラムによって、描画情報に基づいてゲーム画面が生成されて当該画面がＬＣＤ１２または１４に表示される。
【００７９】
記憶領域７８には、ゲーム装置１０が親機として機能する場合に実行されるプログラム（親機プログラム）が記憶されている。この親機プログラム記憶領域７８の記憶領域８０には、移動軌跡受信プログラムが記憶されている。このプログラムによって、各子機から送信される各オブジェクトの移動軌跡情報が受信される。
【００８０】
親機プログラム記憶領域７８の記憶領域８２には、キャラクタ移動制御プログラムが記憶されている。このプログラムによって、ゲーム空間に存在する複数のキャラクタ（オブジェクト）の移動が制御される。複数のオブジェクトのうち子機に対応付けられるオブジェクトの移動は、当該子機から受信した移動軌跡に基づいて制御される。つまり、子機の操作対象のオブジェクト（子オブジェクトまたは子キャラクタ）は当該移動軌跡に沿って仮想ゲーム空間内を移動する。移動軌跡は、上述のようにオブジェクトが移動しようとする経路であり、この実施例では、移動軌跡上の各点の座標は、ＬＣＤ１４に表示された２次元地図へのプレイヤの入力によって取得された２次元座標（ｘ，ｙ）である。仮想ゲーム空間は３次元で表現されるので、このキャラクタ移動制御プログラムは、取得した移動軌跡の各点を仮想３次元ゲーム空間の座標系の３次元座標（ｘ，ｙ，ｚ）に変換して、当該変換した３次元座標の移動軌跡に沿って当該子オブジェクトを移動させる。
【００８１】
また、ゲーム空間内の複数のオブジェクトのうち親機に対応付けられるオブジェクトの移動は、この実施例では、操作スイッチ２０のうち方向指示スイッチ２０ａの操作情報に基づいて制御される。つまり、親機の操作対象のオブジェクト（親オブジェクトまたは親キャラクタ）は、操作スイッチ２０ａで指示された方向に移動される。
【００８２】
なお、後述のように、子オブジェクトの移動軌跡の送信においては、個々の点の情報が順次送信されるのではなく、複数の点の情報がまとめて送信されるので、子オブジェクトの移動はリアルタイムで行われるものではない。一方、この実施例では、親オブジェクトの移動制御は操作スイッチ２０ａの操作情報に応じて直ちに実行され、つまり、親機のプレイヤは親オブジェクトの移動を含む動作をリアルタイムで操作することができる。
【００８３】
このように、この実施例では、子機の操作対象の子キャラクタは、移動軌跡の入力によって当該経路上を移動させ、一方、親機の操作対象の親キャラクタは、動作指示によってリアルタイムに移動させるようにしている。したがって、通信遅延の悪影響を回避可能な上に、興趣性および戦略性の高い通信ゲームを実現できる。たとえば、子キャラクタは入力された移動軌跡に沿った移動を行うことによって親キャラクタを追跡し、親キャラクタは子キャラクタとの接触を避けながら所定の目的を果すといった、興趣性および戦略性の高い通信対戦ゲームを実現できる。
【００８４】
なお、他の実施例では、親オブジェクトの移動は、子オブジェクトと同様に、親機で取得された移動軌跡に基づいて制御されるようにしてもよい。つまり、親オブジェクトもリアルタイムで移動されなくてもよい。
【００８５】
親機プログラム記憶領域７８の記憶領域８４には、描画情報送信プログラムが記憶されている。このプログラムによって、仮想ゲーム空間を描画するための描画情報が各子機に送信される。描画情報は、キャラクタ移動制御プログラムによって複数のオブジェクトの移動が制御されて仮想ゲーム空間内の状態が更新された後に、親機で生成される。つまり、描画情報は、子機から受信した移動軌跡によって当該子機に対応するオブジェクトを移動させた後の仮想ゲーム空間を描画するための情報である。この描画情報は、例えば仮想ゲーム空間におけるオブジェクトの位置が代表的なものである。また、その他にオブジェクトの方向やオブジェクトに特定のアクションをさせるためのモーションを示す情報を含めることも可能である。
【００８６】
記憶領域８６には、ゲーム装置１０が子機として機能する場合に実行されるプログラム（子機プログラム）が記憶されている。この子機プログラム記憶領域８６の記憶領域８８には、移動軌跡取得プログラムが記憶されている。このプログラムによって、子オブジェクトを移動させるための移動軌跡が取得される。具体的には、移動軌跡は、ゲーム空間の２次元地図が表示されたＬＣＤ１４のタッチパネル２２上の軌跡入力に応じて取得される。つまり、移動軌跡は、プレイヤがタッチパネル２２上でスティック２４等をスライドさせることによって連続的に検出された複数の座標に基づいて取得される。ただし、この実施例では、移動軌跡を入力する際には、プレイヤは、始めに子オブジェクトのアイコン画像にタッチすることで、操作したい子オブジェクトを選択する。そして、プレイヤは、タッチし続けたままスティック２４等を所望の経路で所望の位置まで移動させ、最後にスティック２４等をタッチパネル２２から離すことによって、当該子オブジェクトに対する軌跡入力を終了する。このように、この実施例では、子オブジェクトへのタッチ開始からタッチ終了までに連続的に検出された複数の座標によって移動軌跡が取得される。ただし、タッチパネル２２で検出される各点の座標はタッチパネル２２上の座標系の２次元座標（Ｘ，Ｙ）である。したがって、当該検出座標と入力時にＬＣＤ１４に表示されている２次元地図の情報とを照合することによって、検出座標（Ｘ，Ｙ）を仮想３次元ゲーム空間の座標系の水平面上の座標（ｘ，ｙ）に変換し、当該変換された座標（ｘ，ｙ）によって表現された移動軌跡を取得する。
【００８７】
また、この実施例では、取得する移動軌跡には長さ制限が設けられる。つまり、移動軌跡の長さが所定の閾値を超えたとみなせるような条件が満足された判定される場合には、タッチパネル２２で入力が検出されても、当該入力は移動軌跡として受け付けられず、移動軌跡情報に記憶されない。移動軌跡の受け付けを停止する条件は、この実施例では、移動軌跡として取得された点の数が所定の閾値を超えたことである。
【００８８】
子機プログラム記憶領域８６の記憶領域９０には移動軌跡送信プログラムが記憶されている。このプログラムによって移動軌跡が親機に送信される。また、この実施例では、取得される移動軌跡が所定の長さを超えるごとに、当該移動軌跡情報が逐次親機に送信される。これによって、一度に送信されるデータ量を低減することができる。
【００８９】
子機プログラム記憶領域８６の記憶領域９２には描画情報受信プログラムが記憶されている。このプログラムによって、親機から送信された描画情報が受信される。子機ではこの描画情報に基づいて当該子機に対応する子オブジェクトを含むゲーム空間を示すゲーム画面が生成されて、当該ゲーム画面がＬＣＤ１２および１４に表示されることとなる。
【００９０】
子機プログラム記憶領域８６の記憶領域９４には予測プログラムが記憶されている。子機では、親機からの描画情報を、通信遅延によって一定時間以上受信できなかったとき、このプログラムによって各オブジェクトの少なくとも位置が予測される。そして、当該予測結果に従ってゲーム画面が生成されることとなる。具体的には、子機は、自分自身に対応する子オブジェクトの移動軌跡情報を記憶しているので、当該移動軌跡情報を使用して当該子オブジェクトの位置を予測する。本来親機でこの移動軌跡情報に基づいて当該子オブジェクトの移動が制御されているので、当該移動軌跡情報に基づく予測が外れることはほとんどなく、正確な予測が可能である。また、他のオブジェクトの予測は、各オブジェクトの位置の履歴に基づいて行われる。さらにまた、予測後に、親機からの描画情報を受信したときには、予測位置と受信した描画情報に含まれる位置との補間によって、次の位置を算出する。なお、位置以外にもオブジェクトの向いている方向なども履歴に基づいて予測されてよい。
【００９１】
データ記憶領域７２の記憶領域９６にはマップデータが記憶されている。マップデータは仮想ゲーム空間のマップデータであり、当該ゲーム空間内の地形、構造物などの状態（位置や向きなど）を示す情報を含む。記憶領域９８には画像データが記憶されている。親機に対応する親キャラクタ、子機に対応する第１子キャラクタ、第２子キャラクタ，…などの画像データも含まれる。
【００９２】
図５にはゲーム装置１０が親機として機能する場合のＲＡＭ４８のメモリマップの一例が示される。なお、図５でもメモリマップの一部のみが示されており、図示されたもの以外にもゲーム処理に必要なデータが記憶される。
【００９３】
記憶領域１００には入力情報が記憶される。入力情報は入力情報取得プログラムによって取得された操作スイッチ２０の操作情報およびタッチパネル２２の検出情報を含む。
【００９４】
記憶領域１０２には移動軌跡受信プログラムによって取得した移動軌跡情報が記憶される。移動軌跡情報は、各子機から受信した各子キャラクタの移動軌跡であり、各子機の各キャラクタ（第１子キャラクタ，…）に対応付けて記憶される。
【００９５】
記憶領域１０４には軌跡書込終了フラグが記憶される。軌跡書込終了フラグは子機の子キャラクタに対する移動軌跡の入力の終了を示し、各子機の各子キャラクタ（第１子キャラクタ，…）に対応付けて記憶される。軌跡書込終了フラグがオンであることは、移動軌跡の入力が確定したことを意味し、一方、当該フラグがオフであることは、移動軌跡の入力が未確定であることを意味する。親機では、軌跡書込終了フラグがオンである場合に、当該フラグに対応する子キャラクタの移動制御が実行される。具体的には、子機で移動軌跡の入力が終了されたとき、軌跡書込終了コマンドが親機に送信される。親機では、子機から子キャラクタに対する軌跡書込終了コマンドを受信したとき、当該子機の当該子キャラクタに対応する軌跡書込終了フラグがオンにされる。軌跡書込終了フラグがオンになったことをトリガとして当該フラグに対応する子キャラクタの移動が開始される。一方、子機で移動軌跡の入力が開始されたとき、ラインクリアコマンドが親機に送信される。親機では、子機から子キャラクタに対応するラインクリアコマンドを受信したとき、当該子機の当該子キャラクタに対する軌跡書込終了フラグがオフにされる。
【００９６】
記憶領域１０６には生成された描画情報が記憶される。描画情報は仮想ゲーム空間を描画するための情報であり、当該仮想ゲーム空間に登場する各オブジェクト（親キャラクタ、第１子キャラクタ、…など）を描画するための情報を含む。具体的には、各ゲーム装置１０のプレイヤによって操作される各プレイヤキャラクタ（プレイヤオブジェクト）に関しては、描画情報は、位置（座標）、向きおよびモーションなどの情報を含む。ここで、モーションは、キャラクタの行う身体動作の種類を意味し、たとえば移動の場合、キャラクタが手を振り足を動かすといった振る舞いを行うモーションデータを指定する情報である。
【００９７】
図６にはゲーム装置１０が子機として機能する場合のＲＡＭ４８のメモリマップの一例が示される。なお、この図６でもメモリマップの一部が示されるだけで、その他必要なデータが記憶される。
【００９８】
記憶領域１１０には、入力情報取得プログラムによって取得された入力情報が記憶される。入力情報は操作スイッチ２０の操作情報およびタッチパネル２２の検出情報を含む。
【００９９】
記憶領域１１２には、移動軌跡取得プログラムに従って入力情報を基に取得された移動軌跡が記憶される。移動軌跡情報は、現在操作対象となっている子キャラクタに対応付けて記憶される。上述のように、この実施例では、取得された移動軌跡の長さが一定以上になるごとに、それまでに取得済みの移動軌跡情報が逐次親機に送信される。また、移動軌跡として親機に送信された点の数が一定値以上になったときには、移動軌跡の入力が受け付けられないようにされ、プレイヤによる入力が続けられていても、当該移動軌跡はこの記憶領域１１２に記憶されなくなる。
【０１００】
記憶領域１１４には軌跡ポイント送信回数が記憶される。軌跡ポイント送信回数は、移動軌跡として送信した座標点の数を意味する。移動軌跡の長さが一定距離以上になって当該移動軌跡を親機に送信するごとに、移動軌跡に含まれる点の数がカウントされて、現在までに送信した点の数の累計が軌跡ポイント送信回数として記憶される。
【０１０１】
記憶領域１１６には前回ポイント座標が記憶される。この実施例では、取得した移動軌跡の長さが一定値以上になるごとに送信が実行されるので、次回の移動軌跡の距離算出における参照のために、現在の検出座標が前回ポイント座標として記憶される。
【０１０２】
記憶領域１１８には受信描画情報が記憶される。受信描画情報は、描画情報受信プログラムに従って親機から受信した描画情報である。ゲーム空間に登場する各キャラクタ（親キャラクタ、第１キャラクタ、…）ごとの描画情報（位置、向き、モーションなど）が記憶される。子機では、この受信描画情報に基づいて、当該子機の操作対象の子キャラクタを含むゲーム空間を示すゲーム画面が生成されてＬＣＤ１２および１４に表示される。
【０１０３】
記憶領域１２０には位置履歴情報が記憶される。具体的には、各キャラクタの位置情報の履歴が記憶される。各キャラクタの履歴は、少なくとも過去２回（たとえば直前の２フレーム）の座標、つまり、前回および現在の座標を含む。また、この記憶領域１２０には各キャラクタの向き情報の履歴も記憶される。予測プログラムに従って予測を行う際にはこの履歴が参照される。
【０１０４】
記憶領域１２２には予測情報が記憶される。具体的には、予測プログラムに従って予測された各キャラクタの少なくとも位置を示す情報が記憶される。
【０１０５】
この通信ゲームシステム２００において、子機で子キャラクタを移動させようとする際には、プレイヤは、たとえば、操作スイッチ２０Ｌを操作する。これによって、図７に示すように、タッチパネル２２の設けられているＬＣＤ１４にゲーム空間の２次元地図を示す２次元ゲーム画面が表示され、他方のＬＣＤ１２には仮想３次元ゲーム空間を示す３次元ゲーム画面が表示される。プレイヤは、ＬＣＤ１４の地図画面に軌跡を描画することによって、子キャラクタの移動軌跡を入力することができる。
【０１０６】
地図画面には、当該子機で操作可能な子キャラクタを示すアイコン１３０ａ、１３０ｂ、１３０ｃが、当該子キャラクタの３次元ゲーム空間内の存在位置に対応する位置に表示される。この子機では複数の子キャラクタを操作可能であるので、３つの子キャラクタのアイコン１３０ａ、１３０ｂ、１３０ｃが表示されている。一方、ＬＣＤ１２には、アイコン１３０ａに対応する子キャラクタ１３２ａを含む３次元ゲーム画面が表示されている。なお、子キャラクタアイコン１３０ａ−ｃをまとめて参照符号１３０で示し、各アイコン１３０ａ−ｃに対応する子キャラクタ１３２ａ−ｃをまとめて参照符号１３２で示すこともある。
【０１０７】
子キャラクタ１３２の移動軌跡を入力する際には、プレイヤは、移動させたい子キャラクタ１３２に対応するアイコン１３０にスティック２４等でタッチし、タッチしたままスティック２４等を所望の経路を通って所望の位置までスライドさせる。図７では、子キャラクタ１３２ａに対応するアイコン１３０ａに対して入力が行われている。スティック２４等の移動に応じて当該タッチ位置の座標が連続的に検出され、検出された連続的な座標に基づいて移動軌跡情報が取得される。また、地図画面では、タッチ位置に対応するドットが地色と異なる所定色（白など）に変更され、これによって、図７の下画面に示すように、地図画面上に入力軌跡が描画される。なお、図７では、他のアイコン１３０ｂ、１３０ｃに対応する子キャラクタ１３２への移動軌跡の入力は先に終了されており、当該アイコン１３０ｂ、１３０ｃの移動軌跡の色は、アイコン１３０ａの色とは異なる所定色（黒など）に変更されている。また、各アイコン１３０ｂ、１３０ｃは、それぞれの移動軌跡に沿って移動中である。
【０１０８】
アイコン１３０がタッチされると、対応する子キャラクタ１３２に対してラインクリアコマンドによって、当該子キャラクタ１３２に対する移動軌跡入力が開始されたことが親機に伝達される。また、取得された移動軌跡の長さが一定値以上になるごとに、当該移動軌跡情報が逐次親機へ送信される。なお、この送信はポイント追加コマンドによってなされる。
【０１０９】
その後、子機のプレイヤは、スティック２４等をタッチパネル２２から離すことによって移動軌跡の入力を終了することができる。移動軌跡の入力が終了されると、子機から親機に書込終了コマンドが送信され、移動軌跡入力が確定したことが伝えられる。親機では、移動軌跡に基づいて当該子キャラクタの移動制御が開始される。そして、移動軌跡に沿って移動した子キャラクタを含むゲーム空間を描画するための描画情報が生成されて各子機に送信される。親機では生成した描画情報によって、また各子機では受信した描画情報によって、ゲーム画面が生成されてＬＣＤ１２および１４の表示が更新される。
【０１１０】
図８に示すように、子機では、子キャラクタ１３２ａの移動が開始されるとき、上下画面が入れ替えられ、子キャラクタ１３２ａが移動軌跡に沿って３次元ゲーム空間内を移動する場面は下画面に表示される。なお、図８には、移動軌跡に沿った移動が完了した場面が示されている。子キャラクタ１３２ａは、図７で移動軌跡の入力が行われたアイコン１３０ａに対応する子キャラクタであり、子キャラクタ１３２ｂはアイコン１３０ｂに対応する子キャラクタである。子キャラクタ１３２ａは図中に破線矢印で示したルート（移動軌跡）を通って、親機のプレイヤキャラクタである親キャラクタ１３４の前に移動している。また、図８の上画面に示すように、地図画面においても、各アイコン１３０が各移動軌跡に沿って移動し、親キャラクタ１３４に対応するアイコン１３６の周囲に到達している。
【０１１１】
なお、この実施例では、子キャラクタ１３２によって親キャラクタ１３４を探索し追跡するようなゲームが行われるので、地図画面における親キャラクタ１３４のアイコン１３６は、下画面の子キャラクタ１３２ａの表示範囲内に親キャラクタ１３４が存在するときに限り表示される。また、図７および図８では、簡単のため、他の子機に対応する子キャラクタおよびそのアイコンの表示は省略している。また、図８に示すように、この実施例では親機の操作する親キャラクタは１体のみであるが、親機でも子機と同様に複数のキャラクタが操作されてよい。
【０１１２】
この通信ゲームシステム２００の親機および子機のそれぞれにおけるゲーム動作の一例を図９から図１１および図１２および図１３のフロー図を参照しながら説明する。
【０１１３】
図９には親機のメイン処理の動作が示される。親機のＣＰＵコア４２は、メイン処理を開始すると、ステップＳ１で初期処理を実行する。ここでは、通信接続処理が行われ、親機は各子機とネットワーク２０２を介して通信接続する。また、各種変数に初期値が設定される。
【０１１４】
続くステップＳ３からステップＳ１９の処理を、ＣＰＵコア４２は一定時間（たとえば１フレーム＝１／６０秒）ごとに実行する。ステップＳ３では、ＣＰＵコア４２は親キャラクタ１３４の動作指示が行われたか否かを記憶領域１００の入力情報に基づいて判断する。なお、記憶領域１００には、入力情報取得プログラムに従って、一定時間ごとに操作スイッチ２０からの操作情報およびタッチパネル２２からの操作情報が取得されている。
【０１１５】
ステップＳ３で“ＹＥＳ”であれば、ＣＰＵコア４２は、ステップＳ５で親キャラクタ動作処理を実行する。この実施例では、親キャラクタ１３４の移動などの動作は、操作スイッチ２０の入力に応じて制御される。したがって、たとえば、方向指示スイッチ２０ａの操作情報の場合、当該指示方向に親キャラクタ１３４が移動される。また、動作スイッチ２０ｄの操作情報の場合、親キャラクタ１３４が所定の動作を実行する。ステップＳ３で“ＮＯ”の場合には処理はそのままステップＳ７に進む。
【０１１６】
ステップＳ７では、ＣＰＵコア４２は子機からコマンドを受信したか否かを判断し、“ＹＥＳ”であればステップＳ９でコマンド処理を実行し、“ＮＯ”であればそのままステップＳ１１へ進む。ステップＳ９のコマンド処理では受信したコマンドの種類に応じた処理が行われる。後述するように、子機は子キャラクタ１３２に対する移動軌跡の入力の段階に応じて３種類のコマンドを親機に送信する。すなわち、子キャラクタのアイコン１３０に対する移動軌跡入力が開始されたときラインクリアコマンドが送信され（図１２のステップＳ９１）、当該移動軌跡入力が継続されているときポイント追加コマンドが送信され（ステップＳ１０３）、当該移動軌跡入力が終了されたとき書込終了コマンドが送信される（図１３のステップＳ１１３）。
【０１１７】
図１０にコマンド処理の動作の一例が示される。コマンド処理を開始すると、ＣＰＵコア４２は、まず、ステップＳ３１で受信コマンドがラインクリアであるか否かを判断する。つまり、当該コマンドを送信してきた子機で移動軌跡入力が開始されたか否かを判断する。
【０１１８】
ステップＳ３１で“ＹＥＳ”であれば、ＣＰＵコア４２は、ステップＳ３３で受信座標に基づいて複数の子キャラクタ１３２のうち当該子機で指示された子キャラクタ１３２を特定する。具体的には、受信コマンドに含まれる子機での指示座標と、当該子機に対応する複数の子キャラクタのアイコン１３０の座標（ＲＡＭ４８に記憶されている。）とに基づいて、移動軌跡が入力され始めたアイコン１３０および子キャラクタ１３２を特定する。なお、子機が指示された子キャラクタ１３２の特定を行って、当該指示された子キャラクタ１３２の識別情報を含むコマンドを送信するようにしてもよい。
【０１１９】
続くステップＳ３５で、ＣＰＵコア４２は該当する子キャラクタ１３２の既に描画された移動軌跡をクリアする。具体的には、記憶領域１０２から該当する子キャラクタ１３２に対応する移動軌跡情報が消去される。記憶されていた情報は、当該子キャラクタ１３２に対して過去に入力された移動軌跡情報であり、当該子キャラクタ１３２は、この移動軌跡情報に基づいて移動中であるかまたは既に移動を終了している。
【０１２０】
このように、この実施例では、子機で或る子キャラクタに対する別の移動軌跡入力が開始されたことに応じて、親機で取得済みの移動軌跡情報をクリアするようにした。したがって、或る子キャラクタを移動軌跡に従って移動させている途中であっても、新たな移動軌跡の入力が開始されたときには、古い移動軌跡に基づく移動を停止させることができる。
【０１２１】
すなわち、ステップＳ３７では、ＣＰＵコア４２は、該当する子キャラクタ１３２の移動を停止する。続くステップＳ３９では、ＣＰＵコア４２は、記憶領域１０４の該当する子キャラクタ１３２の軌跡書込終了フラグをオフにする。この軌跡書込終了フラグがオンであるときには該当する子キャラクタ１３２の移動制御が行われる。そのため、このステップＳ３９では、新たな移動軌跡の入力が子機のプレイヤによって開始されようとしているので、軌跡書込終了フラグをオフにすることによって、該当する子キャラクタ１３２の移動制御が行われないようにする。ステップＳ３９を終了するとこのコマンド処理を終了して図９のステップＳ１１に戻る。
【０１２２】
一方、ステップＳ３１で“ＮＯ”の場合、ＣＰＵコア４２はステップＳ４１で受信コマンドがポイント追加であるか否かを判断する。つまり、入力された移動軌跡を含む情報を受信したか否かを判断する。ステップＳ４１で“ＹＥＳ”であれば、ＣＰＵコア４２は、ステップＳ４３で、受信した座標すなわち移動軌跡を、記憶領域１０２の該当する子キャラクタ１３２の移動軌跡情報に追加する。この実施例では、子機からは所定長さを超えるたびに逐次移動軌跡が送信されてくるので、記憶領域１０２には、当該子キャラクタ１３２に対する入力が開始されてから連続的に取得された複数の座標すなわち移動軌跡が蓄積される。移動軌跡を示す各点の座標は、たとえば識別番号（各点の識別情報）に対応付けて記憶される。ステップＳ４３を終了するとこのコマンド処理を終了して図９のステップＳ１１へ戻る。
【０１２３】
また、ステップＳ４１で“ＮＯ”の場合、ＣＰＵコア４２は、ステップＳ４５で受信コマンドが書込終了であるか否かを判断する。つまり、子機で移動軌跡の入力が終了したか否かを判断する。ステップＳ４５で“ＹＥＳ”であれば、ＣＰＵコア４２は、ステップＳ４７で、当該受信コマンドに座標が含まれる場合には、当該受信座標を記憶領域１０２の該当する子キャラクタ１３２の移動軌跡情報に追加する。そして、ステップＳ４９で、ＣＰＵコア４２は記憶領域１０４の該当する子キャラクタ１３２の軌跡書込終了フラグをオンにする。この軌跡書込終了フラグのオフからオンへの変化に応じて、この親機では、当該子キャラクタ１３２の移動が開始されることとなる。ステップＳ４９を終了すると、またはステップＳ４５で“ＮＯ”の場合には、このコマンド処理を終了して図９のステップＳ１１へ戻る。
【０１２４】
図９のステップＳ１１では、ＣＰＵコア４２は子キャラクタ移動処理を実行し、各子機の子キャラクタの移動を制御する。
【０１２５】
図１１に子キャラクタ移動処理の動作の一例が示される。子キャラクタ移動処理を開始すると、ＣＰＵコア４２は、ステップＳ６１で、未処理の子キャラクタ１３２が存在するか否かを判断する。つまり、複数の子キャラクタ１３２のうち移動処理対象に未だ設定されていない子キャラクタ１３２が残っているか否かを判断する。ステップＳ６１で“ＹＥＳ”であれば、ＣＰＵコア４２はステップＳ６３で未処理の子キャラクタ１３２のうちの１つを選択して処理対象として設定する。
【０１２６】
続くステップＳ６５で、ＣＰＵコア４２は、当該処理対象の子キャラクタ１３２の軌跡書込終了フラグがオンであるか否かを判断する。この実施例では、上述のように、子キャラクタ１３２に対する移動軌跡の入力が終了して移動軌跡が確定したときに、当該軌跡書込終了フラグがオンにされる。また、同じ子キャラクタ１３２に対して別の移動軌跡の入力が開始されたときには、当該移動軌跡が未確定のため、当該軌跡書込終了フラグがオフにされる。つまり、軌跡書込終了フラグがオンであることは、入力された移動軌跡に従って当該子キャラクタ１３２の移動制御を行ってもよい状態であることを意味する。このステップＳ６５で“ＮＯ”の場合、つまり、移動軌跡が入力途中であり未確定である場合には、処理はステップＳ６１に戻る。
【０１２７】
一方、ステップＳ６５で“ＹＥＳ”の場合には、当該子キャラクタの移動を開始する。このように、この実施例では、子機で移動軌跡の入力が終了したことに応じて、当該子キャラクタの移動を開始するようにしている。つまり、入力された移動軌跡（移動指示情報）を全て取得してから、当該子キャラクタを移動させ始めるので、通信遅延によって当該子キャラクタの移動が中断されてしまうようなことがない。
【０１２８】
なお、移動軌跡の全ての書込みが終了したときに移動を開始させるようにしたが、当該移動開始条件は適宜変更され得る。たとえば、他の実施例では、親機が受信した移動軌跡が、通信遅延の影響を織り込んだ所定長さ、つまり、所定時間の遅延が生じても移動が中断されないような十分な時間分の移動軌跡になったと判定される場合には、移動軌跡の全てを取得する前に当該子キャラクタの移動を開始させるようにしてもよい。
【０１２９】
具体的には、ステップＳ６７で、ＣＰＵコア４２は、当該処理対象の子キャラクタ１３２の移動軌跡情報に未移動箇所が存在するか否かを判断する。つまり、記憶領域１０２に記憶された移動軌跡の各点のうち、移動制御に使用していない点が残っているか否かを判断する。たとえば、移動軌跡の各点は識別番号に対応付けて記憶されているので、移動処理済みの点の数をカウントしたり識別番号を記憶しておいたりすることによって、未処理の点の有無を判定できる。ステップＳ６７で“ＮＯ”の場合、つまり、当該子キャラクタ１３２について、入力された移動軌跡に従った移動を既に完了している場合には、処理はステップＳ６１に戻る。
【０１３０】
一方、ステップＳ６７で“ＹＥＳ”の場合には、つまり、移動軌跡に従った当該子キャラクタ１３２の移動を開始または継続すべき場合には、ＣＰＵコア４２は、ステップＳ６９で、移動軌跡の座標をゲーム空間の座標に変換する。地図画面で入力され取得された移動軌跡上の各点の座標は２次元座標（ｘ，ｙ）であるので、現在処理すべき識別番号の点の座標をゲーム空間の３次元座標（ｘ，ｙ，ｚ）に変換する。上述のように移動軌跡の各点には識別番号が対応付けられているので、処理済みの点の数をカウントしたり識別番号を記憶しておいたりすることによって、移動軌跡のうち現在処理すべき点を特定することができる。
【０１３１】
そして、ステップＳ７１で、ＣＰＵコア４２は、当該子キャラクタを移動軌跡に沿って移動させる。つまり、子キャラクタ１３２の現在の座標と移動軌跡の変換座標とに基づいて、当該子キャラクタの移動後の座標を算出する。また、当該子キャラクタ１３２の移動後の向きも、現在の座標と移動軌跡の変換座標と現在の向きに基づいて算出される。ステップＳ７１を終了するとステップＳ６１に戻る。
【０１３２】
一方、ステップＳ６１で“ＮＯ”の場合には、つまり、このフレームですべての子キャラクタ１３２を対象として処理を行った場合には、この子キャラクタ移動処理を終了して図９のステップＳ１３に戻る。
【０１３３】
このように、親機では、ステップＳ９のコマンド処理において、複数の座標点を含む移動軌跡情報を受信し、ステップＳ１１の子キャラクタ移動処理において、移動を開始してよい場合に子キャラクタ１３２を移動軌跡に従って移動させるようにしている。したがって、通信遅延によって子キャラクタ１３２の移動指示情報の受信が間に合わずに当該子キャラクタ１３２の移動が中断してしまうといった不具合が生じない。
【０１３４】
図９のステップＳ１３では、ＣＰＵコア４２は、ゲーム空間内の状態を更新する。つまり、ステップＳ５の親キャラクタ動作処理やステップＳ１１の子キャラクタ移動処理などの結果に基づいて、ＲＡＭ４８に記憶されたゲーム空間内の各キャラクタの位置、向き、モーションなどの情報を更新する。具体的には、位置情報は当該オブジェクトの移動後の仮想３次元ゲーム空間における座標である。なお、仮想ゲーム空間における３次元座標のうち（ｘ，ｙ）は地図画面における２次元座標（ｘ，ｙ）に対応するので、この位置情報によって各キャラクタの地図画面上での位置も把握される。向き情報はたとえば当該オブジェクトの向いている方向を示すベクトルである。モーション情報は、当該オブジェクトの行動に応じて実行される身体動作を示す。移動しているオブジェクトの場合には、たとえば、移動の身体動作を表示するためのモーションデータを指定する情報がモーション情報として記憶される。
【０１３５】
続くステップＳ１５では、ＣＰＵコア４２は、当該更新されたゲーム空間を描画するための描画情報を生成して、当該描画情報を各子機に送信する。描画情報は、記憶領域１０６に生成され、ゲーム空間内の各キャラクタの位置、向きおよびモーションなどの情報を含む。たとえばゲーム空間全体に関する描画情報が送信される。あるいは、ゲーム空間が画面表示範囲よりも大きい場合等には、ゲーム空間の一部に関する描画情報が送信されるようにしてもよい。一例として、子機の操作対象の子キャラクタ１３２の存在位置から所定距離以下の領域（表示範囲よりもやや大きい領域）に関する描画情報のみが当該子機に送信されてよい。この場合には、各子機の表示やその後の予測処理に必要な情報のみを送信するようにしているので、通信データ量を低減することができる。
【０１３６】
ステップＳ１７では、ＣＰＵコア４２は画面生成処理を実行する。すなわち、描画情報に基づいて親キャラクタ１３４を含むゲーム画面（この実施例では３次元ゲーム画面と２次元地図画面の２つ）を生成し、ＬＣＤ１２およびＬＣＤ１４に表示する。
【０１３７】
そして、ステップＳ１９で、ＣＰＵコア４２はゲーム終了であるか否かを判断する。たとえばゲームクリア条件またはゲームオーバ条件が満足されたか否かを判断する。ステップＳ１９で“ＮＯ”であれば、次フレームのゲーム処理を実行すべくステップＳ３に戻る。一方、ステップＳ１９で“ＹＥＳ”であれば、ＣＰＵコア４２は、図示しないゲーム終了処理を実行して、このメイン処理を終了する。
【０１３８】
図１２および図１３には子機のメイン処理の動作の一例が示される。メイン処理を開始すると、子機のＣＰＵコア４２は、ステップＳ８１で初期処理を実行する。具体的には、通信接続処理が行われ、子機は親機とネットワーク２０２を介して通信接続する。また、各種変数に初期値が設定される。
【０１３９】
ＣＰＵコア４２は、続くステップＳ８３からステップＳ１３７の処理を一定時間（たとえば１フレーム）ごとに実行する。ステップＳ８３では、ＣＰＵコア４２は、記憶領域１１０の入力情報に基づいて、タッチが開始されたか否かを判断する。つまり、タッチパネル２２への入力の検出されない状態から入力の検出される状態に変化したか否かを判断する。なお、記憶領域１１０には、入力情報取得プログラムに従って一定時間ごとに操作スイッチ２０からの操作情報およびタッチパネル２２からの操作情報が取得されている。
【０１４０】
ステップＳ８３で“ＹＥＳ”であれば、ＣＰＵコア４２はステップＳ８５で子キャラクタ１３２が指示されたか否かを判断する。つまり、ＬＣＤ１４に表示されている２次元地図上のアイコン１３０に対応する位置がタッチされたか否かを、ＲＡＭ４８に記憶されているアイコン１３０の表示位置座標と、入力情報記憶領域１１０に記憶されている検出座標（タッチ座標）とに基づいて判断する。
【０１４１】
ステップＳ８５で“ＹＥＳ”であれば、つまり、子キャラクタ１３２に対する移動軌跡の入力が開始された場合には、ＣＰＵコア４２は、ステップＳ８７で、複数の子キャラクタ１３２のうち指示された子キャラクタ１３２をタッチ座標と各アイコン１３０の表示位置に基づいて特定する。
【０１４２】
このように、この実施例では、移動軌跡の入力が開始されたときに、選択された子キャラクタを特定するようにしている。したがって、子機では子キャラクタごとの移動軌跡を取得することができる。つまり、子機のプレイヤは、個々に移動軌跡入力を行うことによって複数の子キャラクタのそれぞれを操作することができる。
【０１４３】
続くステップＳ８９で、ＣＰＵコア４２は、記憶領域１１２に記憶されている該当する子キャラクタ１３２に対する移動軌跡情報をクリアする。つまり、これから入力される移動軌跡上の各点の座標を蓄積するために、該当する子キャラクタ１３２のための記憶領域をクリアする。なお、後の軌跡入力実行中か否かの判定のために、移動軌跡の入力が行われている状態であることを示す入力フラグをオンにするようにしてよい。
【０１４４】
このように、この実施例では、子機で或る子キャラクタに対して別の移動軌跡の入力が開始されるまで、取得済みの移動軌跡情報を記憶しておくことができるようにしている。したがって、必要に応じて当該移動軌跡情報をゲーム処理に使用することができる。たとえば、後述のように、描画情報を一定時間受信できなかったとき、当該移動軌跡情報を使用して当該子キャラクタの位置を予測することができる。
【０１４５】
また、ステップＳ９１で、ＣＰＵコア４２は、該当する子キャラクタ１３２に対するラインクリアコマンドと検出座標を親機へ送信する。このラインクリアコマンドの送信によって、該当する子キャラクタ１３２の移動軌跡の入力の開始を親機に伝達する。ステップＳ９１を終了すると、処理は図１３のステップＳ１１７に進む。なお、ステップＳ８５で“ＮＯ”の場合、つまり、地図画面上の子キャラクタアイコン１３０以外の部分がタッチされた場合には、そのままステップＳ１１７に進む。
【０１４６】
一方、ステップＳ８３で“ＮＯ”であれば、ＣＰＵコア４２は、ステップＳ９３でタッチパネル２２へのタッチが継続中であるか否かを記憶領域１１０の入力情報に基づいて判断する。ステップＳ９３で“ＹＥＳ”であれば、ＣＰＵコア４２はステップＳ９５で軌跡入力中であるか否かを判断する。たとえば、軌跡入力が行われている状態であることを示す入力フラグがオンであるか否かを判断する。
【０１４７】
ステップＳ９５で“ＹＥＳ”であれば、つまり、移動軌跡の入力が継続されている場合には、ＣＰＵコア４２は、ステップＳ９７で、該当する子キャラクタ１３２の軌跡ポイント送信回数が所定の第１閾値以下であるか否かを判断する。つまり、当該子キャラクタ１３２に対して入力された移動軌跡のうち送信済みの点の数が所定の制限値（第１閾値。たとえば１２８点）を超えていないことを判定する。このように、この実施例では、一回の軌跡入力で移動可能にする距離を、移動軌跡を構成する点の数に基づいて制限している。つまり、入力可能な移動軌跡の長さに制限を設けている。したがって、一度の入力で移動可能な距離を適切な範囲に限定することができる。なお、他の実施例では、移動軌跡に入力制限を設けなくてもよい。
【０１４８】
ステップＳ９７で“ＹＥＳ”であれば、ＣＰＵコア４２は、ステップＳ９９で検出座標を記憶領域１１２の移動軌跡情報に取得する。移動軌跡情報は、各子キャラクタ１３０ごとに記憶される。また、個々の点の座標は、タッチパネル２２の座標系の２次元座標（Ｘ，Ｙ）から地図画面の座標系の２次元座標（ｘ，ｙ）に変換され、各点の識別情報としての識別番号（開始点からの通し番号）に対応付けて記憶領域１１２に記憶される。
【０１４９】
ステップＳ１０１では、ＣＰＵコア４２は前回ポイント座標と現在座標間の距離が所定の第２閾値以上であるか否かを判断する。前回ポイント座標は、親機に送信済みの移動軌跡のうちの最後尾の点の座標を意味する。ただし、移動軌跡を未送信の場合には、入力開始時の座標が採用される。したがって、ここでは、前回ポイント座標から現在の検出座標までの移動距離が所定値（第２閾値）以上になったか否かを判定している。すなわち、前回送信後またはタッチ開始後に記憶領域１１２に記憶された移動軌跡の長さが親機に送信すべき所定長さに達したか否かを判定している。これによって、一定長さごとに移動軌跡を逐次親機に送信することができる。つまり、移動軌跡として一度に送信するデータ量を低減することができる。なお、他の実施例では、所定時間ごとに取得された移動軌跡を送信するようにしてもよいし、あるいは、全ての移動軌跡の入力の完了を待って移動軌跡を一括して送信するようにしてもよい。
【０１５０】
ステップＳ１０１で“ＹＥＳ”であれば、ＣＰＵコア４２は、ステップＳ１０３で、該当する子キャラクタ１３２に対するポイント追加コマンドと検出座標（移動軌跡）を親機へ送信する。送信される移動軌跡は、前回ポイント座標（または入力開始点）の次の座標から現在の検出座標までに連続的に検出された複数の座標（厳密には地図画面の座標系に変換した座標）である。移動軌跡が一定長さ取得されるごとに、このポイント追加コマンドによって、当該移動軌跡が逐次親機へ送信される。
【０１５１】
ステップＳ１０５では、ＣＰＵコア４２は、送信した移動軌跡情報に基づいて該当する子キャラクタ１３２の軌跡ポイント送信回数をカウントする。つまり、親機へ送信した移動軌跡上の点の数を通算して、記憶領域１１４に当該数を記憶する。ステップＳ９７の判定は、この軌跡ポイント送信回数に基づいてなされることになる。
【０１５２】
また、ステップＳ１０７では、ＣＰＵコア４２は、現在の検出座標を、次回の移動軌跡長さ判定（Ｓ１０１）の際の参照用に前回ポイント座標として記憶領域１１６に記憶する。ステップＳ１０７を終了すると、処理は図１３のステップＳ１１７に進む。
【０１５３】
なお、ステップＳ９５で“ＮＯ”の場合、つまり、移動軌跡の入力が行われていない場合には、処理はそのまま図１３のステップＳ１１７へ進む。また、ステップＳ９７で“ＮＯ”の場合、つまり、移動軌跡として親機に送信済みの座標数が制限を超えた場合には、移動軌跡の受け付けを停止し、処理はそのままステップＳ１１７へ進む。また、ステップＳ１０１で“ＮＯ”の場合、つまり、前回ポイント座標（または入力開始点）からの移動軌跡の長さが一定値よりも小さい場合には、親機への送信を見送るべく、処理は図１３のステップＳ１１７に進む。
【０１５４】
一方、ステップＳ９３で“ＮＯ”の場合には、ＣＰＵコア４２は、図１３のステップＳ１０９で、記憶領域１１０の入力情報に基づいて、タッチが終了されたか否かを判断する。つまり、タッチパネル２２への入力の検出されている状態から入力の検出されていない状態に変化したか否かを判断する。ステップＳ１０９で“ＹＥＳ”であれば、ＣＰＵコア４２は、ステップＳ１１１で移動軌跡の入力が行われていたか否かを判断する。たとえば、軌跡入力が行われている状態であることを示す入力フラグがオンであるか否かを判断する。
【０１５５】
ステップＳ１１１で“ＹＥＳ”であれば、つまり、移動軌跡の入力が終了された場合には、ＣＰＵコア４２は、ステップＳ１１３で、該当する子キャラクタ１３２に対する書込終了コマンドと座標（移動軌跡）を親機へ送信する。この書込終了コマンドとともに送信される移動軌跡は、ステップＳ１０１の判定で所定長さに満たないと判定された移動軌跡、あるいは、ステップＳ１０３での移動軌跡の送信後からステップＳ９７の判定で送信された座標点の数が所定値を超えたと判定されるまでの間に記憶領域１１２に取得された移動軌跡である。
【０１５６】
また、ステップＳ１１５では、ＣＰＵコア４２は、記憶領域１１４に記憶された該当する子キャラクタ１３２の軌跡ポイント送信回数をリセットしゼロにする。また、軌跡の入力が終了されたので、軌跡入力が行われている状態であることを示す入力フラグをオフにする。
【０１５７】
なお、ステップＳ１０９で“ＮＯ”の場合、またはステップＳ１１１で“ＮＯ”の場合には、処理はそのままステップＳ１１７に進む。
【０１５８】
ステップＳ１１７では、ＣＰＵコア４２は、描画情報を親機から受信したか否かを判断する。ステップＳ１１７で“ＹＥＳ”であれば、ＣＰＵコア４２は、ステップＳ１１９で受信した描画情報を記憶領域１１８に記憶する。
【０１５９】
続いて、ステップＳ１２１では、ＣＰＵコア４２はキャラクタの位置予測が行われているか否かを判断する。後述するように、予測は、描画情報が一定時間以上受信されなかった場合に行われる。たとえば、予測が行われている状態であることを示す予測フラグがオンであるか否かを判断したり、あるいは、記憶領域１２２に予測情報が記憶されているか否かを判断したりする。
【０１６０】
ステップＳ１２１で“ＹＥＳ”であれば、つまり、予測が行われているときに描画情報を受信した場合には、ＣＰＵコア４２は、ステップＳ１２３で、受信描画情報と予測情報とに基づいて各キャラクタの位置を修正する。具体的には、各キャラクタについて、描画情報に含まれる座標と予測情報記憶領域１２２に記憶されている座標とを補間することよって、修正座標を算出する。この子機自身の操作対象の子キャラクタについては、予測位置の誤差がわずかであるため、このステップＳ１２３で位置を修正しても当該子キャラクタを滑らかに移動させることができる。また、予測位置を修正したので、上記予測フラグはオフにされる。なお、ステップＳ１２１で“ＮＯ”の場合、つまり、描画情報を滞りなく受信できている場合には、処理はそのままステップＳ１３３に進む。
【０１６１】
一方、ステップＳ１１７で“ＮＯ”の場合には、ＣＰＵコア４２は、ステップＳ１２５で、描画情報を一定時間受信できなかったか否かを判断する。つまり、前回の受信から一定時間経過しても、親機から描画情報を受信できなかったか否かを判断する。
【０１６２】
ステップＳ１２５で“ＹＥＳ”であれば、つまり、通信遅延によって描画情報の受信が遅れている場合には、ＣＰＵコア４２は、ステップＳ１２７で、この子機自身に対応する子キャラクタのいずれかが移動中であるか否かを判断する。たとえば、記憶領域１１２に記憶されている移動軌跡のうち未移動の点が残っているか否かを判定する。それまでに受信した描画情報の子キャラクタの位置情報の識別番号によって当該位置が移動軌跡上のどの点に相当するかが把握されるので、上記判定が可能である。
【０１６３】
ステップＳ１２７で“ＹＥＳ”である場合には、ＣＰＵコア４２は、ステップＳ１２９で、記憶領域１１２に記憶されている移動軌跡情報と記憶領域１２０に記憶されている位置履歴から、該当する子キャラクタ１３２の位置を予測する。移動中の子キャラクタ１３２の位置予測は、位置履歴の現在の座標および方向、前回の座標および方向、ならびに移動軌跡上の座標に基づいてなされる。たとえば、移動軌跡情報記憶領域１１２には、親機に送信した移動軌跡が記憶されているので、位置履歴記憶領域１２０の現在座標に対応付けられた番号（すなわち移動軌跡の各点の識別情報）の次の番号の座標を移動軌跡情報記憶領域１１２から取得して、当該取得した座標を予測位置としてよい。該当する子キャラクタ１３２の予測された座標を示す情報は、予測情報記憶領域１２２に記憶される。
【０１６４】
このように、この実施例では、描画情報の受信が間に合わなかった場合でも、子機に記憶されている移動軌跡情報に基づいて、当該子キャラクタの次の位置を精度良く予測することができる。また、この予測後に描画情報を受信したときに、上述のステップＳ１２３で位置修正を行っても、予測位置の精度が高いので当該子キャラクタを滑らかに移動させることができる。
【０１６５】
ステップＳ１２９を終了すると処理はステップＳ１３１へ進む。また、ステップＳ１２７で“ＮＯ”の場合、つまり、この子機の子キャラクタ１３２が移動していない場合には、処理はそのままステップＳ１３１へ進む。
【０１６６】
ステップＳ１３１では、ＣＰＵコア４２は、残りのキャラクタの位置を記憶領域１２０に記憶されている位置履歴から予測する。つまり、この子機自身の操作対象である子キャラクタ１３２のうち移動していない子キャラクタ１３２、親キャラクタ１３４および他の子機の子キャラクタの位置予測は、位置履歴に記憶されている現在の座標および方向、ならびに前回の座標および方向に基づいてなされる。各キャラクタの予測された座標を示す情報は、予測情報記憶領域１２２に記憶される。ステップＳ１３１を終了すると処理はステップＳ１３３に進む。
【０１６７】
ステップＳ１３３では、ＣＰＵコア４２は、記憶領域１２０の位置履歴を更新する。具体的には、位置履歴記憶領域１２０に記憶されている各キャラクタの現在の座標を前回の座標として記憶する。さらに、各キャラクタの現在の座標の更新を行う。描画情報を受信した場合には、当該描画情報に含まれる各キャラクタの座標を現在の座標として記憶する。一方、予測を行った場合には、予測情報記憶領域１２２に記憶されている各キャラクタの予測された座標を現在の座標として記憶する。
【０１６８】
ステップＳ１３３を終了し、または、ステップＳ１２５で“ＮＯ”の場合には、ＣＰＵコア４２は、ステップＳ１３５で画面生成処理を実行する。これによって、図７または図８に示したようなゲーム画面が生成されてＬＣＤ１２および１４に表示される。親機から描画情報を受信した場合には、各キャラクタは、描画情報に基づく位置および向きで３次元ゲーム空間内に配置される。また、予測が行われた場合には、各キャラクタは、予測情報に基づく位置および向きで３次元ゲーム空間内に配置される。また、地図画面上の各キャラクタのアイコンの位置も描画情報または予測情報の位置から得られる。なお、地図画面上の入力軌跡は、当該子機の記憶領域１１２に取得した移動軌跡情報に基づいて描画される。しかし、親機が各子機に対応する移動軌跡情報を含む描画情報を各子機に送信するようにして、入力軌跡も当該描画情報に基づいて描画されるようにしてもよい。
【０１６９】
ステップＳ１３７では、ＣＰＵコア４２は、ゲーム終了であるか否かを判断する。たとえばゲーム終了指示が親機から送信されたか否かを判断する。ステップＳ１３７で“ＮＯ”であれば、次フレームのゲーム処理を実行すべく図１２のステップＳ８３に戻る。一方、ステップＳ１３７で“ＹＥＳ”であれば、ＣＰＵコア４２は、図示しないゲーム終了処理を実行して、この子機のメイン処理を終了する。
【０１７０】
この実施例によれば、プレイヤが子キャラクタの移動を指示する情報を移動軌跡として取得して、親機で移動軌跡によって当該子キャラクタの移動を制御するようにしたので、親機への移動指示情報の送信において通信遅延が生じても、子キャラクタが移動途中に停止してしまうような恐れがない。具体的には、親機は、移動軌跡すなわちこれから移動しようとしている経路の受信によって、事前に十分な時間分の移動指示情報をまとめて取得しているので、通信遅延が生じても、子キャラクタの移動を続行させることができ、移動中であるにもかかわらず子キャラクタの移動が中断してしまうような事態を回避できる。したがって、通信遅延をプレイヤに感じさせることなくキャラクタを移動させてゲームを進行させることができる。
【０１７１】
また、各子機でのゲーム空間を描画するための描画情報の受信において遅延が生じた場合には、各子機で入力された移動軌跡情報に基づいて当該子キャラクタの位置を予測することができる。当該子機で取得された移動軌跡を使うので、当該子キャラクタの位置の予測が外れることがほとんどない。したがって、描画情報の受信が遅れても、通信遅延をプレイヤにあまり感じさせずに子キャラクタを移動させることが可能である。
【０１７２】
また、子機では、子キャラクタの移動軌跡を、タッチパネル２２に対する連続的な座標指示によって入力するようにした。したがって、プレイヤは直感的な操作でオブジェクトの移動を操作することができる。
【０１７３】
なお、上述の実施例では、ゲーム装置１０はゲーム専用機であったが、他の実施例では、ゲーム装置１０はパーソナルコンピュータ、携帯情報端末、携帯電話など他の形態のコンピュータであってよい。
【０１７４】
また、上述の各実施例では、ゲーム装置１０は、移動軌跡の入力のためのポインティングデバイスの一例としてタッチパネル２２による移動軌跡の入力が行われるようにしていた。しかし、他の実施例では、マウス、トラックパッド、タブレットなどのような画面上の位置を指示することができるポインティングデバイスであればどのようなものでも代用することができる。なお、必要に応じて、入力用の画面にマウスポインタを表示することによって入力位置を明示する。また、ボタンが押されているときを入力有り状態とみなし、かつ、ボタンが放されているときを入力無し状態とみなすことによって、ポインティングデバイスでのキャラクタに対する入力か否かを判別することができる。
【０１７５】
また、上述の各実施例では、通信ゲームシステム２００は、ゲーム空間に存在する複数のオブジェクトの移動などの動作を管理する親機と、子機とで構成されたが、他の実施例では、通信ゲームシステム２００は、サーバコンピュータとゲーム装置１０とで構成されてよく、当該サーバが親機として機能してよい。ただし、このサーバにはプレイヤおよび操作対象としての親オブジェクトが存在しない。具体的には、サーバが、端末としての各ゲーム装置１０からの移動軌跡情報の取得、複数のオブジェクトの移動制御を含むゲーム空間の管理、描画情報の各ゲーム装置１０への送信などの管理処理を実行するようにしてよい。
【図面の簡単な説明】
【０１７６】
【図１】この発明の一実施例のゲーム装置の一例を示す外観図である。
【図２】図１実施例の電気的な構成の一例を示すブロック図である。
【図３】この発明の一実施例の通信ゲームシステムの一例を示す図解図である。
【図４】メモリカードのＲＯＭのメモリマップの一例を示す図解図である。
【図５】親機のＲＡＭのメモリマップの一例を示す図解図である。
【図６】子機のＲＡＭのメモリマップの一例を示す図解図である。
【図７】子機で移動軌跡を入力する際に表示されるゲーム画面の一例を示す図解図である。
【図８】描画情報によって子機で生成したゲーム画面の一例を示す図解図である。
【図９】親機のメイン処理の動作の一例を示すフロー図である。
【図１０】図９のコマンド処理の動作の一例を示すフロー図である。
【図１１】図９の子キャラクタ移動処理の動作の一例を示すフロー図である。
【図１２】子機のメイン処理の動作の一例を示すフロー図である。
【図１３】図１２の続きを示すフロー図である。
【符号の説明】
【０１７７】
１０  …ゲーム装置
１２，１４  …ＬＣＤ
２０  …操作スイッチ
２２  …タッチパネル
２８  …メモリカード
２８ａ  …ＲＯＭ
４２  …ＣＰＵコア
４８  …ＲＡＭ
５０，５２  …ＧＰＵ
５４  …Ｉ／Ｆ回路
５６  …ＬＣＤコントローラ
５８，６０  …ＶＲＡＭ
２００  …通信ゲームシステム
２０２  …ネットワーク
【図１】
0005196729.tif 000002
【図２】
0005196729.tif 000003
【図３】
0005196729.tif 000004
【図４】
0005196729.tif 000005
【図５】
0005196729.tif 000006
【図６】
0005196729.tif 000007
【図７】
0005196729.tif 000008
【図８】
0005196729.tif 000009
【図９】
0005196729.tif 000010
【図１０】
0005196729.tif 000011
【図１１】
0005196729.tif 000012
【図１２】
0005196729.tif 000013
【図１３】
0005196729.tif 000014