通信ゲームシステム
【構成】通信ゲームシステム200は、たとえば、ネットワーク202を介して通信可能であり親機および子機として機能する複数のゲーム装置10を含む。子機では、たとえばプレイヤによるポインティングデバイスの入力に応じて操作対象のオブジェクトの移動軌跡が取得されて親機に送信される。親機では、移動軌跡によってオブジェクトの移動が制御され、移動されたオブジェクトを含む仮想ゲーム空間を描画するための描画情報が子機に送信される。子機では、受信した描画情報によって操作対象のオブジェクトを含むゲーム画面を生成して表示する。
【効果】移動軌跡によってオブジェクトを移動させるようにしたので、通信遅延が生じてもオブジェクトの移動を続行することができ、プレイヤに通信遅延を感じさせない。
【効果】移動軌跡によってオブジェクトを移動させるようにしたので、通信遅延が生じてもオブジェクトの移動を続行することができ、プレイヤに通信遅延を感じさせない。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、通信ゲームシステムに関し、特にたとえば、通信ネットワークを介して通信可能な複数のコンピュータを含み、仮想ゲーム空間に複数のオブジェクトが登場する通信ゲームが実行される、通信ゲームシステムに関する。
【背景技術】
【0002】
この種の通信ゲームシステムの一例が特許文献1に開示されている。特許文献1の技術は、ゲームサーバと通信端末がネットワークを介して接続されたネットワークゲームシステムであり、ゲームサーバで各端末のキャラクタ(オブジェクト)の情報を示すフラグの管理が行われ、変化のあった情報のみが他の端末に送信される。具体的には、端末BでキャラクタBを移動させる操作指示が入力されると、移動行動を指示するリクエストが当該端末Bからゲームサーバに送信される。このリクエストに応じて、ゲームサーバは、キャラクタBの移動処理を行い、フラグテーブルに、当該キャラクタBの移動変更指示を他の端末Aに送信するための情報を書き込む。そして、ゲームサーバは、キャラクタB移動変更指示と位置情報を端末Aに送信する。これによって、端末Aでは、キャラクタBの移動が表示されることとなる。
【特許文献1】特開2003−181146号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかしながら、サーバと端末間または複数のゲーム装置間にネットワークが介在すると、通信遅延が生じることによって、端末間やゲーム装置間で食い違いが発生する恐れがあった。たとえば、キー操作によってキャラクタの移動方向を指示するような場合、端末で連続的な移動が入力されていたとしても、通信遅延によって移動指示データの受信が遅れると、ゲームサーバの移動処理では、キャラクタの移動が途中で停止されるという問題があった。そして、そのような実際の入力と異なる移動情報が他の端末に送信されてしまう。
【0004】
一方、サーバや親機が端末や子機からキャラクタの移動指示を含む操作データを集めて一括してゲーム処理を行い、処理結果をすべての端末や子機に送信するような通信ゲームシステムも存在している。このようなシステムでは、通信遅延によってサーバや親機から処理結果データが表示タイミングまでに届かないとき、端末や子機はキャラクタの移動を続行することが困難となり、端末や子機では実際の入力とは異なり当該キャラクタが移動を止めてしまうという問題があった。
【0005】
それゆえに、この発明の主たる目的は、新規な、通信ゲームシステム、ゲーム装置、管理コンピュータおよびゲームプログラムを提供することである。
【0006】
この発明の他の目的は、通信遅延をプレイヤに感じさせることなくオブジェクトの移動を制御できる、通信ゲームシステム、ゲーム装置、管理コンピュータおよびゲームプログラムを提供することである。
【課題を解決するための手段】
【0007】
第1の発明(請求項1の発明)は、仮想ゲーム空間に登場する複数のオブジェクトの移動を管理する管理コンピュータと、管理コンピュータと通信可能に接続されるかつ複数のオブジェクトのうち少なくとも1つのオブジェクトを操作対象としてプレイヤに操作させる操作手段を備えるゲーム装置とを含む、通信ゲームシステムである。ゲーム装置は、軌跡取得手段および軌跡送信手段を備える。軌跡取得手段は、操作手段によって入力される操作対象のオブジェクトの移動軌跡を取得する。軌跡送信手段は、軌跡取得手段によって取得された移動軌跡を管理コンピュータに送信する。管理コンピュータは、軌跡受信手段、移動制御手段および描画情報送信手段を備える。軌跡受信手段は、軌跡送信手段からの移動軌跡を受信する。移動制御手段は、軌跡受信手段によって受信した移動軌跡によって仮想ゲーム空間における操作対象のオブジェクトの移動を制御する。描画情報送信手段は、移動制御手段によって移動されたオブジェクトを含む仮想ゲーム空間を描画するための描画情報をゲーム装置に送信する。ゲーム装置は、描画情報受信手段および画面表示手段をさらに備える。描画情報受信手段は、描画情報送信手段からの描画情報を受信する。画面表示手段は、描画情報受信手段によって受信した描画情報によって、操作対象のオブジェクトを含むゲーム画面を生成して表示する。
【0008】
請求項1の発明では、通信ゲームシステム(200:後述する実施例で相当する参照符号。以下同じ。)は、管理コンピュータ(10)およびゲーム装置(10)含む。この通信ゲームシステムでは、仮想ゲーム空間に複数のオブジェクトが登場する通信ゲームが実行される。ゲーム装置のプレイヤは、操作手段(22)によって複数のオブジェクト(132)のうちの少なくとも1つのオブジェクトを操作する。複数のオブジェクトの移動は管理コンピュータによって管理される。管理コンピュータは、たとえば、ゲーム装置とネットワーク(202)を介して接続されるサーバであってよい。あるいは、通信ゲームシステムがサーバを含まず複数のゲーム装置を含む場合、ゲーム装置の1つが管理コンピュータすなわち親機として機能してよい。ゲーム装置の軌跡取得手段(42、54、74、88、S99)は、操作手段によって入力される操作対象のオブジェクトの移動軌跡を取得する。たとえば、操作手段はタッチパネルであり、このタッチパネルで連続的に検出される複数の座標に基づいて、このゲーム装置の操作対象のオブジェクトの移動しようとする経路が取得される。軌跡送信手段(42、64、90、S91、S103、S113)は移動軌跡を管理コンピュータに送信する。これに応じて、管理コンピュータの軌跡受信手段(42、64、80、S7、S9)は移動軌跡を受信する。移動制御手段(42、82、S11)は、受信した移動軌跡によって、送信してきたゲーム装置の操作対象のオブジェクトの移動を制御する。これによって、当該オブジェクトは移動軌跡に沿って仮想ゲーム空間内を移動する。描画情報送信手段(42、64、84、S15)は、移動されたオブジェクトを含む仮想ゲーム空間を描画するための描画情報をゲーム装置に送信する。描画情報は、たとえば、ゲーム空間に登場するオブジェクトの位置、向きおよびモーションに関する情報を含む。これに応じて、ゲーム装置の描画情報受信手段(42、64、92、S117、S119)は、親機からの描画情報を受信する。画面表示手段(42、50、52、60、76、S135)は、受信した描画情報によって、操作対象のオブジェクトを含むゲーム画面を生成して表示する。これによって、入力された移動軌跡に沿って移動するオブジェクトが表示される。
【0009】
請求項1の発明によれば、ゲーム装置からオブジェクトの移動軌跡を取得し、管理コンピュータでオブジェクトの移動を制御するようにした。そのため、オブジェクトの移動しようとする経路を予め取得しているので、通信遅延が生じても当該オブジェクトの移動を進めることができ、プレイヤに通信遅延を感じさせずにオブジェクトの移動を制御できる。
【0010】
請求項2の発明は、請求項1の発明に従属し、軌跡送信手段は、操作手段からの移動軌跡の入力が途切れたときに入力終了情報をさらに送信し、移動制御手段は、入力終了情報を受信したことを条件として、オブジェクトの移動を開始する。
【0011】
請求項2の発明では、ゲーム装置の軌跡送信手段(S109−S113)は、移動軌跡の入力が途切れたと判定されるときに、入力終了情報を管理コンピュータにさらに送信する。管理コンピュータの移動制御手段(S45、S49、S65、S71)は、入力終了情報を受信したことを条件として、オブジェクトの移動を開始する。したがって、ゲーム装置で入力された移動軌跡を全て取得してから管理コンピュータで当該オブジェクトを移動させ始めるので、通信遅延によって当該オブジェクトの移動が中断されてしまうようなことがない。
【0012】
請求項3の発明は、請求項1または2の発明に従属し、軌跡取得手段は、移動軌跡上の点の数が第1閾値以上になったとき、当該移動軌跡の入力を受け付けない。
【0013】
請求項3の発明では、軌跡取得手段は、移動軌跡上の点の数が所定の第1閾値以上になったと判定されるとき(S97)、当該移動軌跡の入力を受け付けないようにした。このように、移動軌跡として取得される点の数に上限を設けて、入力可能な移動軌跡の長さを制限するようにしたので、一度の入力でオブジェクトを移動可能な距離を適切な範囲に限定することができる。
【0014】
請求項4の発明は、請求項1ないし3の発明のいずれかに従属し、軌跡送信手段は、軌跡取得手段による取得中に移動軌跡の長さが第2閾値以上になるごとに、逐次移動軌跡を送信する。
【0015】
請求項4の発明では、軌跡送信手段は、移動軌跡の取得中に長さが所定の第2閾値以上になったと判定されるごとに(S101)、当該移動軌跡を管理コンピュータに逐次送信するようにした。このように、一定長さごとに移動軌跡を逐次送信するようにしたので、一度に送信するデータ量を低減することができる。
【0016】
請求項5の発明は、請求項1ないし4の発明のいずれかに従属し、軌跡取得手段は、操作対象のオブジェクトに対して移動軌跡が入力されていない状態から入力されている状態に遷移したとき、取得済みの当該オブジェクトの移動軌跡をクリアする。
【0017】
請求項5の発明では、軌跡取得手段(S83−S89)は、操作対象のオブジェクトに対して移動軌跡が入力され始めたと判定されるときに、過去に取得された当該オブジェクトに対する移動軌跡をクリアする。つまり、ゲーム装置では、操作対象のオブジェクトに対して、次の移動軌跡の入力が開始されるまで、取得済みの移動軌跡情報を記憶しておくことができるので、必要に応じて当該移動軌跡情報に基づいてゲーム処理(たとえば、描画情報を受信できなかったときの位置予測)を行うことができる。
【0018】
請求項6の発明は、請求項1ないし5の発明のいずれかに従属し、軌跡送信手段は、操作対象のオブジェクトに対して移動軌跡が入力されていない状態から入力されている状態に遷移したとき、オブジェクトの移動軌跡のクリア情報をさらに送信し、移動制御手段は、オブジェクトの移動軌跡のクリア情報を受信したとき、受信済みの当該オブジェクトの移動軌跡をクリアする。
【0019】
請求項6の発明では、軌跡送信手段(S83−S87、S91)は、操作対象のオブジェクトに対して移動軌跡が入力され始めたと判定されるときに、オブジェクトの移動軌跡のクリア情報を管理コンピュータに送信する。管理コンピュータの移動制御手段(S31−S35)は、上記クリア情報を受信したとき、受信済みの当該オブジェクトの移動軌跡をクリアする。このように、管理コンピュータでは、ゲーム装置で次の移動軌跡の入力が開始されたときに、受信済みの移動軌跡をクリアするので、受信済みの移動軌跡に基づく移動を実行中の場合には、当該移動を停止することができる。
【0020】
請求項7の発明は、請求項1ないし6の発明のいずれかに従属し、軌跡取得手段は、複数のオブジェクトから操作対象として選択されたオブジェクトを特定して、当該オブジェクトの移動軌跡を取得する。
【0021】
請求項7の発明では、軌跡取得手段(S85、S87、S99)によって、操作対象として選択されたオブジェクトごとの移動軌跡を取得することができるので、当該ゲーム装置のプレイヤは、移動軌跡入力によって複数のキャラクタを操作できる。
【0022】
請求項8の発明は、請求項1ないし7の発明のいずれかに従属し、操作手段はポインティングデバイスであり、軌跡取得手段は、ポインティングデバイスの入力から連続的に検出される複数の座標を移動軌跡として取得する。
【0023】
請求項8の発明では、ゲーム装置では、操作手段としてたとえばタッチパネルなどのポインティングデバイスが適用され、当該ポインティングデバイスの入力から連続的に検出された複数の座標が移動軌跡として取得される。このように、プレイヤは、オブジェクトの移動軌跡をポインティングデバイスでの連続的な座標指示によって入力することができるので、直感的な操作でオブジェクトの移動を操作することができる。
【0024】
請求項9の発明は、請求項1ないし8の発明のいずれかに従属し、管理コンピュータは、当該管理コンピュータの操作対象であるオブジェクトの動作をプレイヤが指示するための動作指示手段をさらに備え、移動制御手段は、当該管理コンピュータの操作対象のオブジェクトの移動を動作指示手段による移動指示に基づいて制御する。
【0025】
請求項9の発明では、管理コンピュータは、動作指示手段(20)をさらに備えており、つまり、この場合の管理コンピュータは親機として機能するゲーム装置であり、当該親機のプレイヤが操作するオブジェクト(134)が、子機として機能するゲーム装置のオブジェクトとともに仮想ゲーム空間に登場する。当該親機の操作対象のオブジェクトの移動は、当該親機のプレイヤによる動作指示手段の移動指示に基づいて制御される(S3、S5)。したがって、子機のオブジェクトを移動軌跡に沿って移動させ、一方、親機のオブジェクトを動作指示によってリアルタイムに移動させることができるので、通信遅延の悪影響を回避可能な上に、興趣性および戦略性の高い通信ゲームを実現できる。
【0026】
請求項10の発明は、請求項1ないし9の発明のいずれかに従属し、ゲーム装置は、描画情報送信手段からの描画情報を一定時間受信しないとき、少なくとも操作対象のオブジェクトの位置を、軌跡取得手段によって取得した移動軌跡に基づいて予測する予測手段をさらに備える。
【0027】
請求項10の発明では、ゲーム装置の予測手段(S125−S131)は、描画情報を一定時間受信できなかったときには、少なくとも当該ゲーム装置の操作対象のオブジェクトの位置を、移動軌跡に基づいて予測する。したがって、描画情報の受信が遅れたとしても、ゲーム装置では、記憶された移動軌跡に基づいて、操作対象のオブジェクトの次の位置を精度良く予測することができる。さらに、予測が正確に行えるので、予測後に描画情報を受信したときに位置修正を行っても、当該オブジェクトを滑らかに移動させることができる。
【0028】
第2の発明(請求項11の発明)は、通信ゲームシステムにおいて仮想ゲーム空間に登場する複数のオブジェクトの移動を管理する管理コンピュータと通信可能に接続されるゲーム装置である。このゲーム装置は、操作手段、軌跡取得手段、軌跡送信手段、描画情報受信手段、および画面表示手段を備える。操作手段は、複数のオブジェクトのうち少なくとも1つのオブジェクトを操作対象としてプレイヤに操作させるためのものである。軌跡取得手段は、操作手段によって入力される操作対象のオブジェクトの移動軌跡を取得する。軌跡送信手段は、軌跡取得手段によって取得される移動軌跡を管理コンピュータに送信する。描画情報受信手段は、移動軌跡によって移動されたオブジェクトを含む仮想ゲーム空間を描画するための描画情報を管理コンピュータから受信する。画面表示手段は、描画情報受信手段によって受信した描画情報によって、操作対象のオブジェクトを含むゲーム画面を生成して表示する。
【0029】
請求項11の発明は、第1の発明の通信ゲームシステムにおいて適用されるゲーム装置であり、第1の発明と同様にして、通信遅延を感じさせずにオブジェクトを移動させることができる通信ゲームを実現できる。
【0030】
第3の発明(請求項12の発明)は、通信ゲームシステムにおいて仮想ゲーム空間に登場する複数のオブジェクトの移動を管理する管理コンピュータと通信可能に接続される、かつ、複数のオブジェクトのうち少なくとも1つのオブジェクトを操作対象としてプレイヤに操作させる操作手段を備えるゲーム装置のゲームプログラムである。このゲームプログラムは、ゲーム装置を、軌跡取得手段、軌跡送信手段、描画情報受信手段、および画面表示手段として機能させる。軌跡取得手段は、操作手段によって入力される操作対象のオブジェクトの移動軌跡を取得する。軌跡送信手段は、軌跡取得手段によって取得される移動軌跡を管理コンピュータに送信する。描画情報受信手段は、移動軌跡によって移動されたオブジェクトを含む仮想ゲーム空間を描画するための描画情報を管理コンピュータから受信する。画面表示手段は、描画情報受信手段によって受信した描画情報によって、操作対象のオブジェクトを含むゲーム画面を生成して表示する。
【0031】
請求項12の発明は、第1の発明の通信ゲームシステムにおいて適用される第2のゲーム装置のゲームプログラムであり、第2の発明と同様の効果を奏する。
【0032】
第4の発明(請求項13の発明)は、通信ゲームシステムにおいて仮想ゲーム空間に登場する複数のオブジェクトのうち少なくとも1つのオブジェクトを操作対象としてプレイヤに操作させる操作手段を備えるゲーム装置と通信可能に接続される、かつ、複数のオブジェクトの移動を管理する管理コンピュータである。この管理コンピュータは、軌跡受信手段、移動制御手段、および描画情報送信手段を備える。軌跡受信手段は、ゲーム装置の操作手段によって取得されて送信されるオブジェクトの移動軌跡を受信する。移動制御手段は、軌跡受信手段によって受信した移動軌跡によって仮想ゲーム空間における操作対象のオブジェクトの移動を制御する。描画情報送信手段は、移動制御手段によって移動されたオブジェクトを含む仮想ゲーム空間を描画するための描画情報をゲーム装置に送信する。
【0033】
請求項13の発明は、第1の発明の通信ゲームシステムにおいて適用される管理コンピュータであり、第1の発明と同様にして、通信遅延を感じさせずにオブジェクトを移動させることができる通信ゲームを実現できる。
【0034】
第5の発明(請求項14の発明)は、通信ゲームシステムにおいて仮想ゲーム空間に登場する複数のオブジェクトのうち少なくとも1つのオブジェクトを操作対象としてプレイヤに操作させる操作手段を備えるゲーム装置と通信可能に接続される、かつ、複数のオブジェクトの移動を管理する管理コンピュータのゲームプログラムである。このゲームプログラムは、管理コンピュータを、軌跡受信手段、移動制御手段、および描画情報送信手段として機能させる。軌跡受信手段は、ゲーム装置の操作手段によって取得されて送信されるオブジェクトの移動軌跡を受信する。移動制御手段は、軌跡受信手段によって受信した移動軌跡によって仮想ゲーム空間における操作対象のオブジェクトの移動を制御する。描画情報送信手段は、移動制御手段によって移動されたオブジェクトを含む仮想ゲーム空間を描画するための描画情報をゲーム装置に送信する。
【0035】
請求項14の発明は、第1の発明の通信ゲームシステムにおいて適用される第4の発明の管理コンピュータのゲームプログラムであり、第4の発明と同様の効果を奏する。
【0036】
第6の発明(請求項15の発明)は、仮想ゲーム空間に登場する複数のオブジェクトの移動を管理する親機と、複数のオブジェクトのうち少なくとも1つのオブジェクトを操作対象としてプレイヤに操作させる操作手段を備える子機としてそれぞれ機能する複数のゲーム装置を含む通信ゲームシステムのためのゲームプログラムである。このゲームプログラムは、子機として動作する場合のゲーム装置を、軌跡取得手段、軌跡送信手段、描画情報受信手段、および画面表示手段として機能させる。軌跡取得手段は、操作手段によって入力される当該操作対象のオブジェクトの移動軌跡を取得する。軌跡送信手段は、軌跡取得手段によって取得される移動軌跡を親機に送信する。描画情報受信手段は、移動軌跡によって移動されたオブジェクトを含む仮想ゲーム空間を描画するための描画情報を親機から受信する。画面表示手段は、描画情報受信手段によって受信した描画情報によって、操作対象のオブジェクトを含むゲーム画面を生成して表示する。さらに、このゲームプログラムは、親機として動作する場合のゲーム装置を、軌跡受信手段、移動制御手段、および描画情報送信手段として機能させる。軌跡受信手段は、子機から送信されるオブジェクトの移動軌跡を受信する。移動制御手段は、軌跡受信手段によって受信した移動軌跡によって仮想ゲーム空間における操作対象のオブジェクトの移動を制御する。描画情報送信手段は、移動制御手段によって移動されたオブジェクトを含む仮想ゲーム空間を描画するための描画情報を子機に送信する。
【0037】
請求項15の発明は、複数のゲーム装置によって第1の発明の通信ゲームシステムを実現するためのゲームプログラムであり、複数のゲーム装置のそれぞれに適用されてゲーム装置を親機および子機として機能させる。この請求項15の発明によれば、上述の第1の発明と同様にして、プレイヤに通信遅延を感じさせずにオブジェクトの移動を制御できる。
【発明の効果】
【0038】
この発明によれば、プレイヤが当該オブジェクトの移動を指示する情報を移動軌跡としてゲーム装置ないし子機で取得して、管理コンピュータないし親機で移動軌跡によって当該オブジェクトの移動を制御するようにしたので、通信遅延が生じても、オブジェクトの移動を続行させることができ、移動中であるにもかかわらずオブジェクトの移動が中断してしまうような事態を回避できる。したがって、通信遅延をプレイヤに感じさせることなくオブジェクトを移動させてゲームを進行させることができる。
【0039】
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【発明を実施するための最良の形態】
【0040】
図1を参照して、この発明の実施例であるゲーム装置10は、第1の液晶表示器(LCD)12および第2のLCD14を含む。このLCD12およびLCD14は、所定の配置位置となるようにハウジング16に収納される。この実施例では、ハウジング16は、上側ハウジング16aと下側ハウジング16bとによって構成され、LCD12は上側ハウジング16aに収納され、LCD14は下側ハウジング16bに収納される。したがって、LCD12とLCD14とは縦(上下)に並ぶように近接して配置される。
【0041】
なお、この実施例では、表示器としてLCDを用いるようにしてあるが、LCDに代えて、EL(Electronic Luminescence)ディスプレイやプラズマディスプレイを用いるようにしてもよい。
【0042】
図1からも分かるように、上側ハウジング16aは、LCD12の平面形状よりも少し大きな平面形状を有し、一方主面からLCD12の表示面を露出するように開口部が形成される。一方、下側ハウジング16bは、その平面形状が上側ハウジング16aよりも横長に選ばれ、横方向の略中央部にLCD14の表示面を露出するように開口部が形成される。また、下側ハウジング16bには、音抜き孔18が形成されるとともに、操作スイッチ20(20a,20b,20c,20d,20e,20Lおよび20R)が設けられる。
【0043】
また、上側ハウジング16aと下側ハウジング16bとは、上側ハウジング16aの下辺(下端)と下側ハウジング16bの上辺(上端)の一部とが回動可能に連結されている。したがって、たとえば、ゲームをプレイしない場合には、LCD12の表示面とLCD14の表示面とが対面するように、上側ハウジング16aを回動させて折りたたんでおけば、LCD12の表示面およびLCD14の表示面に傷がつくなどの破損を防止することができる。ただし、上側ハウジング16aと下側ハウジング16bとは、回動可能に連結せずに、それらを一体的(固定的)に設けたハウジング16を形成するようにしてもよい。
【0044】
操作スイッチ20は、方向指示スイッチ(十字スイッチ)20a,スタートスイッチ20b、セレクトスイッチ20c、動作スイッチ(Aボタン)20d、動作スイッチ(Bボタン)20e、動作スイッチ(Lボタン)20Lおよび動作スイッチ(Rボタン)20Rを含む。スイッチ20a,20bおよび20cは、下側ハウジング16bの一方主面において、LCD14の左側に配置される。また、スイッチ20dおよび20eは、下側ハウジング16bの一方主面において、LCD14の右側に配置される。さらに、スイッチ20Lおよびスイッチ20Rは、それぞれ、下側ハウジング16bの上端(天面)の一部であり上側ハウジング16aとの連結部以外の部分において、当該連結部を挟むようにして左右に配置される。
【0045】
方向指示スイッチ20aは、ディジタルジョイスティックとして機能する。4つの押圧部の1つを操作することによって、プレイヤによって操作可能なプレイヤキャラクタ(またはプレイヤオブジェクト)やカーソルの移動方向の指示等が可能である。スタートスイッチ20bは、プッシュボタンで構成され、ゲームの開始(再開)、や一時停止等のために用いられる。セレクトスイッチ20cは、プッシュボタンで構成され、ゲームモードの選択等のために用いられる。
【0046】
動作スイッチ20dすなわちAボタンは、プッシュボタンで構成され、方向指示以外の動作、すなわち、プレイヤキャラクタに打つ(パンチ)、投げる、つかむ(取得)、乗る、ジャンプする、切る等の任意の動作(アクション)をさせることができる。たとえば、アクションゲームにおいては、ジャンプ、パンチ、武器を動かす等を指示することができる。また、ロールプレイングゲーム(RPG)やシミュレーションRPGにおいては、アイテムの取得、武器やコマンドの選択および決定等を指示することができる。動作スイッチ20eすなわちBボタンは、プッシュボタンで構成され、セレクトスイッチ20cで選択したゲームモードの変更やAボタン20dで決定したアクションの取り消し等のために用いられる。
【0047】
動作スイッチ20L(Lボタン)および動作スイッチ20R(Rボタン)は、プッシュボタンで構成され、Lボタン20LおよびRボタン20Rは、Aボタン20dおよびBボタン20eと同様の操作に用いることができ、また、Aボタン20dおよびBボタン20eの補助的な操作に用いることができる。
【0048】
また、LCD14の上面には、タッチパネル22が装着される。タッチパネル22としては、たとえば、抵抗膜方式、光学式(赤外線方式)および静電容量結合式のいずれかの種類のものを用いることができる。また、タッチパネル22は、その上面をスティック24ないしはペン(スタイラスペン)或いは指(以下、これらを「スティック24等」という場合がある。)で、押圧したり、撫でたり、触れたり、叩いたりすることにより操作すると、スティック24等によって操作された(つまり、タッチされた)位置の座標を検出して、当該検出座標に対応する座標データを出力する。
【0049】
なお、この実施例では、LCD14(LCD12も同じ、または略同じ。)の表示面の解像度は256dot×192dotであり、タッチパネル22の検出精度(操作面)も表示画面に対応して256dot×192dotとしてある。ただし、図1では、タッチパネル22を分かり易く示すために、タッチパネル22をLCD14と異なる大きさで示してあるが、LCD14の表示画面の大きさとタッチパネル22の操作面の大きさとは同じ大きさである。なお、タッチパネル22の検出精度は、表示画面の解像度よりも低くてもよく、高くてもよい。
【0050】
LCD12およびLCD14には異なるゲーム画面が表示され得る。また、たとえば、2つのLCD12および14を合わせて1つの画面として用いることにより、プレイヤキャラクタが倒さなければならない巨大な怪物(敵キャラクタ)を表示することもできる。プレイヤはスティック24等でタッチパネル22を操作することにより、LCD14の画面に表示されるプレイヤキャラクタ、敵キャラクタ、アイテムキャラクタ、文字情報、アイコン等のキャラクタ画像を指示したり、コマンドを選択したりすることができる。なお、ゲームの種類によっては、その他の入力指示、たとえばLCD14に表示されたアイコンの選択または操作、座標入力指示等に用いることもできる。
【0051】
このように、ゲーム装置10は、2画面分の表示部となるLCD12およびLCD14を有し、いずれか一方(この実施例では、LCD14)の上面にタッチパネル22が設けられるので、2画面(12,14)と2系統の操作部(20,22)とを有する構成になっている。
【0052】
また、この実施例では、スティック24は、たとえば上側ハウジング16aの側面(右側面)近傍に設けられる収納部(穴ないし凹部)26に収納することができ、必要に応じて取り出される。ただし、スティック24を設けない場合には、収納部26を設ける必要もない。
【0053】
さらに、ゲーム装置10はメモリカード(またはゲームカートリッジ)28を含む。このメモリカード28は着脱自在であり、下側ハウジング16bの裏面ないしは底面(下端)に設けられる挿入口30から挿入される。図1では省略するが、挿入口30の奥部には、メモリカード28の挿入方向先端部に設けられるコネクタ(図示せず)と接合するためのコネクタ46(図2参照)が設けられており、したがって、メモリカード28が挿入口30に挿入されると、コネクタ同士が接合され、ゲーム装置10のCPUコア42(図2参照)がメモリカード28にアクセス可能となる。
【0054】
なお、図1では表現できないが、下側ハウジング16bの音抜き孔18と対応する位置であり、この下側ハウジング16bの内部には、スピーカ32(図2参照)が設けられる。
【0055】
また、図1では省略するが、たとえば、下側ハウジング16bの裏面側には、電池収容ボックスが設けられ、また、下側ハウジング16bの底面側には、電源スイッチ、音量スイッチ、外部拡張コネクタおよびイヤフォンジャックなども設けられる。
【0056】
図2はゲーム装置10の電気的な構成を示すブロック図である。図2を参照して、ゲーム装置10は電子回路基板40を含み、この電子回路基板40にはCPUコア42等の回路コンポーネントが実装される。CPUコア42は、バス44を介してコネクタ46に接続されるとともに、RAM48、第1のグラフィック処理ユニット(GPU)50、第2のGPU52、入出カインターフェイス回路(以下、「I/F回路」という。)54、LCDコントローラ60およびワイヤレス通信部64に接続される。
【0057】
コネコタ46には、上述したように、メモリカード28が着脱自在に接続される。メモリカード28は、ROM28aおよびRAM28bを含み、図示は省略するが、ROM28aおよびRAM28bは、互いにバスで接続され、さらに、コネクタ46と接合されるコネクタ(図示せず)に接続される。したがって、上述したように、CPUコア42は、ROM28aおよびRAM28bにアクセスすることができるのである。
【0058】
ROM28aは、ゲーム装置10で実行すべきゲーム(仮想ゲーム)のためのゲームプログラム、画像データ(キャラクタ画像、背景画像、アイテム画像、アイコン(ボタン)画像、メッセージ画像など)およびゲームに必要な音(音楽)のデータ(音データ)等を予め記憶する。RAM(バックアップRAM)28bは、そのゲームの途中データやゲームの結果データを記憶(セーブ)する。
【0059】
RAM48は、バッファメモリないしはワーキングメモリとして使用される。つまり、CPUコア42は、メモリカード28のROM28aに記憶されたゲームプログラム、画像データおよび音データ等をRAM48にロードし、ロードしたゲームプログラムを実行する。また、CPUコア42は、ゲームの進行に応じて発生または取得されるデータ(ゲームデータやフラグデータ等)をRAM48に記憶しつつゲーム処理を実行する。
【0060】
なお、ゲームプログラム、画像データおよび音データ等は、ROM28aから一度に全部または必要に応じて部分的にかつ順次的に読み出され、RAM48に記憶される。ただし、この実施例のように、固定的にプログラムおよびデータを記憶している記憶媒体をCPUコア42に直接接続可能なゲーム装置10の場合には、CPUコア42が記憶媒体に直接アクセスできるので、RAM48にプログラムやデータを転送して保持しなくてよい。
【0061】
GPU50およびGPU52は、それぞれ、描画手段の一部を形成し、たとえばシングルチップASICで構成され、CPUコア42からのグラフィックスコマンド(graphics command :作画命令)を受け、そのグラフィックスコマンドに従ってゲーム画像データを生成する。ただし、CPUコア42は、グラフィックスコマンドに加えて、ゲーム画像データの生成に必要な画像生成プログラム(ゲームプログラムに含まれる。)をGPU50およびGPU52のそれぞれに与える。
【0062】
また、GPU50には、第1のビデオRAM(以下、「VRAM」という。)56が接続され、GPU52には、第2のVRAM58が接続される。GPU50およびGPU52が作画コマンドを実行するにあたって必要なデータ(画像データ:キャラクタデータやテクスチャ等のデータ)は、GPU50およびGPU52が、それぞれ、第1のVRAM56および第2のVRAM58にアクセスして取得する。ただし、CPUコア42は、描画に必要な画像データをRAM48から読み出し、GPU50およびGPU52を介して第1のVRAM56および第2のVRAM58に書き込む。GPU50はVRAM56にアクセスして表示のためのゲーム画像データを作成し、その画像データをVRAM56の描画バッファに記憶する。GPU52はVRAM58にアクセスして描画のためのゲーム画像データを作成し、その画像データをVRAM58の描画バッファに記憶する。描画バッファとしてはフレームバッファまたはラインバッファ等が採用されてよい。
【0063】
VRAM56およびVRAM58は、LCDコントローラ60に接続される。LCDコントローラ60はレジスタ62を含み、レジスタ62はたとえば1ビットで構成され、CPUコア42の指示によって「0」または「1」の値(データ値)を記憶する。LCDコントローラ60は、レジスタ62のデータ値が「0」である場合には、GPU50によって作成されたゲーム画像データをLCD12に出力し、GPU52によって作成されたゲーム画像データをLCD14に出力する。一方、レジスタ62のデータ値が「1」である場合には、LCDコントローラ60は、GPU50によって作成されたゲーム画像データをLCD14に出力し、GPU52によって作成されたゲーム画像データをLCD12に出力する。
【0064】
なお、LCDコントローラ60は、VRAM56およびVRAM58から直接画像データを読み出すことができるし、あるいはGPU50およびGPU52を介してVRAM56およびVRAM58から画像データを読み出すこともできる。
【0065】
また、VRAM56およびVRAM58はRAM48に設けられてもよいし、あるいはその描画バッファおよびZバッファがRAM48に設けられてもよい。
【0066】
I/F回路54には、操作スイッチ20,タッチパネル22およびスピーカ32が接続される。ここで、操作スイッチ20は、上述したスイッチ20a,20b,20c,20d,20e,20Lおよび20Rであり、操作スイッチ20が操作されると、対応する操作信号(操作データ)がI/F回路54を介してCPUコア42に入力される。また、タッチパネル22から出力される操作データ(座標データ)がI/F回路54を介してCPUコア42に入力される。さらに、CPUコア42は、ゲーム音楽(BGM)、効果音またはゲームキャラクタの音声(擬制音)などのゲームに必要な音データをRAM48から読み出し、I/F回路54を介してスピーカ32からその音を出力する。
【0067】
ワイヤレス通信部64は他のゲーム装置10や通信機器との間で無線によってデータを送受信するための通信手段である。ワイヤレス通信部64は、相手方への通信データを無線信号に変調してアンテナから送信し、また、相手方からの無線信号を同じアンテナで受信して通信データに復調する。このワイヤレス通信部64を介して、ゲーム装置10は、他のゲーム装置10との間でデータを通信して通信ゲームを実行する。ワイヤレス通信部64は、たとえばIEEE802.11(Wi−Fi)に対応しており、無線LANによって他のゲーム装置10や通信機器とデータを通信することが可能である。ゲーム装置10は、たとえば近くに存在する他のゲーム装置10との間で無線LANによって通信ゲームを実行してよい。また、ゲーム装置10は、TCP/IPプロトコルを用いてインターネットを介して他のコンピュータ(サーバおよびゲーム装置10等)とデータを通信することができる。したがって、ゲーム装置10は、たとえば家庭内LANや公衆無線LANの無線LANアクセスポイントからインターネットサービスプロバイダ(ISP)にアクセスし、ISPを介してインターネットないしWAN(Wide Area Network)のようなネットワークに接続し、離れた場所でインターネットに接続している他のゲーム装置10との間で通信ゲームを実行することができる。
【0068】
なお、ワイヤレス通信部64は無線LAN規格の代わりにたとえばBluetoothのような他の無線通信規格に従って動作してもよい。
【0069】
また、このワイヤレス通信部64は、たとえば時分割多元接続方式をベースとした無線通信を実行することも可能である。近くの他のゲーム装置10との間での通信ゲームはこの無線通信方式で実行されてよい。たとえば、各ゲーム装置10には1通信サイクル中にタイムスロットが割り当てられ、割り当てられたスロットで自己のデータを送信する。なお、このような無線通信の技術は、本件出願人による特開2004−135778号公報および特開2004−136009号公報などに詳細に開示されるので参照されたい。
【0070】
複数台の上述のようなゲーム装置10を用いて、この実施例の通信ゲームシステム200が構成される。すなわち、図3に示すように、この通信ゲームシステム200では、複数のゲーム装置10がインターネットなどのネットワーク202を介して互いに通信可能に接続される。なお、各ゲーム装置10は、無線によって図示しないアクセスポイントからネットワーク202に接続している。
【0071】
これら複数のゲーム装置10間で、仮想ゲーム空間に複数のオブジェクトが登場する通信ゲームが実行される。各ゲーム装置10には、複数のオブジェクトのうち1または複数のオブジェクトが操作対象として割り当てられている。つまり、各ゲーム装置10のプレイヤは、1または複数のオブジェクトを自らのプレイヤオブジェクトとして操作する。
【0072】
また、この実施例では、複数のゲーム装置10のうちの1つが親機となり、その他は子機となって、親機と子機との間でデータが送受信される。なお、自機が親機になるか子機になるかはたとえば選択画面で各プレイヤによって選択される。
【0073】
複数のゲーム装置10間で整合性を取り食違いを生じさせないために、親機でゲーム空間の管理が行われる。具体的には、親機はゲーム空間内の複数のオブジェクトの移動などの動作制御を管理する。各子機は、当該子機で当該プレイヤによって入力されたオブジェクトに対する操作の情報を親機に送信する。親機は、各子機からの操作情報を受信し、当該受信した操作情報に基づいて、当該子機に対応するオブジェクトを移動させる。さらに、親機は、各オブジェクトが移動されたゲーム空間の状態を更新し、当該移動後のオブジェクトを含むゲーム空間を描画するための描画情報を生成して、各子機に描画情報を送信する。各子機は、描画情報を受信して、当該描画情報によってゲーム画面を生成して表示する。このようにして、各ゲーム装置10では、同期が取られ、矛盾のないゲーム画面が表示される。
【0074】
ところが、通信ゲームシステム200では、ネットワーク202上の中継機器の通過や通信距離などによって通信遅延が生ずる。たとえば、子機での方向指示スイッチ20aの操作があるたびにあるいは連続的な操作が行われている場合に子機が1つ1つの操作情報を親機に送信するような方法では、親機では通信遅延によって当該操作情報の受信が遅れることがあり得る。このような受信の遅れによって、親機では当該オブジェクトの移動が途中で停止されてしまう恐れがあり、移動が途中で停止された場合には、そのような当該子機での実際の操作入力と異なる描画情報が各子機に送信されてしまうこととなる。
【0075】
そこで、この実施例では、子機ではプレイヤの入力に基づいてオブジェクトの移動軌跡を取得するようにした。具体的には、子機では、オブジェクトがこれから移動しようとする経路を示す移動軌跡が入力情報から取得されて、当該移動軌跡が親機に送信されるようにした。親機では、当該移動軌跡に沿って当該子機に対応するオブジェクトが仮想ゲーム空間内で移動され、当該移動後のオブジェクトを含む仮想ゲーム空間を描画するための描画情報が各子機に送信される。このように各子機に対応するオブジェクトの移動軌跡を親機に送信するようにすれば、従来のように方向指示スイッチの1つ1つの操作情報を親機に送信する場合に比べると一度の入力で複数操作情報に相当する情報を送信することができる。これにより、親機では、移動軌跡の受信後に通信遅延が生じても、移動軌跡として当該オブジェクトの移動しようとする経路が既に取得されているので、当該オブジェクトの移動が途中で停止するような事態を回避することができる。
【0076】
図4から図6にはメモリマップの一例が示される。図4にはメモリカード28のROM28aのメモリマップの一例が示される。ROM28aはゲームプログラム記憶領域70およびデータ記憶領域72を含む。なお、図4にはメモリマップの一部のみが示されており、ゲームプログラム記憶領域70およびデータ記憶領域72には図中に明示された以外にも必要な各種プログラムおよびデータが予め記憶されている。
【0077】
ゲームプログラム記憶領域70の記憶領域74には入力情報取得プログラムが記憶されている。このプログラムによって、たとえば、一定時間(1フレーム等)ごとに、入力情報として操作スイッチ20からの操作情報およびタッチパネル22で検出された操作情報(検出座標を含む)が取得される。プレイヤによる入力が無い場合には入力無しを示す情報が取得される。
【0078】
記憶領域76には画面生成プログラムが記憶されている。このプログラムによって、描画情報に基づいてゲーム画面が生成されて当該画面がLCD12または14に表示される。
【0079】
記憶領域78には、ゲーム装置10が親機として機能する場合に実行されるプログラム(親機プログラム)が記憶されている。この親機プログラム記憶領域78の記憶領域80には、移動軌跡受信プログラムが記憶されている。このプログラムによって、各子機から送信される各オブジェクトの移動軌跡情報が受信される。
【0080】
親機プログラム記憶領域78の記憶領域82には、キャラクタ移動制御プログラムが記憶されている。このプログラムによって、ゲーム空間に存在する複数のキャラクタ(オブジェクト)の移動が制御される。複数のオブジェクトのうち子機に対応付けられるオブジェクトの移動は、当該子機から受信した移動軌跡に基づいて制御される。つまり、子機の操作対象のオブジェクト(子オブジェクトまたは子キャラクタ)は当該移動軌跡に沿って仮想ゲーム空間内を移動する。移動軌跡は、上述のようにオブジェクトが移動しようとする経路であり、この実施例では、移動軌跡上の各点の座標は、LCD14に表示された2次元地図へのプレイヤの入力によって取得された2次元座標(x,y)である。仮想ゲーム空間は3次元で表現されるので、このキャラクタ移動制御プログラムは、取得した移動軌跡の各点を仮想3次元ゲーム空間の座標系の3次元座標(x,y,z)に変換して、当該変換した3次元座標の移動軌跡に沿って当該子オブジェクトを移動させる。
【0081】
また、ゲーム空間内の複数のオブジェクトのうち親機に対応付けられるオブジェクトの移動は、この実施例では、操作スイッチ20のうち方向指示スイッチ20aの操作情報に基づいて制御される。つまり、親機の操作対象のオブジェクト(親オブジェクトまたは親キャラクタ)は、操作スイッチ20aで指示された方向に移動される。
【0082】
なお、後述のように、子オブジェクトの移動軌跡の送信においては、個々の点の情報が順次送信されるのではなく、複数の点の情報がまとめて送信されるので、子オブジェクトの移動はリアルタイムで行われるものではない。一方、この実施例では、親オブジェクトの移動制御は操作スイッチ20aの操作情報に応じて直ちに実行され、つまり、親機のプレイヤは親オブジェクトの移動を含む動作をリアルタイムで操作することができる。
【0083】
このように、この実施例では、子機の操作対象の子キャラクタは、移動軌跡の入力によって当該経路上を移動させ、一方、親機の操作対象の親キャラクタは、動作指示によってリアルタイムに移動させるようにしている。したがって、通信遅延の悪影響を回避可能な上に、興趣性および戦略性の高い通信ゲームを実現できる。たとえば、子キャラクタは入力された移動軌跡に沿った移動を行うことによって親キャラクタを追跡し、親キャラクタは子キャラクタとの接触を避けながら所定の目的を果すといった、興趣性および戦略性の高い通信対戦ゲームを実現できる。
【0084】
なお、他の実施例では、親オブジェクトの移動は、子オブジェクトと同様に、親機で取得された移動軌跡に基づいて制御されるようにしてもよい。つまり、親オブジェクトもリアルタイムで移動されなくてもよい。
【0085】
親機プログラム記憶領域78の記憶領域84には、描画情報送信プログラムが記憶されている。このプログラムによって、仮想ゲーム空間を描画するための描画情報が各子機に送信される。描画情報は、キャラクタ移動制御プログラムによって複数のオブジェクトの移動が制御されて仮想ゲーム空間内の状態が更新された後に、親機で生成される。つまり、描画情報は、子機から受信した移動軌跡によって当該子機に対応するオブジェクトを移動させた後の仮想ゲーム空間を描画するための情報である。この描画情報は、例えば仮想ゲーム空間におけるオブジェクトの位置が代表的なものである。また、その他にオブジェクトの方向やオブジェクトに特定のアクションをさせるためのモーションを示す情報を含めることも可能である。
【0086】
記憶領域86には、ゲーム装置10が子機として機能する場合に実行されるプログラム(子機プログラム)が記憶されている。この子機プログラム記憶領域86の記憶領域88には、移動軌跡取得プログラムが記憶されている。このプログラムによって、子オブジェクトを移動させるための移動軌跡が取得される。具体的には、移動軌跡は、ゲーム空間の2次元地図が表示されたLCD14のタッチパネル22上の軌跡入力に応じて取得される。つまり、移動軌跡は、プレイヤがタッチパネル22上でスティック24等をスライドさせることによって連続的に検出された複数の座標に基づいて取得される。ただし、この実施例では、移動軌跡を入力する際には、プレイヤは、始めに子オブジェクトのアイコン画像にタッチすることで、操作したい子オブジェクトを選択する。そして、プレイヤは、タッチし続けたままスティック24等を所望の経路で所望の位置まで移動させ、最後にスティック24等をタッチパネル22から離すことによって、当該子オブジェクトに対する軌跡入力を終了する。このように、この実施例では、子オブジェクトへのタッチ開始からタッチ終了までに連続的に検出された複数の座標によって移動軌跡が取得される。ただし、タッチパネル22で検出される各点の座標はタッチパネル22上の座標系の2次元座標(X,Y)である。したがって、当該検出座標と入力時にLCD14に表示されている2次元地図の情報とを照合することによって、検出座標(X,Y)を仮想3次元ゲーム空間の座標系の水平面上の座標(x,y)に変換し、当該変換された座標(x,y)によって表現された移動軌跡を取得する。
【0087】
また、この実施例では、取得する移動軌跡には長さ制限が設けられる。つまり、移動軌跡の長さが所定の閾値を超えたとみなせるような条件が満足された判定される場合には、タッチパネル22で入力が検出されても、当該入力は移動軌跡として受け付けられず、移動軌跡情報に記憶されない。移動軌跡の受け付けを停止する条件は、この実施例では、移動軌跡として取得された点の数が所定の閾値を超えたことである。
【0088】
子機プログラム記憶領域86の記憶領域90には移動軌跡送信プログラムが記憶されている。このプログラムによって移動軌跡が親機に送信される。また、この実施例では、取得される移動軌跡が所定の長さを超えるごとに、当該移動軌跡情報が逐次親機に送信される。これによって、一度に送信されるデータ量を低減することができる。
【0089】
子機プログラム記憶領域86の記憶領域92には描画情報受信プログラムが記憶されている。このプログラムによって、親機から送信された描画情報が受信される。子機ではこの描画情報に基づいて当該子機に対応する子オブジェクトを含むゲーム空間を示すゲーム画面が生成されて、当該ゲーム画面がLCD12および14に表示されることとなる。
【0090】
子機プログラム記憶領域86の記憶領域94には予測プログラムが記憶されている。子機では、親機からの描画情報を、通信遅延によって一定時間以上受信できなかったとき、このプログラムによって各オブジェクトの少なくとも位置が予測される。そして、当該予測結果に従ってゲーム画面が生成されることとなる。具体的には、子機は、自分自身に対応する子オブジェクトの移動軌跡情報を記憶しているので、当該移動軌跡情報を使用して当該子オブジェクトの位置を予測する。本来親機でこの移動軌跡情報に基づいて当該子オブジェクトの移動が制御されているので、当該移動軌跡情報に基づく予測が外れることはほとんどなく、正確な予測が可能である。また、他のオブジェクトの予測は、各オブジェクトの位置の履歴に基づいて行われる。さらにまた、予測後に、親機からの描画情報を受信したときには、予測位置と受信した描画情報に含まれる位置との補間によって、次の位置を算出する。なお、位置以外にもオブジェクトの向いている方向なども履歴に基づいて予測されてよい。
【0091】
データ記憶領域72の記憶領域96にはマップデータが記憶されている。マップデータは仮想ゲーム空間のマップデータであり、当該ゲーム空間内の地形、構造物などの状態(位置や向きなど)を示す情報を含む。記憶領域98には画像データが記憶されている。親機に対応する親キャラクタ、子機に対応する第1子キャラクタ、第2子キャラクタ,…などの画像データも含まれる。
【0092】
図5にはゲーム装置10が親機として機能する場合のRAM48のメモリマップの一例が示される。なお、図5でもメモリマップの一部のみが示されており、図示されたもの以外にもゲーム処理に必要なデータが記憶される。
【0093】
記憶領域100には入力情報が記憶される。入力情報は入力情報取得プログラムによって取得された操作スイッチ20の操作情報およびタッチパネル22の検出情報を含む。
【0094】
記憶領域102には移動軌跡受信プログラムによって取得した移動軌跡情報が記憶される。移動軌跡情報は、各子機から受信した各子キャラクタの移動軌跡であり、各子機の各キャラクタ(第1子キャラクタ,…)に対応付けて記憶される。
【0095】
記憶領域104には軌跡書込終了フラグが記憶される。軌跡書込終了フラグは子機の子キャラクタに対する移動軌跡の入力の終了を示し、各子機の各子キャラクタ(第1子キャラクタ,…)に対応付けて記憶される。軌跡書込終了フラグがオンであることは、移動軌跡の入力が確定したことを意味し、一方、当該フラグがオフであることは、移動軌跡の入力が未確定であることを意味する。親機では、軌跡書込終了フラグがオンである場合に、当該フラグに対応する子キャラクタの移動制御が実行される。具体的には、子機で移動軌跡の入力が終了されたとき、軌跡書込終了コマンドが親機に送信される。親機では、子機から子キャラクタに対する軌跡書込終了コマンドを受信したとき、当該子機の当該子キャラクタに対応する軌跡書込終了フラグがオンにされる。軌跡書込終了フラグがオンになったことをトリガとして当該フラグに対応する子キャラクタの移動が開始される。一方、子機で移動軌跡の入力が開始されたとき、ラインクリアコマンドが親機に送信される。親機では、子機から子キャラクタに対応するラインクリアコマンドを受信したとき、当該子機の当該子キャラクタに対する軌跡書込終了フラグがオフにされる。
【0096】
記憶領域106には生成された描画情報が記憶される。描画情報は仮想ゲーム空間を描画するための情報であり、当該仮想ゲーム空間に登場する各オブジェクト(親キャラクタ、第1子キャラクタ、…など)を描画するための情報を含む。具体的には、各ゲーム装置10のプレイヤによって操作される各プレイヤキャラクタ(プレイヤオブジェクト)に関しては、描画情報は、位置(座標)、向きおよびモーションなどの情報を含む。ここで、モーションは、キャラクタの行う身体動作の種類を意味し、たとえば移動の場合、キャラクタが手を振り足を動かすといった振る舞いを行うモーションデータを指定する情報である。
【0097】
図6にはゲーム装置10が子機として機能する場合のRAM48のメモリマップの一例が示される。なお、この図6でもメモリマップの一部が示されるだけで、その他必要なデータが記憶される。
【0098】
記憶領域110には、入力情報取得プログラムによって取得された入力情報が記憶される。入力情報は操作スイッチ20の操作情報およびタッチパネル22の検出情報を含む。
【0099】
記憶領域112には、移動軌跡取得プログラムに従って入力情報を基に取得された移動軌跡が記憶される。移動軌跡情報は、現在操作対象となっている子キャラクタに対応付けて記憶される。上述のように、この実施例では、取得された移動軌跡の長さが一定以上になるごとに、それまでに取得済みの移動軌跡情報が逐次親機に送信される。また、移動軌跡として親機に送信された点の数が一定値以上になったときには、移動軌跡の入力が受け付けられないようにされ、プレイヤによる入力が続けられていても、当該移動軌跡はこの記憶領域112に記憶されなくなる。
【0100】
記憶領域114には軌跡ポイント送信回数が記憶される。軌跡ポイント送信回数は、移動軌跡として送信した座標点の数を意味する。移動軌跡の長さが一定距離以上になって当該移動軌跡を親機に送信するごとに、移動軌跡に含まれる点の数がカウントされて、現在までに送信した点の数の累計が軌跡ポイント送信回数として記憶される。
【0101】
記憶領域116には前回ポイント座標が記憶される。この実施例では、取得した移動軌跡の長さが一定値以上になるごとに送信が実行されるので、次回の移動軌跡の距離算出における参照のために、現在の検出座標が前回ポイント座標として記憶される。
【0102】
記憶領域118には受信描画情報が記憶される。受信描画情報は、描画情報受信プログラムに従って親機から受信した描画情報である。ゲーム空間に登場する各キャラクタ(親キャラクタ、第1キャラクタ、…)ごとの描画情報(位置、向き、モーションなど)が記憶される。子機では、この受信描画情報に基づいて、当該子機の操作対象の子キャラクタを含むゲーム空間を示すゲーム画面が生成されてLCD12および14に表示される。
【0103】
記憶領域120には位置履歴情報が記憶される。具体的には、各キャラクタの位置情報の履歴が記憶される。各キャラクタの履歴は、少なくとも過去2回(たとえば直前の2フレーム)の座標、つまり、前回および現在の座標を含む。また、この記憶領域120には各キャラクタの向き情報の履歴も記憶される。予測プログラムに従って予測を行う際にはこの履歴が参照される。
【0104】
記憶領域122には予測情報が記憶される。具体的には、予測プログラムに従って予測された各キャラクタの少なくとも位置を示す情報が記憶される。
【0105】
この通信ゲームシステム200において、子機で子キャラクタを移動させようとする際には、プレイヤは、たとえば、操作スイッチ20Lを操作する。これによって、図7に示すように、タッチパネル22の設けられているLCD14にゲーム空間の2次元地図を示す2次元ゲーム画面が表示され、他方のLCD12には仮想3次元ゲーム空間を示す3次元ゲーム画面が表示される。プレイヤは、LCD14の地図画面に軌跡を描画することによって、子キャラクタの移動軌跡を入力することができる。
【0106】
地図画面には、当該子機で操作可能な子キャラクタを示すアイコン130a、130b、130cが、当該子キャラクタの3次元ゲーム空間内の存在位置に対応する位置に表示される。この子機では複数の子キャラクタを操作可能であるので、3つの子キャラクタのアイコン130a、130b、130cが表示されている。一方、LCD12には、アイコン130aに対応する子キャラクタ132aを含む3次元ゲーム画面が表示されている。なお、子キャラクタアイコン130a−cをまとめて参照符号130で示し、各アイコン130a−cに対応する子キャラクタ132a−cをまとめて参照符号132で示すこともある。
【0107】
子キャラクタ132の移動軌跡を入力する際には、プレイヤは、移動させたい子キャラクタ132に対応するアイコン130にスティック24等でタッチし、タッチしたままスティック24等を所望の経路を通って所望の位置までスライドさせる。図7では、子キャラクタ132aに対応するアイコン130aに対して入力が行われている。スティック24等の移動に応じて当該タッチ位置の座標が連続的に検出され、検出された連続的な座標に基づいて移動軌跡情報が取得される。また、地図画面では、タッチ位置に対応するドットが地色と異なる所定色(白など)に変更され、これによって、図7の下画面に示すように、地図画面上に入力軌跡が描画される。なお、図7では、他のアイコン130b、130cに対応する子キャラクタ132への移動軌跡の入力は先に終了されており、当該アイコン130b、130cの移動軌跡の色は、アイコン130aの色とは異なる所定色(黒など)に変更されている。また、各アイコン130b、130cは、それぞれの移動軌跡に沿って移動中である。
【0108】
アイコン130がタッチされると、対応する子キャラクタ132に対してラインクリアコマンドによって、当該子キャラクタ132に対する移動軌跡入力が開始されたことが親機に伝達される。また、取得された移動軌跡の長さが一定値以上になるごとに、当該移動軌跡情報が逐次親機へ送信される。なお、この送信はポイント追加コマンドによってなされる。
【0109】
その後、子機のプレイヤは、スティック24等をタッチパネル22から離すことによって移動軌跡の入力を終了することができる。移動軌跡の入力が終了されると、子機から親機に書込終了コマンドが送信され、移動軌跡入力が確定したことが伝えられる。親機では、移動軌跡に基づいて当該子キャラクタの移動制御が開始される。そして、移動軌跡に沿って移動した子キャラクタを含むゲーム空間を描画するための描画情報が生成されて各子機に送信される。親機では生成した描画情報によって、また各子機では受信した描画情報によって、ゲーム画面が生成されてLCD12および14の表示が更新される。
【0110】
図8に示すように、子機では、子キャラクタ132aの移動が開始されるとき、上下画面が入れ替えられ、子キャラクタ132aが移動軌跡に沿って3次元ゲーム空間内を移動する場面は下画面に表示される。なお、図8には、移動軌跡に沿った移動が完了した場面が示されている。子キャラクタ132aは、図7で移動軌跡の入力が行われたアイコン130aに対応する子キャラクタであり、子キャラクタ132bはアイコン130bに対応する子キャラクタである。子キャラクタ132aは図中に破線矢印で示したルート(移動軌跡)を通って、親機のプレイヤキャラクタである親キャラクタ134の前に移動している。また、図8の上画面に示すように、地図画面においても、各アイコン130が各移動軌跡に沿って移動し、親キャラクタ134に対応するアイコン136の周囲に到達している。
【0111】
なお、この実施例では、子キャラクタ132によって親キャラクタ134を探索し追跡するようなゲームが行われるので、地図画面における親キャラクタ134のアイコン136は、下画面の子キャラクタ132aの表示範囲内に親キャラクタ134が存在するときに限り表示される。また、図7および図8では、簡単のため、他の子機に対応する子キャラクタおよびそのアイコンの表示は省略している。また、図8に示すように、この実施例では親機の操作する親キャラクタは1体のみであるが、親機でも子機と同様に複数のキャラクタが操作されてよい。
【0112】
この通信ゲームシステム200の親機および子機のそれぞれにおけるゲーム動作の一例を図9から図11および図12および図13のフロー図を参照しながら説明する。
【0113】
図9には親機のメイン処理の動作が示される。親機のCPUコア42は、メイン処理を開始すると、ステップS1で初期処理を実行する。ここでは、通信接続処理が行われ、親機は各子機とネットワーク202を介して通信接続する。また、各種変数に初期値が設定される。
【0114】
続くステップS3からステップS19の処理を、CPUコア42は一定時間(たとえば1フレーム=1/60秒)ごとに実行する。ステップS3では、CPUコア42は親キャラクタ134の動作指示が行われたか否かを記憶領域100の入力情報に基づいて判断する。なお、記憶領域100には、入力情報取得プログラムに従って、一定時間ごとに操作スイッチ20からの操作情報およびタッチパネル22からの操作情報が取得されている。
【0115】
ステップS3で“YES”であれば、CPUコア42は、ステップS5で親キャラクタ動作処理を実行する。この実施例では、親キャラクタ134の移動などの動作は、操作スイッチ20の入力に応じて制御される。したがって、たとえば、方向指示スイッチ20aの操作情報の場合、当該指示方向に親キャラクタ134が移動される。また、動作スイッチ20dの操作情報の場合、親キャラクタ134が所定の動作を実行する。ステップS3で“NO”の場合には処理はそのままステップS7に進む。
【0116】
ステップS7では、CPUコア42は子機からコマンドを受信したか否かを判断し、“YES”であればステップS9でコマンド処理を実行し、“NO”であればそのままステップS11へ進む。ステップS9のコマンド処理では受信したコマンドの種類に応じた処理が行われる。後述するように、子機は子キャラクタ132に対する移動軌跡の入力の段階に応じて3種類のコマンドを親機に送信する。すなわち、子キャラクタのアイコン130に対する移動軌跡入力が開始されたときラインクリアコマンドが送信され(図12のステップS91)、当該移動軌跡入力が継続されているときポイント追加コマンドが送信され(ステップS103)、当該移動軌跡入力が終了されたとき書込終了コマンドが送信される(図13のステップS113)。
【0117】
図10にコマンド処理の動作の一例が示される。コマンド処理を開始すると、CPUコア42は、まず、ステップS31で受信コマンドがラインクリアであるか否かを判断する。つまり、当該コマンドを送信してきた子機で移動軌跡入力が開始されたか否かを判断する。
【0118】
ステップS31で“YES”であれば、CPUコア42は、ステップS33で受信座標に基づいて複数の子キャラクタ132のうち当該子機で指示された子キャラクタ132を特定する。具体的には、受信コマンドに含まれる子機での指示座標と、当該子機に対応する複数の子キャラクタのアイコン130の座標(RAM48に記憶されている。)とに基づいて、移動軌跡が入力され始めたアイコン130および子キャラクタ132を特定する。なお、子機が指示された子キャラクタ132の特定を行って、当該指示された子キャラクタ132の識別情報を含むコマンドを送信するようにしてもよい。
【0119】
続くステップS35で、CPUコア42は該当する子キャラクタ132の既に描画された移動軌跡をクリアする。具体的には、記憶領域102から該当する子キャラクタ132に対応する移動軌跡情報が消去される。記憶されていた情報は、当該子キャラクタ132に対して過去に入力された移動軌跡情報であり、当該子キャラクタ132は、この移動軌跡情報に基づいて移動中であるかまたは既に移動を終了している。
【0120】
このように、この実施例では、子機で或る子キャラクタに対する別の移動軌跡入力が開始されたことに応じて、親機で取得済みの移動軌跡情報をクリアするようにした。したがって、或る子キャラクタを移動軌跡に従って移動させている途中であっても、新たな移動軌跡の入力が開始されたときには、古い移動軌跡に基づく移動を停止させることができる。
【0121】
すなわち、ステップS37では、CPUコア42は、該当する子キャラクタ132の移動を停止する。続くステップS39では、CPUコア42は、記憶領域104の該当する子キャラクタ132の軌跡書込終了フラグをオフにする。この軌跡書込終了フラグがオンであるときには該当する子キャラクタ132の移動制御が行われる。そのため、このステップS39では、新たな移動軌跡の入力が子機のプレイヤによって開始されようとしているので、軌跡書込終了フラグをオフにすることによって、該当する子キャラクタ132の移動制御が行われないようにする。ステップS39を終了するとこのコマンド処理を終了して図9のステップS11に戻る。
【0122】
一方、ステップS31で“NO”の場合、CPUコア42はステップS41で受信コマンドがポイント追加であるか否かを判断する。つまり、入力された移動軌跡を含む情報を受信したか否かを判断する。ステップS41で“YES”であれば、CPUコア42は、ステップS43で、受信した座標すなわち移動軌跡を、記憶領域102の該当する子キャラクタ132の移動軌跡情報に追加する。この実施例では、子機からは所定長さを超えるたびに逐次移動軌跡が送信されてくるので、記憶領域102には、当該子キャラクタ132に対する入力が開始されてから連続的に取得された複数の座標すなわち移動軌跡が蓄積される。移動軌跡を示す各点の座標は、たとえば識別番号(各点の識別情報)に対応付けて記憶される。ステップS43を終了するとこのコマンド処理を終了して図9のステップS11へ戻る。
【0123】
また、ステップS41で“NO”の場合、CPUコア42は、ステップS45で受信コマンドが書込終了であるか否かを判断する。つまり、子機で移動軌跡の入力が終了したか否かを判断する。ステップS45で“YES”であれば、CPUコア42は、ステップS47で、当該受信コマンドに座標が含まれる場合には、当該受信座標を記憶領域102の該当する子キャラクタ132の移動軌跡情報に追加する。そして、ステップS49で、CPUコア42は記憶領域104の該当する子キャラクタ132の軌跡書込終了フラグをオンにする。この軌跡書込終了フラグのオフからオンへの変化に応じて、この親機では、当該子キャラクタ132の移動が開始されることとなる。ステップS49を終了すると、またはステップS45で“NO”の場合には、このコマンド処理を終了して図9のステップS11へ戻る。
【0124】
図9のステップS11では、CPUコア42は子キャラクタ移動処理を実行し、各子機の子キャラクタの移動を制御する。
【0125】
図11に子キャラクタ移動処理の動作の一例が示される。子キャラクタ移動処理を開始すると、CPUコア42は、ステップS61で、未処理の子キャラクタ132が存在するか否かを判断する。つまり、複数の子キャラクタ132のうち移動処理対象に未だ設定されていない子キャラクタ132が残っているか否かを判断する。ステップS61で“YES”であれば、CPUコア42はステップS63で未処理の子キャラクタ132のうちの1つを選択して処理対象として設定する。
【0126】
続くステップS65で、CPUコア42は、当該処理対象の子キャラクタ132の軌跡書込終了フラグがオンであるか否かを判断する。この実施例では、上述のように、子キャラクタ132に対する移動軌跡の入力が終了して移動軌跡が確定したときに、当該軌跡書込終了フラグがオンにされる。また、同じ子キャラクタ132に対して別の移動軌跡の入力が開始されたときには、当該移動軌跡が未確定のため、当該軌跡書込終了フラグがオフにされる。つまり、軌跡書込終了フラグがオンであることは、入力された移動軌跡に従って当該子キャラクタ132の移動制御を行ってもよい状態であることを意味する。このステップS65で“NO”の場合、つまり、移動軌跡が入力途中であり未確定である場合には、処理はステップS61に戻る。
【0127】
一方、ステップS65で“YES”の場合には、当該子キャラクタの移動を開始する。このように、この実施例では、子機で移動軌跡の入力が終了したことに応じて、当該子キャラクタの移動を開始するようにしている。つまり、入力された移動軌跡(移動指示情報)を全て取得してから、当該子キャラクタを移動させ始めるので、通信遅延によって当該子キャラクタの移動が中断されてしまうようなことがない。
【0128】
なお、移動軌跡の全ての書込みが終了したときに移動を開始させるようにしたが、当該移動開始条件は適宜変更され得る。たとえば、他の実施例では、親機が受信した移動軌跡が、通信遅延の影響を織り込んだ所定長さ、つまり、所定時間の遅延が生じても移動が中断されないような十分な時間分の移動軌跡になったと判定される場合には、移動軌跡の全てを取得する前に当該子キャラクタの移動を開始させるようにしてもよい。
【0129】
具体的には、ステップS67で、CPUコア42は、当該処理対象の子キャラクタ132の移動軌跡情報に未移動箇所が存在するか否かを判断する。つまり、記憶領域102に記憶された移動軌跡の各点のうち、移動制御に使用していない点が残っているか否かを判断する。たとえば、移動軌跡の各点は識別番号に対応付けて記憶されているので、移動処理済みの点の数をカウントしたり識別番号を記憶しておいたりすることによって、未処理の点の有無を判定できる。ステップS67で“NO”の場合、つまり、当該子キャラクタ132について、入力された移動軌跡に従った移動を既に完了している場合には、処理はステップS61に戻る。
【0130】
一方、ステップS67で“YES”の場合には、つまり、移動軌跡に従った当該子キャラクタ132の移動を開始または継続すべき場合には、CPUコア42は、ステップS69で、移動軌跡の座標をゲーム空間の座標に変換する。地図画面で入力され取得された移動軌跡上の各点の座標は2次元座標(x,y)であるので、現在処理すべき識別番号の点の座標をゲーム空間の3次元座標(x,y,z)に変換する。上述のように移動軌跡の各点には識別番号が対応付けられているので、処理済みの点の数をカウントしたり識別番号を記憶しておいたりすることによって、移動軌跡のうち現在処理すべき点を特定することができる。
【0131】
そして、ステップS71で、CPUコア42は、当該子キャラクタを移動軌跡に沿って移動させる。つまり、子キャラクタ132の現在の座標と移動軌跡の変換座標とに基づいて、当該子キャラクタの移動後の座標を算出する。また、当該子キャラクタ132の移動後の向きも、現在の座標と移動軌跡の変換座標と現在の向きに基づいて算出される。ステップS71を終了するとステップS61に戻る。
【0132】
一方、ステップS61で“NO”の場合には、つまり、このフレームですべての子キャラクタ132を対象として処理を行った場合には、この子キャラクタ移動処理を終了して図9のステップS13に戻る。
【0133】
このように、親機では、ステップS9のコマンド処理において、複数の座標点を含む移動軌跡情報を受信し、ステップS11の子キャラクタ移動処理において、移動を開始してよい場合に子キャラクタ132を移動軌跡に従って移動させるようにしている。したがって、通信遅延によって子キャラクタ132の移動指示情報の受信が間に合わずに当該子キャラクタ132の移動が中断してしまうといった不具合が生じない。
【0134】
図9のステップS13では、CPUコア42は、ゲーム空間内の状態を更新する。つまり、ステップS5の親キャラクタ動作処理やステップS11の子キャラクタ移動処理などの結果に基づいて、RAM48に記憶されたゲーム空間内の各キャラクタの位置、向き、モーションなどの情報を更新する。具体的には、位置情報は当該オブジェクトの移動後の仮想3次元ゲーム空間における座標である。なお、仮想ゲーム空間における3次元座標のうち(x,y)は地図画面における2次元座標(x,y)に対応するので、この位置情報によって各キャラクタの地図画面上での位置も把握される。向き情報はたとえば当該オブジェクトの向いている方向を示すベクトルである。モーション情報は、当該オブジェクトの行動に応じて実行される身体動作を示す。移動しているオブジェクトの場合には、たとえば、移動の身体動作を表示するためのモーションデータを指定する情報がモーション情報として記憶される。
【0135】
続くステップS15では、CPUコア42は、当該更新されたゲーム空間を描画するための描画情報を生成して、当該描画情報を各子機に送信する。描画情報は、記憶領域106に生成され、ゲーム空間内の各キャラクタの位置、向きおよびモーションなどの情報を含む。たとえばゲーム空間全体に関する描画情報が送信される。あるいは、ゲーム空間が画面表示範囲よりも大きい場合等には、ゲーム空間の一部に関する描画情報が送信されるようにしてもよい。一例として、子機の操作対象の子キャラクタ132の存在位置から所定距離以下の領域(表示範囲よりもやや大きい領域)に関する描画情報のみが当該子機に送信されてよい。この場合には、各子機の表示やその後の予測処理に必要な情報のみを送信するようにしているので、通信データ量を低減することができる。
【0136】
ステップS17では、CPUコア42は画面生成処理を実行する。すなわち、描画情報に基づいて親キャラクタ134を含むゲーム画面(この実施例では3次元ゲーム画面と2次元地図画面の2つ)を生成し、LCD12およびLCD14に表示する。
【0137】
そして、ステップS19で、CPUコア42はゲーム終了であるか否かを判断する。たとえばゲームクリア条件またはゲームオーバ条件が満足されたか否かを判断する。ステップS19で“NO”であれば、次フレームのゲーム処理を実行すべくステップS3に戻る。一方、ステップS19で“YES”であれば、CPUコア42は、図示しないゲーム終了処理を実行して、このメイン処理を終了する。
【0138】
図12および図13には子機のメイン処理の動作の一例が示される。メイン処理を開始すると、子機のCPUコア42は、ステップS81で初期処理を実行する。具体的には、通信接続処理が行われ、子機は親機とネットワーク202を介して通信接続する。また、各種変数に初期値が設定される。
【0139】
CPUコア42は、続くステップS83からステップS137の処理を一定時間(たとえば1フレーム)ごとに実行する。ステップS83では、CPUコア42は、記憶領域110の入力情報に基づいて、タッチが開始されたか否かを判断する。つまり、タッチパネル22への入力の検出されない状態から入力の検出される状態に変化したか否かを判断する。なお、記憶領域110には、入力情報取得プログラムに従って一定時間ごとに操作スイッチ20からの操作情報およびタッチパネル22からの操作情報が取得されている。
【0140】
ステップS83で“YES”であれば、CPUコア42はステップS85で子キャラクタ132が指示されたか否かを判断する。つまり、LCD14に表示されている2次元地図上のアイコン130に対応する位置がタッチされたか否かを、RAM48に記憶されているアイコン130の表示位置座標と、入力情報記憶領域110に記憶されている検出座標(タッチ座標)とに基づいて判断する。
【0141】
ステップS85で“YES”であれば、つまり、子キャラクタ132に対する移動軌跡の入力が開始された場合には、CPUコア42は、ステップS87で、複数の子キャラクタ132のうち指示された子キャラクタ132をタッチ座標と各アイコン130の表示位置に基づいて特定する。
【0142】
このように、この実施例では、移動軌跡の入力が開始されたときに、選択された子キャラクタを特定するようにしている。したがって、子機では子キャラクタごとの移動軌跡を取得することができる。つまり、子機のプレイヤは、個々に移動軌跡入力を行うことによって複数の子キャラクタのそれぞれを操作することができる。
【0143】
続くステップS89で、CPUコア42は、記憶領域112に記憶されている該当する子キャラクタ132に対する移動軌跡情報をクリアする。つまり、これから入力される移動軌跡上の各点の座標を蓄積するために、該当する子キャラクタ132のための記憶領域をクリアする。なお、後の軌跡入力実行中か否かの判定のために、移動軌跡の入力が行われている状態であることを示す入力フラグをオンにするようにしてよい。
【0144】
このように、この実施例では、子機で或る子キャラクタに対して別の移動軌跡の入力が開始されるまで、取得済みの移動軌跡情報を記憶しておくことができるようにしている。したがって、必要に応じて当該移動軌跡情報をゲーム処理に使用することができる。たとえば、後述のように、描画情報を一定時間受信できなかったとき、当該移動軌跡情報を使用して当該子キャラクタの位置を予測することができる。
【0145】
また、ステップS91で、CPUコア42は、該当する子キャラクタ132に対するラインクリアコマンドと検出座標を親機へ送信する。このラインクリアコマンドの送信によって、該当する子キャラクタ132の移動軌跡の入力の開始を親機に伝達する。ステップS91を終了すると、処理は図13のステップS117に進む。なお、ステップS85で“NO”の場合、つまり、地図画面上の子キャラクタアイコン130以外の部分がタッチされた場合には、そのままステップS117に進む。
【0146】
一方、ステップS83で“NO”であれば、CPUコア42は、ステップS93でタッチパネル22へのタッチが継続中であるか否かを記憶領域110の入力情報に基づいて判断する。ステップS93で“YES”であれば、CPUコア42はステップS95で軌跡入力中であるか否かを判断する。たとえば、軌跡入力が行われている状態であることを示す入力フラグがオンであるか否かを判断する。
【0147】
ステップS95で“YES”であれば、つまり、移動軌跡の入力が継続されている場合には、CPUコア42は、ステップS97で、該当する子キャラクタ132の軌跡ポイント送信回数が所定の第1閾値以下であるか否かを判断する。つまり、当該子キャラクタ132に対して入力された移動軌跡のうち送信済みの点の数が所定の制限値(第1閾値。たとえば128点)を超えていないことを判定する。このように、この実施例では、一回の軌跡入力で移動可能にする距離を、移動軌跡を構成する点の数に基づいて制限している。つまり、入力可能な移動軌跡の長さに制限を設けている。したがって、一度の入力で移動可能な距離を適切な範囲に限定することができる。なお、他の実施例では、移動軌跡に入力制限を設けなくてもよい。
【0148】
ステップS97で“YES”であれば、CPUコア42は、ステップS99で検出座標を記憶領域112の移動軌跡情報に取得する。移動軌跡情報は、各子キャラクタ130ごとに記憶される。また、個々の点の座標は、タッチパネル22の座標系の2次元座標(X,Y)から地図画面の座標系の2次元座標(x,y)に変換され、各点の識別情報としての識別番号(開始点からの通し番号)に対応付けて記憶領域112に記憶される。
【0149】
ステップS101では、CPUコア42は前回ポイント座標と現在座標間の距離が所定の第2閾値以上であるか否かを判断する。前回ポイント座標は、親機に送信済みの移動軌跡のうちの最後尾の点の座標を意味する。ただし、移動軌跡を未送信の場合には、入力開始時の座標が採用される。したがって、ここでは、前回ポイント座標から現在の検出座標までの移動距離が所定値(第2閾値)以上になったか否かを判定している。すなわち、前回送信後またはタッチ開始後に記憶領域112に記憶された移動軌跡の長さが親機に送信すべき所定長さに達したか否かを判定している。これによって、一定長さごとに移動軌跡を逐次親機に送信することができる。つまり、移動軌跡として一度に送信するデータ量を低減することができる。なお、他の実施例では、所定時間ごとに取得された移動軌跡を送信するようにしてもよいし、あるいは、全ての移動軌跡の入力の完了を待って移動軌跡を一括して送信するようにしてもよい。
【0150】
ステップS101で“YES”であれば、CPUコア42は、ステップS103で、該当する子キャラクタ132に対するポイント追加コマンドと検出座標(移動軌跡)を親機へ送信する。送信される移動軌跡は、前回ポイント座標(または入力開始点)の次の座標から現在の検出座標までに連続的に検出された複数の座標(厳密には地図画面の座標系に変換した座標)である。移動軌跡が一定長さ取得されるごとに、このポイント追加コマンドによって、当該移動軌跡が逐次親機へ送信される。
【0151】
ステップS105では、CPUコア42は、送信した移動軌跡情報に基づいて該当する子キャラクタ132の軌跡ポイント送信回数をカウントする。つまり、親機へ送信した移動軌跡上の点の数を通算して、記憶領域114に当該数を記憶する。ステップS97の判定は、この軌跡ポイント送信回数に基づいてなされることになる。
【0152】
また、ステップS107では、CPUコア42は、現在の検出座標を、次回の移動軌跡長さ判定(S101)の際の参照用に前回ポイント座標として記憶領域116に記憶する。ステップS107を終了すると、処理は図13のステップS117に進む。
【0153】
なお、ステップS95で“NO”の場合、つまり、移動軌跡の入力が行われていない場合には、処理はそのまま図13のステップS117へ進む。また、ステップS97で“NO”の場合、つまり、移動軌跡として親機に送信済みの座標数が制限を超えた場合には、移動軌跡の受け付けを停止し、処理はそのままステップS117へ進む。また、ステップS101で“NO”の場合、つまり、前回ポイント座標(または入力開始点)からの移動軌跡の長さが一定値よりも小さい場合には、親機への送信を見送るべく、処理は図13のステップS117に進む。
【0154】
一方、ステップS93で“NO”の場合には、CPUコア42は、図13のステップS109で、記憶領域110の入力情報に基づいて、タッチが終了されたか否かを判断する。つまり、タッチパネル22への入力の検出されている状態から入力の検出されていない状態に変化したか否かを判断する。ステップS109で“YES”であれば、CPUコア42は、ステップS111で移動軌跡の入力が行われていたか否かを判断する。たとえば、軌跡入力が行われている状態であることを示す入力フラグがオンであるか否かを判断する。
【0155】
ステップS111で“YES”であれば、つまり、移動軌跡の入力が終了された場合には、CPUコア42は、ステップS113で、該当する子キャラクタ132に対する書込終了コマンドと座標(移動軌跡)を親機へ送信する。この書込終了コマンドとともに送信される移動軌跡は、ステップS101の判定で所定長さに満たないと判定された移動軌跡、あるいは、ステップS103での移動軌跡の送信後からステップS97の判定で送信された座標点の数が所定値を超えたと判定されるまでの間に記憶領域112に取得された移動軌跡である。
【0156】
また、ステップS115では、CPUコア42は、記憶領域114に記憶された該当する子キャラクタ132の軌跡ポイント送信回数をリセットしゼロにする。また、軌跡の入力が終了されたので、軌跡入力が行われている状態であることを示す入力フラグをオフにする。
【0157】
なお、ステップS109で“NO”の場合、またはステップS111で“NO”の場合には、処理はそのままステップS117に進む。
【0158】
ステップS117では、CPUコア42は、描画情報を親機から受信したか否かを判断する。ステップS117で“YES”であれば、CPUコア42は、ステップS119で受信した描画情報を記憶領域118に記憶する。
【0159】
続いて、ステップS121では、CPUコア42はキャラクタの位置予測が行われているか否かを判断する。後述するように、予測は、描画情報が一定時間以上受信されなかった場合に行われる。たとえば、予測が行われている状態であることを示す予測フラグがオンであるか否かを判断したり、あるいは、記憶領域122に予測情報が記憶されているか否かを判断したりする。
【0160】
ステップS121で“YES”であれば、つまり、予測が行われているときに描画情報を受信した場合には、CPUコア42は、ステップS123で、受信描画情報と予測情報とに基づいて各キャラクタの位置を修正する。具体的には、各キャラクタについて、描画情報に含まれる座標と予測情報記憶領域122に記憶されている座標とを補間することよって、修正座標を算出する。この子機自身の操作対象の子キャラクタについては、予測位置の誤差がわずかであるため、このステップS123で位置を修正しても当該子キャラクタを滑らかに移動させることができる。また、予測位置を修正したので、上記予測フラグはオフにされる。なお、ステップS121で“NO”の場合、つまり、描画情報を滞りなく受信できている場合には、処理はそのままステップS133に進む。
【0161】
一方、ステップS117で“NO”の場合には、CPUコア42は、ステップS125で、描画情報を一定時間受信できなかったか否かを判断する。つまり、前回の受信から一定時間経過しても、親機から描画情報を受信できなかったか否かを判断する。
【0162】
ステップS125で“YES”であれば、つまり、通信遅延によって描画情報の受信が遅れている場合には、CPUコア42は、ステップS127で、この子機自身に対応する子キャラクタのいずれかが移動中であるか否かを判断する。たとえば、記憶領域112に記憶されている移動軌跡のうち未移動の点が残っているか否かを判定する。それまでに受信した描画情報の子キャラクタの位置情報の識別番号によって当該位置が移動軌跡上のどの点に相当するかが把握されるので、上記判定が可能である。
【0163】
ステップS127で“YES”である場合には、CPUコア42は、ステップS129で、記憶領域112に記憶されている移動軌跡情報と記憶領域120に記憶されている位置履歴から、該当する子キャラクタ132の位置を予測する。移動中の子キャラクタ132の位置予測は、位置履歴の現在の座標および方向、前回の座標および方向、ならびに移動軌跡上の座標に基づいてなされる。たとえば、移動軌跡情報記憶領域112には、親機に送信した移動軌跡が記憶されているので、位置履歴記憶領域120の現在座標に対応付けられた番号(すなわち移動軌跡の各点の識別情報)の次の番号の座標を移動軌跡情報記憶領域112から取得して、当該取得した座標を予測位置としてよい。該当する子キャラクタ132の予測された座標を示す情報は、予測情報記憶領域122に記憶される。
【0164】
このように、この実施例では、描画情報の受信が間に合わなかった場合でも、子機に記憶されている移動軌跡情報に基づいて、当該子キャラクタの次の位置を精度良く予測することができる。また、この予測後に描画情報を受信したときに、上述のステップS123で位置修正を行っても、予測位置の精度が高いので当該子キャラクタを滑らかに移動させることができる。
【0165】
ステップS129を終了すると処理はステップS131へ進む。また、ステップS127で“NO”の場合、つまり、この子機の子キャラクタ132が移動していない場合には、処理はそのままステップS131へ進む。
【0166】
ステップS131では、CPUコア42は、残りのキャラクタの位置を記憶領域120に記憶されている位置履歴から予測する。つまり、この子機自身の操作対象である子キャラクタ132のうち移動していない子キャラクタ132、親キャラクタ134および他の子機の子キャラクタの位置予測は、位置履歴に記憶されている現在の座標および方向、ならびに前回の座標および方向に基づいてなされる。各キャラクタの予測された座標を示す情報は、予測情報記憶領域122に記憶される。ステップS131を終了すると処理はステップS133に進む。
【0167】
ステップS133では、CPUコア42は、記憶領域120の位置履歴を更新する。具体的には、位置履歴記憶領域120に記憶されている各キャラクタの現在の座標を前回の座標として記憶する。さらに、各キャラクタの現在の座標の更新を行う。描画情報を受信した場合には、当該描画情報に含まれる各キャラクタの座標を現在の座標として記憶する。一方、予測を行った場合には、予測情報記憶領域122に記憶されている各キャラクタの予測された座標を現在の座標として記憶する。
【0168】
ステップS133を終了し、または、ステップS125で“NO”の場合には、CPUコア42は、ステップS135で画面生成処理を実行する。これによって、図7または図8に示したようなゲーム画面が生成されてLCD12および14に表示される。親機から描画情報を受信した場合には、各キャラクタは、描画情報に基づく位置および向きで3次元ゲーム空間内に配置される。また、予測が行われた場合には、各キャラクタは、予測情報に基づく位置および向きで3次元ゲーム空間内に配置される。また、地図画面上の各キャラクタのアイコンの位置も描画情報または予測情報の位置から得られる。なお、地図画面上の入力軌跡は、当該子機の記憶領域112に取得した移動軌跡情報に基づいて描画される。しかし、親機が各子機に対応する移動軌跡情報を含む描画情報を各子機に送信するようにして、入力軌跡も当該描画情報に基づいて描画されるようにしてもよい。
【0169】
ステップS137では、CPUコア42は、ゲーム終了であるか否かを判断する。たとえばゲーム終了指示が親機から送信されたか否かを判断する。ステップS137で“NO”であれば、次フレームのゲーム処理を実行すべく図12のステップS83に戻る。一方、ステップS137で“YES”であれば、CPUコア42は、図示しないゲーム終了処理を実行して、この子機のメイン処理を終了する。
【0170】
この実施例によれば、プレイヤが子キャラクタの移動を指示する情報を移動軌跡として取得して、親機で移動軌跡によって当該子キャラクタの移動を制御するようにしたので、親機への移動指示情報の送信において通信遅延が生じても、子キャラクタが移動途中に停止してしまうような恐れがない。具体的には、親機は、移動軌跡すなわちこれから移動しようとしている経路の受信によって、事前に十分な時間分の移動指示情報をまとめて取得しているので、通信遅延が生じても、子キャラクタの移動を続行させることができ、移動中であるにもかかわらず子キャラクタの移動が中断してしまうような事態を回避できる。したがって、通信遅延をプレイヤに感じさせることなくキャラクタを移動させてゲームを進行させることができる。
【0171】
また、各子機でのゲーム空間を描画するための描画情報の受信において遅延が生じた場合には、各子機で入力された移動軌跡情報に基づいて当該子キャラクタの位置を予測することができる。当該子機で取得された移動軌跡を使うので、当該子キャラクタの位置の予測が外れることがほとんどない。したがって、描画情報の受信が遅れても、通信遅延をプレイヤにあまり感じさせずに子キャラクタを移動させることが可能である。
【0172】
また、子機では、子キャラクタの移動軌跡を、タッチパネル22に対する連続的な座標指示によって入力するようにした。したがって、プレイヤは直感的な操作でオブジェクトの移動を操作することができる。
【0173】
なお、上述の実施例では、ゲーム装置10はゲーム専用機であったが、他の実施例では、ゲーム装置10はパーソナルコンピュータ、携帯情報端末、携帯電話など他の形態のコンピュータであってよい。
【0174】
また、上述の各実施例では、ゲーム装置10は、移動軌跡の入力のためのポインティングデバイスの一例としてタッチパネル22による移動軌跡の入力が行われるようにしていた。しかし、他の実施例では、マウス、トラックパッド、タブレットなどのような画面上の位置を指示することができるポインティングデバイスであればどのようなものでも代用することができる。なお、必要に応じて、入力用の画面にマウスポインタを表示することによって入力位置を明示する。また、ボタンが押されているときを入力有り状態とみなし、かつ、ボタンが放されているときを入力無し状態とみなすことによって、ポインティングデバイスでのキャラクタに対する入力か否かを判別することができる。
【0175】
また、上述の各実施例では、通信ゲームシステム200は、ゲーム空間に存在する複数のオブジェクトの移動などの動作を管理する親機と、子機とで構成されたが、他の実施例では、通信ゲームシステム200は、サーバコンピュータとゲーム装置10とで構成されてよく、当該サーバが親機として機能してよい。ただし、このサーバにはプレイヤおよび操作対象としての親オブジェクトが存在しない。具体的には、サーバが、端末としての各ゲーム装置10からの移動軌跡情報の取得、複数のオブジェクトの移動制御を含むゲーム空間の管理、描画情報の各ゲーム装置10への送信などの管理処理を実行するようにしてよい。
【図面の簡単な説明】
【0176】
【図1】この発明の一実施例のゲーム装置の一例を示す外観図である。
【図2】図1実施例の電気的な構成の一例を示すブロック図である。
【図3】この発明の一実施例の通信ゲームシステムの一例を示す図解図である。
【図4】メモリカードのROMのメモリマップの一例を示す図解図である。
【図5】親機のRAMのメモリマップの一例を示す図解図である。
【図6】子機のRAMのメモリマップの一例を示す図解図である。
【図7】子機で移動軌跡を入力する際に表示されるゲーム画面の一例を示す図解図である。
【図8】描画情報によって子機で生成したゲーム画面の一例を示す図解図である。
【図9】親機のメイン処理の動作の一例を示すフロー図である。
【図10】図9のコマンド処理の動作の一例を示すフロー図である。
【図11】図9の子キャラクタ移動処理の動作の一例を示すフロー図である。
【図12】子機のメイン処理の動作の一例を示すフロー図である。
【図13】図12の続きを示すフロー図である。
【符号の説明】
【0177】
10 …ゲーム装置
12,14 …LCD
20 …操作スイッチ
22 …タッチパネル
28 …メモリカード
28a …ROM
42 …CPUコア
48 …RAM
50,52 …GPU
54 …I/F回路
56 …LCDコントローラ
58,60 …VRAM
200 …通信ゲームシステム
202 …ネットワーク
【技術分野】
【0001】
この発明は、通信ゲームシステムに関し、特にたとえば、通信ネットワークを介して通信可能な複数のコンピュータを含み、仮想ゲーム空間に複数のオブジェクトが登場する通信ゲームが実行される、通信ゲームシステムに関する。
【背景技術】
【0002】
この種の通信ゲームシステムの一例が特許文献1に開示されている。特許文献1の技術は、ゲームサーバと通信端末がネットワークを介して接続されたネットワークゲームシステムであり、ゲームサーバで各端末のキャラクタ(オブジェクト)の情報を示すフラグの管理が行われ、変化のあった情報のみが他の端末に送信される。具体的には、端末BでキャラクタBを移動させる操作指示が入力されると、移動行動を指示するリクエストが当該端末Bからゲームサーバに送信される。このリクエストに応じて、ゲームサーバは、キャラクタBの移動処理を行い、フラグテーブルに、当該キャラクタBの移動変更指示を他の端末Aに送信するための情報を書き込む。そして、ゲームサーバは、キャラクタB移動変更指示と位置情報を端末Aに送信する。これによって、端末Aでは、キャラクタBの移動が表示されることとなる。
【特許文献1】特開2003−181146号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかしながら、サーバと端末間または複数のゲーム装置間にネットワークが介在すると、通信遅延が生じることによって、端末間やゲーム装置間で食い違いが発生する恐れがあった。たとえば、キー操作によってキャラクタの移動方向を指示するような場合、端末で連続的な移動が入力されていたとしても、通信遅延によって移動指示データの受信が遅れると、ゲームサーバの移動処理では、キャラクタの移動が途中で停止されるという問題があった。そして、そのような実際の入力と異なる移動情報が他の端末に送信されてしまう。
【0004】
一方、サーバや親機が端末や子機からキャラクタの移動指示を含む操作データを集めて一括してゲーム処理を行い、処理結果をすべての端末や子機に送信するような通信ゲームシステムも存在している。このようなシステムでは、通信遅延によってサーバや親機から処理結果データが表示タイミングまでに届かないとき、端末や子機はキャラクタの移動を続行することが困難となり、端末や子機では実際の入力とは異なり当該キャラクタが移動を止めてしまうという問題があった。
【0005】
それゆえに、この発明の主たる目的は、新規な、通信ゲームシステム、ゲーム装置、管理コンピュータおよびゲームプログラムを提供することである。
【0006】
この発明の他の目的は、通信遅延をプレイヤに感じさせることなくオブジェクトの移動を制御できる、通信ゲームシステム、ゲーム装置、管理コンピュータおよびゲームプログラムを提供することである。
【課題を解決するための手段】
【0007】
第1の発明(請求項1の発明)は、仮想ゲーム空間に登場する複数のオブジェクトの移動を管理する管理コンピュータと、管理コンピュータと通信可能に接続されるかつ複数のオブジェクトのうち少なくとも1つのオブジェクトを操作対象としてプレイヤに操作させる操作手段を備えるゲーム装置とを含む、通信ゲームシステムである。ゲーム装置は、軌跡取得手段および軌跡送信手段を備える。軌跡取得手段は、操作手段によって入力される操作対象のオブジェクトの移動軌跡を取得する。軌跡送信手段は、軌跡取得手段によって取得された移動軌跡を管理コンピュータに送信する。管理コンピュータは、軌跡受信手段、移動制御手段および描画情報送信手段を備える。軌跡受信手段は、軌跡送信手段からの移動軌跡を受信する。移動制御手段は、軌跡受信手段によって受信した移動軌跡によって仮想ゲーム空間における操作対象のオブジェクトの移動を制御する。描画情報送信手段は、移動制御手段によって移動されたオブジェクトを含む仮想ゲーム空間を描画するための描画情報をゲーム装置に送信する。ゲーム装置は、描画情報受信手段および画面表示手段をさらに備える。描画情報受信手段は、描画情報送信手段からの描画情報を受信する。画面表示手段は、描画情報受信手段によって受信した描画情報によって、操作対象のオブジェクトを含むゲーム画面を生成して表示する。
【0008】
請求項1の発明では、通信ゲームシステム(200:後述する実施例で相当する参照符号。以下同じ。)は、管理コンピュータ(10)およびゲーム装置(10)含む。この通信ゲームシステムでは、仮想ゲーム空間に複数のオブジェクトが登場する通信ゲームが実行される。ゲーム装置のプレイヤは、操作手段(22)によって複数のオブジェクト(132)のうちの少なくとも1つのオブジェクトを操作する。複数のオブジェクトの移動は管理コンピュータによって管理される。管理コンピュータは、たとえば、ゲーム装置とネットワーク(202)を介して接続されるサーバであってよい。あるいは、通信ゲームシステムがサーバを含まず複数のゲーム装置を含む場合、ゲーム装置の1つが管理コンピュータすなわち親機として機能してよい。ゲーム装置の軌跡取得手段(42、54、74、88、S99)は、操作手段によって入力される操作対象のオブジェクトの移動軌跡を取得する。たとえば、操作手段はタッチパネルであり、このタッチパネルで連続的に検出される複数の座標に基づいて、このゲーム装置の操作対象のオブジェクトの移動しようとする経路が取得される。軌跡送信手段(42、64、90、S91、S103、S113)は移動軌跡を管理コンピュータに送信する。これに応じて、管理コンピュータの軌跡受信手段(42、64、80、S7、S9)は移動軌跡を受信する。移動制御手段(42、82、S11)は、受信した移動軌跡によって、送信してきたゲーム装置の操作対象のオブジェクトの移動を制御する。これによって、当該オブジェクトは移動軌跡に沿って仮想ゲーム空間内を移動する。描画情報送信手段(42、64、84、S15)は、移動されたオブジェクトを含む仮想ゲーム空間を描画するための描画情報をゲーム装置に送信する。描画情報は、たとえば、ゲーム空間に登場するオブジェクトの位置、向きおよびモーションに関する情報を含む。これに応じて、ゲーム装置の描画情報受信手段(42、64、92、S117、S119)は、親機からの描画情報を受信する。画面表示手段(42、50、52、60、76、S135)は、受信した描画情報によって、操作対象のオブジェクトを含むゲーム画面を生成して表示する。これによって、入力された移動軌跡に沿って移動するオブジェクトが表示される。
【0009】
請求項1の発明によれば、ゲーム装置からオブジェクトの移動軌跡を取得し、管理コンピュータでオブジェクトの移動を制御するようにした。そのため、オブジェクトの移動しようとする経路を予め取得しているので、通信遅延が生じても当該オブジェクトの移動を進めることができ、プレイヤに通信遅延を感じさせずにオブジェクトの移動を制御できる。
【0010】
請求項2の発明は、請求項1の発明に従属し、軌跡送信手段は、操作手段からの移動軌跡の入力が途切れたときに入力終了情報をさらに送信し、移動制御手段は、入力終了情報を受信したことを条件として、オブジェクトの移動を開始する。
【0011】
請求項2の発明では、ゲーム装置の軌跡送信手段(S109−S113)は、移動軌跡の入力が途切れたと判定されるときに、入力終了情報を管理コンピュータにさらに送信する。管理コンピュータの移動制御手段(S45、S49、S65、S71)は、入力終了情報を受信したことを条件として、オブジェクトの移動を開始する。したがって、ゲーム装置で入力された移動軌跡を全て取得してから管理コンピュータで当該オブジェクトを移動させ始めるので、通信遅延によって当該オブジェクトの移動が中断されてしまうようなことがない。
【0012】
請求項3の発明は、請求項1または2の発明に従属し、軌跡取得手段は、移動軌跡上の点の数が第1閾値以上になったとき、当該移動軌跡の入力を受け付けない。
【0013】
請求項3の発明では、軌跡取得手段は、移動軌跡上の点の数が所定の第1閾値以上になったと判定されるとき(S97)、当該移動軌跡の入力を受け付けないようにした。このように、移動軌跡として取得される点の数に上限を設けて、入力可能な移動軌跡の長さを制限するようにしたので、一度の入力でオブジェクトを移動可能な距離を適切な範囲に限定することができる。
【0014】
請求項4の発明は、請求項1ないし3の発明のいずれかに従属し、軌跡送信手段は、軌跡取得手段による取得中に移動軌跡の長さが第2閾値以上になるごとに、逐次移動軌跡を送信する。
【0015】
請求項4の発明では、軌跡送信手段は、移動軌跡の取得中に長さが所定の第2閾値以上になったと判定されるごとに(S101)、当該移動軌跡を管理コンピュータに逐次送信するようにした。このように、一定長さごとに移動軌跡を逐次送信するようにしたので、一度に送信するデータ量を低減することができる。
【0016】
請求項5の発明は、請求項1ないし4の発明のいずれかに従属し、軌跡取得手段は、操作対象のオブジェクトに対して移動軌跡が入力されていない状態から入力されている状態に遷移したとき、取得済みの当該オブジェクトの移動軌跡をクリアする。
【0017】
請求項5の発明では、軌跡取得手段(S83−S89)は、操作対象のオブジェクトに対して移動軌跡が入力され始めたと判定されるときに、過去に取得された当該オブジェクトに対する移動軌跡をクリアする。つまり、ゲーム装置では、操作対象のオブジェクトに対して、次の移動軌跡の入力が開始されるまで、取得済みの移動軌跡情報を記憶しておくことができるので、必要に応じて当該移動軌跡情報に基づいてゲーム処理(たとえば、描画情報を受信できなかったときの位置予測)を行うことができる。
【0018】
請求項6の発明は、請求項1ないし5の発明のいずれかに従属し、軌跡送信手段は、操作対象のオブジェクトに対して移動軌跡が入力されていない状態から入力されている状態に遷移したとき、オブジェクトの移動軌跡のクリア情報をさらに送信し、移動制御手段は、オブジェクトの移動軌跡のクリア情報を受信したとき、受信済みの当該オブジェクトの移動軌跡をクリアする。
【0019】
請求項6の発明では、軌跡送信手段(S83−S87、S91)は、操作対象のオブジェクトに対して移動軌跡が入力され始めたと判定されるときに、オブジェクトの移動軌跡のクリア情報を管理コンピュータに送信する。管理コンピュータの移動制御手段(S31−S35)は、上記クリア情報を受信したとき、受信済みの当該オブジェクトの移動軌跡をクリアする。このように、管理コンピュータでは、ゲーム装置で次の移動軌跡の入力が開始されたときに、受信済みの移動軌跡をクリアするので、受信済みの移動軌跡に基づく移動を実行中の場合には、当該移動を停止することができる。
【0020】
請求項7の発明は、請求項1ないし6の発明のいずれかに従属し、軌跡取得手段は、複数のオブジェクトから操作対象として選択されたオブジェクトを特定して、当該オブジェクトの移動軌跡を取得する。
【0021】
請求項7の発明では、軌跡取得手段(S85、S87、S99)によって、操作対象として選択されたオブジェクトごとの移動軌跡を取得することができるので、当該ゲーム装置のプレイヤは、移動軌跡入力によって複数のキャラクタを操作できる。
【0022】
請求項8の発明は、請求項1ないし7の発明のいずれかに従属し、操作手段はポインティングデバイスであり、軌跡取得手段は、ポインティングデバイスの入力から連続的に検出される複数の座標を移動軌跡として取得する。
【0023】
請求項8の発明では、ゲーム装置では、操作手段としてたとえばタッチパネルなどのポインティングデバイスが適用され、当該ポインティングデバイスの入力から連続的に検出された複数の座標が移動軌跡として取得される。このように、プレイヤは、オブジェクトの移動軌跡をポインティングデバイスでの連続的な座標指示によって入力することができるので、直感的な操作でオブジェクトの移動を操作することができる。
【0024】
請求項9の発明は、請求項1ないし8の発明のいずれかに従属し、管理コンピュータは、当該管理コンピュータの操作対象であるオブジェクトの動作をプレイヤが指示するための動作指示手段をさらに備え、移動制御手段は、当該管理コンピュータの操作対象のオブジェクトの移動を動作指示手段による移動指示に基づいて制御する。
【0025】
請求項9の発明では、管理コンピュータは、動作指示手段(20)をさらに備えており、つまり、この場合の管理コンピュータは親機として機能するゲーム装置であり、当該親機のプレイヤが操作するオブジェクト(134)が、子機として機能するゲーム装置のオブジェクトとともに仮想ゲーム空間に登場する。当該親機の操作対象のオブジェクトの移動は、当該親機のプレイヤによる動作指示手段の移動指示に基づいて制御される(S3、S5)。したがって、子機のオブジェクトを移動軌跡に沿って移動させ、一方、親機のオブジェクトを動作指示によってリアルタイムに移動させることができるので、通信遅延の悪影響を回避可能な上に、興趣性および戦略性の高い通信ゲームを実現できる。
【0026】
請求項10の発明は、請求項1ないし9の発明のいずれかに従属し、ゲーム装置は、描画情報送信手段からの描画情報を一定時間受信しないとき、少なくとも操作対象のオブジェクトの位置を、軌跡取得手段によって取得した移動軌跡に基づいて予測する予測手段をさらに備える。
【0027】
請求項10の発明では、ゲーム装置の予測手段(S125−S131)は、描画情報を一定時間受信できなかったときには、少なくとも当該ゲーム装置の操作対象のオブジェクトの位置を、移動軌跡に基づいて予測する。したがって、描画情報の受信が遅れたとしても、ゲーム装置では、記憶された移動軌跡に基づいて、操作対象のオブジェクトの次の位置を精度良く予測することができる。さらに、予測が正確に行えるので、予測後に描画情報を受信したときに位置修正を行っても、当該オブジェクトを滑らかに移動させることができる。
【0028】
第2の発明(請求項11の発明)は、通信ゲームシステムにおいて仮想ゲーム空間に登場する複数のオブジェクトの移動を管理する管理コンピュータと通信可能に接続されるゲーム装置である。このゲーム装置は、操作手段、軌跡取得手段、軌跡送信手段、描画情報受信手段、および画面表示手段を備える。操作手段は、複数のオブジェクトのうち少なくとも1つのオブジェクトを操作対象としてプレイヤに操作させるためのものである。軌跡取得手段は、操作手段によって入力される操作対象のオブジェクトの移動軌跡を取得する。軌跡送信手段は、軌跡取得手段によって取得される移動軌跡を管理コンピュータに送信する。描画情報受信手段は、移動軌跡によって移動されたオブジェクトを含む仮想ゲーム空間を描画するための描画情報を管理コンピュータから受信する。画面表示手段は、描画情報受信手段によって受信した描画情報によって、操作対象のオブジェクトを含むゲーム画面を生成して表示する。
【0029】
請求項11の発明は、第1の発明の通信ゲームシステムにおいて適用されるゲーム装置であり、第1の発明と同様にして、通信遅延を感じさせずにオブジェクトを移動させることができる通信ゲームを実現できる。
【0030】
第3の発明(請求項12の発明)は、通信ゲームシステムにおいて仮想ゲーム空間に登場する複数のオブジェクトの移動を管理する管理コンピュータと通信可能に接続される、かつ、複数のオブジェクトのうち少なくとも1つのオブジェクトを操作対象としてプレイヤに操作させる操作手段を備えるゲーム装置のゲームプログラムである。このゲームプログラムは、ゲーム装置を、軌跡取得手段、軌跡送信手段、描画情報受信手段、および画面表示手段として機能させる。軌跡取得手段は、操作手段によって入力される操作対象のオブジェクトの移動軌跡を取得する。軌跡送信手段は、軌跡取得手段によって取得される移動軌跡を管理コンピュータに送信する。描画情報受信手段は、移動軌跡によって移動されたオブジェクトを含む仮想ゲーム空間を描画するための描画情報を管理コンピュータから受信する。画面表示手段は、描画情報受信手段によって受信した描画情報によって、操作対象のオブジェクトを含むゲーム画面を生成して表示する。
【0031】
請求項12の発明は、第1の発明の通信ゲームシステムにおいて適用される第2のゲーム装置のゲームプログラムであり、第2の発明と同様の効果を奏する。
【0032】
第4の発明(請求項13の発明)は、通信ゲームシステムにおいて仮想ゲーム空間に登場する複数のオブジェクトのうち少なくとも1つのオブジェクトを操作対象としてプレイヤに操作させる操作手段を備えるゲーム装置と通信可能に接続される、かつ、複数のオブジェクトの移動を管理する管理コンピュータである。この管理コンピュータは、軌跡受信手段、移動制御手段、および描画情報送信手段を備える。軌跡受信手段は、ゲーム装置の操作手段によって取得されて送信されるオブジェクトの移動軌跡を受信する。移動制御手段は、軌跡受信手段によって受信した移動軌跡によって仮想ゲーム空間における操作対象のオブジェクトの移動を制御する。描画情報送信手段は、移動制御手段によって移動されたオブジェクトを含む仮想ゲーム空間を描画するための描画情報をゲーム装置に送信する。
【0033】
請求項13の発明は、第1の発明の通信ゲームシステムにおいて適用される管理コンピュータであり、第1の発明と同様にして、通信遅延を感じさせずにオブジェクトを移動させることができる通信ゲームを実現できる。
【0034】
第5の発明(請求項14の発明)は、通信ゲームシステムにおいて仮想ゲーム空間に登場する複数のオブジェクトのうち少なくとも1つのオブジェクトを操作対象としてプレイヤに操作させる操作手段を備えるゲーム装置と通信可能に接続される、かつ、複数のオブジェクトの移動を管理する管理コンピュータのゲームプログラムである。このゲームプログラムは、管理コンピュータを、軌跡受信手段、移動制御手段、および描画情報送信手段として機能させる。軌跡受信手段は、ゲーム装置の操作手段によって取得されて送信されるオブジェクトの移動軌跡を受信する。移動制御手段は、軌跡受信手段によって受信した移動軌跡によって仮想ゲーム空間における操作対象のオブジェクトの移動を制御する。描画情報送信手段は、移動制御手段によって移動されたオブジェクトを含む仮想ゲーム空間を描画するための描画情報をゲーム装置に送信する。
【0035】
請求項14の発明は、第1の発明の通信ゲームシステムにおいて適用される第4の発明の管理コンピュータのゲームプログラムであり、第4の発明と同様の効果を奏する。
【0036】
第6の発明(請求項15の発明)は、仮想ゲーム空間に登場する複数のオブジェクトの移動を管理する親機と、複数のオブジェクトのうち少なくとも1つのオブジェクトを操作対象としてプレイヤに操作させる操作手段を備える子機としてそれぞれ機能する複数のゲーム装置を含む通信ゲームシステムのためのゲームプログラムである。このゲームプログラムは、子機として動作する場合のゲーム装置を、軌跡取得手段、軌跡送信手段、描画情報受信手段、および画面表示手段として機能させる。軌跡取得手段は、操作手段によって入力される当該操作対象のオブジェクトの移動軌跡を取得する。軌跡送信手段は、軌跡取得手段によって取得される移動軌跡を親機に送信する。描画情報受信手段は、移動軌跡によって移動されたオブジェクトを含む仮想ゲーム空間を描画するための描画情報を親機から受信する。画面表示手段は、描画情報受信手段によって受信した描画情報によって、操作対象のオブジェクトを含むゲーム画面を生成して表示する。さらに、このゲームプログラムは、親機として動作する場合のゲーム装置を、軌跡受信手段、移動制御手段、および描画情報送信手段として機能させる。軌跡受信手段は、子機から送信されるオブジェクトの移動軌跡を受信する。移動制御手段は、軌跡受信手段によって受信した移動軌跡によって仮想ゲーム空間における操作対象のオブジェクトの移動を制御する。描画情報送信手段は、移動制御手段によって移動されたオブジェクトを含む仮想ゲーム空間を描画するための描画情報を子機に送信する。
【0037】
請求項15の発明は、複数のゲーム装置によって第1の発明の通信ゲームシステムを実現するためのゲームプログラムであり、複数のゲーム装置のそれぞれに適用されてゲーム装置を親機および子機として機能させる。この請求項15の発明によれば、上述の第1の発明と同様にして、プレイヤに通信遅延を感じさせずにオブジェクトの移動を制御できる。
【発明の効果】
【0038】
この発明によれば、プレイヤが当該オブジェクトの移動を指示する情報を移動軌跡としてゲーム装置ないし子機で取得して、管理コンピュータないし親機で移動軌跡によって当該オブジェクトの移動を制御するようにしたので、通信遅延が生じても、オブジェクトの移動を続行させることができ、移動中であるにもかかわらずオブジェクトの移動が中断してしまうような事態を回避できる。したがって、通信遅延をプレイヤに感じさせることなくオブジェクトを移動させてゲームを進行させることができる。
【0039】
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【発明を実施するための最良の形態】
【0040】
図1を参照して、この発明の実施例であるゲーム装置10は、第1の液晶表示器(LCD)12および第2のLCD14を含む。このLCD12およびLCD14は、所定の配置位置となるようにハウジング16に収納される。この実施例では、ハウジング16は、上側ハウジング16aと下側ハウジング16bとによって構成され、LCD12は上側ハウジング16aに収納され、LCD14は下側ハウジング16bに収納される。したがって、LCD12とLCD14とは縦(上下)に並ぶように近接して配置される。
【0041】
なお、この実施例では、表示器としてLCDを用いるようにしてあるが、LCDに代えて、EL(Electronic Luminescence)ディスプレイやプラズマディスプレイを用いるようにしてもよい。
【0042】
図1からも分かるように、上側ハウジング16aは、LCD12の平面形状よりも少し大きな平面形状を有し、一方主面からLCD12の表示面を露出するように開口部が形成される。一方、下側ハウジング16bは、その平面形状が上側ハウジング16aよりも横長に選ばれ、横方向の略中央部にLCD14の表示面を露出するように開口部が形成される。また、下側ハウジング16bには、音抜き孔18が形成されるとともに、操作スイッチ20(20a,20b,20c,20d,20e,20Lおよび20R)が設けられる。
【0043】
また、上側ハウジング16aと下側ハウジング16bとは、上側ハウジング16aの下辺(下端)と下側ハウジング16bの上辺(上端)の一部とが回動可能に連結されている。したがって、たとえば、ゲームをプレイしない場合には、LCD12の表示面とLCD14の表示面とが対面するように、上側ハウジング16aを回動させて折りたたんでおけば、LCD12の表示面およびLCD14の表示面に傷がつくなどの破損を防止することができる。ただし、上側ハウジング16aと下側ハウジング16bとは、回動可能に連結せずに、それらを一体的(固定的)に設けたハウジング16を形成するようにしてもよい。
【0044】
操作スイッチ20は、方向指示スイッチ(十字スイッチ)20a,スタートスイッチ20b、セレクトスイッチ20c、動作スイッチ(Aボタン)20d、動作スイッチ(Bボタン)20e、動作スイッチ(Lボタン)20Lおよび動作スイッチ(Rボタン)20Rを含む。スイッチ20a,20bおよび20cは、下側ハウジング16bの一方主面において、LCD14の左側に配置される。また、スイッチ20dおよび20eは、下側ハウジング16bの一方主面において、LCD14の右側に配置される。さらに、スイッチ20Lおよびスイッチ20Rは、それぞれ、下側ハウジング16bの上端(天面)の一部であり上側ハウジング16aとの連結部以外の部分において、当該連結部を挟むようにして左右に配置される。
【0045】
方向指示スイッチ20aは、ディジタルジョイスティックとして機能する。4つの押圧部の1つを操作することによって、プレイヤによって操作可能なプレイヤキャラクタ(またはプレイヤオブジェクト)やカーソルの移動方向の指示等が可能である。スタートスイッチ20bは、プッシュボタンで構成され、ゲームの開始(再開)、や一時停止等のために用いられる。セレクトスイッチ20cは、プッシュボタンで構成され、ゲームモードの選択等のために用いられる。
【0046】
動作スイッチ20dすなわちAボタンは、プッシュボタンで構成され、方向指示以外の動作、すなわち、プレイヤキャラクタに打つ(パンチ)、投げる、つかむ(取得)、乗る、ジャンプする、切る等の任意の動作(アクション)をさせることができる。たとえば、アクションゲームにおいては、ジャンプ、パンチ、武器を動かす等を指示することができる。また、ロールプレイングゲーム(RPG)やシミュレーションRPGにおいては、アイテムの取得、武器やコマンドの選択および決定等を指示することができる。動作スイッチ20eすなわちBボタンは、プッシュボタンで構成され、セレクトスイッチ20cで選択したゲームモードの変更やAボタン20dで決定したアクションの取り消し等のために用いられる。
【0047】
動作スイッチ20L(Lボタン)および動作スイッチ20R(Rボタン)は、プッシュボタンで構成され、Lボタン20LおよびRボタン20Rは、Aボタン20dおよびBボタン20eと同様の操作に用いることができ、また、Aボタン20dおよびBボタン20eの補助的な操作に用いることができる。
【0048】
また、LCD14の上面には、タッチパネル22が装着される。タッチパネル22としては、たとえば、抵抗膜方式、光学式(赤外線方式)および静電容量結合式のいずれかの種類のものを用いることができる。また、タッチパネル22は、その上面をスティック24ないしはペン(スタイラスペン)或いは指(以下、これらを「スティック24等」という場合がある。)で、押圧したり、撫でたり、触れたり、叩いたりすることにより操作すると、スティック24等によって操作された(つまり、タッチされた)位置の座標を検出して、当該検出座標に対応する座標データを出力する。
【0049】
なお、この実施例では、LCD14(LCD12も同じ、または略同じ。)の表示面の解像度は256dot×192dotであり、タッチパネル22の検出精度(操作面)も表示画面に対応して256dot×192dotとしてある。ただし、図1では、タッチパネル22を分かり易く示すために、タッチパネル22をLCD14と異なる大きさで示してあるが、LCD14の表示画面の大きさとタッチパネル22の操作面の大きさとは同じ大きさである。なお、タッチパネル22の検出精度は、表示画面の解像度よりも低くてもよく、高くてもよい。
【0050】
LCD12およびLCD14には異なるゲーム画面が表示され得る。また、たとえば、2つのLCD12および14を合わせて1つの画面として用いることにより、プレイヤキャラクタが倒さなければならない巨大な怪物(敵キャラクタ)を表示することもできる。プレイヤはスティック24等でタッチパネル22を操作することにより、LCD14の画面に表示されるプレイヤキャラクタ、敵キャラクタ、アイテムキャラクタ、文字情報、アイコン等のキャラクタ画像を指示したり、コマンドを選択したりすることができる。なお、ゲームの種類によっては、その他の入力指示、たとえばLCD14に表示されたアイコンの選択または操作、座標入力指示等に用いることもできる。
【0051】
このように、ゲーム装置10は、2画面分の表示部となるLCD12およびLCD14を有し、いずれか一方(この実施例では、LCD14)の上面にタッチパネル22が設けられるので、2画面(12,14)と2系統の操作部(20,22)とを有する構成になっている。
【0052】
また、この実施例では、スティック24は、たとえば上側ハウジング16aの側面(右側面)近傍に設けられる収納部(穴ないし凹部)26に収納することができ、必要に応じて取り出される。ただし、スティック24を設けない場合には、収納部26を設ける必要もない。
【0053】
さらに、ゲーム装置10はメモリカード(またはゲームカートリッジ)28を含む。このメモリカード28は着脱自在であり、下側ハウジング16bの裏面ないしは底面(下端)に設けられる挿入口30から挿入される。図1では省略するが、挿入口30の奥部には、メモリカード28の挿入方向先端部に設けられるコネクタ(図示せず)と接合するためのコネクタ46(図2参照)が設けられており、したがって、メモリカード28が挿入口30に挿入されると、コネクタ同士が接合され、ゲーム装置10のCPUコア42(図2参照)がメモリカード28にアクセス可能となる。
【0054】
なお、図1では表現できないが、下側ハウジング16bの音抜き孔18と対応する位置であり、この下側ハウジング16bの内部には、スピーカ32(図2参照)が設けられる。
【0055】
また、図1では省略するが、たとえば、下側ハウジング16bの裏面側には、電池収容ボックスが設けられ、また、下側ハウジング16bの底面側には、電源スイッチ、音量スイッチ、外部拡張コネクタおよびイヤフォンジャックなども設けられる。
【0056】
図2はゲーム装置10の電気的な構成を示すブロック図である。図2を参照して、ゲーム装置10は電子回路基板40を含み、この電子回路基板40にはCPUコア42等の回路コンポーネントが実装される。CPUコア42は、バス44を介してコネクタ46に接続されるとともに、RAM48、第1のグラフィック処理ユニット(GPU)50、第2のGPU52、入出カインターフェイス回路(以下、「I/F回路」という。)54、LCDコントローラ60およびワイヤレス通信部64に接続される。
【0057】
コネコタ46には、上述したように、メモリカード28が着脱自在に接続される。メモリカード28は、ROM28aおよびRAM28bを含み、図示は省略するが、ROM28aおよびRAM28bは、互いにバスで接続され、さらに、コネクタ46と接合されるコネクタ(図示せず)に接続される。したがって、上述したように、CPUコア42は、ROM28aおよびRAM28bにアクセスすることができるのである。
【0058】
ROM28aは、ゲーム装置10で実行すべきゲーム(仮想ゲーム)のためのゲームプログラム、画像データ(キャラクタ画像、背景画像、アイテム画像、アイコン(ボタン)画像、メッセージ画像など)およびゲームに必要な音(音楽)のデータ(音データ)等を予め記憶する。RAM(バックアップRAM)28bは、そのゲームの途中データやゲームの結果データを記憶(セーブ)する。
【0059】
RAM48は、バッファメモリないしはワーキングメモリとして使用される。つまり、CPUコア42は、メモリカード28のROM28aに記憶されたゲームプログラム、画像データおよび音データ等をRAM48にロードし、ロードしたゲームプログラムを実行する。また、CPUコア42は、ゲームの進行に応じて発生または取得されるデータ(ゲームデータやフラグデータ等)をRAM48に記憶しつつゲーム処理を実行する。
【0060】
なお、ゲームプログラム、画像データおよび音データ等は、ROM28aから一度に全部または必要に応じて部分的にかつ順次的に読み出され、RAM48に記憶される。ただし、この実施例のように、固定的にプログラムおよびデータを記憶している記憶媒体をCPUコア42に直接接続可能なゲーム装置10の場合には、CPUコア42が記憶媒体に直接アクセスできるので、RAM48にプログラムやデータを転送して保持しなくてよい。
【0061】
GPU50およびGPU52は、それぞれ、描画手段の一部を形成し、たとえばシングルチップASICで構成され、CPUコア42からのグラフィックスコマンド(graphics command :作画命令)を受け、そのグラフィックスコマンドに従ってゲーム画像データを生成する。ただし、CPUコア42は、グラフィックスコマンドに加えて、ゲーム画像データの生成に必要な画像生成プログラム(ゲームプログラムに含まれる。)をGPU50およびGPU52のそれぞれに与える。
【0062】
また、GPU50には、第1のビデオRAM(以下、「VRAM」という。)56が接続され、GPU52には、第2のVRAM58が接続される。GPU50およびGPU52が作画コマンドを実行するにあたって必要なデータ(画像データ:キャラクタデータやテクスチャ等のデータ)は、GPU50およびGPU52が、それぞれ、第1のVRAM56および第2のVRAM58にアクセスして取得する。ただし、CPUコア42は、描画に必要な画像データをRAM48から読み出し、GPU50およびGPU52を介して第1のVRAM56および第2のVRAM58に書き込む。GPU50はVRAM56にアクセスして表示のためのゲーム画像データを作成し、その画像データをVRAM56の描画バッファに記憶する。GPU52はVRAM58にアクセスして描画のためのゲーム画像データを作成し、その画像データをVRAM58の描画バッファに記憶する。描画バッファとしてはフレームバッファまたはラインバッファ等が採用されてよい。
【0063】
VRAM56およびVRAM58は、LCDコントローラ60に接続される。LCDコントローラ60はレジスタ62を含み、レジスタ62はたとえば1ビットで構成され、CPUコア42の指示によって「0」または「1」の値(データ値)を記憶する。LCDコントローラ60は、レジスタ62のデータ値が「0」である場合には、GPU50によって作成されたゲーム画像データをLCD12に出力し、GPU52によって作成されたゲーム画像データをLCD14に出力する。一方、レジスタ62のデータ値が「1」である場合には、LCDコントローラ60は、GPU50によって作成されたゲーム画像データをLCD14に出力し、GPU52によって作成されたゲーム画像データをLCD12に出力する。
【0064】
なお、LCDコントローラ60は、VRAM56およびVRAM58から直接画像データを読み出すことができるし、あるいはGPU50およびGPU52を介してVRAM56およびVRAM58から画像データを読み出すこともできる。
【0065】
また、VRAM56およびVRAM58はRAM48に設けられてもよいし、あるいはその描画バッファおよびZバッファがRAM48に設けられてもよい。
【0066】
I/F回路54には、操作スイッチ20,タッチパネル22およびスピーカ32が接続される。ここで、操作スイッチ20は、上述したスイッチ20a,20b,20c,20d,20e,20Lおよび20Rであり、操作スイッチ20が操作されると、対応する操作信号(操作データ)がI/F回路54を介してCPUコア42に入力される。また、タッチパネル22から出力される操作データ(座標データ)がI/F回路54を介してCPUコア42に入力される。さらに、CPUコア42は、ゲーム音楽(BGM)、効果音またはゲームキャラクタの音声(擬制音)などのゲームに必要な音データをRAM48から読み出し、I/F回路54を介してスピーカ32からその音を出力する。
【0067】
ワイヤレス通信部64は他のゲーム装置10や通信機器との間で無線によってデータを送受信するための通信手段である。ワイヤレス通信部64は、相手方への通信データを無線信号に変調してアンテナから送信し、また、相手方からの無線信号を同じアンテナで受信して通信データに復調する。このワイヤレス通信部64を介して、ゲーム装置10は、他のゲーム装置10との間でデータを通信して通信ゲームを実行する。ワイヤレス通信部64は、たとえばIEEE802.11(Wi−Fi)に対応しており、無線LANによって他のゲーム装置10や通信機器とデータを通信することが可能である。ゲーム装置10は、たとえば近くに存在する他のゲーム装置10との間で無線LANによって通信ゲームを実行してよい。また、ゲーム装置10は、TCP/IPプロトコルを用いてインターネットを介して他のコンピュータ(サーバおよびゲーム装置10等)とデータを通信することができる。したがって、ゲーム装置10は、たとえば家庭内LANや公衆無線LANの無線LANアクセスポイントからインターネットサービスプロバイダ(ISP)にアクセスし、ISPを介してインターネットないしWAN(Wide Area Network)のようなネットワークに接続し、離れた場所でインターネットに接続している他のゲーム装置10との間で通信ゲームを実行することができる。
【0068】
なお、ワイヤレス通信部64は無線LAN規格の代わりにたとえばBluetoothのような他の無線通信規格に従って動作してもよい。
【0069】
また、このワイヤレス通信部64は、たとえば時分割多元接続方式をベースとした無線通信を実行することも可能である。近くの他のゲーム装置10との間での通信ゲームはこの無線通信方式で実行されてよい。たとえば、各ゲーム装置10には1通信サイクル中にタイムスロットが割り当てられ、割り当てられたスロットで自己のデータを送信する。なお、このような無線通信の技術は、本件出願人による特開2004−135778号公報および特開2004−136009号公報などに詳細に開示されるので参照されたい。
【0070】
複数台の上述のようなゲーム装置10を用いて、この実施例の通信ゲームシステム200が構成される。すなわち、図3に示すように、この通信ゲームシステム200では、複数のゲーム装置10がインターネットなどのネットワーク202を介して互いに通信可能に接続される。なお、各ゲーム装置10は、無線によって図示しないアクセスポイントからネットワーク202に接続している。
【0071】
これら複数のゲーム装置10間で、仮想ゲーム空間に複数のオブジェクトが登場する通信ゲームが実行される。各ゲーム装置10には、複数のオブジェクトのうち1または複数のオブジェクトが操作対象として割り当てられている。つまり、各ゲーム装置10のプレイヤは、1または複数のオブジェクトを自らのプレイヤオブジェクトとして操作する。
【0072】
また、この実施例では、複数のゲーム装置10のうちの1つが親機となり、その他は子機となって、親機と子機との間でデータが送受信される。なお、自機が親機になるか子機になるかはたとえば選択画面で各プレイヤによって選択される。
【0073】
複数のゲーム装置10間で整合性を取り食違いを生じさせないために、親機でゲーム空間の管理が行われる。具体的には、親機はゲーム空間内の複数のオブジェクトの移動などの動作制御を管理する。各子機は、当該子機で当該プレイヤによって入力されたオブジェクトに対する操作の情報を親機に送信する。親機は、各子機からの操作情報を受信し、当該受信した操作情報に基づいて、当該子機に対応するオブジェクトを移動させる。さらに、親機は、各オブジェクトが移動されたゲーム空間の状態を更新し、当該移動後のオブジェクトを含むゲーム空間を描画するための描画情報を生成して、各子機に描画情報を送信する。各子機は、描画情報を受信して、当該描画情報によってゲーム画面を生成して表示する。このようにして、各ゲーム装置10では、同期が取られ、矛盾のないゲーム画面が表示される。
【0074】
ところが、通信ゲームシステム200では、ネットワーク202上の中継機器の通過や通信距離などによって通信遅延が生ずる。たとえば、子機での方向指示スイッチ20aの操作があるたびにあるいは連続的な操作が行われている場合に子機が1つ1つの操作情報を親機に送信するような方法では、親機では通信遅延によって当該操作情報の受信が遅れることがあり得る。このような受信の遅れによって、親機では当該オブジェクトの移動が途中で停止されてしまう恐れがあり、移動が途中で停止された場合には、そのような当該子機での実際の操作入力と異なる描画情報が各子機に送信されてしまうこととなる。
【0075】
そこで、この実施例では、子機ではプレイヤの入力に基づいてオブジェクトの移動軌跡を取得するようにした。具体的には、子機では、オブジェクトがこれから移動しようとする経路を示す移動軌跡が入力情報から取得されて、当該移動軌跡が親機に送信されるようにした。親機では、当該移動軌跡に沿って当該子機に対応するオブジェクトが仮想ゲーム空間内で移動され、当該移動後のオブジェクトを含む仮想ゲーム空間を描画するための描画情報が各子機に送信される。このように各子機に対応するオブジェクトの移動軌跡を親機に送信するようにすれば、従来のように方向指示スイッチの1つ1つの操作情報を親機に送信する場合に比べると一度の入力で複数操作情報に相当する情報を送信することができる。これにより、親機では、移動軌跡の受信後に通信遅延が生じても、移動軌跡として当該オブジェクトの移動しようとする経路が既に取得されているので、当該オブジェクトの移動が途中で停止するような事態を回避することができる。
【0076】
図4から図6にはメモリマップの一例が示される。図4にはメモリカード28のROM28aのメモリマップの一例が示される。ROM28aはゲームプログラム記憶領域70およびデータ記憶領域72を含む。なお、図4にはメモリマップの一部のみが示されており、ゲームプログラム記憶領域70およびデータ記憶領域72には図中に明示された以外にも必要な各種プログラムおよびデータが予め記憶されている。
【0077】
ゲームプログラム記憶領域70の記憶領域74には入力情報取得プログラムが記憶されている。このプログラムによって、たとえば、一定時間(1フレーム等)ごとに、入力情報として操作スイッチ20からの操作情報およびタッチパネル22で検出された操作情報(検出座標を含む)が取得される。プレイヤによる入力が無い場合には入力無しを示す情報が取得される。
【0078】
記憶領域76には画面生成プログラムが記憶されている。このプログラムによって、描画情報に基づいてゲーム画面が生成されて当該画面がLCD12または14に表示される。
【0079】
記憶領域78には、ゲーム装置10が親機として機能する場合に実行されるプログラム(親機プログラム)が記憶されている。この親機プログラム記憶領域78の記憶領域80には、移動軌跡受信プログラムが記憶されている。このプログラムによって、各子機から送信される各オブジェクトの移動軌跡情報が受信される。
【0080】
親機プログラム記憶領域78の記憶領域82には、キャラクタ移動制御プログラムが記憶されている。このプログラムによって、ゲーム空間に存在する複数のキャラクタ(オブジェクト)の移動が制御される。複数のオブジェクトのうち子機に対応付けられるオブジェクトの移動は、当該子機から受信した移動軌跡に基づいて制御される。つまり、子機の操作対象のオブジェクト(子オブジェクトまたは子キャラクタ)は当該移動軌跡に沿って仮想ゲーム空間内を移動する。移動軌跡は、上述のようにオブジェクトが移動しようとする経路であり、この実施例では、移動軌跡上の各点の座標は、LCD14に表示された2次元地図へのプレイヤの入力によって取得された2次元座標(x,y)である。仮想ゲーム空間は3次元で表現されるので、このキャラクタ移動制御プログラムは、取得した移動軌跡の各点を仮想3次元ゲーム空間の座標系の3次元座標(x,y,z)に変換して、当該変換した3次元座標の移動軌跡に沿って当該子オブジェクトを移動させる。
【0081】
また、ゲーム空間内の複数のオブジェクトのうち親機に対応付けられるオブジェクトの移動は、この実施例では、操作スイッチ20のうち方向指示スイッチ20aの操作情報に基づいて制御される。つまり、親機の操作対象のオブジェクト(親オブジェクトまたは親キャラクタ)は、操作スイッチ20aで指示された方向に移動される。
【0082】
なお、後述のように、子オブジェクトの移動軌跡の送信においては、個々の点の情報が順次送信されるのではなく、複数の点の情報がまとめて送信されるので、子オブジェクトの移動はリアルタイムで行われるものではない。一方、この実施例では、親オブジェクトの移動制御は操作スイッチ20aの操作情報に応じて直ちに実行され、つまり、親機のプレイヤは親オブジェクトの移動を含む動作をリアルタイムで操作することができる。
【0083】
このように、この実施例では、子機の操作対象の子キャラクタは、移動軌跡の入力によって当該経路上を移動させ、一方、親機の操作対象の親キャラクタは、動作指示によってリアルタイムに移動させるようにしている。したがって、通信遅延の悪影響を回避可能な上に、興趣性および戦略性の高い通信ゲームを実現できる。たとえば、子キャラクタは入力された移動軌跡に沿った移動を行うことによって親キャラクタを追跡し、親キャラクタは子キャラクタとの接触を避けながら所定の目的を果すといった、興趣性および戦略性の高い通信対戦ゲームを実現できる。
【0084】
なお、他の実施例では、親オブジェクトの移動は、子オブジェクトと同様に、親機で取得された移動軌跡に基づいて制御されるようにしてもよい。つまり、親オブジェクトもリアルタイムで移動されなくてもよい。
【0085】
親機プログラム記憶領域78の記憶領域84には、描画情報送信プログラムが記憶されている。このプログラムによって、仮想ゲーム空間を描画するための描画情報が各子機に送信される。描画情報は、キャラクタ移動制御プログラムによって複数のオブジェクトの移動が制御されて仮想ゲーム空間内の状態が更新された後に、親機で生成される。つまり、描画情報は、子機から受信した移動軌跡によって当該子機に対応するオブジェクトを移動させた後の仮想ゲーム空間を描画するための情報である。この描画情報は、例えば仮想ゲーム空間におけるオブジェクトの位置が代表的なものである。また、その他にオブジェクトの方向やオブジェクトに特定のアクションをさせるためのモーションを示す情報を含めることも可能である。
【0086】
記憶領域86には、ゲーム装置10が子機として機能する場合に実行されるプログラム(子機プログラム)が記憶されている。この子機プログラム記憶領域86の記憶領域88には、移動軌跡取得プログラムが記憶されている。このプログラムによって、子オブジェクトを移動させるための移動軌跡が取得される。具体的には、移動軌跡は、ゲーム空間の2次元地図が表示されたLCD14のタッチパネル22上の軌跡入力に応じて取得される。つまり、移動軌跡は、プレイヤがタッチパネル22上でスティック24等をスライドさせることによって連続的に検出された複数の座標に基づいて取得される。ただし、この実施例では、移動軌跡を入力する際には、プレイヤは、始めに子オブジェクトのアイコン画像にタッチすることで、操作したい子オブジェクトを選択する。そして、プレイヤは、タッチし続けたままスティック24等を所望の経路で所望の位置まで移動させ、最後にスティック24等をタッチパネル22から離すことによって、当該子オブジェクトに対する軌跡入力を終了する。このように、この実施例では、子オブジェクトへのタッチ開始からタッチ終了までに連続的に検出された複数の座標によって移動軌跡が取得される。ただし、タッチパネル22で検出される各点の座標はタッチパネル22上の座標系の2次元座標(X,Y)である。したがって、当該検出座標と入力時にLCD14に表示されている2次元地図の情報とを照合することによって、検出座標(X,Y)を仮想3次元ゲーム空間の座標系の水平面上の座標(x,y)に変換し、当該変換された座標(x,y)によって表現された移動軌跡を取得する。
【0087】
また、この実施例では、取得する移動軌跡には長さ制限が設けられる。つまり、移動軌跡の長さが所定の閾値を超えたとみなせるような条件が満足された判定される場合には、タッチパネル22で入力が検出されても、当該入力は移動軌跡として受け付けられず、移動軌跡情報に記憶されない。移動軌跡の受け付けを停止する条件は、この実施例では、移動軌跡として取得された点の数が所定の閾値を超えたことである。
【0088】
子機プログラム記憶領域86の記憶領域90には移動軌跡送信プログラムが記憶されている。このプログラムによって移動軌跡が親機に送信される。また、この実施例では、取得される移動軌跡が所定の長さを超えるごとに、当該移動軌跡情報が逐次親機に送信される。これによって、一度に送信されるデータ量を低減することができる。
【0089】
子機プログラム記憶領域86の記憶領域92には描画情報受信プログラムが記憶されている。このプログラムによって、親機から送信された描画情報が受信される。子機ではこの描画情報に基づいて当該子機に対応する子オブジェクトを含むゲーム空間を示すゲーム画面が生成されて、当該ゲーム画面がLCD12および14に表示されることとなる。
【0090】
子機プログラム記憶領域86の記憶領域94には予測プログラムが記憶されている。子機では、親機からの描画情報を、通信遅延によって一定時間以上受信できなかったとき、このプログラムによって各オブジェクトの少なくとも位置が予測される。そして、当該予測結果に従ってゲーム画面が生成されることとなる。具体的には、子機は、自分自身に対応する子オブジェクトの移動軌跡情報を記憶しているので、当該移動軌跡情報を使用して当該子オブジェクトの位置を予測する。本来親機でこの移動軌跡情報に基づいて当該子オブジェクトの移動が制御されているので、当該移動軌跡情報に基づく予測が外れることはほとんどなく、正確な予測が可能である。また、他のオブジェクトの予測は、各オブジェクトの位置の履歴に基づいて行われる。さらにまた、予測後に、親機からの描画情報を受信したときには、予測位置と受信した描画情報に含まれる位置との補間によって、次の位置を算出する。なお、位置以外にもオブジェクトの向いている方向なども履歴に基づいて予測されてよい。
【0091】
データ記憶領域72の記憶領域96にはマップデータが記憶されている。マップデータは仮想ゲーム空間のマップデータであり、当該ゲーム空間内の地形、構造物などの状態(位置や向きなど)を示す情報を含む。記憶領域98には画像データが記憶されている。親機に対応する親キャラクタ、子機に対応する第1子キャラクタ、第2子キャラクタ,…などの画像データも含まれる。
【0092】
図5にはゲーム装置10が親機として機能する場合のRAM48のメモリマップの一例が示される。なお、図5でもメモリマップの一部のみが示されており、図示されたもの以外にもゲーム処理に必要なデータが記憶される。
【0093】
記憶領域100には入力情報が記憶される。入力情報は入力情報取得プログラムによって取得された操作スイッチ20の操作情報およびタッチパネル22の検出情報を含む。
【0094】
記憶領域102には移動軌跡受信プログラムによって取得した移動軌跡情報が記憶される。移動軌跡情報は、各子機から受信した各子キャラクタの移動軌跡であり、各子機の各キャラクタ(第1子キャラクタ,…)に対応付けて記憶される。
【0095】
記憶領域104には軌跡書込終了フラグが記憶される。軌跡書込終了フラグは子機の子キャラクタに対する移動軌跡の入力の終了を示し、各子機の各子キャラクタ(第1子キャラクタ,…)に対応付けて記憶される。軌跡書込終了フラグがオンであることは、移動軌跡の入力が確定したことを意味し、一方、当該フラグがオフであることは、移動軌跡の入力が未確定であることを意味する。親機では、軌跡書込終了フラグがオンである場合に、当該フラグに対応する子キャラクタの移動制御が実行される。具体的には、子機で移動軌跡の入力が終了されたとき、軌跡書込終了コマンドが親機に送信される。親機では、子機から子キャラクタに対する軌跡書込終了コマンドを受信したとき、当該子機の当該子キャラクタに対応する軌跡書込終了フラグがオンにされる。軌跡書込終了フラグがオンになったことをトリガとして当該フラグに対応する子キャラクタの移動が開始される。一方、子機で移動軌跡の入力が開始されたとき、ラインクリアコマンドが親機に送信される。親機では、子機から子キャラクタに対応するラインクリアコマンドを受信したとき、当該子機の当該子キャラクタに対する軌跡書込終了フラグがオフにされる。
【0096】
記憶領域106には生成された描画情報が記憶される。描画情報は仮想ゲーム空間を描画するための情報であり、当該仮想ゲーム空間に登場する各オブジェクト(親キャラクタ、第1子キャラクタ、…など)を描画するための情報を含む。具体的には、各ゲーム装置10のプレイヤによって操作される各プレイヤキャラクタ(プレイヤオブジェクト)に関しては、描画情報は、位置(座標)、向きおよびモーションなどの情報を含む。ここで、モーションは、キャラクタの行う身体動作の種類を意味し、たとえば移動の場合、キャラクタが手を振り足を動かすといった振る舞いを行うモーションデータを指定する情報である。
【0097】
図6にはゲーム装置10が子機として機能する場合のRAM48のメモリマップの一例が示される。なお、この図6でもメモリマップの一部が示されるだけで、その他必要なデータが記憶される。
【0098】
記憶領域110には、入力情報取得プログラムによって取得された入力情報が記憶される。入力情報は操作スイッチ20の操作情報およびタッチパネル22の検出情報を含む。
【0099】
記憶領域112には、移動軌跡取得プログラムに従って入力情報を基に取得された移動軌跡が記憶される。移動軌跡情報は、現在操作対象となっている子キャラクタに対応付けて記憶される。上述のように、この実施例では、取得された移動軌跡の長さが一定以上になるごとに、それまでに取得済みの移動軌跡情報が逐次親機に送信される。また、移動軌跡として親機に送信された点の数が一定値以上になったときには、移動軌跡の入力が受け付けられないようにされ、プレイヤによる入力が続けられていても、当該移動軌跡はこの記憶領域112に記憶されなくなる。
【0100】
記憶領域114には軌跡ポイント送信回数が記憶される。軌跡ポイント送信回数は、移動軌跡として送信した座標点の数を意味する。移動軌跡の長さが一定距離以上になって当該移動軌跡を親機に送信するごとに、移動軌跡に含まれる点の数がカウントされて、現在までに送信した点の数の累計が軌跡ポイント送信回数として記憶される。
【0101】
記憶領域116には前回ポイント座標が記憶される。この実施例では、取得した移動軌跡の長さが一定値以上になるごとに送信が実行されるので、次回の移動軌跡の距離算出における参照のために、現在の検出座標が前回ポイント座標として記憶される。
【0102】
記憶領域118には受信描画情報が記憶される。受信描画情報は、描画情報受信プログラムに従って親機から受信した描画情報である。ゲーム空間に登場する各キャラクタ(親キャラクタ、第1キャラクタ、…)ごとの描画情報(位置、向き、モーションなど)が記憶される。子機では、この受信描画情報に基づいて、当該子機の操作対象の子キャラクタを含むゲーム空間を示すゲーム画面が生成されてLCD12および14に表示される。
【0103】
記憶領域120には位置履歴情報が記憶される。具体的には、各キャラクタの位置情報の履歴が記憶される。各キャラクタの履歴は、少なくとも過去2回(たとえば直前の2フレーム)の座標、つまり、前回および現在の座標を含む。また、この記憶領域120には各キャラクタの向き情報の履歴も記憶される。予測プログラムに従って予測を行う際にはこの履歴が参照される。
【0104】
記憶領域122には予測情報が記憶される。具体的には、予測プログラムに従って予測された各キャラクタの少なくとも位置を示す情報が記憶される。
【0105】
この通信ゲームシステム200において、子機で子キャラクタを移動させようとする際には、プレイヤは、たとえば、操作スイッチ20Lを操作する。これによって、図7に示すように、タッチパネル22の設けられているLCD14にゲーム空間の2次元地図を示す2次元ゲーム画面が表示され、他方のLCD12には仮想3次元ゲーム空間を示す3次元ゲーム画面が表示される。プレイヤは、LCD14の地図画面に軌跡を描画することによって、子キャラクタの移動軌跡を入力することができる。
【0106】
地図画面には、当該子機で操作可能な子キャラクタを示すアイコン130a、130b、130cが、当該子キャラクタの3次元ゲーム空間内の存在位置に対応する位置に表示される。この子機では複数の子キャラクタを操作可能であるので、3つの子キャラクタのアイコン130a、130b、130cが表示されている。一方、LCD12には、アイコン130aに対応する子キャラクタ132aを含む3次元ゲーム画面が表示されている。なお、子キャラクタアイコン130a−cをまとめて参照符号130で示し、各アイコン130a−cに対応する子キャラクタ132a−cをまとめて参照符号132で示すこともある。
【0107】
子キャラクタ132の移動軌跡を入力する際には、プレイヤは、移動させたい子キャラクタ132に対応するアイコン130にスティック24等でタッチし、タッチしたままスティック24等を所望の経路を通って所望の位置までスライドさせる。図7では、子キャラクタ132aに対応するアイコン130aに対して入力が行われている。スティック24等の移動に応じて当該タッチ位置の座標が連続的に検出され、検出された連続的な座標に基づいて移動軌跡情報が取得される。また、地図画面では、タッチ位置に対応するドットが地色と異なる所定色(白など)に変更され、これによって、図7の下画面に示すように、地図画面上に入力軌跡が描画される。なお、図7では、他のアイコン130b、130cに対応する子キャラクタ132への移動軌跡の入力は先に終了されており、当該アイコン130b、130cの移動軌跡の色は、アイコン130aの色とは異なる所定色(黒など)に変更されている。また、各アイコン130b、130cは、それぞれの移動軌跡に沿って移動中である。
【0108】
アイコン130がタッチされると、対応する子キャラクタ132に対してラインクリアコマンドによって、当該子キャラクタ132に対する移動軌跡入力が開始されたことが親機に伝達される。また、取得された移動軌跡の長さが一定値以上になるごとに、当該移動軌跡情報が逐次親機へ送信される。なお、この送信はポイント追加コマンドによってなされる。
【0109】
その後、子機のプレイヤは、スティック24等をタッチパネル22から離すことによって移動軌跡の入力を終了することができる。移動軌跡の入力が終了されると、子機から親機に書込終了コマンドが送信され、移動軌跡入力が確定したことが伝えられる。親機では、移動軌跡に基づいて当該子キャラクタの移動制御が開始される。そして、移動軌跡に沿って移動した子キャラクタを含むゲーム空間を描画するための描画情報が生成されて各子機に送信される。親機では生成した描画情報によって、また各子機では受信した描画情報によって、ゲーム画面が生成されてLCD12および14の表示が更新される。
【0110】
図8に示すように、子機では、子キャラクタ132aの移動が開始されるとき、上下画面が入れ替えられ、子キャラクタ132aが移動軌跡に沿って3次元ゲーム空間内を移動する場面は下画面に表示される。なお、図8には、移動軌跡に沿った移動が完了した場面が示されている。子キャラクタ132aは、図7で移動軌跡の入力が行われたアイコン130aに対応する子キャラクタであり、子キャラクタ132bはアイコン130bに対応する子キャラクタである。子キャラクタ132aは図中に破線矢印で示したルート(移動軌跡)を通って、親機のプレイヤキャラクタである親キャラクタ134の前に移動している。また、図8の上画面に示すように、地図画面においても、各アイコン130が各移動軌跡に沿って移動し、親キャラクタ134に対応するアイコン136の周囲に到達している。
【0111】
なお、この実施例では、子キャラクタ132によって親キャラクタ134を探索し追跡するようなゲームが行われるので、地図画面における親キャラクタ134のアイコン136は、下画面の子キャラクタ132aの表示範囲内に親キャラクタ134が存在するときに限り表示される。また、図7および図8では、簡単のため、他の子機に対応する子キャラクタおよびそのアイコンの表示は省略している。また、図8に示すように、この実施例では親機の操作する親キャラクタは1体のみであるが、親機でも子機と同様に複数のキャラクタが操作されてよい。
【0112】
この通信ゲームシステム200の親機および子機のそれぞれにおけるゲーム動作の一例を図9から図11および図12および図13のフロー図を参照しながら説明する。
【0113】
図9には親機のメイン処理の動作が示される。親機のCPUコア42は、メイン処理を開始すると、ステップS1で初期処理を実行する。ここでは、通信接続処理が行われ、親機は各子機とネットワーク202を介して通信接続する。また、各種変数に初期値が設定される。
【0114】
続くステップS3からステップS19の処理を、CPUコア42は一定時間(たとえば1フレーム=1/60秒)ごとに実行する。ステップS3では、CPUコア42は親キャラクタ134の動作指示が行われたか否かを記憶領域100の入力情報に基づいて判断する。なお、記憶領域100には、入力情報取得プログラムに従って、一定時間ごとに操作スイッチ20からの操作情報およびタッチパネル22からの操作情報が取得されている。
【0115】
ステップS3で“YES”であれば、CPUコア42は、ステップS5で親キャラクタ動作処理を実行する。この実施例では、親キャラクタ134の移動などの動作は、操作スイッチ20の入力に応じて制御される。したがって、たとえば、方向指示スイッチ20aの操作情報の場合、当該指示方向に親キャラクタ134が移動される。また、動作スイッチ20dの操作情報の場合、親キャラクタ134が所定の動作を実行する。ステップS3で“NO”の場合には処理はそのままステップS7に進む。
【0116】
ステップS7では、CPUコア42は子機からコマンドを受信したか否かを判断し、“YES”であればステップS9でコマンド処理を実行し、“NO”であればそのままステップS11へ進む。ステップS9のコマンド処理では受信したコマンドの種類に応じた処理が行われる。後述するように、子機は子キャラクタ132に対する移動軌跡の入力の段階に応じて3種類のコマンドを親機に送信する。すなわち、子キャラクタのアイコン130に対する移動軌跡入力が開始されたときラインクリアコマンドが送信され(図12のステップS91)、当該移動軌跡入力が継続されているときポイント追加コマンドが送信され(ステップS103)、当該移動軌跡入力が終了されたとき書込終了コマンドが送信される(図13のステップS113)。
【0117】
図10にコマンド処理の動作の一例が示される。コマンド処理を開始すると、CPUコア42は、まず、ステップS31で受信コマンドがラインクリアであるか否かを判断する。つまり、当該コマンドを送信してきた子機で移動軌跡入力が開始されたか否かを判断する。
【0118】
ステップS31で“YES”であれば、CPUコア42は、ステップS33で受信座標に基づいて複数の子キャラクタ132のうち当該子機で指示された子キャラクタ132を特定する。具体的には、受信コマンドに含まれる子機での指示座標と、当該子機に対応する複数の子キャラクタのアイコン130の座標(RAM48に記憶されている。)とに基づいて、移動軌跡が入力され始めたアイコン130および子キャラクタ132を特定する。なお、子機が指示された子キャラクタ132の特定を行って、当該指示された子キャラクタ132の識別情報を含むコマンドを送信するようにしてもよい。
【0119】
続くステップS35で、CPUコア42は該当する子キャラクタ132の既に描画された移動軌跡をクリアする。具体的には、記憶領域102から該当する子キャラクタ132に対応する移動軌跡情報が消去される。記憶されていた情報は、当該子キャラクタ132に対して過去に入力された移動軌跡情報であり、当該子キャラクタ132は、この移動軌跡情報に基づいて移動中であるかまたは既に移動を終了している。
【0120】
このように、この実施例では、子機で或る子キャラクタに対する別の移動軌跡入力が開始されたことに応じて、親機で取得済みの移動軌跡情報をクリアするようにした。したがって、或る子キャラクタを移動軌跡に従って移動させている途中であっても、新たな移動軌跡の入力が開始されたときには、古い移動軌跡に基づく移動を停止させることができる。
【0121】
すなわち、ステップS37では、CPUコア42は、該当する子キャラクタ132の移動を停止する。続くステップS39では、CPUコア42は、記憶領域104の該当する子キャラクタ132の軌跡書込終了フラグをオフにする。この軌跡書込終了フラグがオンであるときには該当する子キャラクタ132の移動制御が行われる。そのため、このステップS39では、新たな移動軌跡の入力が子機のプレイヤによって開始されようとしているので、軌跡書込終了フラグをオフにすることによって、該当する子キャラクタ132の移動制御が行われないようにする。ステップS39を終了するとこのコマンド処理を終了して図9のステップS11に戻る。
【0122】
一方、ステップS31で“NO”の場合、CPUコア42はステップS41で受信コマンドがポイント追加であるか否かを判断する。つまり、入力された移動軌跡を含む情報を受信したか否かを判断する。ステップS41で“YES”であれば、CPUコア42は、ステップS43で、受信した座標すなわち移動軌跡を、記憶領域102の該当する子キャラクタ132の移動軌跡情報に追加する。この実施例では、子機からは所定長さを超えるたびに逐次移動軌跡が送信されてくるので、記憶領域102には、当該子キャラクタ132に対する入力が開始されてから連続的に取得された複数の座標すなわち移動軌跡が蓄積される。移動軌跡を示す各点の座標は、たとえば識別番号(各点の識別情報)に対応付けて記憶される。ステップS43を終了するとこのコマンド処理を終了して図9のステップS11へ戻る。
【0123】
また、ステップS41で“NO”の場合、CPUコア42は、ステップS45で受信コマンドが書込終了であるか否かを判断する。つまり、子機で移動軌跡の入力が終了したか否かを判断する。ステップS45で“YES”であれば、CPUコア42は、ステップS47で、当該受信コマンドに座標が含まれる場合には、当該受信座標を記憶領域102の該当する子キャラクタ132の移動軌跡情報に追加する。そして、ステップS49で、CPUコア42は記憶領域104の該当する子キャラクタ132の軌跡書込終了フラグをオンにする。この軌跡書込終了フラグのオフからオンへの変化に応じて、この親機では、当該子キャラクタ132の移動が開始されることとなる。ステップS49を終了すると、またはステップS45で“NO”の場合には、このコマンド処理を終了して図9のステップS11へ戻る。
【0124】
図9のステップS11では、CPUコア42は子キャラクタ移動処理を実行し、各子機の子キャラクタの移動を制御する。
【0125】
図11に子キャラクタ移動処理の動作の一例が示される。子キャラクタ移動処理を開始すると、CPUコア42は、ステップS61で、未処理の子キャラクタ132が存在するか否かを判断する。つまり、複数の子キャラクタ132のうち移動処理対象に未だ設定されていない子キャラクタ132が残っているか否かを判断する。ステップS61で“YES”であれば、CPUコア42はステップS63で未処理の子キャラクタ132のうちの1つを選択して処理対象として設定する。
【0126】
続くステップS65で、CPUコア42は、当該処理対象の子キャラクタ132の軌跡書込終了フラグがオンであるか否かを判断する。この実施例では、上述のように、子キャラクタ132に対する移動軌跡の入力が終了して移動軌跡が確定したときに、当該軌跡書込終了フラグがオンにされる。また、同じ子キャラクタ132に対して別の移動軌跡の入力が開始されたときには、当該移動軌跡が未確定のため、当該軌跡書込終了フラグがオフにされる。つまり、軌跡書込終了フラグがオンであることは、入力された移動軌跡に従って当該子キャラクタ132の移動制御を行ってもよい状態であることを意味する。このステップS65で“NO”の場合、つまり、移動軌跡が入力途中であり未確定である場合には、処理はステップS61に戻る。
【0127】
一方、ステップS65で“YES”の場合には、当該子キャラクタの移動を開始する。このように、この実施例では、子機で移動軌跡の入力が終了したことに応じて、当該子キャラクタの移動を開始するようにしている。つまり、入力された移動軌跡(移動指示情報)を全て取得してから、当該子キャラクタを移動させ始めるので、通信遅延によって当該子キャラクタの移動が中断されてしまうようなことがない。
【0128】
なお、移動軌跡の全ての書込みが終了したときに移動を開始させるようにしたが、当該移動開始条件は適宜変更され得る。たとえば、他の実施例では、親機が受信した移動軌跡が、通信遅延の影響を織り込んだ所定長さ、つまり、所定時間の遅延が生じても移動が中断されないような十分な時間分の移動軌跡になったと判定される場合には、移動軌跡の全てを取得する前に当該子キャラクタの移動を開始させるようにしてもよい。
【0129】
具体的には、ステップS67で、CPUコア42は、当該処理対象の子キャラクタ132の移動軌跡情報に未移動箇所が存在するか否かを判断する。つまり、記憶領域102に記憶された移動軌跡の各点のうち、移動制御に使用していない点が残っているか否かを判断する。たとえば、移動軌跡の各点は識別番号に対応付けて記憶されているので、移動処理済みの点の数をカウントしたり識別番号を記憶しておいたりすることによって、未処理の点の有無を判定できる。ステップS67で“NO”の場合、つまり、当該子キャラクタ132について、入力された移動軌跡に従った移動を既に完了している場合には、処理はステップS61に戻る。
【0130】
一方、ステップS67で“YES”の場合には、つまり、移動軌跡に従った当該子キャラクタ132の移動を開始または継続すべき場合には、CPUコア42は、ステップS69で、移動軌跡の座標をゲーム空間の座標に変換する。地図画面で入力され取得された移動軌跡上の各点の座標は2次元座標(x,y)であるので、現在処理すべき識別番号の点の座標をゲーム空間の3次元座標(x,y,z)に変換する。上述のように移動軌跡の各点には識別番号が対応付けられているので、処理済みの点の数をカウントしたり識別番号を記憶しておいたりすることによって、移動軌跡のうち現在処理すべき点を特定することができる。
【0131】
そして、ステップS71で、CPUコア42は、当該子キャラクタを移動軌跡に沿って移動させる。つまり、子キャラクタ132の現在の座標と移動軌跡の変換座標とに基づいて、当該子キャラクタの移動後の座標を算出する。また、当該子キャラクタ132の移動後の向きも、現在の座標と移動軌跡の変換座標と現在の向きに基づいて算出される。ステップS71を終了するとステップS61に戻る。
【0132】
一方、ステップS61で“NO”の場合には、つまり、このフレームですべての子キャラクタ132を対象として処理を行った場合には、この子キャラクタ移動処理を終了して図9のステップS13に戻る。
【0133】
このように、親機では、ステップS9のコマンド処理において、複数の座標点を含む移動軌跡情報を受信し、ステップS11の子キャラクタ移動処理において、移動を開始してよい場合に子キャラクタ132を移動軌跡に従って移動させるようにしている。したがって、通信遅延によって子キャラクタ132の移動指示情報の受信が間に合わずに当該子キャラクタ132の移動が中断してしまうといった不具合が生じない。
【0134】
図9のステップS13では、CPUコア42は、ゲーム空間内の状態を更新する。つまり、ステップS5の親キャラクタ動作処理やステップS11の子キャラクタ移動処理などの結果に基づいて、RAM48に記憶されたゲーム空間内の各キャラクタの位置、向き、モーションなどの情報を更新する。具体的には、位置情報は当該オブジェクトの移動後の仮想3次元ゲーム空間における座標である。なお、仮想ゲーム空間における3次元座標のうち(x,y)は地図画面における2次元座標(x,y)に対応するので、この位置情報によって各キャラクタの地図画面上での位置も把握される。向き情報はたとえば当該オブジェクトの向いている方向を示すベクトルである。モーション情報は、当該オブジェクトの行動に応じて実行される身体動作を示す。移動しているオブジェクトの場合には、たとえば、移動の身体動作を表示するためのモーションデータを指定する情報がモーション情報として記憶される。
【0135】
続くステップS15では、CPUコア42は、当該更新されたゲーム空間を描画するための描画情報を生成して、当該描画情報を各子機に送信する。描画情報は、記憶領域106に生成され、ゲーム空間内の各キャラクタの位置、向きおよびモーションなどの情報を含む。たとえばゲーム空間全体に関する描画情報が送信される。あるいは、ゲーム空間が画面表示範囲よりも大きい場合等には、ゲーム空間の一部に関する描画情報が送信されるようにしてもよい。一例として、子機の操作対象の子キャラクタ132の存在位置から所定距離以下の領域(表示範囲よりもやや大きい領域)に関する描画情報のみが当該子機に送信されてよい。この場合には、各子機の表示やその後の予測処理に必要な情報のみを送信するようにしているので、通信データ量を低減することができる。
【0136】
ステップS17では、CPUコア42は画面生成処理を実行する。すなわち、描画情報に基づいて親キャラクタ134を含むゲーム画面(この実施例では3次元ゲーム画面と2次元地図画面の2つ)を生成し、LCD12およびLCD14に表示する。
【0137】
そして、ステップS19で、CPUコア42はゲーム終了であるか否かを判断する。たとえばゲームクリア条件またはゲームオーバ条件が満足されたか否かを判断する。ステップS19で“NO”であれば、次フレームのゲーム処理を実行すべくステップS3に戻る。一方、ステップS19で“YES”であれば、CPUコア42は、図示しないゲーム終了処理を実行して、このメイン処理を終了する。
【0138】
図12および図13には子機のメイン処理の動作の一例が示される。メイン処理を開始すると、子機のCPUコア42は、ステップS81で初期処理を実行する。具体的には、通信接続処理が行われ、子機は親機とネットワーク202を介して通信接続する。また、各種変数に初期値が設定される。
【0139】
CPUコア42は、続くステップS83からステップS137の処理を一定時間(たとえば1フレーム)ごとに実行する。ステップS83では、CPUコア42は、記憶領域110の入力情報に基づいて、タッチが開始されたか否かを判断する。つまり、タッチパネル22への入力の検出されない状態から入力の検出される状態に変化したか否かを判断する。なお、記憶領域110には、入力情報取得プログラムに従って一定時間ごとに操作スイッチ20からの操作情報およびタッチパネル22からの操作情報が取得されている。
【0140】
ステップS83で“YES”であれば、CPUコア42はステップS85で子キャラクタ132が指示されたか否かを判断する。つまり、LCD14に表示されている2次元地図上のアイコン130に対応する位置がタッチされたか否かを、RAM48に記憶されているアイコン130の表示位置座標と、入力情報記憶領域110に記憶されている検出座標(タッチ座標)とに基づいて判断する。
【0141】
ステップS85で“YES”であれば、つまり、子キャラクタ132に対する移動軌跡の入力が開始された場合には、CPUコア42は、ステップS87で、複数の子キャラクタ132のうち指示された子キャラクタ132をタッチ座標と各アイコン130の表示位置に基づいて特定する。
【0142】
このように、この実施例では、移動軌跡の入力が開始されたときに、選択された子キャラクタを特定するようにしている。したがって、子機では子キャラクタごとの移動軌跡を取得することができる。つまり、子機のプレイヤは、個々に移動軌跡入力を行うことによって複数の子キャラクタのそれぞれを操作することができる。
【0143】
続くステップS89で、CPUコア42は、記憶領域112に記憶されている該当する子キャラクタ132に対する移動軌跡情報をクリアする。つまり、これから入力される移動軌跡上の各点の座標を蓄積するために、該当する子キャラクタ132のための記憶領域をクリアする。なお、後の軌跡入力実行中か否かの判定のために、移動軌跡の入力が行われている状態であることを示す入力フラグをオンにするようにしてよい。
【0144】
このように、この実施例では、子機で或る子キャラクタに対して別の移動軌跡の入力が開始されるまで、取得済みの移動軌跡情報を記憶しておくことができるようにしている。したがって、必要に応じて当該移動軌跡情報をゲーム処理に使用することができる。たとえば、後述のように、描画情報を一定時間受信できなかったとき、当該移動軌跡情報を使用して当該子キャラクタの位置を予測することができる。
【0145】
また、ステップS91で、CPUコア42は、該当する子キャラクタ132に対するラインクリアコマンドと検出座標を親機へ送信する。このラインクリアコマンドの送信によって、該当する子キャラクタ132の移動軌跡の入力の開始を親機に伝達する。ステップS91を終了すると、処理は図13のステップS117に進む。なお、ステップS85で“NO”の場合、つまり、地図画面上の子キャラクタアイコン130以外の部分がタッチされた場合には、そのままステップS117に進む。
【0146】
一方、ステップS83で“NO”であれば、CPUコア42は、ステップS93でタッチパネル22へのタッチが継続中であるか否かを記憶領域110の入力情報に基づいて判断する。ステップS93で“YES”であれば、CPUコア42はステップS95で軌跡入力中であるか否かを判断する。たとえば、軌跡入力が行われている状態であることを示す入力フラグがオンであるか否かを判断する。
【0147】
ステップS95で“YES”であれば、つまり、移動軌跡の入力が継続されている場合には、CPUコア42は、ステップS97で、該当する子キャラクタ132の軌跡ポイント送信回数が所定の第1閾値以下であるか否かを判断する。つまり、当該子キャラクタ132に対して入力された移動軌跡のうち送信済みの点の数が所定の制限値(第1閾値。たとえば128点)を超えていないことを判定する。このように、この実施例では、一回の軌跡入力で移動可能にする距離を、移動軌跡を構成する点の数に基づいて制限している。つまり、入力可能な移動軌跡の長さに制限を設けている。したがって、一度の入力で移動可能な距離を適切な範囲に限定することができる。なお、他の実施例では、移動軌跡に入力制限を設けなくてもよい。
【0148】
ステップS97で“YES”であれば、CPUコア42は、ステップS99で検出座標を記憶領域112の移動軌跡情報に取得する。移動軌跡情報は、各子キャラクタ130ごとに記憶される。また、個々の点の座標は、タッチパネル22の座標系の2次元座標(X,Y)から地図画面の座標系の2次元座標(x,y)に変換され、各点の識別情報としての識別番号(開始点からの通し番号)に対応付けて記憶領域112に記憶される。
【0149】
ステップS101では、CPUコア42は前回ポイント座標と現在座標間の距離が所定の第2閾値以上であるか否かを判断する。前回ポイント座標は、親機に送信済みの移動軌跡のうちの最後尾の点の座標を意味する。ただし、移動軌跡を未送信の場合には、入力開始時の座標が採用される。したがって、ここでは、前回ポイント座標から現在の検出座標までの移動距離が所定値(第2閾値)以上になったか否かを判定している。すなわち、前回送信後またはタッチ開始後に記憶領域112に記憶された移動軌跡の長さが親機に送信すべき所定長さに達したか否かを判定している。これによって、一定長さごとに移動軌跡を逐次親機に送信することができる。つまり、移動軌跡として一度に送信するデータ量を低減することができる。なお、他の実施例では、所定時間ごとに取得された移動軌跡を送信するようにしてもよいし、あるいは、全ての移動軌跡の入力の完了を待って移動軌跡を一括して送信するようにしてもよい。
【0150】
ステップS101で“YES”であれば、CPUコア42は、ステップS103で、該当する子キャラクタ132に対するポイント追加コマンドと検出座標(移動軌跡)を親機へ送信する。送信される移動軌跡は、前回ポイント座標(または入力開始点)の次の座標から現在の検出座標までに連続的に検出された複数の座標(厳密には地図画面の座標系に変換した座標)である。移動軌跡が一定長さ取得されるごとに、このポイント追加コマンドによって、当該移動軌跡が逐次親機へ送信される。
【0151】
ステップS105では、CPUコア42は、送信した移動軌跡情報に基づいて該当する子キャラクタ132の軌跡ポイント送信回数をカウントする。つまり、親機へ送信した移動軌跡上の点の数を通算して、記憶領域114に当該数を記憶する。ステップS97の判定は、この軌跡ポイント送信回数に基づいてなされることになる。
【0152】
また、ステップS107では、CPUコア42は、現在の検出座標を、次回の移動軌跡長さ判定(S101)の際の参照用に前回ポイント座標として記憶領域116に記憶する。ステップS107を終了すると、処理は図13のステップS117に進む。
【0153】
なお、ステップS95で“NO”の場合、つまり、移動軌跡の入力が行われていない場合には、処理はそのまま図13のステップS117へ進む。また、ステップS97で“NO”の場合、つまり、移動軌跡として親機に送信済みの座標数が制限を超えた場合には、移動軌跡の受け付けを停止し、処理はそのままステップS117へ進む。また、ステップS101で“NO”の場合、つまり、前回ポイント座標(または入力開始点)からの移動軌跡の長さが一定値よりも小さい場合には、親機への送信を見送るべく、処理は図13のステップS117に進む。
【0154】
一方、ステップS93で“NO”の場合には、CPUコア42は、図13のステップS109で、記憶領域110の入力情報に基づいて、タッチが終了されたか否かを判断する。つまり、タッチパネル22への入力の検出されている状態から入力の検出されていない状態に変化したか否かを判断する。ステップS109で“YES”であれば、CPUコア42は、ステップS111で移動軌跡の入力が行われていたか否かを判断する。たとえば、軌跡入力が行われている状態であることを示す入力フラグがオンであるか否かを判断する。
【0155】
ステップS111で“YES”であれば、つまり、移動軌跡の入力が終了された場合には、CPUコア42は、ステップS113で、該当する子キャラクタ132に対する書込終了コマンドと座標(移動軌跡)を親機へ送信する。この書込終了コマンドとともに送信される移動軌跡は、ステップS101の判定で所定長さに満たないと判定された移動軌跡、あるいは、ステップS103での移動軌跡の送信後からステップS97の判定で送信された座標点の数が所定値を超えたと判定されるまでの間に記憶領域112に取得された移動軌跡である。
【0156】
また、ステップS115では、CPUコア42は、記憶領域114に記憶された該当する子キャラクタ132の軌跡ポイント送信回数をリセットしゼロにする。また、軌跡の入力が終了されたので、軌跡入力が行われている状態であることを示す入力フラグをオフにする。
【0157】
なお、ステップS109で“NO”の場合、またはステップS111で“NO”の場合には、処理はそのままステップS117に進む。
【0158】
ステップS117では、CPUコア42は、描画情報を親機から受信したか否かを判断する。ステップS117で“YES”であれば、CPUコア42は、ステップS119で受信した描画情報を記憶領域118に記憶する。
【0159】
続いて、ステップS121では、CPUコア42はキャラクタの位置予測が行われているか否かを判断する。後述するように、予測は、描画情報が一定時間以上受信されなかった場合に行われる。たとえば、予測が行われている状態であることを示す予測フラグがオンであるか否かを判断したり、あるいは、記憶領域122に予測情報が記憶されているか否かを判断したりする。
【0160】
ステップS121で“YES”であれば、つまり、予測が行われているときに描画情報を受信した場合には、CPUコア42は、ステップS123で、受信描画情報と予測情報とに基づいて各キャラクタの位置を修正する。具体的には、各キャラクタについて、描画情報に含まれる座標と予測情報記憶領域122に記憶されている座標とを補間することよって、修正座標を算出する。この子機自身の操作対象の子キャラクタについては、予測位置の誤差がわずかであるため、このステップS123で位置を修正しても当該子キャラクタを滑らかに移動させることができる。また、予測位置を修正したので、上記予測フラグはオフにされる。なお、ステップS121で“NO”の場合、つまり、描画情報を滞りなく受信できている場合には、処理はそのままステップS133に進む。
【0161】
一方、ステップS117で“NO”の場合には、CPUコア42は、ステップS125で、描画情報を一定時間受信できなかったか否かを判断する。つまり、前回の受信から一定時間経過しても、親機から描画情報を受信できなかったか否かを判断する。
【0162】
ステップS125で“YES”であれば、つまり、通信遅延によって描画情報の受信が遅れている場合には、CPUコア42は、ステップS127で、この子機自身に対応する子キャラクタのいずれかが移動中であるか否かを判断する。たとえば、記憶領域112に記憶されている移動軌跡のうち未移動の点が残っているか否かを判定する。それまでに受信した描画情報の子キャラクタの位置情報の識別番号によって当該位置が移動軌跡上のどの点に相当するかが把握されるので、上記判定が可能である。
【0163】
ステップS127で“YES”である場合には、CPUコア42は、ステップS129で、記憶領域112に記憶されている移動軌跡情報と記憶領域120に記憶されている位置履歴から、該当する子キャラクタ132の位置を予測する。移動中の子キャラクタ132の位置予測は、位置履歴の現在の座標および方向、前回の座標および方向、ならびに移動軌跡上の座標に基づいてなされる。たとえば、移動軌跡情報記憶領域112には、親機に送信した移動軌跡が記憶されているので、位置履歴記憶領域120の現在座標に対応付けられた番号(すなわち移動軌跡の各点の識別情報)の次の番号の座標を移動軌跡情報記憶領域112から取得して、当該取得した座標を予測位置としてよい。該当する子キャラクタ132の予測された座標を示す情報は、予測情報記憶領域122に記憶される。
【0164】
このように、この実施例では、描画情報の受信が間に合わなかった場合でも、子機に記憶されている移動軌跡情報に基づいて、当該子キャラクタの次の位置を精度良く予測することができる。また、この予測後に描画情報を受信したときに、上述のステップS123で位置修正を行っても、予測位置の精度が高いので当該子キャラクタを滑らかに移動させることができる。
【0165】
ステップS129を終了すると処理はステップS131へ進む。また、ステップS127で“NO”の場合、つまり、この子機の子キャラクタ132が移動していない場合には、処理はそのままステップS131へ進む。
【0166】
ステップS131では、CPUコア42は、残りのキャラクタの位置を記憶領域120に記憶されている位置履歴から予測する。つまり、この子機自身の操作対象である子キャラクタ132のうち移動していない子キャラクタ132、親キャラクタ134および他の子機の子キャラクタの位置予測は、位置履歴に記憶されている現在の座標および方向、ならびに前回の座標および方向に基づいてなされる。各キャラクタの予測された座標を示す情報は、予測情報記憶領域122に記憶される。ステップS131を終了すると処理はステップS133に進む。
【0167】
ステップS133では、CPUコア42は、記憶領域120の位置履歴を更新する。具体的には、位置履歴記憶領域120に記憶されている各キャラクタの現在の座標を前回の座標として記憶する。さらに、各キャラクタの現在の座標の更新を行う。描画情報を受信した場合には、当該描画情報に含まれる各キャラクタの座標を現在の座標として記憶する。一方、予測を行った場合には、予測情報記憶領域122に記憶されている各キャラクタの予測された座標を現在の座標として記憶する。
【0168】
ステップS133を終了し、または、ステップS125で“NO”の場合には、CPUコア42は、ステップS135で画面生成処理を実行する。これによって、図7または図8に示したようなゲーム画面が生成されてLCD12および14に表示される。親機から描画情報を受信した場合には、各キャラクタは、描画情報に基づく位置および向きで3次元ゲーム空間内に配置される。また、予測が行われた場合には、各キャラクタは、予測情報に基づく位置および向きで3次元ゲーム空間内に配置される。また、地図画面上の各キャラクタのアイコンの位置も描画情報または予測情報の位置から得られる。なお、地図画面上の入力軌跡は、当該子機の記憶領域112に取得した移動軌跡情報に基づいて描画される。しかし、親機が各子機に対応する移動軌跡情報を含む描画情報を各子機に送信するようにして、入力軌跡も当該描画情報に基づいて描画されるようにしてもよい。
【0169】
ステップS137では、CPUコア42は、ゲーム終了であるか否かを判断する。たとえばゲーム終了指示が親機から送信されたか否かを判断する。ステップS137で“NO”であれば、次フレームのゲーム処理を実行すべく図12のステップS83に戻る。一方、ステップS137で“YES”であれば、CPUコア42は、図示しないゲーム終了処理を実行して、この子機のメイン処理を終了する。
【0170】
この実施例によれば、プレイヤが子キャラクタの移動を指示する情報を移動軌跡として取得して、親機で移動軌跡によって当該子キャラクタの移動を制御するようにしたので、親機への移動指示情報の送信において通信遅延が生じても、子キャラクタが移動途中に停止してしまうような恐れがない。具体的には、親機は、移動軌跡すなわちこれから移動しようとしている経路の受信によって、事前に十分な時間分の移動指示情報をまとめて取得しているので、通信遅延が生じても、子キャラクタの移動を続行させることができ、移動中であるにもかかわらず子キャラクタの移動が中断してしまうような事態を回避できる。したがって、通信遅延をプレイヤに感じさせることなくキャラクタを移動させてゲームを進行させることができる。
【0171】
また、各子機でのゲーム空間を描画するための描画情報の受信において遅延が生じた場合には、各子機で入力された移動軌跡情報に基づいて当該子キャラクタの位置を予測することができる。当該子機で取得された移動軌跡を使うので、当該子キャラクタの位置の予測が外れることがほとんどない。したがって、描画情報の受信が遅れても、通信遅延をプレイヤにあまり感じさせずに子キャラクタを移動させることが可能である。
【0172】
また、子機では、子キャラクタの移動軌跡を、タッチパネル22に対する連続的な座標指示によって入力するようにした。したがって、プレイヤは直感的な操作でオブジェクトの移動を操作することができる。
【0173】
なお、上述の実施例では、ゲーム装置10はゲーム専用機であったが、他の実施例では、ゲーム装置10はパーソナルコンピュータ、携帯情報端末、携帯電話など他の形態のコンピュータであってよい。
【0174】
また、上述の各実施例では、ゲーム装置10は、移動軌跡の入力のためのポインティングデバイスの一例としてタッチパネル22による移動軌跡の入力が行われるようにしていた。しかし、他の実施例では、マウス、トラックパッド、タブレットなどのような画面上の位置を指示することができるポインティングデバイスであればどのようなものでも代用することができる。なお、必要に応じて、入力用の画面にマウスポインタを表示することによって入力位置を明示する。また、ボタンが押されているときを入力有り状態とみなし、かつ、ボタンが放されているときを入力無し状態とみなすことによって、ポインティングデバイスでのキャラクタに対する入力か否かを判別することができる。
【0175】
また、上述の各実施例では、通信ゲームシステム200は、ゲーム空間に存在する複数のオブジェクトの移動などの動作を管理する親機と、子機とで構成されたが、他の実施例では、通信ゲームシステム200は、サーバコンピュータとゲーム装置10とで構成されてよく、当該サーバが親機として機能してよい。ただし、このサーバにはプレイヤおよび操作対象としての親オブジェクトが存在しない。具体的には、サーバが、端末としての各ゲーム装置10からの移動軌跡情報の取得、複数のオブジェクトの移動制御を含むゲーム空間の管理、描画情報の各ゲーム装置10への送信などの管理処理を実行するようにしてよい。
【図面の簡単な説明】
【0176】
【図1】この発明の一実施例のゲーム装置の一例を示す外観図である。
【図2】図1実施例の電気的な構成の一例を示すブロック図である。
【図3】この発明の一実施例の通信ゲームシステムの一例を示す図解図である。
【図4】メモリカードのROMのメモリマップの一例を示す図解図である。
【図5】親機のRAMのメモリマップの一例を示す図解図である。
【図6】子機のRAMのメモリマップの一例を示す図解図である。
【図7】子機で移動軌跡を入力する際に表示されるゲーム画面の一例を示す図解図である。
【図8】描画情報によって子機で生成したゲーム画面の一例を示す図解図である。
【図9】親機のメイン処理の動作の一例を示すフロー図である。
【図10】図9のコマンド処理の動作の一例を示すフロー図である。
【図11】図9の子キャラクタ移動処理の動作の一例を示すフロー図である。
【図12】子機のメイン処理の動作の一例を示すフロー図である。
【図13】図12の続きを示すフロー図である。
【符号の説明】
【0177】
10 …ゲーム装置
12,14 …LCD
20 …操作スイッチ
22 …タッチパネル
28 …メモリカード
28a …ROM
42 …CPUコア
48 …RAM
50,52 …GPU
54 …I/F回路
56 …LCDコントローラ
58,60 …VRAM
200 …通信ゲームシステム
202 …ネットワーク
【特許請求の範囲】
【請求項1】
仮想ゲーム空間に登場する複数のオブジェクトの移動を管理する管理コンピュータと、前記管理コンピュータと通信可能に接続されるかつ前記複数のオブジェクトのうち少なくとも1つのオブジェクトを操作対象としてプレイヤに操作させる操作手段を備えるゲーム装置とを含む、通信ゲームシステムであって、
前記ゲーム装置は、
前記操作手段によって入力される前記操作対象のオブジェクトの移動軌跡を取得する軌跡取得手段、および
前記軌跡取得手段によって取得された前記移動軌跡を前記管理コンピュータに送信する軌跡送信手段を備え、
前記管理コンピュータは、
前記軌跡送信手段からの前記移動軌跡を受信する軌跡受信手段、
前記軌跡受信手段によって受信した前記移動軌跡によって前記仮想ゲーム空間における前記操作対象のオブジェクトの移動を制御する移動制御手段、および
前記移動制御手段によって移動された前記オブジェクトを含む前記仮想ゲーム空間を描画するための描画情報を前記ゲーム装置に送信する描画情報送信手段を備え、
前記ゲーム装置は、
前記描画情報送信手段からの前記描画情報を受信する描画情報受信手段、および
前記描画情報受信手段によって受信した前記描画情報によって、前記操作対象のオブジェクトを含むゲーム画面を生成して表示する画面表示手段をさらに備える、通信ゲームシステム。
【請求項2】
前記軌跡送信手段は、前記操作手段からの前記移動軌跡の入力が途切れたときに入力終了情報をさらに送信し、
前記移動制御手段は、前記入力終了情報を受信したことを条件として、前記オブジェクトの移動を開始する、請求項1記載の通信ゲームシステム。
【請求項3】
前記軌跡取得手段は、前記移動軌跡上の点の数が第1閾値以上になったとき、当該移動軌跡の入力を受け付けない、請求項1または2記載の通信ゲームシステム。
【請求項4】
前記軌跡送信手段は、前記軌跡取得手段による取得中に前記移動軌跡の長さが第2閾値以上になるごとに、逐次前記移動軌跡を送信する、請求項1ないし3のいずれかに記載の通信ゲームシステム。
【請求項5】
前記軌跡取得手段は、前記操作対象のオブジェクトに対して移動軌跡が入力されていない状態から入力されている状態に遷移したとき、取得済みの当該オブジェクトの移動軌跡をクリアする、請求項1ないし4のいずれかに記載の通信ゲームシステム。
【請求項6】
前記軌跡送信手段は、前記操作対象のオブジェクトに対して移動軌跡が入力されていない状態から入力されている状態に遷移したとき、前記オブジェクトの前記移動軌跡のクリア情報をさらに送信し、
前記移動制御手段は、前記オブジェクトの前記移動軌跡のクリア情報を受信したとき、受信済みの当該オブジェクトの移動軌跡をクリアする、請求項1ないし5のいずれかに記載の通信ゲームシステム。
【請求項7】
前記軌跡取得手段は、複数のオブジェクトから前記操作対象として選択されたオブジェクトを特定して、当該オブジェクトの移動軌跡を取得する、請求項1ないし6のいずれかに記載の通信ゲームシステム。
【請求項8】
前記操作手段はポインティングデバイスであり、
前記軌跡取得手段は、前記ポインティングデバイスの入力から連続的に検出される複数の座標を前記移動軌跡として取得する、請求項1ないし7のいずれかに記載の通信ゲームシステム。
【請求項9】
前記管理コンピュータは、当該管理コンピュータの操作対象であるオブジェクトの動作をプレイヤが指示するための動作指示手段をさらに備え、
前記移動制御手段は、当該管理コンピュータの操作対象のオブジェクトの移動を前記動作指示手段による移動指示に基づいて制御する、請求項1ないし8のいずれかに記載の通信ゲームシステム。
【請求項10】
前記ゲーム装置は、前記描画情報送信手段からの前記描画情報を一定時間受信しないとき、少なくとも前記操作対象のオブジェクトの位置を、前記軌跡取得手段によって取得した前記移動軌跡に基づいて予測する予測手段をさらに備える、請求項1ないし9のいずれかに記載の通信ゲームシステム。
【請求項11】
通信ゲームシステムにおいて仮想ゲーム空間に登場する複数のオブジェクトの移動を管理する管理コンピュータと通信可能に接続されるゲーム装置であって、
前記複数のオブジェクトのうち少なくとも1つのオブジェクトを操作対象としてプレイヤに操作させる操作手段、
前記操作手段によって入力される前記操作対象のオブジェクトの移動軌跡を取得する軌跡取得手段、
前記軌跡取得手段によって取得される前記移動軌跡を前記管理コンピュータに送信する軌跡送信手段、
前記移動軌跡によって移動された前記オブジェクトを含む前記仮想ゲーム空間を描画するための描画情報を前記管理コンピュータから受信する描画情報受信手段、および
前記描画情報受信手段によって受信した前記描画情報によって、前記操作対象の前記オブジェクトを含むゲーム画面を生成して表示する画面表示手段を備える、ゲーム装置。
【請求項12】
通信ゲームシステムにおいて仮想ゲーム空間に登場する複数のオブジェクトの移動を管理する管理コンピュータと通信可能に接続される、かつ、前記複数のオブジェクトのうち少なくとも1つのオブジェクトを操作対象としてプレイヤに操作させる操作手段を備えるゲーム装置のゲームプログラムであって、
前記ゲーム装置を、
前記操作手段によって入力される前記操作対象のオブジェクトの移動軌跡を取得する軌跡取得手段、
前記軌跡取得手段によって取得される前記移動軌跡を前記管理コンピュータに送信する軌跡送信手段、
前記移動軌跡によって移動された前記オブジェクトを含む前記仮想ゲーム空間を描画するための描画情報を前記管理コンピュータから受信する描画情報受信手段、および
前記描画情報受信手段によって受信した前記描画情報によって、前記操作対象の前記オブジェクトを含むゲーム画面を生成して表示する画面表示手段として機能させる、ゲームプログラム。
【請求項13】
通信ゲームシステムにおいて仮想ゲーム空間に登場する複数のオブジェクトのうち少なくとも1つのオブジェクトを操作対象としてプレイヤに操作させる操作手段を備えるゲーム装置と通信可能に接続される、かつ、前記複数のオブジェクトの移動を管理する管理コンピュータであって、
前記ゲーム装置の前記操作手段によって取得されて送信される前記オブジェクトの移動軌跡を受信する軌跡受信手段、
前記軌跡受信手段によって受信した前記移動軌跡によって前記仮想ゲーム空間における前記操作対象のオブジェクトの移動を制御する移動制御手段、および
前記移動制御手段によって移動された前記オブジェクトを含む前記仮想ゲーム空間を描画するための描画情報を前記ゲーム装置に送信する描画情報送信手段を備える、管理コンピュータ。
【請求項14】
通信ゲームシステムにおいて仮想ゲーム空間に登場する複数のオブジェクトのうち少なくとも1つのオブジェクトを操作対象としてプレイヤに操作させる操作手段を備えるゲーム装置と通信可能に接続される、かつ、前記複数のオブジェクトの移動を管理する管理コンピュータのゲームプログラムであって、
前記管理コンピュータを、
前記ゲーム装置の前記操作手段によって取得されて送信される前記オブジェクトの移動軌跡を受信する軌跡受信手段、
前記軌跡受信手段によって受信した前記移動軌跡によって前記仮想ゲーム空間における前記操作対象のオブジェクトの移動を制御する移動制御手段、および
前記移動制御手段によって移動された前記オブジェクトを含む前記仮想ゲーム空間を描画するための描画情報を前記ゲーム装置に送信する描画情報送信手段として機能させる、ゲームプログラム。
【請求項15】
仮想ゲーム空間に登場する複数のオブジェクトの移動を管理する親機と、前記複数のオブジェクトのうち少なくとも1つのオブジェクトを操作対象としてプレイヤに操作させる操作手段を備える子機としてそれぞれ機能する複数のゲーム装置を含む通信ゲームシステムのためのゲームプログラムであって、
前記子機として動作する場合の前記ゲーム装置を、
前記操作手段によって入力される当該操作対象のオブジェクトの移動軌跡を取得する軌跡取得手段、
前記軌跡取得手段によって取得される前記移動軌跡を前記親機に送信する軌跡送信手段、
前記移動軌跡によって移動された前記オブジェクトを含む前記仮想ゲーム空間を描画するための描画情報を前記親機から受信する描画情報受信手段、および
前記描画情報受信手段によって受信した前記描画情報によって、前記操作対象のオブジェクトを含むゲーム画面を生成して表示する画面表示手段として機能させるとともに、
前記親機として動作する場合の前記ゲーム装置を、
前記子機から送信される前記オブジェクトの移動軌跡を受信する軌跡受信手段、
前記軌跡受信手段によって受信した前記移動軌跡によって前記仮想ゲーム空間における前記操作対象のオブジェクトの移動を制御する移動制御手段、および
前記移動制御手段によって移動された前記オブジェクトを含む前記仮想ゲーム空間を描画するための描画情報を子機に送信する描画情報送信手段として機能させる、ゲームプログラム。
【請求項1】
仮想ゲーム空間に登場する複数のオブジェクトの移動を管理する管理コンピュータと、前記管理コンピュータと通信可能に接続されるかつ前記複数のオブジェクトのうち少なくとも1つのオブジェクトを操作対象としてプレイヤに操作させる操作手段を備えるゲーム装置とを含む、通信ゲームシステムであって、
前記ゲーム装置は、
前記操作手段によって入力される前記操作対象のオブジェクトの移動軌跡を取得する軌跡取得手段、および
前記軌跡取得手段によって取得された前記移動軌跡を前記管理コンピュータに送信する軌跡送信手段を備え、
前記管理コンピュータは、
前記軌跡送信手段からの前記移動軌跡を受信する軌跡受信手段、
前記軌跡受信手段によって受信した前記移動軌跡によって前記仮想ゲーム空間における前記操作対象のオブジェクトの移動を制御する移動制御手段、および
前記移動制御手段によって移動された前記オブジェクトを含む前記仮想ゲーム空間を描画するための描画情報を前記ゲーム装置に送信する描画情報送信手段を備え、
前記ゲーム装置は、
前記描画情報送信手段からの前記描画情報を受信する描画情報受信手段、および
前記描画情報受信手段によって受信した前記描画情報によって、前記操作対象のオブジェクトを含むゲーム画面を生成して表示する画面表示手段をさらに備える、通信ゲームシステム。
【請求項2】
前記軌跡送信手段は、前記操作手段からの前記移動軌跡の入力が途切れたときに入力終了情報をさらに送信し、
前記移動制御手段は、前記入力終了情報を受信したことを条件として、前記オブジェクトの移動を開始する、請求項1記載の通信ゲームシステム。
【請求項3】
前記軌跡取得手段は、前記移動軌跡上の点の数が第1閾値以上になったとき、当該移動軌跡の入力を受け付けない、請求項1または2記載の通信ゲームシステム。
【請求項4】
前記軌跡送信手段は、前記軌跡取得手段による取得中に前記移動軌跡の長さが第2閾値以上になるごとに、逐次前記移動軌跡を送信する、請求項1ないし3のいずれかに記載の通信ゲームシステム。
【請求項5】
前記軌跡取得手段は、前記操作対象のオブジェクトに対して移動軌跡が入力されていない状態から入力されている状態に遷移したとき、取得済みの当該オブジェクトの移動軌跡をクリアする、請求項1ないし4のいずれかに記載の通信ゲームシステム。
【請求項6】
前記軌跡送信手段は、前記操作対象のオブジェクトに対して移動軌跡が入力されていない状態から入力されている状態に遷移したとき、前記オブジェクトの前記移動軌跡のクリア情報をさらに送信し、
前記移動制御手段は、前記オブジェクトの前記移動軌跡のクリア情報を受信したとき、受信済みの当該オブジェクトの移動軌跡をクリアする、請求項1ないし5のいずれかに記載の通信ゲームシステム。
【請求項7】
前記軌跡取得手段は、複数のオブジェクトから前記操作対象として選択されたオブジェクトを特定して、当該オブジェクトの移動軌跡を取得する、請求項1ないし6のいずれかに記載の通信ゲームシステム。
【請求項8】
前記操作手段はポインティングデバイスであり、
前記軌跡取得手段は、前記ポインティングデバイスの入力から連続的に検出される複数の座標を前記移動軌跡として取得する、請求項1ないし7のいずれかに記載の通信ゲームシステム。
【請求項9】
前記管理コンピュータは、当該管理コンピュータの操作対象であるオブジェクトの動作をプレイヤが指示するための動作指示手段をさらに備え、
前記移動制御手段は、当該管理コンピュータの操作対象のオブジェクトの移動を前記動作指示手段による移動指示に基づいて制御する、請求項1ないし8のいずれかに記載の通信ゲームシステム。
【請求項10】
前記ゲーム装置は、前記描画情報送信手段からの前記描画情報を一定時間受信しないとき、少なくとも前記操作対象のオブジェクトの位置を、前記軌跡取得手段によって取得した前記移動軌跡に基づいて予測する予測手段をさらに備える、請求項1ないし9のいずれかに記載の通信ゲームシステム。
【請求項11】
通信ゲームシステムにおいて仮想ゲーム空間に登場する複数のオブジェクトの移動を管理する管理コンピュータと通信可能に接続されるゲーム装置であって、
前記複数のオブジェクトのうち少なくとも1つのオブジェクトを操作対象としてプレイヤに操作させる操作手段、
前記操作手段によって入力される前記操作対象のオブジェクトの移動軌跡を取得する軌跡取得手段、
前記軌跡取得手段によって取得される前記移動軌跡を前記管理コンピュータに送信する軌跡送信手段、
前記移動軌跡によって移動された前記オブジェクトを含む前記仮想ゲーム空間を描画するための描画情報を前記管理コンピュータから受信する描画情報受信手段、および
前記描画情報受信手段によって受信した前記描画情報によって、前記操作対象の前記オブジェクトを含むゲーム画面を生成して表示する画面表示手段を備える、ゲーム装置。
【請求項12】
通信ゲームシステムにおいて仮想ゲーム空間に登場する複数のオブジェクトの移動を管理する管理コンピュータと通信可能に接続される、かつ、前記複数のオブジェクトのうち少なくとも1つのオブジェクトを操作対象としてプレイヤに操作させる操作手段を備えるゲーム装置のゲームプログラムであって、
前記ゲーム装置を、
前記操作手段によって入力される前記操作対象のオブジェクトの移動軌跡を取得する軌跡取得手段、
前記軌跡取得手段によって取得される前記移動軌跡を前記管理コンピュータに送信する軌跡送信手段、
前記移動軌跡によって移動された前記オブジェクトを含む前記仮想ゲーム空間を描画するための描画情報を前記管理コンピュータから受信する描画情報受信手段、および
前記描画情報受信手段によって受信した前記描画情報によって、前記操作対象の前記オブジェクトを含むゲーム画面を生成して表示する画面表示手段として機能させる、ゲームプログラム。
【請求項13】
通信ゲームシステムにおいて仮想ゲーム空間に登場する複数のオブジェクトのうち少なくとも1つのオブジェクトを操作対象としてプレイヤに操作させる操作手段を備えるゲーム装置と通信可能に接続される、かつ、前記複数のオブジェクトの移動を管理する管理コンピュータであって、
前記ゲーム装置の前記操作手段によって取得されて送信される前記オブジェクトの移動軌跡を受信する軌跡受信手段、
前記軌跡受信手段によって受信した前記移動軌跡によって前記仮想ゲーム空間における前記操作対象のオブジェクトの移動を制御する移動制御手段、および
前記移動制御手段によって移動された前記オブジェクトを含む前記仮想ゲーム空間を描画するための描画情報を前記ゲーム装置に送信する描画情報送信手段を備える、管理コンピュータ。
【請求項14】
通信ゲームシステムにおいて仮想ゲーム空間に登場する複数のオブジェクトのうち少なくとも1つのオブジェクトを操作対象としてプレイヤに操作させる操作手段を備えるゲーム装置と通信可能に接続される、かつ、前記複数のオブジェクトの移動を管理する管理コンピュータのゲームプログラムであって、
前記管理コンピュータを、
前記ゲーム装置の前記操作手段によって取得されて送信される前記オブジェクトの移動軌跡を受信する軌跡受信手段、
前記軌跡受信手段によって受信した前記移動軌跡によって前記仮想ゲーム空間における前記操作対象のオブジェクトの移動を制御する移動制御手段、および
前記移動制御手段によって移動された前記オブジェクトを含む前記仮想ゲーム空間を描画するための描画情報を前記ゲーム装置に送信する描画情報送信手段として機能させる、ゲームプログラム。
【請求項15】
仮想ゲーム空間に登場する複数のオブジェクトの移動を管理する親機と、前記複数のオブジェクトのうち少なくとも1つのオブジェクトを操作対象としてプレイヤに操作させる操作手段を備える子機としてそれぞれ機能する複数のゲーム装置を含む通信ゲームシステムのためのゲームプログラムであって、
前記子機として動作する場合の前記ゲーム装置を、
前記操作手段によって入力される当該操作対象のオブジェクトの移動軌跡を取得する軌跡取得手段、
前記軌跡取得手段によって取得される前記移動軌跡を前記親機に送信する軌跡送信手段、
前記移動軌跡によって移動された前記オブジェクトを含む前記仮想ゲーム空間を描画するための描画情報を前記親機から受信する描画情報受信手段、および
前記描画情報受信手段によって受信した前記描画情報によって、前記操作対象のオブジェクトを含むゲーム画面を生成して表示する画面表示手段として機能させるとともに、
前記親機として動作する場合の前記ゲーム装置を、
前記子機から送信される前記オブジェクトの移動軌跡を受信する軌跡受信手段、
前記軌跡受信手段によって受信した前記移動軌跡によって前記仮想ゲーム空間における前記操作対象のオブジェクトの移動を制御する移動制御手段、および
前記移動制御手段によって移動された前記オブジェクトを含む前記仮想ゲーム空間を描画するための描画情報を子機に送信する描画情報送信手段として機能させる、ゲームプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【公開番号】特開2007−275472(P2007−275472A)
【公開日】平成19年10月25日(2007.10.25)
【国際特許分類】
【出願番号】特願2006−109125(P2006−109125)
【出願日】平成18年4月11日(2006.4.11)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Bluetooth
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】
【公開日】平成19年10月25日(2007.10.25)
【国際特許分類】
【出願日】平成18年4月11日(2006.4.11)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Bluetooth
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】
[ Back to top ]