説明

ゲームシステムおよびゲームプログラム

【課題】通信ネットワークを介して複数のゲーム装置間で行われるゲームにおいて、送受信時間が長くなる通信環境に対応するゲームシステムおよびゲームプログラムを提供する。
【解決手段】プレイヤの所定の入力操作に応じて、アイテムオブジェクトを仮想ゲーム世界内に登場させて動作させるためのアイテムオブジェクト初期情報を作成し、仮想ゲーム世界内に登場させた後、所定の動作基準に沿ってアイテムオブジェクトを動作させる。そして、アイテムオブジェクト初期情報を他のゲーム装置に送信する。他のゲーム装置は、アイテムオブジェクト初期情報を受信し、そのアイテムオブジェクト初期情報に基づいて仮想ゲーム世界内にアイテムオブジェクトを登場させた後、所定の動作基準に沿ってアイテムオブジェクトを動作させる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ゲームシステムおよびゲームプログラムに関し、より特定的には、通信ネットワークを介して通信可能な複数のゲーム装置を含むゲームシステムおよび当該ゲーム装置で実行されるゲームプログラムに関する。
【背景技術】
【0002】
従来、通信ネットワークを介して通信可能な複数のゲーム装置間で行われるゲームがある(例えば、特許文献1参照)。特許文献1に開示されたゲームシステムは、互いにデータの授受ができるようなデータ伝送ラインを介して複数の独立したゲーム装置が接続される。そして、各ゲーム装置のプレイヤは、ディスプレイ上に表示されるゲーム画面を見ながら他のゲーム装置のプレイヤと共通のゲーム空間内でマルチプレイヤゲームを行うことができる。また、各ゲーム装置間で同期制御を行うことにより、各ゲーム装置のディスプレイ上に同期表示制御されたゲーム画面が表示されるため、各ゲーム装置のプレイヤに対して自然な表現が可能となる。
【特許文献1】特開平7−213744号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかしながら、通信ネットワークを介して複数のゲーム装置間でデータ通信を行う場合、その通信環境によって送受信に要する時間にバラツキが生じる。例えば、上記特許文献1の実施例に示されるように独立したゲーム装置が有線のデータ伝送ラインで接続されて隣接されている環境下でのデータ通信速度と、最近急速に普及しているインターネット等のネットワークを介して接続されている複数のゲーム装置間でのデータ通信速度とでは、明らかに前者のデータ通信速度の方が速い。つまり、上記特許文献1の実施例に示されているような環境下の各ゲーム装置間での送受信より、インターネットを利用して接続されている複数のゲーム装置間での送受信の方がより時間が掛かってしまう。このように、同じデータ量の送受信でもネットワークを介して送受信するとその送受信時間が長くなるので、各ゲーム装置間で同期制御を行うことが困難となり、同期制御を行うためのデータ送受信回数が増えるほど、さらに制御が困難となる。
【0004】
それ故に、本発明の目的は、通信ネットワークを介して複数のゲーム装置間で行われるゲームにおいて、送受信時間が長くなる通信環境に対応するゲームシステムおよびゲームプログラムを提供することである。
【課題を解決するための手段】
【0005】
上記の目的を達成するために、本発明は以下の構成を採用した。なお、括弧内の参照符号やステップ番号(ステップをSと略称しステップ番号のみを記載する)等は、本発明の理解を助けるために後述する実施形態との対応関係を示したものであって、本発明の範囲を何ら限定するものではない。
【0006】
第1の発明は、互いに通信可能に接続された複数のゲーム装置(1A〜1D)を含むゲームシステムである。ゲームシステムは、それらゲーム装置においてそれぞれ操作されるプレイヤキャラクタ(PA〜PD)が登場する同一の仮想ゲーム世界が、それらゲーム装置間で同期が取られてそれら各ゲーム装置に表示する。複数のゲーム装置の何れか1つである第1のゲーム装置(1A)は、通信手段(33)、第1プレイヤキャラクタ動作制御手段(S50)、第1プレイヤキャラクタ情報送信手段(S50)、アイテムオブジェクト初期情報作成手段(S52)、アイテムオブジェクト動作制御手段(S59〜S62、S73〜S83)、およびアイテムオブジェクト情報送信手段(S53)を備える。通信手段は、他のゲーム装置(PB〜PD)との間でデータ通信を行う。第1プレイヤキャラクタ動作制御手段は、プレイヤの入力操作に応じて、仮想ゲーム世界内で第1プレイヤキャラクタ(PA)を動作させる。第1プレイヤキャラクタ情報送信手段は、第1プレイヤキャラクタの動作に関する第1プレイヤキャラクタ情報(D5)を、所定の間隔毎に通信手段を介して他のゲーム装置に送信する。アイテムオブジェクト初期情報作成手段は、プレイヤの所定の入力操作に応じて、第1プレイヤキャラクタとは異なるアイテムオブジェクト(I)を仮想ゲーム世界内に登場させて動作させるためのアイテムオブジェクト初期情報(D4)を作成する。アイテムオブジェクト動作制御手段は、アイテムオブジェクト初期情報を基づいてアイテムオブジェクトを仮想ゲーム世界内に登場させた後、所定の動作基準に沿ってそのアイテムオブジェクトを動作させる。アイテムオブジェクト情報送信手段は、通信手段を介してアイテムオブジェクト初期情報を他のゲーム装置に送信する。複数のゲーム装置のうち、第1のゲーム装置とは異なる何れか1つである第2のゲーム装置(PB)は、通信手段、第1プレイヤキャラクタ情報受信手段(S50)、第1プレイヤキャラクタ同期手段(S50)、アイテムオブジェクト情報受信手段(S54)、およびアイテムオブジェクト動作制御手段(S59〜S62、S73〜S83)を備える。通信手段は、他のゲーム装置(PA、PC、PD)との間でデータ通信を行う。第1プレイヤキャラクタ情報受信手段は、通信手段を介して第1プレイヤキャラクタ情報を第1のゲーム装置より受信する。第1プレイヤキャラクタ同期手段は、第1プレイヤキャラクタ情報に基づいて、第1プレイヤキャラクタを第2のゲーム装置で表現する仮想ゲーム世界内で動作させる。アイテムオブジェクト情報受信手段は、通信手段を介してアイテムオブジェクト初期情報を第1のゲーム装置より受信する。アイテムオブジェクト動作制御手段は、アイテムオブジェクト初期情報に基づいて第2のゲーム装置で表現する仮想ゲーム世界内にアイテムオブジェクトを登場させた後、所定の動作基準に沿ってそのアイテムオブジェクトを動作させる。
【0007】
第2の発明は、上記第1の発明において、アイテムオブジェクト初期情報作成手段は、アイテムオブジェクトを仮想ゲーム世界内に登場させた時期を示す登場時期情報(D3)を含めてアイテムオブジェクト初期情報を作成する。第2のゲーム装置のアイテムオブジェクト動作制御手段は、アイテムオブジェクト初期情報に含まれている登場時期情報に基づいて、第1のゲーム装置で表現されている仮想ゲーム世界に対する第2のゲーム装置で表現されている仮想ゲーム世界の遅延時間(D4e)を算出し、その遅延時間に応じてその第2のゲーム装置で表現する仮想ゲーム世界内でアイテムオブジェクトを登場させて動作させる位置を決定する。
【0008】
第3の発明は、上記第2の発明において、第2のゲーム装置のアイテムオブジェクト動作制御手段は、新たなアイテムオブジェクト初期情報を得たとき、第2のゲーム装置で表現する仮想ゲーム世界内で第1プレイヤキャラクタ同期手段が動作させる第1プレイヤキャラクタの位置に基づいて、アイテムオブジェクトを登場させる。
【0009】
第4の発明は、上記第3の発明において、アイテムオブジェクト初期情報作成手段は、さらに、アイテムオブジェクトを仮想ゲーム世界内に登場させた位置を示す位置情報を含めてアイテムオブジェクト初期情報を作成する。第2のゲーム装置のアイテムオブジェクト動作制御手段は、アイテムオブジェクト初期情報を用いてアイテムオブジェクトの座標の更新を繰り返し、第1プレイヤキャラクタ同期手段が動作させる第1プレイヤキャラクタの位置に最も近い位置にそのアイテムオブジェクトを登場させる。
【0010】
第5の発明は、上記第3の発明において、アイテムオブジェクト初期情報作成手段は、さらに、アイテムオブジェクトを仮想ゲーム世界内に登場させた位置を示す位置情報(D4b)を含めてアイテムオブジェクト初期情報を作成する。第2のゲーム装置のアイテムオブジェクト動作制御手段は、アイテムオブジェクト初期情報に含まれている位置情報が示す仮想ゲーム世界上の位置からアイテムオブジェクトを登場させた位置までそのアイテムオブジェクトを動作させるために必要な移動時間を算出し、遅延時間からその移動時間を減算してその遅延時間を更新する。
【0011】
第6の発明は、上記第1の発明において、第2のゲーム装置は、第2プレイヤキャラクタ動作制御手段(S50)および第2プレイヤキャラクタ情報送信手段(S50)を、さらに備える。第2プレイヤキャラクタ動作制御手段は、プレイヤの入力操作に応じて、第2のゲーム装置で表現する仮想ゲーム世界内で第2プレイヤキャラクタ(PB)を動作させる。第2プレイヤキャラクタ情報送信手段は、第2プレイヤキャラクタの動作に関する第2プレイヤキャラクタ情報(D5)を、所定の間隔毎に通信手段を介して他のゲーム装置に送信する。第1のゲーム装置は、第2プレイヤキャラクタ情報受信手段(S50)および第2プレイヤキャラクタ同期手段(S50)を、さらに備える。第2プレイヤキャラクタ情報受信手段は、通信手段を介して第2プレイヤキャラクタ情報を第2のゲーム装置より受信する。第2プレイヤキャラクタ同期手段は、第2プレイヤキャラクタ情報に基づいて、第2プレイヤキャラクタを第1のゲーム装置で表現する仮想ゲーム世界内で動作させる。第1のゲーム装置のアイテムオブジェクト動作制御手段は、仮想ゲーム世界内で第2プレイヤキャラクタ同期手段が動作させる第2プレイヤキャラクタとアイテムオブジェクトとの距離が所定の範囲(AB)内になったとき、その第2プレイヤキャラクタをそのアイテムオブジェクトの追尾対象に設定してその第2のプレイヤキャラクタの動作に追従するようにそのアイテムオブジェクトの動作を制御する。アイテムオブジェクト情報送信手段は、通信手段を介してアイテムオブジェクトの追尾対象を示す追尾情報を他のゲーム装置に送信する(S62)。第2のゲーム装置のアイテムオブジェクト情報受信手段は、通信手段を介して追尾情報を第1のゲーム装置より受信する(S71)。第2のゲーム装置のアイテムオブジェクト動作制御手段は、追尾情報に基づいて、仮想ゲーム世界内で第2プレイヤキャラクタ動作制御手段が動作させる第2プレイヤキャラクタの動作に追従するようにそのアイテムオブジェクトの動作を制御する。
【0012】
第7の発明は、上記第6の発明において、第2のゲーム装置のアイテムオブジェクト動作制御手段は、第2プレイヤキャラクタの動作にアイテムオブジェクトが第1の速度で追従するように動作を制御する。第1のゲーム装置のアイテムオブジェクト動作制御手段は、第2プレイヤキャラクタの動作にアイテムオブジェクトが第1の速度より遅い第2の速度で追従するように動作を制御する。
【0013】
第8の発明は、上記第1の発明において、第2のゲーム装置は、第2プレイヤキャラクタ動作制御手段、第2プレイヤキャラクタ情報送信手段、接触検出手段(S75)、および接触情報送信手段(S78)を、さらに備える。第2プレイヤキャラクタ動作制御手段は、プレイヤの入力操作に応じて、第2のゲーム装置で表現する仮想ゲーム世界内で第2プレイヤキャラクタを動作させる。第2プレイヤキャラクタ情報送信手段は、第2プレイヤキャラクタの動作に関する第2プレイヤキャラクタ情報を、所定の間隔毎に通信手段を介して他のゲーム装置に送信する。接触検出手段は、第2のゲーム装置で表現する仮想ゲーム世界内でアイテムオブジェクトとの接触を第2プレイヤキャラクタに対してのみ検出する。接触情報送信手段は、通信手段を介して第2プレイヤキャラクタとアイテムオブジェクトとが接触したことを示す接触情報を他のゲーム装置に送信する。第1のゲーム装置は、第2プレイヤキャラクタ情報受信手段、第2プレイヤキャラクタ同期手段、および接触情報受信手段(S79)を、さらに備える。第2プレイヤキャラクタ情報受信手段は、通信手段を介して第2プレイヤキャラクタ情報を第2のゲーム装置より受信する。第2プレイヤキャラクタ同期手段は、第2プレイヤキャラクタ情報に基づいて、第2プレイヤキャラクタを第1のゲーム装置で表現する仮想ゲーム世界内で動作させる。接触情報受信手段とを、さらに備え、通信手段を介して接触情報を第2のゲーム装置より受信する。第1のゲーム装置の第2プレイヤキャラクタ同期手段は、接触情報に基づいて、第2プレイヤキャラクタとアイテムオブジェクトとを第1のゲーム装置で表現する仮想ゲーム世界内で接触させる(S80)。
【0014】
第9の発明は、複数のゲーム装置が互いに通信可能に接続され、それらゲーム装置においてそれぞれ操作されるプレイヤキャラクタが登場する同一の仮想ゲーム世界が、それらゲーム装置間で同期が取られて表示装置に表示するゲーム装置のコンピュータ(21)に実行されるゲームプログラムである。ゲームプログラムは、自機プレイヤキャラクタ動作制御手段、自機プレイヤキャラクタ情報送信手段、アイテムオブジェクト初期情報作成手段、アイテムオブジェクト動作制御手段、アイテムオブジェクト情報送信手段、他機プレイヤキャラクタ情報受信手段、他機プレイヤキャラクタ同期手段、およびアイテムオブジェクト情報受信手段として、コンピュータを機能させる。自機プレイヤキャラクタ動作制御手段は、プレイヤの入力操作に応じて、仮想ゲーム世界内で自機のプレイヤキャラクタを動作させる。自機プレイヤキャラクタ情報送信手段は、自機のプレイヤキャラクタの動作に関する自機のプレイヤキャラクタ情報を、所定の間隔毎に他のゲーム装置に送信する。アイテムオブジェクト初期情報作成手段は、プレイヤの所定の入力操作に応じて、自機のプレイヤキャラクタとは異なるアイテムオブジェクトを仮想ゲーム世界内に登場させて動作させるためのアイテムオブジェクト初期情報を作成する。アイテムオブジェクト動作制御手段は、アイテムオブジェクト初期情報作成手段が作成したアイテムオブジェクト初期情報を基づいてアイテムオブジェクトを仮想ゲーム世界内に登場させた後、所定の動作基準に沿ってそのアイテムオブジェクトを動作させる。アイテムオブジェクト情報送信手段は、アイテムオブジェクト初期情報を他のゲーム装置に送信する。他機プレイヤキャラクタ情報受信手段は、他のゲーム装置によって動作制御される他機のプレイヤキャラクタの動作に関する他機のプレイヤキャラクタ情報を所定の間隔毎に他のゲーム装置より受信する。他機プレイヤキャラクタ同期手段は、他機のプレイヤキャラクタ情報に基づいて、他機のプレイヤキャラクタを仮想ゲーム世界内で動作させる。アイテムオブジェクト情報受信手段は、他のゲーム装置のプレイヤによる所定の入力操作に応じて、アイテムオブジェクト初期情報を他のゲーム装置より受信する。アイテムオブジェクト動作制御手段は、他のゲーム装置からアイテムオブジェクト初期情報を受信したとき、仮想ゲーム世界内にアイテムオブジェクトを登場させた後、所定の動作基準に沿ってそのアイテムオブジェクトを動作させる。
【0015】
第10の発明は、上記第9の発明において、他のゲーム装置から送信されるアイテムオブジェクト初期情報は、その他のゲーム装置においてアイテムオブジェクトを仮想ゲーム世界内に登場させた時期を示す登場時期情報を含んでいる。アイテムオブジェクト動作制御手段は、他のゲーム装置からアイテムオブジェクト初期情報を受信したとき、そのアイテムオブジェクト初期情報に含まれている登場時期情報に基づいて、他のゲーム装置で表現されている仮想ゲーム世界に対して自機で表現されている仮想ゲーム世界の遅延時間を算出し、その遅延時間に応じて仮想ゲーム世界内でアイテムオブジェクトを登場させて動作させる位置を決定する。
【0016】
第11の発明は、上記第10の発明において、アイテムオブジェクト動作制御手段は、他のゲーム装置からアイテムオブジェクト初期情報を受信したとき、仮想ゲーム世界内で他機プレイヤキャラクタ同期手段が動作させる他機のプレイヤキャラクタの位置に基づいて、アイテムオブジェクトを登場させる。
【0017】
第12の発明は、上記第11の発明において、他のゲーム装置から送信されるアイテムオブジェクト初期情報は、さらに、アイテムオブジェクトを仮想ゲーム世界内に登場させた位置を示す位置情報を含んでいる。アイテムオブジェクト動作制御手段は、他のゲーム装置から受信したアイテムオブジェクト初期情報を用いてアイテムオブジェクトの座標の更新を繰り返し、他機プレイヤキャラクタ同期手段が動作させる他機のプレイヤキャラクタの位置に最も近い位置にそのアイテムオブジェクトを登場させる。
【0018】
第13の発明は、上記第11の発明において、他のゲーム装置から送信されるアイテムオブジェクト初期情報は、さらに、アイテムオブジェクトを仮想ゲーム世界内に登場させた位置を示す位置情報を含んでいる。アイテムオブジェクト動作制御手段は、他のゲーム装置からアイテムオブジェクト初期情報を受信したとき、そのアイテムオブジェクト初期情報に含まれている位置情報が示す仮想ゲーム世界上の位置からアイテムオブジェクトを登場させた位置までそのアイテムオブジェクトを動作させるために必要な移動時間を算出し、遅延時間からその移動時間を減算してその遅延時間を更新する。
【0019】
第14の発明は、上記第9の発明において、自機に対するプレイヤの所定の入力操作に応じて、アイテムオブジェクトを仮想ゲーム世界内に登場させたとき、アイテムオブジェクト動作制御手段は、他機のプレイヤキャラクタとアイテムオブジェクトとの距離が所定の範囲内になったとき、その他機のプレイヤキャラクタをそのアイテムオブジェクトの追尾対象に設定してその他機のプレイヤキャラクタの動作に追従するようにそのアイテムオブジェクトの動作を制御する。アイテムオブジェクト情報送信手段は、アイテムオブジェクトの追尾対象を示す追尾情報を他のゲーム装置に送信する。他のゲーム装置のプレイヤの所定の入力操作に応じて、アイテムオブジェクトを仮想ゲーム世界内に登場させたとき、アイテムオブジェクト情報受信手段は、他のゲーム装置が追尾対象を設定したことを示す追尾情報を受信する。アイテムオブジェクト動作制御手段は、他のゲーム装置から受信した追尾情報に基づいて、仮想ゲーム世界内でその追尾情報が追尾対象として示すプレイヤキャラクタの動作に追従するようにそのアイテムオブジェクトの動作を制御する。
【0020】
第15の発明は、上記第14の発明において、他のゲーム装置から送信された追尾情報が示す追尾対象が自機のプレイヤキャラクタであるとき、アイテムオブジェクト動作制御手段は、その自機のプレイヤキャラクタの動作にアイテムオブジェクトが第1の速度で追従するように動作を制御する。自機が設定した追尾対象が他機のプレイヤキャラクタであるとき、アイテムオブジェクト動作制御手段は、その他機のプレイヤキャラクタの動作にアイテムオブジェクトが第1の速度より遅い第2の速度で追従するように動作を制御する。
【0021】
第16の発明は、上記第9の発明において、ゲームプログラムは、接触検出手段、接触情報送信手段、および接触情報受信手段として、コンピュータをさらに機能させる。接触検出手段は、仮想ゲーム世界内でアイテムオブジェクトとの接触を自機のプレイヤキャラクタに対してのみ検出する。接触情報送信手段は、自機のプレイヤキャラクタとアイテムオブジェクトとが接触したことを示す接触情報を他のゲーム装置に送信する。接触情報受信手段は、他のゲーム装置から他機のプレイヤキャラクタとアイテムオブジェクトとが接触したことを示す接触情報を受信する。他機プレイヤキャラクタ同期手段は、他のゲーム装置から受信した接触情報に基づいて、他機のプレイヤキャラクタとアイテムオブジェクトとを仮想ゲーム世界内で接触させる。
【発明の効果】
【0022】
上記第1の発明によれば、通信ネットワークを介して行われるゲームにて、プレイヤの操作がゲーム空間内への登場時のみに有効なアイテムオブジェクトに関する初期情報を、仮想ゲーム世界内へ登場するときのみに他のゲーム装置へ送信し、その情報を基づいて各ゲーム装置で演算処理および表示制御が行われる。したがって、このようなアイテムオブジェクトに関する情報を仮想ゲーム世界内への出現以降も頻繁に他のゲーム装置へ送る場合と比較すると、データ伝送量を減らすことができる。また、データ送信1回あたりの平均データ量が減ることによって、同一通信環境においては、データの送信時間が短縮できる。また言い換えれば通信環境が劣る環境においては、データの送信時間が長くなるのを防ぐことができる。
【0023】
上記第2の発明によれば、アイテムオブジェクトに関する初期情報を受信した後、送信装置に対する遅延時間に基づいてアイテムオブジェクトを動作させるため、当該遅延時間を0にするような動作を行うことによって、送受信するゲーム装置間の同期制御を行うことができる。したがって、ゲーム空間内へ登場後における各ゲーム装置間の同期は、ゲーム処理における更新回数の調整等によって、各ゲーム装置にプレイヤの違和感を与えることのないゲーム画面を表示することができる。
【0024】
上記第3の発明によれば、第1のゲーム装置によってアイテムオブジェクトが仮想ゲーム世界に投入されたとき、他のゲーム装置では第1のゲーム装置が操作するプレイヤキャラクタの位置に基づいてアイテムオブジェクトが自然に出現するように表現することができる。
【0025】
上記第4の発明によれば、第1のゲーム装置によってアイテムオブジェクトが仮想ゲーム世界に投入されたとき、他のゲーム装置では第1のゲーム装置が操作するプレイヤキャラクタから最も近い位置からアイテムオブジェクトが自然に出現するように表現することができる。
【0026】
上記第5の発明によれば、アイテムオブジェクトを投入したプレイヤキャラクタの位置から当該アイテムオブジェクトが自然に出現するように表現しながら、送受信するゲーム装置間の同期制御を行うことができる。
【0027】
上記第6の発明によれば、通信ネットワークを介して行われるゲームにて、アイテムオブジェクトに関する情報を、登場するときおよびステータス(追尾対象の設定)を変更するときに他のゲーム装置へ送信される。したがって、このようなオブジェクトに関する情報をゲーム空間内への出現以降も頻繁に他のゲーム装置へ送る場合と比較すると、データ伝送量を減らすことができる。また、データ送信1回あたりの平均データ量が減ることによって、同一通信環境においては、データの送信時間が短縮できる。また言い換えれば通信環境が劣る環境においては、データの送信時間が長くなるのを防ぐことができる。また、ステータスを変更して追尾情報を送信するゲーム装置をアイテムオブジェクトを投入したゲーム装置に限定することによって、それらの変化に関するゲーム進行上の矛盾が生じることを回避できる。
【0028】
上記第7の発明によれば、ゲーム装置間のデータ通信において送受信するための時間が必要なゲームシステでは、追尾対象を決定するゲーム装置と追尾対象を操作するゲーム装置とでは、アイテムオブジェクトが出現してから追尾対象に追いつくまでの追従時間が異なる。典型的には、追尾対象を決定するゲーム装置が最も追従時間が長くなり、追尾対象を操作するゲーム装置が最も追従時間が短くなる。このような追従時間の長短に応じてアイテムオブジェクトの速度を調整するため、追尾対象とアイテムオブジェクトとの位置関係において、各ゲーム装置におけるゲーム進行上の矛盾が生じることを回避できる。
【0029】
上記第8の発明によれば、アイテムオブジェクトとの接触判定を自機が操作対象とするプレイヤキャラクタに限定することによって、それらの変化に関するゲーム進行上の矛盾が生じることを回避できる。
【0030】
また、本発明のゲームプログラムによれば、ゲーム装置のコンピュータに実行されることによって、上述したゲームシステムと同様の効果を得ることができる。
【発明を実施するための最良の形態】
【0031】
図面を参照して、本発明の一実施形態に係るゲームプログラムを実行するゲーム装置について説明する。本発明のゲームプログラムは、他の装置と通信可能な任意のコンピュータシステムで実行されることによって適用することができるが、情報処理装置の一例として他の装置と通信可能なゲーム装置1で実行されるゲームプログラムを用いて説明する。なお、図1は、本発明のゲームプログラムを実行するゲーム装置1の外観図である。ここでは、ゲーム装置1の一例として、携帯ゲーム装置を示す。
【0032】
図1において、ゲーム装置1は、第1のLCD(Liquid Crystal Display:液晶表示装置)11および第2のLCD12を含む。ハウジング13は、上側ハウジング13aと下側ハウジング13bとによって構成されており、第1のLCD11は上側ハウジング13aに収納され、第2のLCD12は下側ハウジング13bに収納される。第1のLCD11および第2のLCD12の解像度は、いずれも256dot×192dotである。なお、本実施形態では表示装置としてLCDを用いているが、例えばEL(Electro Luminescence:電界発光)を利用した表示装置等、他の任意の表示装置を利用することができる。また、第1のLCD11および第2のLCD12は、任意の解像度のものを利用することができる。
【0033】
上側ハウジング13aには、後述する1対のスピーカ(図2の30a、30b)からの音を外部に放出するための音抜き孔18a、18bが形成されている。
【0034】
下側ハウジング13bには、入力装置として、十字スイッチ14a、スタートスイッチ14b、セレクトスイッチ14c、Aボタン14d、Bボタン14e、Xボタン14f、Yボタン14g、電源スイッチ14h、Lボタン14L、およびRボタン14Rが設けられている。また、さらなる入力装置として、第2のLCD12の画面上にタッチパネル15が装着されている。また、下側ハウジング13bには、メモリカード17やスティック16を収納するための挿入口も設けられている。
【0035】
タッチパネル15としては、例えば抵抗膜方式や光学式(赤外線方式)や静電容量結合式等、任意の方式のものを利用することができる。タッチパネル15は、その表面をスティック16で触れると、その接触位置に対応する座標データを出力する機能を有するポインティングデバイスの一例である。なお、以下ではプレイヤがタッチパネル15をスティック16で操作するものとして説明を行うが、スティック16の代わりにペン(スタイラスペン)や指でタッチパネル15を操作することももちろん可能である。本実施形態では、タッチパネル15として、第2のLCD12の解像度と同じく256dot×192dotの解像度(検出精度)のものを利用する。ただし、必ずしもタッチパネル15の解像度と第2のLCD12の解像度が一致している必要はない。また、後述により明らかとなるが、本発明はタッチパネル15や第1のLCD11をゲーム装置1に備えてなくても実現することが可能である。
【0036】
メモリカード17は、ゲームプログラム等を記録した記録媒体であり、下部ハウジング13bに設けられた挿入口に着脱自在に装着される。
【0037】
次に、図2を参照して、ゲーム装置1の内部構成を説明する。なお、図2は、ゲーム装置1の内部構成を示すブロック図である。
【0038】
図2において、ハウジング13に収納される電子回路基板20には、CPUコア21が実装される。CPUコア21には、バス22を介して、コネクタ23が接続されるとともに、入出力インターフェース回路(図面ではI/F回路と記す)25、第1GPU(Graphics Processing Unit)26、第2GPU27、RAM24、およびLCDコントローラ31が接続される。コネクタ23には、メモリカード17が着脱自在に接続される。メモリカード17は、ゲームプログラムを記憶するROM17aと、バックアップデータを書き換え可能に記憶するRAM17bを搭載する。メモリカード17のROM17aに記憶されたゲームプログラムは、RAM24にロードされ、RAM24にロードされたゲームプログラムがCPUコア21によって実行される。RAM24には、ゲームプログラムの他にも、適宜、CPUコア21がプログラムを実行して得られる一時的なデータを生成するためのデータ等が記憶される。I/F回路25には、タッチパネル15、右スピーカ30a、左スピーカ30b、図1の十字スイッチ14aやAボタン14d等から成る操作スイッチ部14、およびワイヤレス通信部33が接続される。右スピーカ30aおよび左スピーカ30bは、音抜き孔18aおよび18bの内側にそれぞれ配置される。
【0039】
第1GPU26には、第1VRAM(Video RAM)28が接続され、第2GPU27には、第2VRAM29が接続される。第1GPU26は、CPUコア21からの指示に応じて、RAM24に記憶されている表示画像を生成するためのデータに基づいて第1の表示画像を生成し、第1VRAM28に描画する。第2GPU27は、同様にCPUコア21からの指示に応じて第2の表示画像を生成し、第2VRAM29に描画する。第1VRAM28および第2VRAM29は、LCDコントローラ31に接続されている。
【0040】
LCDコントローラ31は、レジスタ32を含む。レジスタ32は、CPUコア21からの指示に応じて0または1の値を記憶する。LCDコントローラ31は、レジスタ32の値が0の場合は、第1VRAM28に描画された第1の表示画像を第1のLCD11に出力し、第2VRAM29に描画された第2の表示画像を第2のLCD12に出力する。また、レジスタ32の値が1の場合は、第1VRAM28に描画された第1の表示画像を第2のLCD12に出力し、第2VRAM29に描画された第2の表示画像を第1のLCD11に出力する。
【0041】
ワイヤレス通信部33は、他のゲーム装置のワイヤレス通信部33との間で、ゲーム処理に利用されるデータやその他のデータを所定のネットワークを介してやりとりする機能を有しており、一例としてIEEE802.11の無線LAN規格に則った無線通信機能を提供する。そして、ワイヤレス通信部33は、受信したデータをCPUコア21に出力する。また、ワイヤレス通信部33は、CPUコア21から指示されたデータを上記ネットワークを介して他のゲーム装置へ送信する。なお、TCP/IP(Transmission Control Protocol/Internet Protocol)等のプロトコルや所定のブラウザをワイヤレス通信部33やゲーム装置1内の記憶部に実装することによって、ゲーム装置1は、ワイヤレス通信部33を介してインターネット等のネットワークとの接続が可能となる。そして、ゲーム装置1は、ネットワークを介して他のゲーム装置との無線通信が可能となる。例えば、図3に示すように、ネットワークNを介して複数のゲーム装置1A〜1Dが互いに通信可能に接続され、本発明のゲームシステムを形成する。典型的には、これらゲーム装置1A〜1Dは全て同じゲーム装置であり、これらのゲーム装置1A〜1Dを総称して説明する場合は、ゲーム装置1と記載する。
【0042】
なお、本発明のゲームプログラムは、メモリカード17等の外部記憶媒体を通じてコンピュータシステムに供給されるだけでなく、有線または無線の通信回線を通じてコンピュータシステムに供給されてもよい。また、ゲームプログラムは、コンピュータシステム内部の不揮発性記憶装置に予め記録されていてもよい。なお、ゲームプログラムを記憶する情報記憶媒体としては、上記不揮発性半導体メモリに限らず、CD−ROM、DVD、あるいはそれらに類する光学式ディスク状記憶媒体でもよい。
【0043】
次に、図4〜図7を参照して、ゲーム装置1で実行されるゲームプログラムによる具体的な処理動作を説明する前に、当該処理動作によって第2のLCD12に表示される表示形態例について説明する。説明を具体的にするために、複数のゲーム装置1A〜1Dがそれぞれワイヤレス通信部33を介してインターネット等のネットワークと接続し、当該ネットワークを介して互いにデータ通信してレースゲームを第2のLCD12で表現する例を用いて説明する。なお、図4は、ゲーム装置1Aの第2のLCD12に表示されるレースゲームの画面表示例である。図5は、第2のLCD12に表示されるレースゲームにおいて、アイテムIが登場したときの画面表示例である。図6は、第2のLCD12に表示されるレースゲームにおいて、アイテムIがプレイヤキャラクタPBの追尾範囲AB内に入った様子を示す画面表示例である。図7は、第2のLCD12に表示されるレースゲームにおいて、アイテムIがプレイヤキャラクタPBと接触した様子を示す画面表示例である。
【0044】
図4において、ネットワークを介して共通のゲーム空間内で行われるマルチプレイヤゲームの一例として、レースゲームが複数のゲーム装置1A〜1Dで行われている。具体的には、ゲーム装置1Aのプレイヤがプレイヤキャラクタ(カート)PAを操作し、ゲーム装置1Bのプレイヤがプレイヤキャラクタ(カート)PBを操作し、ゲーム装置1Cのプレイヤがプレイヤキャラクタ(カート)PCを操作し、ゲーム装置1Dのプレイヤがプレイヤキャラクタ(カート)PDを操作する。そして、複数のゲーム装置1A〜1Dに共通のゲーム空間内にレースコースを設定し、当該レースコースをプレイヤキャラクタPA〜PDが走破する時間を競うレースゲームである。
【0045】
ここで、複数のゲーム装置1A〜1Dに対する操作に応じて、プレイヤキャラクタPA〜PDが同時に上記レースコース上に存在するように同期制御され、その際に必要なゲームデータがネットワークを介して複数のゲーム装置1A〜1D間で送受信される。これらのデータ通信によって、他のプレイヤが操作することによって決定される他のプレイヤキャラクタの速度や方向等の走行状態が判明し、当該走行状態が各ゲーム装置1A〜1Dに反映される。なお、各ゲーム装置1A〜1Dの第2のLCD12には、自装置の操作対象となるプレイヤキャラクタを中心としたゲーム空間が表現されるが、図4〜図7においては、その代表としてゲーム装置1Aの第2のLCD12に表示されるゲーム画像を示している。
【0046】
図5において、上記レースゲームでは、他のプレイヤキャラクタの走行を妨害するアイテムIが設定されている。アイテムIは、所定の条件を満たした際に所定の操作入力を行うことによって複数のゲーム装置1A〜1Dのプレイヤが利用することが可能である。本実施例で示すアイテムIは、上記操作入力に応じて、当該操作入力を行ったプレイヤが操作するプレイヤキャラクタの位置近傍からレースコース上に登場する。そして、レースコースに投入されたアイテムIは、所定の動作基準に基づいた速度および方向でレースコース上を移動し、当該アイテムIと接触したプレイヤキャラクタPA〜PDの走行が妨害される。図5では、ゲーム装置1AのプレイヤがアイテムIを利用した一例を示しており、プレイヤキャラクタPA近傍からアイテムIが登場する。そして、投入されたアイテムIは、プレイヤキャラクタPA近傍から図示する白抜き矢印方向にレースコース上を移動する。
【0047】
図6において、各プレイヤキャラクタPA〜PDには、それぞれの位置を中心として追尾範囲AA〜ADが設定されている。そして、レースコース上に投入されたアイテムIは、プレイヤキャラクタPA〜PDに設定された追尾範囲AA〜ADの何れかの内部に進入すると、当該進入した追尾範囲AA〜ADが設定されているプレイヤキャラクタPA〜PDの何れかを追尾するように移動制御される。図6では、プレイヤキャラクタPBに設定された追尾範囲AB内にアイテムIが進入しており、この場合、プレイヤキャラクタPBがアイテムIの追尾対象に設定される。そして、アイテムIは、追尾対象となったプレイヤキャラクタPBを追跡するように移動制御される。
【0048】
図7において、アイテムIと接触したプレイヤキャラクタPA〜PDは、その走行が妨害されて上記レースコースを走破することが阻害される。図7では、プレイヤキャラクタPBとアイテムIとが接触した例を示しており、プレイヤキャラクタPBがレースコース上でスピンして走行が妨害されている。なお、プレイヤキャラクタPA〜PDに接触して走行を妨害した後、アイテムIはレースコース上から消去される。
【0049】
このように、アイテムIは、何れかのプレイヤキャラクタPA〜PDからゲーム空間内に投入される。そして、アイテムIは、接触したプレイヤキャラクタPA〜PDの走行を妨害する影響を与えた後に消滅する。つまり、アイテムIは、ゲーム空間に登場後〜消滅まで、ゲーム装置1A〜1Dのプレイヤによって操作されずにゲーム空間内を所定の移動規則に沿って移動するオブジェクトとなる。ネットワークを介して共通のゲーム空間内で行われるレースゲームにおいて、このようなアイテムIの移動を表現するとき、データ送受信の際に生じる時間差によって各ゲーム装置1A〜1Dにおいて異なった状況が表現される可能性がある。例えば、あるゲーム装置1ではアイテムIとプレイヤキャラクタPBとが接触し、当該プレイヤキャラクタPBの走行が妨害されている画像が表現されていながら、他のゲーム装置1ではアイテムIとプレイヤキャラクタPBとは異なったプレイヤキャラクタ(例えば、PD)とが接触および走行妨害されることが起こりえる。このようなゲーム進行の矛盾が生じた場合、共通のゲーム空間内で行われるレースゲーム自体の進行が破綻してしまう。また、何れかのゲーム装置1におけるゲーム進行に他のゲーム装置が合わせると、表現されるゲーム画像にいきなり場面が変化するような違和感が生じる。以下に説明するゲーム処理においては、アイテムIをゲーム空間内に登場させて消滅するまでに生じる可能性のある矛盾を解決して、各ゲーム装置1にプレイヤの違和感を与えることのないゲーム画像を表現することができる。
【0050】
次に、図8〜図13を参照して、ゲーム装置1で実行されるゲームプログラムによる具体的な処理動作について説明する。なお、図8は、ゲームプログラムによる処理動作でRAM24に記憶される各種データの一例を示す図である。図9は、当該ゲームプログラムを実行することによってゲーム装置1がゲームを行う動作を示す前半のフローチャートである。図10は、当該ゲームプログラムを実行することによってゲーム装置1がゲームを行う動作を示す後半のフローチャートである。図11は、図10におけるステップ73のアイテム描画処理について詳細な動作を示すサブルーチンである。図12および図13は、図9〜図11に示した処理によってゲーム装置1A〜1Dが同期制御される様子を示す図である。なお、これらの処理を実行するためのプログラムは、ROM17aに格納されたゲームプログラムに含まれており、各ゲーム装置1の電源がオンになったときに、ROM17aからRAM24に読み出されて、CPUコア21によって実行される。また、説明を具体的にするために、ワイヤレス通信部33を介してインターネット等のネットワークと接続し、当該ネットワークを介して複数のゲーム装置1A〜1Dが上述したレースゲームを行ってアイテムIを利用する例を用いて動作を説明する。なお、上記ネットワークを介してレースゲームを行うときは、複数のゲーム装置1A〜1Dが各ゲームデータを定期的に送信し、各ゲーム装置1A〜1Dで受信されるが、ここでは主にアイテムIに関連して通信されるデータに関して説明を行う。
【0051】
図8において、各ゲーム装置1のRAM24のデータ記憶領域に、他のゲーム装置1との間で送受信するデータおよびゲーム空間を形成するためのデータが記憶される。各ゲーム装置1のデータ記憶領域には、それぞれ送信データバッファD1、受信データバッファD2、フレーム番号D3、アイテムデータD4、およびカートデータD5等が記憶される。
【0052】
送信データバッファD1には、他のゲーム装置1へデータを送信するデータフレームが一時的に格納され、所定の送信タイミングに応じて送信データバッファD1に用意された送信データフレームがワイヤレス通信部33を介して他のゲーム装置1へ送信される。また、受信データバッファD2は、他のゲーム装置1から受信したデータフレームを一時的に記憶するためのバッファ領域である。フレーム番号D3は、現在自装置で表現されているゲーム画像のフレーム番号を示す情報である。
【0053】
アイテムデータD4は、ゲーム空間に登場しているアイテムI(図5〜図7参照)に関する情報であり、複数のアイテムIがゲーム空間に登場している場合はその登場数に応じてそれぞれ記憶される。アイテムデータD4は、アイテム種別D4a、アイテム表示座標D4b、アイテム速度D4c、更新回数D4d、遅延フレーム数D4e、初回遅延処理フラグD4f、利用カート情報D4g、および追尾カート情報D4h等を含む。アイテム種別D4aは、アイテムIの種別を示す情報であり、例えば特定のカートを追尾するアイテムや直進のみ行うアイテム等が区別される。アイテム表示座標D4bは、アイテムIが配置されるゲーム空間における座標を示す情報である。アイテム速度D4cは、ゲーム空間におけるアイテムIの速度および移動方向を示す情報であり、例えばゲーム空間におけるベクトル情報である。更新回数D4d、遅延フレーム数D4e、および初回遅延処理フラグD4fは、アイテムIを登場させたゲーム装置1に対する同期制御を行うときに用いられる情報である。利用カート情報D4gは、アイテムIを利用したプレイヤキャラクタを示す情報であり、アイテムIを登場させたゲーム装置1も区別可能な情報である。追尾カート情報D4hは、アイテムIの追尾対象となっているプレイヤキャラクタを示す情報である。
【0054】
カートデータD5は、ゲーム空間に登場しているプレイヤキャラクタ(カート)PA〜PD(図4〜図7参照)に関する情報であり、複数のプレイヤキャラクタがゲーム空間に登場している場合はその登場数に応じてそれぞれ記憶される。カートデータD5は、カート種別D5a、カート表示座標D5b、カート速度D5c、追尾範囲情報D5d、および非接触維持範囲情報D5e等を含む。カート種別D4aは、プレイヤキャラクタのカート種別を示す情報である。カート表示座標D4bは、プレイヤキャラクタが配置されるゲーム空間における座標を示す情報である。カート速度D4cは、ゲーム空間におけるプレイヤキャラクタの速度および移動方向を示す情報であり、例えばゲーム空間におけるベクトル情報である。追尾範囲情報D5dは、プレイヤキャラクタPA〜PDに設定される追尾範囲AA〜AD(図6参照)に関する情報であり、追尾範囲AA〜ADの大きさや形状等が示される。非接触維持範囲情報D5eは、プレイヤキャラクタPA〜PDにそれぞれ設定される非接触維持範囲に関する情報であり、非接触維持範囲の大きさや形状等が示される。
【0055】
まず、各ゲーム装置1の電源(電源スイッチ14h)がONされると、CPUコア21によってブートプログラム(図示せず)が実行され、これによりメモリカード17に格納されているゲームプログラムがRAM24にロードされる。当該ロードされたゲームプログラムがCPUコア21で実行されることによって、図9に示すステップ(図9〜図11では「S」と略称する)が実行される。そして、当該ゲームプログラムを実行することによって可能となるレースゲームに参加するゲーム装置1(具体的には、図3に示すゲーム装置1A〜1D)がネットワークを介してデータ通信可能な状態に設定される。なお、以下に用いるフローチャートにおいては、レースゲームに参加する各ゲーム装置1は、各ゲーム装置1が操作対象とするプレイヤキャラクタのカートデータD5(図8参照)をそれぞれのデータ通信により定期的に他のゲーム装置1へ送信し、他のゲーム装置1から取得したカートデータD5で自装置のRAM24を更新して格納しているとする。
【0056】
図9において、CPUコア21は、プレイヤキャラクタPA〜PDの動作制御を行って自装置のRAM24に格納された各プレイヤキャラクタPA〜PDのカートデータD5を更新し、各プレイヤキャラクタPA〜PDを第2のLCD12に表示する(ステップ50)。具体的には、CPUコア21は、自装置が操作対象としているプレイヤキャラクタについては、タッチパネル15や操作スイッチ部14に対するプレイヤの操作に応じて動作制御を行ってカートデータD5を更新し、更新されたカートデータD5を定期的に他のゲーム装置1に送信する。また、CPUコア21は、他のゲーム装置1が操作対象としているプレイヤキャラクタについては、他のゲーム装置1から定期的に送信されたカートデータD5を受信して自装置のRAM24に格納されたカートデータD5を更新する。そして、各プレイヤキャラクタPA〜PDは、各ゲーム装置1間の同期が取られて動作制御される。
【0057】
次に、CPUコア21は、アイテム利用ボタンが押下されたか否かを判断し(ステップ51)、アイテム利用ボタンが押下された場合に処理を次のステップ52に進める。一方、CPUコア21は、アイテム利用ボタンが押下されていない場合(アイテム利用条件を満たさない場合を含む)、処理を次のステップ54に進める。例えば、アイテム利用ボタンは、上述したアイテムIをレースコース上に登場させるための操作に用いられる操作スイッチ部14であり、所定の条件を満たした際に押下することによって複数のゲーム装置1A〜1Dのプレイヤが利用することが可能である。
【0058】
ステップ52において、CPUコア21は、アイテム利用ボタンの押下に応じて、レースコースに登場させるアイテムIに関するアイテムデータD4(図8参照)をRAM24に記憶させ、処理を次のステップに進める。ここで、アイテムデータD4におけるアイテム種別D4aおよびアイテム速度D4cは、予め設定されたデフォルト値に設定される。また、アイテムデータD4におけるアイテム表示座標D4bは、ゲーム装置1で操作対象となっているプレイヤキャラクタのゲーム空間における現在位置(自装置で操作するプレイヤキャラクタのカート表示座標D5b)を基準とした所定の位置(例えば、プレイヤキャラクタの現在位置近傍)に設定される。また、アイテムデータD4における利用カート情報D4gは、ゲーム装置1で操作対象となっているプレイヤキャラクタに設定される。このアイテムデータD4がRAM24に記憶されることによって、ゲーム装置1の第2のLCD12にアイテムIが現在のフレーム番号D3におけるゲーム画像のアイテム表示座標D4bの位置に表現され、アイテム利用ボタンを押下したプレイヤが操作するプレイヤキャラクタの位置近傍からアイテムIがレースコース上に登場する(図5参照)ことになる。次に、CPUコア21は、フレーム番号D3およびアイテムデータD4を送信データバッファD1に格納し、送信タイミングに応じてワイヤレス通信部33を介してフレーム番号D3およびアイテムデータD4を他のゲーム装置1へ送信し(ステップ53)、処理を次のステップ54に進める。
【0059】
ステップ54において、CPUコア21は、ワイヤレス通信部33を介して他のゲーム装置1からアイテムデータD4を受信したか否かを判断する。そして、CPUコア21は、他のゲーム装置1からアイテムデータD4を受信した場合、処理を次のステップ55に進める。一方、CPUコア21は、他のゲーム装置1からアイテムデータD4を受信していない場合、処理を次のステップ58に進める。
【0060】
ステップ55において、CPUコア21は、自装置のフレーム番号D3から受信したデータに含まれる他のゲーム装置1のフレーム番号D3を減算し、その差数を遅延フレーム数として算出する。次に、CPUコア21は、受信したアイテムデータD4を新たにRAM24に記憶する(ステップ56)。なお、新たにRAM24に記憶されるアイテムデータD4の遅延フレーム数D4eには、上記ステップ55で算出した遅延フレーム数が記述される。また、CPUコア21は、既に他のアイテムデータD4がRAM24に記憶されている場合、別のデータ記録領域に受信したアイテムデータD4を記憶する。そして、CPUコア21は、上記ステップ56で新たにRAM24に記憶されるアイテムデータD4の初回遅延処理フラグD4fをONに設定し(ステップ57)、処理を次のステップ58に進める。
【0061】
ステップ58において、CPUコア21は、ゲーム空間に登場しているアイテムIが何れかのプレイヤキャラクタを追尾するタイプ(追尾タイプ)か否かをアイテム種別D4aを参照して判断する。そして、CPUコア21は、アイテムIが追尾タイプである場合、処理を次のステップ59に進める。一方、CPUコア21は、アイテムIが追尾タイプでない場合、処理を次のステップ71(図10)に進める。
【0062】
ステップ59において、CPUコア21は、自装置が操作対象とするプレイヤキャラクタが利用カート情報D4gに記述されているアイテムデータD4があるか否かを判断する。そして、CPUコア21は、自装置が利用カート情報D4gに記述されているアイテムデータD4がある場合(つまり、プレイヤキャラクタがアイテム利用カート)、処理を次のステップ60に進める。一方、自装置が利用カート情報D4gに記述されているアイテムデータD4がない場合、処理を次のステップ71(図10)に進める。
【0063】
ステップ60において、CPUコア21は、自装置が利用カート情報に記述されたアイテムIが、何れかのプレイヤキャラクタPA〜PDの追尾範囲AA〜AD(図6参照)内に進入したか否かを判断する。具体的には、CPUコア21は、自装置が利用カート情報D4gに記述されているアイテムデータD4に記述されたアイテム表示座標D4bを参照し、当該アイテム表示座標D4bがカートデータD5に記述されたカート表示座標D5bおよび追尾範囲情報D5cで示される何れかの範囲内の座標か否かを判断する。そして、CPUコア21は、アイテムIが何れかの追尾範囲AA〜AD内に進入している場合、処理を次のステップ61に進める。一方、アイテムIが何れの追尾範囲AA〜AD内にも進入していない場合、処理を次のステップ71(図10)に進める。
【0064】
ステップ61において、CPUコア21は、アイテムIが進入した追尾範囲AA〜ADが設定されているプレイヤキャラクタPA〜PDを追尾対象とし、当該アイテムIに関するアイテムデータD4に含まれる追尾カート情報D4hに当該追尾対象のプレイヤキャラクタを記述する。次に、CPUコア21は、上記ステップ61で記述した追尾カート情報D4hを送信データバッファD1に格納し、送信タイミングに応じてワイヤレス通信部33を介して追尾カート情報D4hを他のゲーム装置1へ送信し(ステップ62)、処理を次のステップ71(図10)に進める。
【0065】
図10のステップ71において、CPUコア21は、ワイヤレス通信部33を介して他のゲーム装置1から追尾カート情報D4hを受信したか否かを判断する。そして、CPUコア21は、他のゲーム装置1から追尾カート情報D4hを受信した場合、該当するアイテムデータD4に受信した追尾カート情報D4hを記述し(ステップ72)、処理を次のステップ73に進める。一方、CPUコア21は、他のゲーム装置1から追尾カート情報D4hを受信していない場合、そのまま処理を次のステップ73に進める。
【0066】
ステップ73において、CPUコア21は、アイテム描画処理を行う。以下、図11を参照して、CPUコア21が行うアイテム描画処理について説明する。
【0067】
図11において、CPUコア21は、ゲーム空間内にアイテムIが存在するか否か(つまり、アイテムデータD4が記憶されているか否か)を判断する(ステップ91)。そして、CPUコア21は、ゲーム空間内にアイテムIが存在する場合、処理を次のステップ92に進める。一方、CPUコア21は、ゲーム空間内にアイテムIが存在しない場合、当該サブルーチンによる処理を終了する。
【0068】
ステップ92において、CPUコア21は、ゲーム空間内に存在する全アイテムIに対して処理済か否かを判断する。そして、CPUコア21は、未処理のアイテムIが残っている場合、処理を次のステップ93に進める。一方、CPUコア21は、全てのアイテムIが処理済の場合、当該サブルーチンによる処理を終了する。
【0069】
ステップ93において、CPUコア21は、未処理のアイテムIの何れかを選択し、当該選択されたアイテムIに関するアイテムデータD4を読み込む。なお、以下に説明するステップ94〜ステップ109の処理においては、当該ステップ93で読み込まれたアイテムデータD4を対象として行われる。次に、CPUコア21は、読み込まれたアイテムデータD4の初回遅延処理フラグD4fがONに設定されているか否かを判断する(ステップ94)。そして、CPUコア21は、初回遅延処理フラグD4fがONの場合、処理を次のステップ95に進める。一方、CPUコア21は、初回遅延処理フラグD4fがOFFの場合、処理を次のステップ103に進める。
【0070】
ステップ95において、アイテムIの表示座標(アイテム表示座標D4b)をアイテムIの速度(アイテム速度D4c)に応じて通常ゲーム処理における処理の1回分(1フレーム分)、所定の動作基準に基づいて移動させてアイテム表示座標D4bを更新する。そして、CPUコア21は、利用カート情報D4gを参照して、当該アイテムIを投入した現在のプレイヤキャラクタの位置(カート表示座標D5b)と上記ステップ95で更新したアイテムIの位置との距離Dを算出する(ステップ96)。そして、CPUコア21は、処理を次のステップに進める。
【0071】
次に、CPUコア21は、現在算出されている距離Dを最小距離Dminとして設定する(ステップ97)。そして、CPUコア21は、アイテムIの表示座標(アイテム表示座標D4b)をアイテムIの速度に応じて通常ゲーム処理における処理の1回分(1フレーム分)、所定の動作基準に基づいて移動させてアイテム表示座標D4bを更新し(ステップ98)、遅延フレーム数D4eを−1減算して更新する(ステップ99)。次に、CPUコア21は、上記ステップ96で参照した現在のプレイヤキャラクタの位置(カート表示座標D5b)と上記ステップ98で更新したアイテムIの位置との距離Dを算出し(ステップ100)、上記ステップ97で設定した最小距離Dminより距離Dが小さいか否かを判断する(ステップ101)。そして、CPUコア21は、Dmin>Dの場合、上記ステップ97に戻って処理を繰り返す。一方、CPUコア21は、Dmin≦Dの場合、初回遅延処理フラグD4fをOFFに設定し(ステップ102)、処理を次のステップ109に進める。
【0072】
なお、上記ステップ97〜ステップ101を繰り返すことによって、アイテムIとアイテム利用カートとの距離が極小となる位置が、最初にアイテムIが配置される位置として決定される。これによって、アイテムIがゲーム空間内へ登場する際、アイテムIを利用しないプレイヤキャラクタを操作するゲーム装置1においてもアイテム利用カートの近傍からアイテムIが自然に出現するように表現される。しかしながら、上記ステップ97〜ステップ101の処理を繰り返すと、厳密には極小点を超えた位置まで位置更新を行うことになり、つまり更新回数が1回多くなる。このような更新回数に対して、そのまま後述するステップ109におけるアイテム描画処理を行ってもかまわないが、ステップ97〜ステップ101の処理(初回遅延処理)時のみ更新1回前のアイテム表示座標D4bを用いてアイテム描画処理を行ってもかまわない。
【0073】
一方、上記ステップ94において初回遅延処理フラグD4fがOFFの場合、ステップ95において、CPUコア21は、更新回数D4dを「1」に設定して対象となったアイテムデータD4に記述する。次に、CPUコア21は、遅延フレーム数D4eが0か否かを判断する(ステップ104)。そして、CPUコア21は、遅延フレーム数D4eが0でない場合、処理を次のステップ105に進める。一方、CPUコア21は、遅延フレーム数D4eが0の場合、処理を次のステップ108に進める。
【0074】
ステップ105において、CPUコア21は、更新回数D4dに「+1」を加算し更新回数D4dを更新して記述する。次に、CPUコア21は、底を「4」および真数を「遅延フレーム数D4f」とする対数、つまりLog4(遅延フレーム数)をさらに更新回数D4dに加算(小数点以下は切り捨て)し更新回数D4dを更新して記述する(ステップ106)。そして、CPUコア21は、遅延フレーム数D4fに記述されている遅延フレーム数から現在更新回数D4dに記述されている更新回数−1を減算し遅延フレーム数D4fを更新して記述する(ステップ107)。そして、CPUコア21は、処理を次のステップ108に進める。
【0075】
ステップ108において、CPUコア21は、更新回数D4dに記述された値(回数)を参照し、アイテムIの表示座標(アイテム表示座標D4b)をアイテムIの速度(アイテム速度D4c)に応じて通常ゲーム処理における処理の当該回数分(更新回数D4dに記述された値のフレーム分)、所定の動作基準に基づいて移動させてアイテム表示座標D4bを更新する。そして、CPUコア21は、処理を次のステップ109に進める。
【0076】
ここで、何れかのプレイヤキャラクタをアイテムIが追尾する際に上記ステップ108で用いられるアイテムIの速度について説明する。上述したように、アイテムIは、追尾対象のカートが設定されると当該追尾対象カートの移動に追従してレースコース上を移動する。つまり、追尾対象設定後は、アイテムIの速度が追尾対象の動作に影響されることになる。例えば、CPUコア21は、現在のアイテムIの速度(アイテム速度D4c)および位置(アイテム表示座標D4b)と追尾対象カートの速度(カート速度D5c)および位置(カート表示座標D5b)とを用いて、所定の関数に基づいた新たなアイテムIの速度を算出する。具体的には、追尾対象カートの位置をP、追尾対象カートの速度をV、アイテムIの位置をPi、および現在のアイテムIの速度をViとすると、新たなアイテムIの速度をVinは、
Vin=Vi+Kp(P−Pi)+Kd(V−Vi) …(1)
で算出される。ここで、Kpはバネ係数、Kdはダンパ係数であり、上記式(1)はバネおよびダンパを有する制御系を示す関数である。そして、上記式(1)において振動を生じない領域であれば、バネ係数Kpを大きくするとアイテムIが追尾対象を追従する時間が短くなり、バネ係数Kpを小さくするとアイテムIが追尾対象を追従する時間が長くなる。一方、後述で明らかとなるが、各ゲーム装置1間の送受信時間に応じて、アイテムIの追尾対象カートを設定してから当該アイテムIと追尾対象カートとが接触するまでの追従時間が異なる。このような通信環境において、予想される追従時間の長短に応じてバネ係数Kpを設定することによって、アイテムIが追尾対象に追従する性能(追従性能)を調整することができる。
【0077】
ステップ109において、CPUコア21は、アイテムIを現在記述されているアイテム表示座標D4bに応じた位置に配置して描画し、ゲーム画像を第2のLCD12に表示する。そして、CPUコア21は、描画処理を行ったアイテムデータD4を処理済にし、上記ステップ92に戻って処理を繰り返す。
【0078】
図10に戻り、CPUコア21は、ステップ73のアイテム描画処理の後、自装置が操作対象とするプレイヤキャラクタとアイテムIとが接触したか否かを判断する。具体的には、CPUコア21は、自装置が操作対象とするプレイヤキャラクタのカート表示座標D5bおよびアイテム表示座標D4bとに基づいて、双方の接触を判定する。そして、CPUコア21は、アイテムIとが接触した場合、処理を次のステップ76に進める。一方、CPUコア21は、アイテムIとが接触していない場合、処理を次のステップ79に進める。
【0079】
ステップ76において、CPUコア21は、アイテムIと接触した自装置が操作対象とするプレイヤキャラクタに対して、当該アイテムIとプレイヤキャラクタとがレースコース上でクラッシュする処理を行う。クラッシュ処理としては、例えばプレイヤキャラクタがレースコース上でスピンしたり、転倒したりする動作がゲーム画像において表現される。次に、CPUコア21は、接触したアイテムIに関するアイテムデータD4をRAM24から削除する(ステップ77)。そして、CPUコア21は、アイテムIと自装置が操作対象とするプレイヤキャラクタとが接触したことを示す接触情報を送信データバッファD1に格納し、送信タイミングに応じてワイヤレス通信部33を介して接触情報を他のゲーム装置1へ送信して(ステップ78)、処理を次のステップ79に進める。
【0080】
ステップ79において、CPUコア21は、ワイヤレス通信部33を介して他のゲーム装置1から接触情報を受信したか否かを判断する。そして、CPUコア21は、他のゲーム装置1から接触情報を受信した場合、アイテムIと他のゲーム装置1が操作対象としているプレイヤキャラクタとが接触してクラッシュする処理を行い(ステップ80)、接触したアイテムIに関するアイテムデータD4をRAM24から削除して(ステップ81)、処理を次のステップ84に進める。一方、CPUコア21は、他のゲーム装置1から接触情報を受信していない場合、処理を次のステップ82に進める。
【0081】
ステップ82において、CPUコア21は、アイテムIが追尾タイプの場合、他のゲーム装置1が操作対象としており、かつ追尾対象であるプレイヤキャラクタに設定された非接触維持範囲内に当該アイテムIが進入したか否かを判断する。そして、CPUコア21は、アイテムIが追尾対象である他機カートの非接触維持範囲内に進入した場合、非接触維持範囲内に進入したアイテムIに対して、速度調整処理を行い(ステップ83)、処理を次のステップ84に進める。一方、CPUコア21は、アイテムIが追尾タイプでない場合、またはアイテムIが追尾対象である他機カートの非接触維持範囲内に進入していない場合、そのまま処理を次のステップ84に進める。ここで、各プレイヤキャラクタPA〜PDには、それぞれの位置を中心として非接触維持範囲が設定されている。そして、レースコース上に投入されたアイテムIは、他のゲーム装置1が操作対象としている追尾対象のプレイヤキャラクタPA〜PDに設定された非接触維持範囲の何れかの内部に進入すると、当該進入した非接触維持範囲が設定されている追尾対象のプレイヤキャラクタと接触しないようにアイテムIの速度(アイテム速度D4c)が調整される。
【0082】
ステップ84において、CPUコア21は、レースゲームを終了するか否かを判断する。レースゲームを終了する条件としては、例えば、ゲームオーバとなる条件(例えば、全てのプレイヤキャラクタがゴールしたり、操作対象のプレイヤキャラクタがリタイヤしたりする等)が満たされたことや、プレイヤがゲームを終了する操作を行ったこと等がある。CPUコア21は、ゲームを終了しない場合に上記ステップ50(図9)に戻って処理を繰り返し、ゲームを終了する場合に当該フローチャートによる処理を終了する。
【0083】
次に、図12および図13を参照して、図9〜図11に示した処理によってゲーム装置1A〜1Dが同期制御される一例を説明する。
【0084】
図12および図13に示すように、ゲーム装置1Aのプレイヤがフレーム番号「100」時点でアイテム利用ボタンを押下(S51でYes)し、他のゲーム装置1B〜1DにアイテムデータD4を送信した(S53)とする。そして、ゲーム装置1Aは、アイテムデータD4を送信後(つまり、フレーム番号「101」以降)、フレーム毎に、アイテムIの表示座標をアイテムIの速度に応じて通常ゲーム処理における処理の1回分(1フレーム分)移動させてアイテム表示座標D4bを更新する(更新回数「1」によるS108の繰り返し)。
【0085】
このとき、他のゲーム装置1B〜1Dは、ゲーム装置1Aからネットワークを介してアイテムデータD4を受信する(S54でYes)ため、送信から受信までの時間遅延が生じる。例えば、ゲーム装置1Bは、ゲーム装置1Aから送信されたアイテムデータD4をフレーム番号「116」時点で受信する。この場合、ゲーム装置1Bでは、受信時点のフレーム番号「116」から受信データに含まれるフレーム番号「100」を減算することによって、遅延フレーム数「16」を得る(S55)。また、ゲーム装置1Cは、ゲーム装置1Aから送信されたアイテムデータD4をフレーム番号「130」時点で受信する。この場合、ゲーム装置1Cでは、受信時点のフレーム番号「130」から受信データに含まれるフレーム番号「100」を減算することによって、遅延フレーム数「30」を得る(S55)。また、ゲーム装置1Dは、ゲーム装置1Aから送信されたアイテムデータD4をフレーム番号「120」時点で受信する。この場合、ゲーム装置1Dでは、受信時点のフレーム番号「120」から受信データに含まれるフレーム番号「100」を減算することによって、遅延フレーム数「20」を得る(S55)。
【0086】
ゲーム装置1Bは、フレーム番号「116」にてアイテムデータD4を受信した後、フレーム番号「117」にて初回遅延処理(S95〜S102)を行う。上述したように、ステップ97〜ステップ101を繰り返すことによって、ゲーム装置1Bの第2のLCD12に表示されているプレイヤキャラクタPA(つまり、アイテム利用カート)の近傍からアイテムIが登場する位置が算出され、当該算出に要する回数分(例えば、10回)だけアイテム表示座標D4bが更新され、遅延フレーム数が「16」−9=「7」となる。そして、ゲーム装置1Bは、フレーム番号「118」にて、ステップ103〜ステップ108の処理を行う。このとき、更新回数は、1+1+Log47=3.40から3回となる。したがって、ゲーム装置1Bは、フレーム番号「118」において、更新回数3回分だけアイテム表示座標D4bが更新し、遅延フレーム数が「7」−(3−1)=「5」となる。ゲーム装置1Bは、遅延フレーム数が「0」になるまで(例えば、フレーム番号「122」まで)同様の処理をフレーム毎に繰り返し、通常ゲーム処理における処理の1回分(1フレーム分)より多い更新回数で移動させてアイテム表示座標D4bを更新する。そして、フレーム番号「122」におけるステップ103〜ステップ108の処理が終了した時点で、ゲーム装置1Aとゲーム装置1Bとの間の更新回数が等しくなり、アイテムIの移動動作が同期する。
【0087】
ゲーム装置1Bと同様に、ゲーム装置1Cおよび1Dもアイテム表示座標D4bの更新処理を行う。これによって、ゲーム装置1Cは、フレーム番号「139」におけるステップ103〜ステップ108の処理が終了した時点で、ゲーム装置1Aとゲーム装置1Cとの間の更新回数が等しくなり、アイテムIの移動動作が同期する。また、ゲーム装置1Cは、フレーム番号「127」におけるステップ103〜ステップ108の処理が終了した時点で、ゲーム装置1Aとゲーム装置1Cとの間の更新回数が等しくなり、アイテムIの移動動作が同期する。このように、アイテムIがゲーム空間内に登場するときは、当該登場を指示したゲーム装置1から他のゲーム装置1へ登場を示す情報のみが送信される。その後は、互いに異なる送受信遅延時間を吸収するために、各ゲーム装置1が互いに独立したアイテムIの位置座標の更新を行うことによって、ゲームシステム全体の同期制御が行われる。
【0088】
次に、図12に示すように、プレイヤキャラクタPBの追尾範囲ABにアイテムIが進入したとする。このとき、ステップ59〜ステップ62の処理から明らかなように、追尾範囲にアイテムが進入したか否かの判定は、当該アイテムのアイテム利用カート(つまり、プレイヤキャラクタPA)を操作するゲーム装置(つまり、ゲーム装置1A)のみが行う。このように、アイテムIの追尾対象の決定を行うゲーム装置を1つのゲーム装置に限定することによって、ゲーム進行上の矛盾を回避することができる。
【0089】
ゲーム装置1Aは、プレイヤキャラクタPBの追尾範囲ABにアイテムIが進入したことを示す追尾カート情報を他のゲーム装置1B〜1Dに送信し(S62)、他のゲーム装置1B〜1Dで追尾カート情報が受信される(ステップ71でYes)。やがて、アイテムIと追尾対象カート(プレイヤキャラクタPB)とが接触する(S75でYes)。このとき、ステップ74〜ステップ78の処理から明らかなように、アイテムと追尾対象カートとが接触したか否かの判定は、当該追尾対象カート(つまり、プレイヤキャラクタPB)を操作するゲーム装置(つまり、ゲーム装置1B)のみが行う。また、アイテムと非追尾対象カートとが接触したか否かの判定は、当該非追尾対象カート(つまり、プレイヤキャラクタPA、PC、およびPD)を操作するゲーム装置(つまり、ゲーム装置1A、1C、および1D)がそれぞれ行う。つまり、アイテムとプレイヤキャラクタとの接触判定は、当該プレイヤキャラクタを操作対象とするゲーム装置1のみで行われる。このように、アイテムIの接触判定を行うプレイヤキャラクタを、各ゲーム装置1がそれぞれ操作対象としているプレイヤキャラクタ(自機カート)のみに限定することによって、ゲーム進行上の矛盾を回避することができる。
【0090】
ゲーム装置1Bは、プレイヤキャラクタPBとアイテムIとが接触したことを示す接触情報を他のゲーム装置1A、1C、および1Dに送信し(S78)、他のゲーム装置1A、1C、および1Dで接触情報が受信される(ステップ79でYes)。このとき、図12に示すように、ゲーム装置1間の送受信時間に応じて、アイテムIの追尾対象を設定してから当該アイテムIと追尾対象とが接触するまでの追従時間が異なる。具体的には、ゲーム装置1A〜1Dそれぞれの追従時間がTa〜Tdとすると、
Tb<Tc<Ta、Tb<Td<Ta
となる。これは、ゲーム装置間のデータ通信において送受信するための時間が必要なゲームシステムにおいて、追尾対象を決定するゲーム装置と追尾対象を操作するゲーム装置とが異なるために生じる現象である。そして、典型的には、追尾対象を決定するゲーム装置が最も追従時間が長くなり、追尾対象を操作するゲーム装置が最も追従時間が短くなる。したがって、追尾対象をアイテムIが追従する際、各ゲーム装置1で同じ速度でアイテムIを移動させると、接触判定を行わないゲーム装置1で先にアイテムIと追尾対象とが接触することがある。本発明では、このような矛盾を回避するために、アイテムIの追従性能の調整(S108)と接触直前のアイテムIの速度調整(S83)とを行う。
【0091】
上記ステップ108の説明で述べたように、式(1)を用いてアイテムIの追従性能(バネ係数Kp)を調整すると、追尾対象カートを設定してから当該アイテムIと追尾対象カートとが接触するまでの追従時間を調整することができる。具体的には、追尾対象を決定するゲーム装置1Aは、追従時間Taが他の追従時間より長いため、式(1)におけるバネ係数Kpを小さな値に設定して、アイテムIが追尾対象に追従する速度を遅くする。一方、追尾対象を操作するゲーム装置1Bは、追従時間Tbが他の追従時間より短いため、式(1)におけるバネ係数Kpを大きな値に設定して、アイテムIが追尾対象に追従する速度を速くする。そして、他のゲーム装置1Cおよび1Dは、追従時間TcおよびTdが追従時間Tbより短く、追従時間Taより長いため、式(1)におけるバネ係数Kpを中間的な値(つまり、ゲーム装置1Aで設定するKpより大きく、ゲーム装置1Bで設定するKpより小さな値)に設定して、アイテムIが追尾対象に追従する速度を調整する。
【0092】
上述したアイテムIの追従性能の調整によって、アイテムIと追尾対象との接触に関する矛盾をある程度解消できるが、接触判定しないゲーム装置1においてアイテムIとプレイヤキャラクタとが接触しそうになったとき、当該接触を回避するためにアイテムIの速度を調整する。具体的には、アイテムIが自装置で操作しないカート(他機カート)と接触しそうになったとき、その接触が生じないようにアイテムIの速度が調整される。
【0093】
このように、本実施形態に係るゲームシステムでは、通信ネットワークを介して行われるゲームにて、プレイヤの操作がゲーム空間内への登場時のみに有効(つまり、登場後は所定の動作基準に基づいて動作制御される)なオブジェクト(アイテム)に関する情報(フレーム番号D3やアイテムデータD4で示される登場時期、位置、速度等)を、ゲーム空間内へ登場するときおよびステータスを変更(追尾対象設定、オブジェクト削除等)するときのみに他のゲーム装置1へ送信し、その情報を基づいて各ゲーム装置で演算処理および表示制御が行われる。したがって、このようなオブジェクトに関する情報をゲーム空間内への出現以降も頻繁に他のゲーム装置1へ送る場合と比較すると、データ伝送量を減らすことができる。また、データ送信1回あたりの平均データ量が減ることによって、同一通信環境においては、データの送信時間が短縮できる。また言い換えれば通信環境が劣る環境においては、データの送信時間が長くなるのを防ぐことができる。また、ゲーム空間内へ登場およびステータスを変更するゲーム装置1を限定することによって、それらの変化に関するゲーム進行上の矛盾が生じることを回避できる。さらに、ゲーム空間内へ登場およびステータスを変更後における各ゲーム装置1間の同期は、ゲーム処理における更新回数の調整やアイテムIの速度調整によって、各ゲーム装置1にプレイヤの違和感を与えることのないゲーム画面を表示することができる。
【0094】
なお、上述したゲーム処理においては、アイテムIをゲーム空間内に登場させるとき、アイテムIの追尾対象が設定されたとき、およびアイテムIが自機カートと接触してゲーム空間から消滅するときに、他のゲーム装置1にアイテムIに関する情報を送信したが、ゲームルールに応じて他のステータス変更時にアイテムIに関する情報を送信してもかまわない。例えば、ゲーム空間内に登場したアイテムIがプレイヤキャラクタによって獲得可能なオブジェクトである場合、アイテムIが何れかのプレイヤキャラクタによって獲得されたときに、その獲得を示す情報を他のゲーム装置1へ送信してもかまわない。
【0095】
また、図11に示したステップ95〜ステップ101の処理によって、アイテムIがゲーム空間内へ登場する際、アイテムIを利用しないプレイヤキャラクタを操作するゲーム装置1においてもアイテム利用カートの近傍からアイテムIが自然に出現するように表現される。このような効果を期待しない場合、他の方式で初回遅延処理を行ってもかまわない。以下、図14を参照して、初回遅延処理の他の例について説明する。なお、図14は、図10におけるステップ73のアイテム描画処理の他の例について詳細な動作を示すサブルーチンである。
【0096】
図14において、ステップ121〜ステップ123の処理は、図11を用いて説明したステップ91〜ステップ93の処理と同様であるため、詳細な説明を省略する。
【0097】
ステップ124において、CPUコア21は、更新回数D4dを「1」に設定して対象となったアイテムデータD4に記述する。次に、CPUコア21は、遅延フレーム数D4eが0か否かを判断する(ステップ125)。そして、CPUコア21は、遅延フレーム数D4eが0でない場合、処理を次のステップ126に進める。一方、CPUコア21は、遅延フレーム数D4eが0の場合、処理を次のステップ132に進める。
【0098】
ステップ126において、CPUコア21は、更新回数D4dに「+1」を加算し更新回数D4dを更新して記述する。次に、CPUコア21は、上記ステップ123で読み込まれたアイテムデータD4の初回遅延処理フラグD4fがONに設定されているか否かを判断する(ステップ127)。そして、CPUコア21は、初回遅延処理フラグD4fがONの場合、処理を次のステップ128に進める。一方、CPUコア21は、初回遅延処理フラグD4fがOFFの場合、処理を次のステップ130に進める。
【0099】
ステップ128およびステップ129が、アイテム描画処理の他の例における初回遅延処理に相当する。ステップ128において、CPUコア21は、更新回数D4dに遅延フレーム数D4fに記述された遅延フレーム数/2を加算し更新回数D4dを更新して記述する。そして、CPUコア21は、初回遅延処理フラグD4fをOFFに設定し(ステップ129)、処理を次のステップ131に進める。
【0100】
ステップ131において、CPUコア21は、遅延フレーム数D4fに記述されている遅延フレーム数から現在更新回数D4dに記述されている更新回数−1を減算し遅延フレーム数D4fを更新して記述する。そして、CPUコア21は、処理を次のステップ132に進める。
【0101】
ステップ132において、CPUコア21は、更新回数D4dに記述された値(回数)を参照し、アイテムIの表示座標(アイテム表示座標D4b)をアイテムIの速度(アイテム速度D4c)に応じて通常ゲーム処理における処理の当該回数分(更新回数D4dに記述された値のフレーム分)移動させてアイテム表示座標D4bを更新する。ここで、アイテム表示座標D4bの更新は、追従性能が調整されて行われるが、上述したステップ108と同様であるため詳細な説明を省略する。そして、CPUコア21は、アイテムIを現在記述されているアイテム表示座標D4bに応じた位置に配置して描画し(ステップ133)、ゲーム画像を第2のLCD12に表示する。そして、CPUコア21は、描画処理を行ったアイテムデータD4を処理済にし、上記ステップ122に戻って処理を繰り返す。
【0102】
なお、上述では、説明を具体的にするために、具体的な処理手順を用いてレースゲームを説明したが、これらは一実施例であり、本発明がこれらの処理手順やレースゲームに限定されることはないことは言うまでもない。
【0103】
また、上述した説明では、ゲーム装置1は、無線通信によってネットワークと接続しているが、他の形態によって他のゲーム装置1とデータ通信を行ってもかまわない。例えば、ゲーム装置1とネットワークとを有線接続して他のゲーム装置1とデータ通信を行ってもかまわない。また、複数のゲーム装置1の少なくとも一部の間のデータ通信が、ネットワークを介さずに無線あるいは有線通信によって直接データ通信してもかまわない。
【0104】
また、上述した実施形態では、2画面分の液晶表示部の一例として、物理的に分離された第1のLCD11および第2のLCD12を互いに上下に配置した場合(上下2画面の場合)を説明した。しかしながら、2画面分の表示画面の構成は、他の構成でもかまわない。例えば、下側ハウジング13bの一方主面に第1のLCD11および第2のLCD12を左右に配置してもかまわない。また、第2のLCD12と横幅が同じで縦の長さが2倍のサイズからなる縦長サイズのLCD(すなわち、物理的には1つで、表示サイズが縦に2画面分あるLCD)を下側ハウジング13bの一方主面に配設して、第1および第2の表示画像を上下に表示(すなわち上下の境界部分無しに隣接して表示)するように構成してもよい。また、第2のLCD12と縦幅が同じで横の長さが2倍のサイズからなる横長サイズのLCDを下側ハウジング13bの一方主面に配設して、横方向に第1および第2の表示画像を左右に表示(すなわち左右の境界部分無しに隣接して表示)するように構成してもよい。すなわち、物理的に1つの画面を2つに分割して使用することにより第1および第2の表示画像を表示してもかまわない。また、物理的に1つの画面を2つに分割して使用することにより第1および第2の表示画像を表示する場合、当該画面全面にタッチパネル15を配設してもかまわない。
【0105】
また、上述した実施例では、ゲーム装置1にタッチパネル15が一体的に設けられているが、ゲーム装置とタッチパネルとを別体にして構成しても、本発明を実現できることは言うまでもない。また、第1のLCD11の上面にタッチパネル15を設けても良い。また、タッチパネル15を設けずに操作スイッチ部14のみを設けて操作を行ってもかまわない。さらに、上記実施例では表示画面を2つ(第1のLCD11、第2のLCD12)を設けたが、表示画面は1つであってもかまわない。すなわち、上記実施例において、第1のLCD11設けず単に第2のLCD12のみを表示画面としてタッチパネル15を設けるように構成してもよい。また、上記実施例において、第2のLCD12を設けず第1のLCD11の上面にタッチパネル15を設けても良い。
【0106】
また、上記実施例では、携帯型のゲーム装置1を用いて説明しているが、他の装置とデータ通信可能な一般的なパーソナルコンピュータなどの情報処理装置や据置型のゲーム装置でもかまわない。
【産業上の利用可能性】
【0107】
本発明に係るゲームシステムおよびゲームプログラムは、通信ネットワークを介して複数のゲーム装置間で行われるゲームにおいて、互いに同期をとって進行することが必要なマルチプレイヤゲーム等の用途に適用することができる。
【図面の簡単な説明】
【0108】
【図1】本発明の一実施形態に係るゲームプログラムを実行するゲーム装置1の外観図
【図2】図1のゲーム装置1の内部構成を示すブロック図
【図3】本発明の一実施形態に係るゲームシステムを示す図
【図4】図3のゲーム装置1Aの第2のLCD12に表示されるレースゲームの画面表示例
【図5】図4の第2のLCD12に表示されるレースゲームにおいて、アイテムIが登場したときの画面表示例
【図6】図4の第2のLCD12に表示されるレースゲームにおいて、アイテムIがプレイヤキャラクタPBの追尾範囲AB内に入った様子を示す画面表示例
【図7】図4の第2のLCD12に表示されるレースゲームにおいて、アイテムIがプレイヤキャラクタPBと接触した様子を示す画面表示例
【図8】図1のゲーム装置1で実行されるゲームプログラムによる処理動作でRAM24に記憶される各種データの一例を示す図
【図9】図1のゲーム装置1で実行されるゲームプログラムを実行することによってゲーム装置1がゲームを行う動作を示す前半のフローチャート
【図10】図1のゲーム装置1で実行されるゲームプログラムを実行することによってゲーム装置1がゲームを行う動作を示す後半のフローチャート
【図11】図10におけるステップ73のアイテム描画処理について詳細な動作を示すサブルーチン
【図12】図9〜図11に示した処理によってゲーム装置1A〜1Dが同期制御される様子を示す図
【図13】図9〜図11に示した処理によってゲーム装置1A〜1Dが同期制御される様子を示す図
【図14】図10におけるステップ73のアイテム描画処理の他の例について詳細な動作を示すサブルーチン
【符号の説明】
【0109】
1 ゲーム装置
11 第1のLCD
12 第2のLCD
13 ハウジング
13a 上側ハウジング
13b 下側ハウジング
14 操作スイッチ部
14a 十字スイッチ
14b スタートスイッチ
14c セレクトスイッチ
14d Aボタン
14e Bボタン
14f Xボタン
14g Yボタン
14h 電源スイッチ
14L Lボタン
14R Rボタン
15 タッチパネル
16 スティック
17 メモリカード
17a ROM
17b RAM
18a、18b 音抜き孔
20 電子回路基板
21 CPUコア
22 バス
23 コネクタ
24 RAM
25 I/F回路
26 第1GPU
27 第2GPU
28 第1VRAM
29 第2VRAM
30a 右スピーカ
30b 左スピーカ
31 LCDコントローラ
32 レジスタ
33 ワイヤレス通信部

【特許請求の範囲】
【請求項1】
互いに通信可能に接続された複数のゲーム装置を含み、当該ゲーム装置においてそれぞれ操作されるプレイヤキャラクタが登場する同一の仮想ゲーム世界が、当該ゲーム装置間で同期が取られて当該各ゲーム装置に表示するゲームシステムであって、
前記複数のゲーム装置の何れか1つである第1のゲーム装置は、
他のゲーム装置との間でデータ通信を行う通信手段と、
プレイヤの入力操作に応じて、前記仮想ゲーム世界内で第1プレイヤキャラクタを動作させる第1プレイヤキャラクタ動作制御手段と、
前記第1プレイヤキャラクタの動作に関する第1プレイヤキャラクタ情報を、所定の間隔毎に前記通信手段を介して他のゲーム装置に送信する第1プレイヤキャラクタ情報送信手段と、
前記プレイヤの所定の入力操作に応じて、前記第1プレイヤキャラクタとは異なるアイテムオブジェクトを前記仮想ゲーム世界内に登場させて動作させるためのアイテムオブジェクト初期情報を作成するアイテムオブジェクト初期情報作成手段と、
前記アイテムオブジェクト初期情報を基づいて前記アイテムオブジェクトを前記仮想ゲーム世界内に登場させた後、所定の動作基準に沿って当該アイテムオブジェクトを動作させるアイテムオブジェクト動作制御手段と、
前記通信手段を介して前記アイテムオブジェクト初期情報を他のゲーム装置に送信するアイテムオブジェクト情報送信手段とを備え、
前記複数のゲーム装置のうち、前記第1のゲーム装置とは異なる何れか1つである第2のゲーム装置は、
他のゲーム装置との間でデータ通信を行う通信手段と、
前記通信手段を介して前記第1プレイヤキャラクタ情報を前記第1のゲーム装置より受信する第1プレイヤキャラクタ情報受信手段と、
前記第1プレイヤキャラクタ情報に基づいて、前記第1プレイヤキャラクタを前記第2のゲーム装置で表現する前記仮想ゲーム世界内で動作させる第1プレイヤキャラクタ同期手段と、
前記通信手段を介して前記アイテムオブジェクト初期情報を前記第1のゲーム装置より受信するアイテムオブジェクト情報受信手段と、
前記アイテムオブジェクト初期情報に基づいて前記第2のゲーム装置で表現する前記仮想ゲーム世界内に前記アイテムオブジェクトを登場させた後、所定の動作基準に沿って当該アイテムオブジェクトを動作させるアイテムオブジェクト動作制御手段とを備える、ゲームシステム。
【請求項2】
前記アイテムオブジェクト初期情報作成手段は、前記アイテムオブジェクトを前記仮想ゲーム世界内に登場させた時期を示す登場時期情報を含めてアイテムオブジェクト初期情報を作成し、
前記第2のゲーム装置の前記アイテムオブジェクト動作制御手段は、前記アイテムオブジェクト初期情報に含まれている登場時期情報に基づいて、前記第1のゲーム装置で表現されている前記仮想ゲーム世界に対する前記第2のゲーム装置で表現されている前記仮想ゲーム世界の遅延時間を算出し、当該遅延時間に応じて当該第2のゲーム装置で表現する仮想ゲーム世界内で前記アイテムオブジェクトを登場させて動作させる位置を決定することを特徴とする、請求項1に記載のゲームシステム。
【請求項3】
前記第2のゲーム装置の前記アイテムオブジェクト動作制御手段は、新たな前記アイテムオブジェクト初期情報を得たとき、前記第2のゲーム装置で表現する前記仮想ゲーム世界内で前記第1プレイヤキャラクタ同期手段が動作させる前記第1プレイヤキャラクタの位置に基づいて、前記アイテムオブジェクトを登場させることを特徴とする、請求項2に記載のゲームシステム。
【請求項4】
前記アイテムオブジェクト初期情報作成手段は、さらに、前記アイテムオブジェクトを前記仮想ゲーム世界内に登場させた位置を示す位置情報を含めてアイテムオブジェクト初期情報を作成し、
前記第2のゲーム装置の前記アイテムオブジェクト動作制御手段は、前記アイテムオブジェクト初期情報を用いて前記アイテムオブジェクトの座標の更新を繰り返し、前記第1プレイヤキャラクタ同期手段が動作させる前記第1プレイヤキャラクタの位置に最も近い位置に当該アイテムオブジェクトを登場させることを特徴とする、請求項3に記載のゲームシステム。
【請求項5】
前記アイテムオブジェクト初期情報作成手段は、さらに、前記アイテムオブジェクトを前記仮想ゲーム世界内に登場させた位置を示す位置情報を含めてアイテムオブジェクト初期情報を作成し、
前記第2のゲーム装置の前記アイテムオブジェクト動作制御手段は、前記アイテムオブジェクト初期情報に含まれている位置情報が示す前記仮想ゲーム世界上の位置から前記アイテムオブジェクトを登場させた位置まで当該アイテムオブジェクトを動作させるために必要な移動時間を算出し、前記遅延時間から当該移動時間を減算して当該遅延時間を更新することを特徴とする、請求項3に記載のゲームシステム。
【請求項6】
前記第2のゲーム装置は、
プレイヤの入力操作に応じて、前記第2のゲーム装置で表現する前記仮想ゲーム世界内で第2プレイヤキャラクタを動作させる第2プレイヤキャラクタ動作制御手段と、
前記第2プレイヤキャラクタの動作に関する第2プレイヤキャラクタ情報を、所定の間隔毎に前記通信手段を介して他のゲーム装置に送信する第2プレイヤキャラクタ情報送信手段とを、さらに備え、
前記第1のゲーム装置は、
前記通信手段を介して前記第2プレイヤキャラクタ情報を前記第2のゲーム装置より受信する第2プレイヤキャラクタ情報受信手段と、
前記第2プレイヤキャラクタ情報に基づいて、前記第2プレイヤキャラクタを前記第1のゲーム装置で表現する前記仮想ゲーム世界内で動作させる第2プレイヤキャラクタ同期手段とを、さらに備え、
前記第1のゲーム装置のアイテムオブジェクト動作制御手段は、前記仮想ゲーム世界内で前記第2プレイヤキャラクタ同期手段が動作させる前記第2プレイヤキャラクタと前記アイテムオブジェクトとの距離が所定の範囲内になったとき、当該第2プレイヤキャラクタを当該アイテムオブジェクトの追尾対象に設定して当該第2のプレイヤキャラクタの動作に追従するように当該アイテムオブジェクトの動作を制御し、
前記アイテムオブジェクト情報送信手段は、前記通信手段を介して前記アイテムオブジェクトの追尾対象を示す追尾情報を他のゲーム装置に送信し、
前記第2のゲーム装置の前記アイテムオブジェクト情報受信手段は、前記通信手段を介して前記追尾情報を前記第1のゲーム装置より受信し、
前記第2のゲーム装置のアイテムオブジェクト動作制御手段は、前記追尾情報に基づいて、前記仮想ゲーム世界内で前記第2プレイヤキャラクタ動作制御手段が動作させる前記第2プレイヤキャラクタの動作に追従するように当該アイテムオブジェクトの動作を制御することを特徴とする、請求項1に記載のゲームシステム。
【請求項7】
前記第2のゲーム装置のアイテムオブジェクト動作制御手段は、前記第2プレイヤキャラクタの動作に前記アイテムオブジェクトが第1の速度で追従するように動作を制御し、
前記第1のゲーム装置のアイテムオブジェクト動作制御手段は、前記第2プレイヤキャラクタの動作に前記アイテムオブジェクトが前記第1の速度より遅い第2の速度で追従するように動作を制御することを特徴とする、請求項6に記載のゲームシステム。
【請求項8】
前記第2のゲーム装置は、
プレイヤの入力操作に応じて、前記第2のゲーム装置で表現する前記仮想ゲーム世界内で第2プレイヤキャラクタを動作させる第2プレイヤキャラクタ動作制御手段と、
前記第2プレイヤキャラクタの動作に関する第2プレイヤキャラクタ情報を、所定の間隔毎に前記通信手段を介して他のゲーム装置に送信する第2プレイヤキャラクタ情報送信手段と、
前記第2のゲーム装置で表現する前記仮想ゲーム世界内で前記アイテムオブジェクトとの接触を前記第2プレイヤキャラクタに対してのみ検出する接触検出手段と、
前記通信手段を介して前記第2プレイヤキャラクタと前記アイテムオブジェクトとが接触したことを示す接触情報を他のゲーム装置に送信する接触情報送信手段とを、さらに備え、
前記第1のゲーム装置は、
前記通信手段を介して前記第2プレイヤキャラクタ情報を前記第2のゲーム装置より受信する第2プレイヤキャラクタ情報受信手段と、
前記第2プレイヤキャラクタ情報に基づいて、前記第2プレイヤキャラクタを前記第1のゲーム装置で表現する前記仮想ゲーム世界内で動作させる第2プレイヤキャラクタ同期手段と、
前記通信手段を介して前記接触情報を前記第2のゲーム装置より受信する接触情報受信手段とを、さらに備え、
前記第1のゲーム装置の第2プレイヤキャラクタ同期手段は、前記接触情報に基づいて、前記第2プレイヤキャラクタと前記アイテムオブジェクトとを前記第1のゲーム装置で表現する前記仮想ゲーム世界内で接触させることを特徴とする、請求項1に記載のゲームシステム。
【請求項9】
複数のゲーム装置が互いに通信可能に接続され、当該ゲーム装置においてそれぞれ操作されるプレイヤキャラクタが登場する同一の仮想ゲーム世界が、当該ゲーム装置間で同期が取られて表示装置に表示するゲーム装置のコンピュータに実行されるゲームプログラムであって、
プレイヤの入力操作に応じて、前記仮想ゲーム世界内で自機のプレイヤキャラクタを動作させる自機プレイヤキャラクタ動作制御手段、
前記自機のプレイヤキャラクタの動作に関する自機のプレイヤキャラクタ情報を、所定の間隔毎に他のゲーム装置に送信する自機プレイヤキャラクタ情報送信手段、
前記プレイヤの所定の入力操作に応じて、前記自機のプレイヤキャラクタとは異なるアイテムオブジェクトを前記仮想ゲーム世界内に登場させて動作させるためのアイテムオブジェクト初期情報を作成するアイテムオブジェクト初期情報作成手段、
前記アイテムオブジェクト初期情報作成手段が作成したアイテムオブジェクト初期情報を基づいて前記アイテムオブジェクトを前記仮想ゲーム世界内に登場させた後、所定の動作基準に沿って当該アイテムオブジェクトを動作させるアイテムオブジェクト動作制御手段、
前記アイテムオブジェクト初期情報を他のゲーム装置に送信するアイテムオブジェクト情報送信手段、
他のゲーム装置によって動作制御される他機のプレイヤキャラクタの動作に関する他機のプレイヤキャラクタ情報を所定の間隔毎に他のゲーム装置より受信する他機プレイヤキャラクタ情報受信手段、
前記他機のプレイヤキャラクタ情報に基づいて、前記他機のプレイヤキャラクタを前記仮想ゲーム世界内で動作させる他機プレイヤキャラクタ同期手段、および
他のゲーム装置のプレイヤによる所定の入力操作に応じて、前記アイテムオブジェクト初期情報を他のゲーム装置より受信するアイテムオブジェクト情報受信手段として、前記コンピュータを機能させ、
前記アイテムオブジェクト動作制御手段は、他のゲーム装置から前記アイテムオブジェクト初期情報を受信したとき、前記仮想ゲーム世界内にアイテムオブジェクトを登場させた後、所定の動作基準に沿って当該アイテムオブジェクトを動作させることを特徴とする、ゲームプログラム。
【請求項10】
他のゲーム装置から送信される前記アイテムオブジェクト初期情報は、当該他のゲーム装置においてアイテムオブジェクトを仮想ゲーム世界内に登場させた時期を示す登場時期情報を含んでおり、
前記アイテムオブジェクト動作制御手段は、他のゲーム装置から前記アイテムオブジェクト初期情報を受信したとき、当該アイテムオブジェクト初期情報に含まれている登場時期情報に基づいて、他のゲーム装置で表現されている仮想ゲーム世界に対して自機で表現されている仮想ゲーム世界の遅延時間を算出し、当該遅延時間に応じて仮想ゲーム世界内で前記アイテムオブジェクトを登場させて動作させる位置を決定することを特徴とする、請求項9に記載のゲームプログラム。
【請求項11】
前記アイテムオブジェクト動作制御手段は、他のゲーム装置から前記アイテムオブジェクト初期情報を受信したとき、前記仮想ゲーム世界内で前記他機プレイヤキャラクタ同期手段が動作させる前記他機のプレイヤキャラクタの位置に基づいて、前記アイテムオブジェクトを登場させることを特徴とする、請求項10に記載のゲームプログラム。
【請求項12】
他のゲーム装置から送信される前記アイテムオブジェクト初期情報は、さらに、前記アイテムオブジェクトを仮想ゲーム世界内に登場させた位置を示す位置情報を含んでおり、
前記アイテムオブジェクト動作制御手段は、他のゲーム装置から受信した前記アイテムオブジェクト初期情報を用いて前記アイテムオブジェクトの座標の更新を繰り返し、前記他機プレイヤキャラクタ同期手段が動作させる前記他機のプレイヤキャラクタの位置に最も近い位置に当該アイテムオブジェクトを登場させることを特徴とする、請求項11に記載のゲームプログラム。
【請求項13】
他のゲーム装置から送信される前記アイテムオブジェクト初期情報は、さらに、前記アイテムオブジェクトを仮想ゲーム世界内に登場させた位置を示す位置情報を含んでおり、
前記アイテムオブジェクト動作制御手段は、他のゲーム装置から前記アイテムオブジェクト初期情報を受信したとき、当該アイテムオブジェクト初期情報に含まれている位置情報が示す仮想ゲーム世界上の位置から前記アイテムオブジェクトを登場させた位置まで当該アイテムオブジェクトを動作させるために必要な移動時間を算出し、前記遅延時間から当該移動時間を減算して当該遅延時間を更新することを特徴とする、請求項11に記載のゲームプログラム。
【請求項14】
自機に対するプレイヤの所定の入力操作に応じて、前記アイテムオブジェクトを仮想ゲーム世界内に登場させたとき、
前記アイテムオブジェクト動作制御手段は、前記他機のプレイヤキャラクタと前記アイテムオブジェクトとの距離が所定の範囲内になったとき、当該他機のプレイヤキャラクタを当該アイテムオブジェクトの追尾対象に設定して当該他機のプレイヤキャラクタの動作に追従するように当該アイテムオブジェクトの動作を制御し、
前記アイテムオブジェクト情報送信手段は、前記アイテムオブジェクトの追尾対象を示す追尾情報を他のゲーム装置に送信し、
他のゲーム装置のプレイヤの所定の入力操作に応じて、前記アイテムオブジェクトを仮想ゲーム世界内に登場させたとき、
前記アイテムオブジェクト情報受信手段は、他のゲーム装置が前記追尾対象を設定したことを示す追尾情報を受信し、
前記アイテムオブジェクト動作制御手段は、他のゲーム装置から受信した前記追尾情報に基づいて、前記仮想ゲーム世界内で当該追尾情報が追尾対象として示すプレイヤキャラクタの動作に追従するように当該アイテムオブジェクトの動作を制御することを特徴とする、請求項9に記載のゲームプログラム。
【請求項15】
他のゲーム装置から送信された前記追尾情報が示す追尾対象が前記自機のプレイヤキャラクタであるとき、前記アイテムオブジェクト動作制御手段は、当該自機のプレイヤキャラクタの動作に前記アイテムオブジェクトが第1の速度で追従するように動作を制御し、
自機が設定した前記追尾対象が前記他機のプレイヤキャラクタであるとき、前記アイテムオブジェクト動作制御手段は、当該他機のプレイヤキャラクタの動作に前記アイテムオブジェクトが前記第1の速度より遅い第2の速度で追従するように動作を制御することを特徴とする、請求項14に記載のゲームプログラム。
【請求項16】
前記ゲームプログラムは、
前記仮想ゲーム世界内で前記アイテムオブジェクトとの接触を前記自機のプレイヤキャラクタに対してのみ検出する接触検出手段、
前記自機のプレイヤキャラクタと前記アイテムオブジェクトとが接触したことを示す接触情報を他のゲーム装置に送信する接触情報送信手段、および
他のゲーム装置から前記他機のプレイヤキャラクタと前記アイテムオブジェクトとが接触したことを示す接触情報を受信する接触情報受信手段として、前記コンピュータをさらに機能させ、
前記他機プレイヤキャラクタ同期手段は、他のゲーム装置から受信した前記接触情報に基づいて、前記他機のプレイヤキャラクタと前記アイテムオブジェクトとを前記仮想ゲーム世界内で接触させることを特徴とする、請求項9に記載のゲームプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate


【公開番号】特開2007−97837(P2007−97837A)
【公開日】平成19年4月19日(2007.4.19)
【国際特許分類】
【出願番号】特願2005−291639(P2005−291639)
【出願日】平成17年10月4日(2005.10.4)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】