(57)【要約】【課題】  通信遅延による矛盾を回避する。【解決手段】  ＣＰＵ５１１は、プレイヤーがガンユニット５６を操作して他のキャラクタに向けて弾を発射すると弾道情報を生成し、特定のエコーサーバに送信する。エコーサーバから弾道情報を受信すると、ＣＰＵ５１１は自己のキャラクタの位置情報と受信した弾道情報に基づいて命中か否かの判定結果を示す情報を生成する。また、ＣＰＵ５１１は他のキャラクタに向けて弾を発射するようにガンユニット５６が操作されると、操作信号を検知してから他のゲーム装置５から判定結果を示す情報を取得するまでの期間において、他のキャラクタに弾が命中したか否かが不確定となる画像を表示装置５２に表示させる。【選択図】      図２
2007006953.tif 000002
【特許請求の範囲】
【請求項１】
中継装置と複数のゲーム装置とを備え、仮想空間内に配置された複数のキャラクタを複数のプレイヤーが各々操作するゲームを所定数のグループ化されたゲーム装置の間で実行可能なゲームシステムであって、
前記複数のゲーム装置の各々は、
ゲームの画像を表示する表示手段と、
自己のキャラクタを動作させる指示を入力するために用いられ、プレイヤーの操作に応じた操作信号を出力する入力手段と、
前記自己のキャラクタが前記他のゲーム装置に属する他のキャラクタに対して作用を及ぼす可能性がある操作が前記入力手段によってなされると、前記操作信号に基づいて前記他のキャラクタに対する作用の原因となる内容を示す原因情報を生成する原因情報生成手段と、
前記他のゲーム装置からの前記原因情報を受信すると、当該原因情報と前記自己のキャラクタの状態を示す状態情報とに基づいて前記自己のキャラクタに及んだ作用を示す結果情報を生成する結果情報生成手段と、
前記原因情報及び前記結果情報を含みゲームの進行に係るゲーム情報を前記中継装置との間で通信する通信手段と、
前記他のキャラクタに作用を及ぼす可能性があるように前記入力手段が操作されると、前記操作信号を検知してから当該他のゲーム装置の前記結果情報を取得するまでの期間において、前記他のキャラクタの受ける作用が不確定となる画像を前記表示手段に表示させる第１の表示制御手段と、
前記他のキャラクタのゲーム装置からの前記結果情報を取得すると、前記結果情報の示す前記他のキャラクタの受けた作用に応じた画像を前記表示手段に表示させる第２の表示制御手段とを備え、
前記中継装置は、前記グループ化されたゲーム装置から受信した前記ゲーム情報を受信した順序で前記グループ化されたゲーム装置の一部又は全部に送信する、
ことを特徴とするゲームシステム。
【請求項２】
前記ゲームは、前記複数のキャラクタの間で攻撃を行うものであって、
前記原因情報生成手段は、前記自己のキャラクタが前記他のゲーム装置に属する他のキャラクタに対して攻撃を行うように前記入力手段が操作されると、前記操作信号に基づいて攻撃の内容を示す攻撃情報を前記原因情報として生成し、
前記結果情報生成手段は、前記他のゲーム装置からの前記攻撃情報を受信すると、当該攻撃情報と前記自己のキャラクタの状態を示す状態情報とに基づいて、前記自己のキャラクタに及んだ作用である攻撃の結果を示す前記結果情報を生成し、
前記第１の表示制御手段は、前記他のキャラクタを攻撃するように前記入力手段が操作されると、前記操作信号を検知してから当該他のゲーム装置の前記結果情報を取得するまでの期間において、前記他のキャラクタの受ける作用である攻撃の結果が不確定となる画像を前記表示手段に表示させ、
前記第２の表示制御手段は、前記他のキャラクタのゲーム装置から前記結果情報を取得すると、前記他のキャラクタの受けた作用に応じた画像として前記結果情報の示す攻撃の結果に応じた画像を前記表示手段に表示させる、
ことを特徴とする請求項１に記載のゲームシステム。
【請求項３】
前記複数のキャラクタの間で攻撃は射的であって、
前記複数のゲーム装置の各々は、前記自己のキャラクタの状態を示す状態情報として、前記操作信号に基づいて前記仮想空間内における前記自己のキャラクタの位置を示す位置情報を生成して管理する位置情報管理手段と、
前記自己のキャラクタの前記位置情報と前記他のキャラクタの前記位置情報とに基づいて、前記仮想空間内において前記自己のキャラクタの視点から見た前記他のキャラクタの画像を前記表示手段に表示させる第３の表示制御手段とを備え、
前記原因情報生成手段は、前記自己のキャラクタから前記他のゲーム装置に属する他のキャラクタに向けて弾を発射するように前記入力手段が操作されると、前記操作信号に基づいて弾の弾道を示す弾道情報を前記攻撃情報として生成し、
前記結果情報生成手段は、前記他のゲーム装置から弾道情報を受信すると、当該弾道情報と前記自己のキャラクタの位置情報とに基づいて命中したか否かを判定し、命中した場合には、命中したことを示す判定情報を生成する一方、命中しなかった場合には、命中しなかったことを示す判定情報を前記結果情報として生成する判定手段を有し、
前記通信手段は、所定の条件が充足された場合に前記位置情報を含む前記ゲーム情報を前記中継装置に送信し、
前記第１の表示制御手段は、前記他のキャラクタに向けて弾を発射するように前記入力手段が操作されると、前記操作信号を検知してから前記他のゲーム装置から前記判定情報を取得するまでの期間において、前記他のキャラクタに弾が命中したか否かが不確定となる画像を前記表示手段に表示させ、
前記第２の表示制御手段は、前記他のキャラクタのゲーム装置から前記判定情報を取得すると、前記判定情報が命中を示す場合には前記他のキャラクタがダメージを受けた画像を前記表示手段に表示させ、前記判定情報が命中しなかったことを示す場合には、前記他のキャラクタがダメージを受けていない画像を前記表示手段に表示させる、
ことを特徴とする請求項２に記載のゲームシステム。
【請求項４】
前記判定手段は、前記自己のキャラクタの位置情報を中心とする所定範囲を特定する処理と、前記弾道情報に基づいて前記弾が前記所定範囲を通過するか否かを判定する処理とを実行することを特徴とする請求項３に記載のゲームシステム。
【請求項５】
前記第１の表示制御手段は、弾の弾道とこれから外れる範囲で前記他のキャラクタが揺れる画像を前記他のキャラクタに弾が命中したか否かが不確定となる画像として表示することを特徴する請求項３又は４に記載のゲームシステム。
【請求項６】
前記第１の表示制御手段は、前記他のキャラクタに弾が命中したか否かが不確定となる画像を表示する処理と並行して、前記操作信号を検知してからの時間を計測し、前記計測した時間が所定時間を越えると、前記他のキャラクタがダメージを受けるか否かを予め定めた画像を表示させることを特徴とする請求項３乃至５のうちいずれか１項に記載のゲームシステム。
【請求項７】
前記位置情報管理手段は、前記仮想空間に設定した複数の基準位置を記憶する記憶手段と、前記キャラクタの位置が前記基準位置を中心とする所定範囲を超えると、前記キャラクタの位置を隣接する他の前記基準位置に移動させる移動手段とを備え、
前記通信手段は、前記基準位置の間の移動があったことを前記所定の条件として、移動先の前記基準位置を指定する指定情報を前記位置情報として送信する、
ことを特徴とする請求項３乃至６のうちいずれか１項に記載のゲームシステム。
【請求項８】
前記ゲーム装置からゲームへ参加する旨の参加要求を受信すると、前記所定数のゲーム装置を一つのゲームに参加するゲーム装置としてグループ化するグループ化手段と、グループ化したゲーム装置の中から一つのゲーム装置を特定ゲーム装置として特定する特定手段とを有するサーバ装置を備え、
前記グループ化されたゲーム装置のうち前記特定ゲーム装置として特定されたゲーム装置は、前記中継装置として、前記グループ化されたゲーム装置から受信した前記ゲーム情報を受信した順序で前記グループ化されたゲーム装置の一部又は全部に送信する、
ことを特徴とする請求項１乃至７のうちいずれか１項に記載のゲームシステム。
【請求項９】
前記中継装置は、前記グループ化されたゲーム装置から受信した前記ゲーム情報を受信した順序で前記グループ化されたゲーム装置から送信元のゲーム装置を除いたゲーム装置へ送信することを特徴とする請求項８に記載のゲームシステム。
【請求項１０】
仮想空間内に配置された複数のキャラクタを複数のプレイヤーが各々操作するゲームを他のゲーム装置との間で実行可能なゲーム装置であって、
ゲームの画像を表示する表示手段と、
自己のキャラクタを動作させる指示を入力するために用いられ、プレイヤーの操作に応じた操作信号を出力する入力手段と、
前記自己のキャラクタが前記他のゲーム装置に属する他のキャラクタに対して作用を及ぼす可能性がある操作が前記入力手段によってなされると、前記操作信号に基づいて前記他のキャラクタに対する作用の原因となる内容を示す原因情報を生成する原因情報生成手段と、
前記他のゲーム装置からの前記原因情報を受信すると、当該原因情報と前記自己のキャラクタの状態を示す状態情報とに基づいて前記自己のキャラクタに及んだ作用を示す結果情報を生成する結果情報生成手段と、
前記原因情報及び前記結果情報を含みゲームの進行に係るゲーム情報を通信する通信手段と、
前記他のキャラクタに作用を及ぼす可能性があるように前記入力手段が操作されると、前記操作信号を検知してから当該他のゲーム装置の前記結果情報を取得するまでの期間において、前記他のキャラクタの受ける作用が不確定となる画像を前記表示手段に表示させる第１の表示制御手段と、
前記他のキャラクタのゲーム装置からの前記結果情報を取得すると、前記結果情報の示す前記他のキャラクタの受けた作用に応じた画像を前記表示手段に表示させる第２の表示制御手段と、
を備えことを特徴とするゲーム装置。
【請求項１１】
仮想空間内に配置された複数のキャラクタを複数のプレイヤーが各々操作するゲームを他のゲーム装置との間で実行可能であり、ゲームの画像を表示する表示手段と、自己のキャラクタを動作させる指示を入力するために用いられ、プレイヤーの操作に応じた操作信号を出力する入力手段と、通信する通信手段と、プログラムを実行する実行手段とを備えたゲーム装置のプログラムであって、
前記実行手段を、
前記自己のキャラクタが前記他のゲーム装置に属する他のキャラクタに対して作用を及ぼす可能性がある操作が前記入力手段によってなされると、前記操作信号に基づいて前記他のキャラクタに対する作用の原因となる内容を示す原因情報を生成する手段と、
前記他のゲーム装置からの前記原因情報を受信すると、当該原因情報と前記自己のキャラクタの状態を示す状態情報とに基づいて前記自己のキャラクタに及んだ作用を示す結果情報を生成する手段と、
前記原因情報及び前記結果情報を含みゲームの進行に係るゲーム情報を前記通信手段を用いて送受信する手段と、
前記他のキャラクタに作用を及ぼす可能性があるように前記入力手段が操作されると、前記操作信号を検知してから当該他のゲーム装置の前記結果情報を取得するまでの期間において、前記他のキャラクタの受ける作用が不確定となる画像を前記表示手段に表示させる手段と、
前記他のキャラクタのゲーム装置からの前記結果情報を取得すると、前記結果情報の示す前記他のキャラクタの受けた作用に応じた画像を前記表示手段に表示させる手段として、
機能させることを特徴とするゲーム装置のプログラム。
【請求項１２】
仮想空間内に配置された複数のキャラクタを複数のプレイヤーが各々操作するゲームを他のゲーム装置との間で実行可能であり、ゲームの画像を表示する表示手段と、自己のキャラクタを動作させる指示を入力するために用いられ、プレイヤーの操作に応じた操作信号を出力する入力手段と、通信する通信手段とを備えたゲーム装置の制御方法であって、
前記自己のキャラクタが前記他のゲーム装置に属する他のキャラクタに対して作用を及ぼす可能性がある操作が前記入力手段によってなされると、前記操作信号に基づいて前記他のキャラクタに対する作用の原因となる内容を示す原因情報を生成するステップと、
前記他のゲーム装置からの前記原因情報を受信すると、当該原因情報と前記自己のキャラクタの状態を示す状態情報とに基づいて前記自己のキャラクタに及んだ作用を示す結果情報を生成するステップと、
前記原因情報及び前記結果情報を含みゲームの進行に係るゲーム情報を前記通信手段を用いて送受信するステップと、
前記他のキャラクタに作用を及ぼす可能性があるように前記入力手段が操作されると、前記操作信号を検知してから当該他のゲーム装置の前記結果情報を取得するまでの期間において、前記他のキャラクタの受ける作用が不確定となる画像を前記表示手段に表示させるステップと、
前記他のキャラクタのゲーム装置からの前記結果情報を取得すると、前記結果情報の示す前記他のキャラクタの受けた作用に応じた画像を前記表示手段に表示させるステップとを備える、
ことを特徴とするゲーム装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、中継装置を介して通信を行うゲームシステム及びその制御方法、ゲーム装置、並びにプログラムに関する。
【背景技術】
【０００２】
仮想空間内に配置された複数のキャラクタを複数のプレイヤーが各々操作するゲームを複数のゲーム装置の間で実行可能なゲームシステムがある。このシステムでは、複数のゲーム装置間の通信に相応の時間がかかる。つまり、通信遅延がある。したがって、キャラクタの動作に基づく判定を各ゲーム装置が独立して行うようにすると、判定結果に矛盾が生じる虞がある。この矛盾を避けるには、同一の事象についての判定を行う装置が１つだけとなるようにシステムを構成しなければならない。
【０００３】
そのような構成のシステムとしては、特許文献１に記載されているように、キャラクタの動作に基づく全ての判定をゲーム装置以外の特定の装置（サーバ）が行い、各ゲーム装置では表示する画像を特定の装置からの情報を受信した場合にのみ更新するものがある。このシステムでは、上記の矛盾は生じず、各ゲーム装置に表示される画像も、特定の装置における判定結果に応じたものとなる。
【特許文献１】特開２００３−０４７７７４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、特許文献１に記載のシステムでは、全ての操作が特定の装置に集約されてから各ゲーム装置の画面に反映されるため、プレイヤーの操作から当該操作に応じた画像がそのゲーム装置に表示されるまでの応答時間も通信遅延により長くなってしまう。このため、複数のプレイヤーが各々のキャラクタを操作して仮想空間内を移動させて互いに撃ち合わせる射的ゲームのように応答時間を極めて短くする必要があるゲームの実行には適さない。
【０００５】
応答時間を短くする方法としては、各ゲーム装置において、表示する画像を、特定の装置からの情報を受信せずとも自己のプレイヤーの操作に応じて即座に更新可能とすることが考えられる。このようにすれば、プレイヤーは自己の操作が仮想空間に与えた影響を十分に短い応答時間で視認することができる。しかし、このようにしたとしても、通信遅延に起因してプレイヤーが違和感を覚える現象が生じうる。この現象について、上記の射的ゲームを実行する場合を例にとって具体的に説明する。
【０００６】
まず、あるプレイヤーが銃を撃つ操作をしたとする。すると、このプレイヤーのゲーム装置には、この銃から発射された弾の画像が即座に表示される。そして、このゲーム装置に、この弾が仮想空間内を進行して一人のキャラクタを貫通したことを示す画像が表示されたとする。この画像を視認したプレイヤーは、当然ながら、自己の弾が当該キャラクタに命中したと認識する。しかし、現実には、この時点において、当該キャラクタが当該画像で示される位置にいない可能性がある。これは、通信遅延があるからであり、より詳しくは、他のプレイヤーの操作があっても当該操作に応じた画像が当該ゲーム装置に即座に表示される訳ではないからである。よって、命中しなかったと判定され、判定結果と画像に基づくプレイヤーの認識との間に矛盾が生じる場合がある。この矛盾が違和感を招くのである。
【０００７】
本発明は上述した事情に鑑みてなされたものであり、仮想空間内に配置された複数のキャラクタを複数のプレイヤーが各々操作するゲームを複数のゲーム装置の間で実行可能なゲームシステムであって、応答時間を極めて短くする必要があるゲームにおいて通信遅延に起因して生じる矛盾を回避することができるゲームシステム及びその制御方法、ゲーム装置、並びにプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
以下、本発明について説明する。なお、本発明の理解を容易にするために添付図面の参照符号を括弧書きにて付記するが、それにより本発明が図示の形態に限定されるものではない。
【０００９】
上述の課題を解決するために、本発明に係るゲームシステム（１００）は、中継装置（５（Ａ１））と複数のゲーム装置（５）とを備え、仮想空間内に配置された複数のキャラクタを複数のプレイヤーが各々操作するゲームを所定数のグループ化されたゲーム装置（５（Ａ１、Ａ２、Ｂ１、Ｂ２））の間で実行可能なものであって、前記複数のゲーム装置（５）の各々は、ゲームの画像を表示する表示手段（５２）と、自己のキャラクタを動作させる指示を入力するために用いられ、プレイヤーの操作に応じた操作信号を出力する入力手段（５４、５６）と、前記自己のキャラクタが前記他のゲーム装置（５）に属する他のキャラクタに対して作用を及ぼす可能性がある操作が前記入力手段（５４、５６）によってなされると、前記操作信号に基づいて前記他のキャラクタに対する作用の原因となる内容を示す原因情報を生成する原因情報生成手段（５１１、ＳＥ４）と、前記他のゲーム装置（５）からの前記原因情報を受信すると、当該原因情報と前記自己のキャラクタの状態を示す状態情報とに基づいて前記自己のキャラクタに及んだ作用を示す結果情報を生成する結果情報生成手段（５１１、ＳＦ７、ＳＦ８）と、前記原因情報及び前記結果情報を含みゲームの進行に係るゲーム情報を前記中継装置（５（Ａ１））との間で通信する通信手段（５１４）と、前記他のキャラクタに作用を及ぼす可能性があるように前記入力手段（５４、５６）が操作されると、前記操作信号を検知してから当該他のゲーム装置（５）の前記結果情報を取得するまでの期間において、前記他のキャラクタの受ける作用が不確定となる画像を前記表示手段（５２）に表示させる第１の表示制御手段（５１１、５２、ＳＧ３、ＳＧ８）と、前記他のキャラクタのゲーム装置（５）からの前記結果情報を取得すると、前記結果情報の示す前記他のキャラクタの受けた作用に応じた画像を前記表示手段（５２）に表示させる第２の表示制御手段（５１１、５２、ＳＧ５、ＳＧ８）とを備え、前記中継装置（５（Ａ１））は、前記グループ化されたゲーム装置（５（Ａ１、Ａ２、Ｂ１、Ｂ２））から受信した前記ゲーム情報を受信した順序で前記グループ化されたゲーム装置（５（Ａ１、Ａ２、Ｂ１、Ｂ２））の一部又は全部に送信することを特徴とする。
【００１０】
このゲームシステム（１００）では、一つの仮想空間を複数のゲーム装置（５）で共有し、各プレイヤーが個々のゲーム装置（５）の入力手段（５４、５６）を操作することによって、複数のキャラクタの各々が動作する。仮想空間内のあるキャラクタの動作には、他のキャラクタに対して作用を及ぼす原因となる動作と、自己のキャラクタの動作のみに関係して他のキャラクタに影響を与えない動作がある。例えば、自己のキャラクタが他のキャラクタに対して銃弾を発射する動作は、他のキャラクタにダメージという作用を与える可能性がある動作である。一方、自己のキャラクタがある地点から他の地点に移動する動作は、他のキャラクタに影響を与えない動作である。このゲーム装置（５）は、他のキャラクタに対する作用の原因となる内容を示す原因情報を生成し、他のゲーム装置（５）から取得した原因情報に基づいて自己のキャラクタに及んだ作用を示す結果情報を生成する。例えば、自己のキャラクタが他のキャラクタに向けて銃弾を撃った場合に、弾が届くまでに他のキャラクタが元の位置から移動している場合に、現在の位置を無視して命中したとするのは、矛盾がある。原因と結果といった因果律がゲーム要素となっている場合、矛盾する画像を表示するのは好ましくない。本発明によれば、原因情報に基づいて結果情報を生成するのは、作用を及ぼす相手のゲーム装置（５）である。このように相手方のゲーム装置（５）で結果情報を生成する場合には、原因情報を受け取った時点における相手方のキャラクタの状態、例えば、位置を考慮して結果情報を生成することができる。一方、原因情報の送信元のゲーム装置（５）においては相手方のゲーム装置（５）から結果情報を受信するまでは、他のキャラクタに及ぼす作用が不明となる。このため、第１の表示制御手段（５１１、５２、ＳＧ３、ＳＧ８）は、操作信号を検知してから他のゲーム装置（５）の結果情報を取得するまでの期間において、他のキャラクタの受ける作用が不確定となる画像を表示手段（５２）に表示させる。これにより、通信遅延があるゲームシステム（１００）において、因果律に反することなくゲームを進行させることができる。
【００１１】
なお、本発明のゲームシステム（１００）において、他のキャラクタの受ける作用が不確定となる画像が表示される期間は、操作信号を検知してから他のゲーム装置（５）の結果情報を取得するまでの期間の一部であってもよい。例えば、ゲーム装置（５）において操作信号を検知してから弾が他のキャラクタを通過するまでの期間において、当該他のキャラクタの受ける作用が不確定となる画像を表示手段（５２）に表示させる、ようにしてもよい。この態様によれば、弾が他のキャラクタを通過しても当該他のキャラクタの受ける作用が不確定となる画像が表示され続けることの不自然さ（違和感）を排除することができる。
【００１２】
なお、本発明のゲームシステム（１００）で実行されるゲームは、プレイヤーは個々のゲーム装置（５）を操作することにより、仮想空間内の複数のキャラクタを動作させ、キャラクタ同士が互いに影響を及ぼすものであれば、ゲームの内容はどのようなものであってもよい。例えば、剣や武器などを持ったキャラクタが戦闘するゲーム、野球のピッキャーとバッターが登場するゲーム、サッカーのキーパーと敵のフォワードが登場するゲーム、さらに、アメリカンフットボールのクオータバックがみかたのレシーバにパスを投げるゲームなどが本発明のゲームシステム（１００）で実行されるゲームに該当する。
【００１３】
より具体的には、前記ゲームが前記複数のキャラクタの間で攻撃を行うものであるならば、前記原因情報生成手段（５１１、ＳＥ４）は、前記自己のキャラクタが前記他のゲーム装置（５）に属する他のキャラクタに対して攻撃を行うように前記入力手段（５４、５６）が操作されると、前記操作信号に基づいて攻撃の内容を示す攻撃情報を前記原因情報として生成し、前記結果情報生成手段（５１１、ＳＦ７、ＳＦ８）は、前記他のゲーム装置（５）からの前記攻撃情報を受信すると、当該攻撃情報と前記自己のキャラクタの状態を示す状態情報とに基づいて、前記自己のキャラクタに及んだ作用である攻撃の結果を示す前記結果情報を生成し、前記第１の表示制御手段（５１１、５２、ＳＧ３、ＳＧ８）は、前記他のキャラクタを攻撃するように前記入力手段（５４、５６）が操作されると、前記操作信号を検知してから当該他のゲーム装置（５）の前記結果情報を取得するまでの期間において、前記他のキャラクタの受ける作用である攻撃の結果が不確定となる画像を前記表示手段（５２）に表示させ、前記第２の表示制御手段（５１１、５２、ＳＧ５、ＳＧ８）は、前記他のキャラクタのゲーム装置（５）から前記結果情報を取得すると、前記他のキャラクタの受けた作用に応じた画像として前記結果情報の示す攻撃の結果に応じた画像を前記表示手段（５２）に表示させることが好ましい。この場合には、攻撃の結果を取得するまでの期間において、攻撃の結果が不確定となる画像を表示手段（５２）に表示させるので、通信遅延があっても矛盾のない画像を表示させることができる。
【００１４】
さらに、前記複数のキャラクタの間で攻撃が射的である場合には、前記複数のゲーム装置（５）の各々は、前記自己のキャラクタの状態を示す状態情報として、前記操作信号に基づいて前記仮想空間内における前記自己のキャラクタの位置を示す位置情報を生成して管理する位置情報管理手段（５１１、ＳＡ３）と、前記自己のキャラクタの前記位置情報と前記他のキャラクタの前記位置情報とに基づいて、前記仮想空間内において前記自己のキャラクタの視点から見た前記他のキャラクタの画像を前記表示手段（５２）に表示させる第３の表示制御手段（５１１、ＳＧ８）とを備え、前記原因情報生成手段（５１１、ＳＥ４）は、前記自己のキャラクタから前記他のゲーム装置（５）に属する他のキャラクタに向けて弾を発射するように前記入力手段（５４、５６）が操作されると、前記操作信号に基づいて弾の弾道を示す弾道情報を前記攻撃情報として生成し、前記結果情報生成手段（５１１、ＳＦ７、ＳＦ８）は、前記他のゲーム装置（５）から弾道情報を受信すると、当該弾道情報と前記自己のキャラクタの位置情報とに基づいて命中したか否かを判定し、命中した場合には、命中したことを示す判定情報を生成する一方、命中しなかった場合には、命中しなかったことを示す判定情報を前記結果情報として生成する判定手段（５１１、ＳＦ５〜ＳＦ８）を有し、前記通信手段（５１４）は、所定の条件が充足された場合に前記位置情報を含む前記ゲーム情報を前記中継装置（５（Ａ１））に送信し、前記第１の表示制御手段（５１１、５２、ＳＧ３、ＳＧ８）は、前記他のキャラクタに向けて弾を発射するように前記入力手段（５４、５６）が操作されると、前記操作信号を検知してから前記他のゲーム装置（５）から前記判定情報を取得するまでの期間において、前記他のキャラクタに弾が命中したか否かが不確定となる画像を前記表示手段（５２）に表示させ、前記第２の表示制御手段（５１１、５２、ＳＧ５、ＳＧ８）は、前記他のキャラクタのゲーム装置（５）から前記判定情報を取得すると、前記判定情報が命中を示す場合には前記他のキャラクタがダメージを受けた画像を前記表示手段（５２）に表示させ、前記判定情報が命中しなかったことを示す場合には、前記他のキャラクタがダメージを受けていない画像を前記表示手段（５２）に表示させることが好ましい。
【００１５】
この場合には、他のゲーム装置（５）から弾道情報を取得すると、弾道情報と自己のキャラクタの位置情報とに基づいて命中したか否かを判定するので、他のキャラクタから銃撃されたとしても、そのことを当該ゲーム装置（５）で知った時点で命中か否かの判定を行うことができる。従って、通信遅延時間中にキャラクタが移動した場合には、たとえ、銃撃した時点で命中していたとしてもハズレにすることができる。この結果、画面上でハズレの方向に飛んでいく銃弾で自己のキャラクタがダメージを受けるといった矛盾を無くすことができる。このように攻撃を受けた側のゲーム装置（５）で命中か否かを判定しても、攻撃した側のゲーム装置（５）では、命中したか否かが不明になる画像を表示するので、ゲーム装置（５）間で矛盾が生じることがない。
【００１６】
より具体的には、前記判定手段（５１１、ＳＦ５〜ＳＦ８）は、前記自己のキャラクタの位置情報を中心とする所定範囲を特定する処理と、前記弾道情報に基づいて前記弾が前記所定範囲を通過するか否かを判定する処理とを実行することが好ましい。この場合には、所定範囲を弾が通過したか否によって命中か否かを判定できる。
【００１７】
また、前記第１の表示制御手段（５１１、５２、ＳＧ３、ＳＧ８）は、弾の弾道とこれから外れる範囲で前記他のキャラクタが揺れる画像を前記他のキャラクタに弾が命中したか否かが不確定となる画像として表示することが好ましい。この場合には、攻撃してから結果情報を取得するまでの期間に表示されるキャラクタが命中する位置と外れる位置の間で揺れるので、命中するかはずれるかどちらの可能性もあることを、プレイヤーに一見して知らせることができる。
【００１８】
また、前記第１の表示制御手段（５１１、５２、ＳＧ３、ＳＧ８）は、前記他のキャラクタに弾が命中したか否かが不確定となる画像を表示する処理と並行して、前記操作信号を検知してからの時間を計測し、前記計測した時間が所定時間を越えると、前記他のキャラクタがダメージを受けるか否かを予め定めた画像を表示させることが好ましい。通信によって複数のゲーム装置（５）間でゲームを進行させる場合、通信障害によってあるゲーム装置（５）が通信不能に陥ることがある。通信不能となったゲーム装置（５）からの結果情報を待っていたのでは、ゲームの進行の妨げとなる。そこで、所定時間を越えた場合には、予め定められた画像を表示することにより、ゲームを円滑に進行させることが可能となる。
【００１９】
また、前記位置情報管理手段（５１１、ＳＡ３）は、前記仮想空間に設定した複数の基準位置を記憶する記憶手段と、前記キャラクタの位置が前記基準位置を中心とする所定範囲を超えると、前記キャラクタの位置を隣接する他の前記基準位置に移動させる移動手段（５１１、ＳＡ６、ＳＢ２）とを備え、前記通信手段（５１４）は、前記基準位置の間の移動があったことを前記所定の条件として、移動先の前記基準位置を指定する指定情報を前記位置情報として送信することが好ましい。位置情報は、通常、仮想空間内の座標で与えられる。キャラクタの少しの動きに対応して位置情報を送信すると、通信量が大きくなる。しかしながら、この発明によれば、基準位置間の移動があった場合に通信を行い、しかも、移動先の位置情報そのものを送信するのではなく、指定情報を送信するので、通信量を大幅に削減することができる。
【００２０】
また、上述したゲームシステム（１００）は、前記ゲーム装置（５）からゲームへ参加する旨の参加要求を受信すると、前記所定数のゲーム装置（５）を一つのゲームに参加するゲーム装置（５）としてグループ化するグループ化手段（１１〜１５）と、グループ化したゲーム装置（５）の中から一つのゲーム装置（５）を特定ゲーム装置（５（Ａ１））として特定する特定手段（１１〜１５）とを有するサーバ装置（１）を備え、前記グループ化されたゲーム装置（５（Ａ１、Ａ２、Ｂ１、Ｂ２））のうち前記特定ゲーム装置（５（Ａ１））として特定されたゲーム装置（５）は、前記中継装置（５（Ａ１））として、前記グループ化されたゲーム装置（５（Ａ１、Ａ２、Ｂ１、Ｂ２））から受信した前記ゲーム情報を受信した順序で前記グループ化されたゲーム装置（５（Ａ１、Ａ２、Ｂ１、Ｂ２））の一部又は全部に送信することが好ましい。この発明によれば、中継装置（５（Ａ１））の機能を複数のゲーム装置（５）の一つに組み込むことができるので、特定の中継装置（５（Ａ１））を無くすことができる。
【００２１】
さらに、前記中継装置（５（Ａ１））は、前記グループ化されたゲーム装置（５（Ａ１、Ａ２、Ｂ１、Ｂ２））から受信した前記ゲーム情報を受信した順序で前記グループ化されたゲーム装置（５（Ａ１、Ａ２、Ｂ１、Ｂ２））から送信元のゲーム装置（５）を除いたゲーム装置（５）へ送信することが好ましい。送信元のゲーム装置（５）は、ゲーム情報を有しているので、送信先からこれを除くことによって、通信資源を削減することができる。
【００２２】
次に、本発明に係るゲーム装置（５）は、仮想空間内に配置された複数のキャラクタを複数のプレイヤーが各々操作するゲームを他のゲーム装置（５）との間で実行可能なゲーム装置（５）であって、ゲームの画像を表示する表示手段（５２）と、自己のキャラクタを動作させる指示を入力するために用いられ、プレイヤーの操作に応じた操作信号を出力する入力手段（５４、５６）と、前記自己のキャラクタが前記他のゲーム装置（５）に属する他のキャラクタに対して作用を及ぼす可能性がある操作が前記入力手段（５４、５６）によってなされると、前記操作信号に基づいて前記他のキャラクタに対する作用の原因となる内容を示す原因情報を生成する原因情報生成手段（５１１、ＳＥ４）と、前記他のゲーム装置（５）からの前記原因情報を受信すると、当該原因情報と前記自己のキャラクタの状態を示す状態情報とに基づいて前記自己のキャラクタに及んだ作用を示す結果情報を生成する結果情報生成手段（５１１、ＳＦ７、ＳＦ８）と、前記原因情報及び前記結果情報を含みゲームの進行に係るゲーム情報を通信する通信手段（５１４）と、前記他のキャラクタに作用を及ぼす可能性があるように前記入力手段（５４、５６）が操作されると、前記操作信号を検知してから当該他のゲーム装置（５）の前記結果情報を取得するまでの期間において、前記他のキャラクタの受ける作用が不確定となる画像を前記表示手段（５２）に表示させる第１の表示制御手段（５１１、５２、ＳＧ３、ＳＧ８）と、前記他のキャラクタのゲーム装置（５）からの前記結果情報を取得すると、前記結果情報の示す前記他のキャラクタの受けた作用に応じた画像を前記表示手段（５２）に表示させる第２の表示制御手段（５１１、５２、ＳＧ５、ＳＧ８）と、を備えことを特徴とする。
【００２３】
本発明によれば、原因情報に基づいて結果情報を生成するのは、作用を及ぼす相手のゲーム装置（５）である。このように相手方のゲーム装置（５）で結果情報を生成する場合には、原因情報を受け取った時点における相手方のキャラクタの状態、例えば、位置を考慮して結果情報を生成することができる。一方、原因情報の送信元のゲーム装置（５）においては相手方のゲーム装置（５）から結果情報を受信するまでは、他のキャラクタに及ぼす作用が不明となる。このため、第１の表示制御手段（５１１、５２、ＳＧ３、ＳＧ８）は、操作信号を検知してから他のゲーム装置（５）の結果情報を取得するまでの期間において、他のキャラクタの受ける作用が不確定となる画像を表示手段（５２）に表示させる。これにより、通信遅延がある場合、因果律に反することなくゲームを進行させることができる。
【００２４】
次に、本発明に係るゲーム装置（５）のプログラムは、仮想空間内に配置された複数のキャラクタを複数のプレイヤーが各々操作するゲームを他のゲーム装置（５）との間で実行可能であり、ゲームの画像を表示する表示手段（５２）と、自己のキャラクタを動作させる指示を入力するために用いられ、プレイヤーの操作に応じた操作信号を出力する入力手段（５４、５６）と、通信する通信手段（５１４）と、プログラムを実行する実行手段（５１１）とを備えたゲーム装置（５）に用いられ、前記実行手段（５１１）を、前記自己のキャラクタが前記他のゲーム装置（５）に属する他のキャラクタに対して作用を及ぼす可能性がある操作が前記入力手段（５４、５６）によってなされると、前記操作信号に基づいて前記他のキャラクタに対する作用の原因となる内容を示す原因情報を生成する手段（ＳＥ４）と、前記他のゲーム装置（５）からの前記原因情報を受信すると、当該原因情報と前記自己のキャラクタの状態を示す状態情報とに基づいて前記自己のキャラクタに及んだ作用を示す結果情報を生成する手段（ＳＦ７、ＳＦ８）と、前記原因情報及び前記結果情報を含みゲームの進行に係るゲーム情報を前記通信手段（５１４）を用いて送受信する手段（ＳＥ５、ＳＦ７、ＳＦ８）と、前記他のキャラクタに作用を及ぼす可能性があるように前記入力手段（５４、５６）が操作されると、前記操作信号を検知してから当該他のゲーム装置（５）の前記結果情報を取得するまでの期間において、前記他のキャラクタの受ける作用が不確定となる画像を前記表示手段（５２）に表示させる手段（ＳＧ３、ＳＧ８）と、前記他のキャラクタのゲーム装置（５）からの前記結果情報を取得すると、前記結果情報の示す前記他のキャラクタの受けた作用に応じた画像を前記表示手段（５２）に表示させる手段（ＳＧ５、ＳＧ７、ＳＧ８）として、機能させることを特徴とする。
【００２５】
本発明によれば、原因情報に基づいて結果情報を生成するのは、作用を及ぼす相手のゲーム装置（５）の実行手段（５１１）である。このように相手方のゲーム装置（５）で結果情報を生成する場合には、原因情報を受け取った時点における相手方のキャラクタの状態、例えば、位置を考慮して結果情報を生成することができる。一方、原因情報の送信元のゲーム装置（５）においては相手方のゲーム装置（５）から結果情報を受信するまでは、他のキャラクタに及ぼす作用が不明となる。このため、プログラムの実行手段（５１１）は、操作信号を検知してから他のゲーム装置（５）の結果情報を取得するまでの期間において、他のキャラクタの受ける作用が不確定となる画像を表示手段（５２）に表示させる。これにより、通信遅延がある場合、因果律に反することなくゲームを進行させることができる。
【００２６】
次に、本発明に係るゲーム装置（５）の制御方法は、仮想空間内に配置された複数のキャラクタを複数のプレイヤーが各々操作するゲームを他のゲーム装置（５）との間で実行可能であり、ゲームの画像を表示する表示手段（５２）と、自己のキャラクタを動作させる指示を入力するために用いられ、プレイヤーの操作に応じた操作信号を出力する入力手段（５４、５６）と、通信する通信手段（５１４）とを備えたゲーム装置（５）を制御する方法であって、前記自己のキャラクタが前記他のゲーム装置（５）に属する他のキャラクタに対して作用を及ぼす可能性がある操作が前記入力手段（５４、５６）によってなされると、前記操作信号に基づいて前記他のキャラクタに対する作用の原因となる内容を示す原因情報を生成するステップ（ＳＥ４）と、前記他のゲーム装置（５）からの前記原因情報を受信すると、当該原因情報と前記自己のキャラクタの状態を示す状態情報とに基づいて前記自己のキャラクタに及んだ作用を示す結果情報を生成するステップ（ＳＦ７、ＳＦ８）と、前記原因情報及び前記結果情報を含みゲームの進行に係るゲーム情報を前記通信手段（５１４）を用いて送受信するステップ（ＳＥ５、ＳＦ７、ＳＦ８）と、前記他のキャラクタに作用を及ぼす可能性があるように前記入力手段（５４、５６）が操作されると、前記操作信号を検知してから当該他のゲーム装置（５）の前記結果情報を取得するまでの期間において、前記他のキャラクタの受ける作用が不確定となる画像を前記表示手段（５２）に表示させるステップ（ＳＧ３、ＳＧ８）と、前記他のキャラクタのゲーム装置（５）からの前記結果情報を取得すると、前記結果情報の示す前記他のキャラクタの受けた作用に応じた画像を前記表示手段（５２）に表示させるステップ（ＳＧ５、ＳＧ７、ＳＧ８）とを備えることを特徴とする。
【００２７】
本発明によれば、原因情報に基づいて結果情報を生成するのは、作用を及ぼす相手のゲーム装置（５）である。このように相手方のゲーム装置（５）で結果情報を生成する場合には、原因情報を受け取った時点における相手方のキャラクタの状態、例えば、位置を考慮して結果情報を生成することができる。一方、原因情報の送信元のゲーム装置（５）においては相手方のゲーム装置（５）から結果情報を受信するまでは、他のキャラクタに及ぼす作用が不明となる。このため、操作信号を検知してから他のゲーム装置（５）の結果情報を取得するまでの期間において、他のキャラクタの受ける作用が不確定となる画像を表示手段（５２）に表示させる。これにより、通信遅延がある場合、因果律に反することなくゲームを進行させることができる。
【発明の効果】
【００２８】
本発明によれば、応答時間を極めて短くする必要があるゲームにおいて通信遅延に起因して生じる矛盾を回避してプレイヤーが覚える違和感を軽減することができる。
【発明を実施するための最良の形態】
【００２９】
［１．ゲームシステム］
図１は、本発明の一実施形態に係るゲームシステム１００の全体構成を示す。
ゲームシステム１００は、複数のゲーム装置を備え、３次元の仮想空間内に配置された複数のキャラクタを複数のプレイヤーが各々操作して互いに撃ち合わせる射的ゲームを所定数のグループ化されたゲーム装置の間で実行可能である。
【００３０】
ゲームシステム１００はロビーサーバ１を備えている。ロビーサーバ１は所定数のゲーム装置をグループ化するためのものであり、ルータ２を介してインターネット３に接続されている。また、インターネット１には、複数の店舗Ａ、Ｂ、…に各々設けられたルータ４、４、…が接続されている。各店舗Ａ、Ｂ、…には複数のゲーム装置Ａ１、Ａ２、…、Ｂ１、Ｂ２、…が配置されている。以降の説明では、各ゲーム装置を区別する必要がない場合には個々のゲーム装置を「ゲーム装置５」と記す。各ゲーム装置５は、ルータ４を介してロビーサーバ１および他のゲーム装置５と通信可能である。これらの通信を実現可能であるなら、インターネット３に代えて他の通信網を用いることも可能である。
【００３１】
［２．ゲーム装置］
［２−１．外観］
図２にゲーム装置５の外観を示す。
ゲーム装置５の筺体５１の上部には、垂直走査期間毎に長方形の画面を走査してゲームの画像を表示する表示装置５２が設けられている。表示装置５２としては、例えば、モニタ、あるいはスクリーンとビデオプロジェクタの組を用いることができる。ゲームの画像とは、当該ゲーム装置５のプレイヤーのキャラクタ、すなわち自己のキャラクタの視点から仮想空間内を見た画像である。なお、画面に表示されるキャラクタは他のキャラクタに限られる。
【００３２】
筺体５１の中央部には音響装置５３が設けられている。音響装置５３はアンプとスピーカーを有し、ゲーム中に生成された音を放出する。また、筺体５１の中央部には、所定のコインが挿入されるコイン挿入口５４１と、ゲームの開始操作の入力に用いられるスタートボタン５４２が設けられている。
【００３３】
また、筺体５１の中央部には、銃に似た形状のガンユニット５６がケーブルを介して接続されている。ガンユニット５６は当該ゲーム装置５のプレイヤーが自己のキャラクタに弾を発射させたり、当該キャラクタの向きや姿勢を変えたりするために操作するものであり、プレイヤーに操作されるトリガ５６１、オプションボタン５６２および５６３を有する。トリガ５６１は弾の発射操作の入力に用いられる。オプションボタン５６２は注目キャラクタを切り替える操作の入力に用いられる。注目キャラクタとは、当該プレイヤーのキャラクタが注目しているキャラクタであり、通常、注目キャラクタを切り替えれば当該プレイヤーのキャラクタの向きが変わり、画面に表示される画像も変わる。オプションボタン５６３は当該プレイヤーの姿勢（立位／座位）を変える操作の入力に用いられる。
【００３４】
筐体５１の下部には台５７が設けられている。台５７は、射的ゲームを行うプレイヤーに踏まれるものであり、プレイヤーは台５７上に立った状態でゲームを行う。したがって、台５７はプレイヤーが画面を適切に見ることができるように、画面前方に配置されている。また、台５７の上面は赤外光を反射し易くなっている。また、筐体５１の下部において、台５７上の画面側にはフットペダル５４６が設けられている。フットペダル５４６は、当該プレイヤーのキャラクタを前進させる操作の入力に用いられる。
【００３５】
筐体５１にはフレーム５８が固定されている。フレーム５８はその上部において画面手前に張り出しており、その水平な上端は台５７上のプレイヤーを挟んで台５７と対向するように配置されている。フレーム５８の上端には、台５７におけるプレイヤーの位置を検出するための位置センサ５４３〜５４５が設置されている。画面に向かって、位置センサ５４３は中央に、位置センサ５４４は左側に、位置センサ５４５は右側に位置している。各位置センサは光学式センサであり、鉛直方向下方へ赤外光を照射し、この光が台５７の上面で反射して鉛直方向下方から届いたら受光し、受光光のレベルを示す信号を出力する。また、位置センサ５４３〜５４５は、それぞれの受光光の光路が、所定の位置に立ったプレイヤーの背後、左側、右側を通るように配置されている。位置センサ５４３〜５４５の出力信号を用いれば、プレイヤーの体の傾きを検出することができる。詳しくは後述するが、プレイヤーが右側に体を傾けた場合には、自己のキャラクタを右側に進ませる指示が入力され、プレイヤーが左側に体を傾けた場合には、自己のキャラクタを左側に進ませる指示が入力される。
【００３６】
［２−２．電気的構成］
図３は、ゲーム装置５の電気的構成を示すブロック図である。この図に示すように、ゲーム装置５はＣＰＵ５１１を有する。ＣＰＵ５１１にはＲＯＭ５１２及びＲＡＭ５１３が接続されている。ＣＰＵ５１１は、ＲＯＭ５１２に記憶されたプログラムＰを実行し、ＲＡＭ１３を作業領域として用いることによって、ゲーム装置５の制御中枢として機能する。
【００３７】
また、ＣＰＵ５１１には表示装置５２が接続されている。ＣＰＵ５１１は、画像を生成し、生成した画像に応じた画像信号を表示装置５２に供給することによって、当該画像を表示装置５２の画面に表示させる。また、ＣＰＵ５１１は、必要に応じて、強制的に輝度を最大とするレベル制御信号を生成して表示装置５２に供給する。表示装置５２は、レベル制御信号を受けると、走査中の画素の輝度を強制的に最大とする。
【００３８】
また、ＣＰＵ５１１には音響装置５３が接続されている。ＣＰＵ５１１は、音を表す音響信号を生成し、生成した音響信号を音響装置５３に供給することによって、当該音を音響装置５３から放出させる。また、ＣＰＵ５１１には通信インターフェース５１４が接続されている。ＣＰＵ５１１は通信インターフェース５１４を介してロビーサーバ１および他のゲーム装置５と通信する。
【００３９】
また、ＣＰＵ５１１には入力装置５４が接続されている。入力装置５４は、コイン挿入口５４１、スタートボタン５４２、位置センサ５４３〜５４５およびフットペダル５４６を有し、コイン挿入口５４１に所定のコインが挿入されるとその旨を示す信号を出力し、スタートボタン５４２が操作されるとその旨を示す信号を出力し、位置センサ５４３〜５４５からの各信号を出力し、フットペダル５４６が踏まれているか否かを示す信号を出力する。ＣＰＵ３１は入力装置５４からの信号を検知し、検知した信号の内容に応じた処理を行う。
【００４０】
例えば、コイン挿入口５４１に所定のコインが挿入された旨を示す信号を検知してからスタートボタン５４２が操作された旨を示す信号を検知すると、通信インターフェース５１４を介して他のゲーム装置５およびロビーサーバ１と通信して所定数のゲーム装置５をグループ化する装置側グループ化処理を開始する。また例えば、位置センサ５４３〜５４５からの信号やフットペダル５４６が踏まれているか否かを示す信号を検知して、自己のキャラクタの位置を計算する。つまり、位置センサ５４３〜５４５およびフットペダル５４６の各々は、自己のキャラクタを動作させる指示を入力するために用いられ、プレイヤーの操作に応じた信号（操作信号）を出力する入力手段として機能する。
【００４１】
また、ＣＰＵ５１１にはガンユニット５６が接続されている。ガンユニット５６は、トリガ５６１およびオプションボタン５６２、５６３の他に、トリガセンサ５６４、オプションボタンセンサ５６５、５６６、および光センサ５６７を有する。トリガセンサ５６４は、ガンユニット３０のトリガ５６１が引き絞られたことを検出してトリガ信号ＴＧ１を出力する。オプションボタンセンサ５６５、５６６は、それぞれ、対応するオプションボタン５６２、５６３が押し下げられたことを検出してオプション信号ＯＰ１、ＯＰ２を出力する。光センサ５６７は、ガンユニット５６の銃身の内部に設けられ、銃口からの光を受光できるようになっており、受光レベルが所定の閾値未満から当該閾値以上に変化したことを検出して照準信号Ｄ１を出力する。ＣＰＵ５１１はガンユニット５６からの信号を検知し、検知した信号の内容に応じた処理を行う。
【００４２】
例えば、オプション信号ＯＰ１を検知すると注目キャラクタを切り替える。つまり、自己のキャラクタの向きを変える。また例えば、オプション信号ＯＰ２を検知すると自己のキャラクタの姿勢を変化させる。つまり、自己のキャラクタの姿勢が立位であれば座位とし、座位であれば立位とする。また例えば、トリガ信号ＴＧ１を検出すると当該キャラクタに弾を発射させる。以上より明らかなように、ガンユニット５６は、自己のキャラクタを動作させる指示を入力するために用いられ、プレイヤーの操作に応じた信号（操作信号）を出力する入力手段として機能する。
【００４３】
このゲームシステム１００では、弾がキャラクタに命中すると、このキャラクタが死ぬ。つまり、弾の発射操作は、自己のキャラクタが他のゲーム装置に属する他のキャラクタに対して攻撃的な作用を及ぼす可能性がある操作である。この操作がなされると、ＣＰＵ５１１は自己のキャラクタに弾を発射させるが、その際には、まず、後述の弾道計算を行い、弾の弾道を示す弾道情報を生成する。弾道計算で必要な情報の１つとして照準位置がある。照準位置は、ガンユニット５６の銃身の中心線を画面まで延長したときに当該中心線が通る画素の画面上での座標である。この照準位置の特定方法について説明する。
【００４４】
［２−３．照準位置の特定方法］
図４は照準位置の特定方法を説明するための図である。この図に示すように、ＣＰＵ５１１は、ある垂直走査期間（Ｖ）においてトリガ信号ＴＧ１を検知すると、次の垂直走査期間（Ｖ）の間、画像信号のみならずレベル制御信号をも表示装置５２に供給する。したがって、この期間において、画面は白色（最大輝度）で塗りつぶされていく。この過程で、ガンユニット５６の銃身の中心線が通る画素を含む領域も白色で塗りつぶされる。すると、光センサ５６７から照準信号Ｄ１が出力され、ＣＰＵ５１１により検知される。ＣＰＵ５１１は、この照準信号Ｄ１を検知すると、当該垂直走査期間の開始時点からの経過時間（Ｔ）に基づいて照準位置を特定する。なお、ガンユニット５６は、上記の領域が十分に狭くなるように設計されている。
【００４５】
［３．ロビーサーバ］
図５に、ロビーサーバ１の電気的構成を示す。
ロビーサーバ１は、ゲーム装置５からの要求に応じて所定数のゲーム装置５をグループ化するサーバ側グループ化処理を行うものであり、ＣＰＵ１１、ハードディスク１２、ＲＯＭ１３、通信インターフェース１４、およびＲＡＭ１５を備える。ＣＰＵ１１は、ＲＯＭ１３からブートプログラムを読み出して実行し、さらにハードディスク１２から制御プログラムを実行することによってサーバ側グループ化処理を行う。ＲＡＭ１５は、ＣＰＵ１１の作業領域として機能し、そこには、エントリーリストＥＬが記憶される。エントリーリストＥＬは、ゲーム装置５の通信アドレスが登録されるものであり、初期状態では空である。
【００４６】
［４．グループ化処理］
図６は、ゲームシステム１００のグループ化処理における動作例を示すシーケンス図である。この動作例は、２台のゲーム装置５をグループ化する場合のものである。グループ化するゲーム装置５の数を２台としたのは、説明が繁雑になるのを避けるためであり、実際には、より多くのゲーム装置５（例えば４台のゲーム装置５）がグループ化される。
【００４７】
この動作例では、まず、店舗Ａのゲーム装置Ａ１において、コイン挿入口５４１に所定のコインが挿入されてからスタートボタン５４２が操作され、入力装置５４からこの旨の信号が出力される。ゲーム装置Ａ１のＣＰＵ５１１は、この信号を検知すると、装置側グループ化処理を開始する。具体的には、グループ化を要求する旨のエントリーリスト要求をロビーサーバ１へ送信する（Ｓ１）。エントリーリスト要求は、エントリーリストＥＬの返信を要請する要求でもある。ロビーサーバ１のＣＰＵ１１は、エントリーリスト要求を受信すると、エントリーリストＥＬをＲＡＭ１５から読み出して返信する（Ｓ２）。この時点では、グループ化を要求している他のゲーム装置５は存在しないため、返信されるエントリーリストは空である。
【００４８】
ゲーム装置Ａ１のＣＰＵ５１１は、エントリーリストＥＬを受信すると、当該エントリーリストＥＬが空であるか否かを判定する。当該エントリーリストＥＬは空であるから、この判定結果は肯定的となる。よって、ＣＰＵ５１１は、自己の通信アドレスを含み、この通信アドレスをエントリーリストＥＬに登録することを要求する旨の登録要求をロビーサーバ１へ送信する（Ｓ３）。ロビーサーバ１のＣＰＵ１１は、この登録要求を受信すると、ＡＣＫ（確認応答）を返信する一方（Ｓ４）、この登録要求に含まれている通信アドレスをＲＡＭ１５に書き込むことによってエントリーリストＥＬに登録する（Ｓ５）。一方、ゲーム装置Ａ１のＣＰＵ５１１は、ＡＣＫを受信すると、待ち状態となる（Ｓ６）。
【００４９】
この動作例では、次に、ゲーム装置Ｂ１のＣＰＵ５１１がエントリーリスト要求をロビーサーバ１に送信する（Ｓ７）。これに、対して、ロビーサーバ１のＣＰＵ１１はエントリーリストＥＬをＲＡＭ１５から読み出して返信する（Ｓ８）。このエントリーリストＥＬにはゲーム装置Ａ１の通信アドレスが登録されているから、このエントリーリストＥＬを受信したゲーム装置Ｂ１のＣＰＵ５１１は、当該通信アドレスを参照してゲーム装置Ａ１に同一のグループに参加したい旨の参加要求を送信する（Ｓ９）。
【００５０】
ゲーム装置Ａ１のＣＰＵ５１１は、この参加要求を受信するとＡＣＫを返信し（Ｓ１０）、同一のグループに属するゲーム装置５が所定数（この例では２）に達したことを確認して、グループ化が完了したことを示すグループ化完了通知を自己と同一のグループに属するゲーム装置５、すなわちゲーム装置Ｂ１へ送信する（Ｓ１１）。ゲーム装置Ｂ１のＣＰＵ５１１は、このグループ化完了通知を受信すると、ＡＣＫを返信する（Ｓ１２）。こうして、ゲーム装置Ａ１およびＢ１のグループ化が完了する（Ｓ１３、Ｓ１４）。
【００５１】
次に、ゲーム装置Ａ１のＣＰＵ５１１は、エントリーリストＥＬから自己の通信アドレスを削除することを要求する削除要求をロビーサーバ１へ送信する（Ｓ１５）。ロビーサーバ１のＣＰＵ１１は、この削除要求を受信すると、ＡＣＫを返信する一方（Ｓ１６）、エントリーリストＥＬから当該通信アドレスを削除する（Ｓ１７）。こうして、装置側グループ化処理が終了する。
【００５２】
上述したグループ化処理において、サーバ装置１のＣＰＵ１１はゲーム装置Ａ１、Ｂ１からエントリーリスト要求を受け取る（Ｓ１、Ｓ７）。このエントリーリスト要求は、グループ化の前提となる要求であって、個別のゲーム装置Ａ１、Ｂ１で単独のゲームを実行する場合には、送信されない。したがって、エントリーリスト要求は、一つのゲームへ参加する旨の参加要求として機能する。ここで、サーバ装置１のＣＰＵ１１は、エントリーリストを削除するまでの期間（Ｓ５〜Ｓ１７）、空のエントリーリスト、あるいは登録済みのエントリーリストを送信することにより（Ｓ２、Ｓ８）、所定数のゲーム装置５を一つのゲームに参加するゲーム装置５としてグループ化するグループ化手段として機能する。また、ＣＰＵ１１は、登録要求があるとエントリーリストに通信アドレスを登録することによって、グループ化したゲーム装置の中から一つのゲーム装置を特定ゲーム装置として特定する特定手段として機能する。
【００５３】
なお、所定数が３以上の場合には、参加要求を受信しても同一のグループに属するゲーム装置５が所定数に達しないことがある。この際には、グループ化完了通知ではなく、グループへの参加を許可する旨の許可通知が送信される。許可通知を送信したゲーム装置５および受信したゲーム装置５は、共に、待ち状態となる。つまり、グループ化完了通知は、同一のグループに属するゲーム装置５が所定数に達して初めて送信される。
【００５４】
［５．ゲーム処理および中継処理］
［５−１．概要］
装置側グループ化処理を終えて同一のグループに属することとなった所定数のゲーム装置５は、それぞれ、ゲーム処理を行うゲームクライアントを起動する。また、これらのゲーム装置５のうち、通信アドレスをエントリーリストＥＬに登録したゲーム装置５は、中継処理を行うエコーサーバを起動する。すなわち、これらのゲーム装置５のうちの１つはゲームクライアントおよびエコーサーバとして機能し、残りはゲームクライアントとして機能する。
【００５５】
ゲームクライアントは、自己の属するグループに係るエコーサーバとの間でゲーム情報を送受信してゲームを進行させる。ゲーム情報とは、射的ゲームにおいて発生したゲームの進行に必要な情報であり、キャラクタの位置や視点、向き、姿勢等のキャラクタの状態を示す状態情報や、キャラクタに弾が命中したか否かの判定（以降、「命中判定」ともいう）の結果を示す結果情報、弾道情報を含む概念である。
【００５６】
エコーサーバは、自己のグループに属するゲームクライアントからのゲーム情報を受信し、受信した順序で、自己のグループに属する全てのゲームクライアントへ送信する中継処理のみを行う。なお、本実施形態を変形し、エコーサーバによるゲーム情報の送信先から当該ゲーム情報の送信元を除くようにしてもよい。
【００５７】
［５−２．関係］
図７はゲーム装置５、ゲームクライアントおよびエコーサーバの関係を説明するための図である。この図に示す例では、ゲーム装置Ａ１、Ａ２、Ｂ１およびＢ２がグループ化されている。エコーサーバとして機能するのはゲーム装置Ａ１であり、ゲーム装置Ａ２、Ｂ１およびＢ２はそれぞれゲーム装置Ａ１のみと通信する。したがって、ゲーム装置Ａ２、Ｂ１およびＢ２は、ゲーム装置Ａ１の通信アドレスのみを管理すれば足りる。
【００５８】
ゲーム装置５間の通信をより上位レイヤで捉えると、各ゲームクライアントとエコーサーバとが通信していることになる。したがって、ゲームクライアントとして機能するゲーム装置Ａ１はエコーサーバとして機能する自己と通信することになる。この通信は、他の通信と異なり、通信インターフェース５１４を用いることなく行われ、ゲーム装置Ａ１内で完結する。
【００５９】
また、ゲームクライアントは、自己に属するキャラクタについて命中判定を行う。このように、キャラクタについての命中判定は当該キャラクタが属するゲーム装置５（撃たれた側のゲーム装置５）にて行われるから、この判定の結果が複数のゲーム装置５の間で矛盾することはない。また、ゲームクライアントは、画面に表示する表示する画像を自己のプレイヤーの操作に応じて即座に更新可能である。したがって、プレイヤーは自己の操作が仮想空間に与えた影響を十分に短い応答時間で視認することができる。
【００６０】
また、ゲームクライアント間の通信はエコーサーバを介して行われるから、ゲーム装置５間においてゲームの進行に矛盾が生じ難い。このことについて、エコーサーバを用いないシステムと比較して説明する。エコーサーバを用いないシステムとしては、いわゆるセンター／ターミナル方式やマスター／スレーブ方式のシステムと、複数のゲーム装置がエコーサーバを介さずに対等に通信を行うシステムが考えられる。しかし、前者はセンターまたはマスターにおいてゲームの進行に係る全ての判定を行うものであるから、極めて短い応答時間とする必要のある射的ゲームには適用困難である。よって、ここでは、後者を比較対象とする。
【００６１】
［５−３．対比］
図８は複数のゲーム装置がエコーサーバを介さずに対等に通信を行うシステムにおいてゲームの進行に生じる矛盾を説明するための図である。この図に示すシステムでは、Ａ、Ｂ、ＣおよびＤのゲーム装置が直接的に通信する。また、ＡとＢ間の通信遅延時間をＴ１、ＢとＤ間の通信遅延時間をＴ２、ＣとＤ間の通信遅延時間をＴ３、ＡとＣ間の通信遅延時間をＴ４、ＡとＤ間の通信遅延時間をＴ５、そしてＢとＣ間の通信遅延時間をＴ６とすると、Ｔ１＜Ｔ２＜Ｔ３＜Ｔ４＜Ｔ５＜Ｔ６である。
【００６２】
このシステムにおいて、全てのゲーム装置で事象が同時に発生し、各ゲーム装置が他のゲーム装置に事象の発生を通知したとする。この場合に、あるゲーム装置での事象の発生が他のゲーム装置において検知されるまでに要する時間は図に示す通りとなる。例えば、Ｃでの事象の発生がＡにおいて検知されるまでに要する時間はＴ４であり、Ｂにおいて検知されるまでに要する時間はＴ６である。また例えば、Ｄでの事象の発生がＡにおいて検知されるまでに要する時間はＴ５であり、Ｂにおいて検知されるまでに要する時間はＴ２である。
【００６３】
ここで、検知順序に着目すると、ＡではＣでの事象の発生を検知した後にＤでの事象の発生を検知することになり、ＢではＤでの事象の発生を検知した後にＣでの事象の発生を検知することになる。つまり、ＡとＢとの間では、Ｃでの事象の発生とＤでの事象の発生の検知順序が逆順になっており、一致しない。このようなズレが、複数のゲーム装置の間でゲームの進行に矛盾が生じる原因となる。
【００６４】
これに対し、本実施形態では、ゲームクライアントからのゲーム情報は必ずエコーサーバへ送信され、エコーサーバは受信したゲーム情報を受信した順序で同一グループに属する全てのゲームクライアントへ送信する。例えば、ゲーム装置Ａ１およびＢ１がそれぞれゲーム情報をエコーサーバへ送信した場合、エコーサーバは、これらのゲーム情報を受信した順序でゲーム装置Ａ１、Ａ２、Ｂ１およびＢ２へ送信する。したがって、ゲーム装置Ａ２におけるゲーム情報の受信順序とゲーム装置Ｂ２におけるゲーム情報の受信順序は必ず一致する。よって、ゲーム装置５間においてゲームの進行に矛盾が生じ難いのである。
【００６５】
［５−４．ゲームクライアントによる各種処理］
次に、ゲーム処理においてゲームクライアントが行う各種処理について具体的に説明する。なお、以降の説明では、図７に示すように、ゲーム装置Ａ１、Ａ２、Ｂ１およびＢ２がグループ化されており、ゲーム装置Ａ１がエコーサーバとして機能するものとする。また、以下に述べる各種処理はゲーム装置５のＣＰＵ５１１により並列に実行されるものであり、ゲームクライアントもエコーサーバと並列に動作する。
【００６６】
［５−４−１．位置情報生成管理処理］
図９は自己のキャラクタの位置を示す位置情報を生成して管理する位置情報生成管理処理の流れを示すフローチャートである。位置情報生成管理処理では、まず、自己のキャラクタの基準ポイントおよびオフセットとして初期値を設定する（ＳＡ１）。基準ポイントとは、仮想空間におけるキャラクタの移動の基準となる点である。基準ポイントは仮想空間内に複数設定されており、Ｘ、Ｙ、Ｚの座標で特定される。なお、仮想空間をＸ軸、Ｙ軸およびＺ軸に沿って格子状に分割したときの各格子点を基準ポイントとして設定してもよい。具体的には、ゲーム装置５のＲＯＭ５１２に、基準ポイント毎に当該基準ポイントの識別子（例えば「Ｐ００１」）と当該基準ポイントの座標（基準位置）が対応付けて記憶されている。なお、ＲＯＭ５１２には、仮想空間における物体の配置を示すマップ情報も記憶されている。
【００６７】
オフセットとは、基準ポイントの座標からの変移量を示すものであり、その初期値はＸ軸、Ｙ軸、Ｚ軸のいずれの方向においてもゼロである。これに対して、自己のキャラクタの基準ポイントの初期値はゲームクライアント毎に異なっている。この初期値の定め方は任意であり、例えば、グループ化処理において定めるようにしてもよい。
【００６８】
次に、自己のキャラクタの基準ポイントおよびオフセットに基づいて、自己のキャラクタの位置を特定する（ＳＡ２）。キャラクタの位置は仮想空間における座標で表され、当該キャラクタの基準ポイントの座標に当該キャラクタのオフセットを加えることによって特定される。次に、特定した位置を示す位置情報を生成し、この位置情報をＲＡＭ５１３上の所定領域に書き込むことによって自己のキャラクタの位置情報を更新する（ＳＡ３）。
【００６９】
次に、自己のキャラクタの位置を変化させるためのプレイヤーの操作に応じた信号を検知したか否かを判定する（ＳＡ４）。この判定の結果が「ＮＯ」の場合には、当該信号が出力されるまで当該判定を繰り返す。この判定の結果が「ＹＥＳ」の場合には、当該信号に基づいてオフセットを更新する（ＳＡ５）。この更新は、具体的には、以下に列挙するように行われる。
【００７０】
位置センサ５４３からの低い受光レベルを示す信号を検知した場合には、自己のプレイヤーが体を後方に傾けていると判断し、自己のキャラクタの位置が当該キャラクタの後方に所定量だけ遷移するようにオフセットを更新する。また、位置センサ５４４からの低い受光レベルを示す信号を検知した場合には、自己のプレイヤーが体を左側に傾けていると判断し、自己のキャラクタの位置が当該キャラクタの左方向に所定量だけ遷移するようにオフセットを更新する。また、位置センサ５４５からの低い受光レベルを示す信号を検知した場合には、自己のプレイヤーが体を右側に傾けていると判断し、自己のキャラクタの位置が当該キャラクタの右方向に所定量だけ遷移するようにオフセットを更新する。
【００７１】
次に、オフセットが所定の閾値を超えたか否かを判定する（ＳＡ６）。この閾値は、自己のキャラクタが基準ポイントの変更を伴わずに隣接する基準ポイントまで移動することを防止するために設定されており、この閾値および基準ポイントは、キャラクタのオフセットが当該閾値を超えた場合には当該キャラクタの基準ポイントよりも当該キャラクタの近くに他の基準ポイントが必ず存在するように定められている。この判定の結果が「ＮＯ」の場合、ステップＳＡ２の処理に戻る。逆に「ＹＥＳ」の場合、自己のキャラクタの基準ポイントを変更するポイント間移動処理を行う。
【００７２】
［５−４−２．ポイント間移動処理］
図１０はポイント間移動処理の流れを示すフローチャートである。
ポイント間移動処理では、まず、新たな基準ポイントを特定する（ＳＢ１）。具体的には、自己のキャラクタの基準ポイントおよびオフセットに基づいて、自己のキャラクタの位置を特定し、この位置に最も近い基準ポイントを新たな基準ポイントとして特定する。次に、特定した基準ポイントを自己のキャラクタの基準ポイントとし、オフセットを初期化する（ＳＢ２）。次に、自己の基準ポイントの識別子をエコーサーバ（ゲーム装置Ａ１）へ送信する（ＳＢ３）。以降、図９の位置情報生成管理処理に戻り、さらにステップＳＡ２の処理に戻る。
【００７３】
ステップＳＢ３で送信された識別子はエコーサーバにより受信され、送信元のゲーム装置５の通信アドレスとともに、ゲーム情報として、同一グループに属する全てのゲームクライアント（ゲーム装置Ａ１、Ａ２、Ｂ１およびＢ２）へ送信される。このゲーム情報は各ゲームクライアントに受信される。そして、他のゲームクライアントは、受信したゲーム情報に含まれている識別子に応じた基準ポイントの座標を示す位置情報を、当該ゲーム情報に含まれている通信アドレスを有するゲーム装置５に属するキャラクタの位置情報として記憶する。
【００７４】
［５−４−３．向き情報生成管理処理］
図１１は自己のキャラクタの向きを示す向き情報を生成して管理する向き情報生成管理処理の流れを示すフローチャートである。向き情報生成管理処理では、まず、自己のキャラクタの向き情報として初期値を設定する（ＳＣ１）。具体的には、この初期値を自己のキャラクタの向き情報としてＲＡＭ５１３に書き込む。この初期値およびその定め方は任意である。
【００７５】
次に、自己のキャラクタの向きを変化させるためのプレイヤーの操作に応じた信号を検知したか否か、具体的にはオプション信号ＯＰ１を検知したか否かを判定する（ＳＣ２）。この判定の結果が「ＮＯ」の場合には、当該信号が出力されるまで当該判定を繰り返す。この判定の結果が「ＹＥＳ」の場合には、当該信号に基づいて向き情報を更新する（ＳＣ３）。以降、ステップＳＣ２に戻る。
【００７６】
上記の更新では、以下に場合分けして示す処理を行う。
注目キャラクタが設定されていない場合には、他のキャラクタのいずれか１つを注目キャラクタとし、この注目キャラクタが自己のキャラクタの正面に位置するように自己のキャラクタの向き情報を更新する。
注目キャラクタが設定されている場合には、この注目キャラクタを除く他のキャラクタからいずれか１つを選択して注目キャラクタとし、この注目キャラクタが自己のキャラクタの正面に位置するように自己のキャラクタの向き情報を更新する。ただし、注目キャラクタが設定されており、かつ他のキャラクタの数が１の場合には、上記の選択を行われず、この注目キャラクタが自己のキャラクタの正面に位置するように自己のキャラクタの向き情報を更新する。
【００７７】
［５−４−４．姿勢情報生成管理処理］
図１２は自己のキャラクタの姿勢を示す姿勢情報を生成して管理する姿勢情報生成管理処理の流れを示すフローチャートである。姿勢情報生成管理処理では、まず、自己のキャラクタの姿勢情報として初期値を設定する（ＳＤ１）。具体的には、この初期値を自己のキャラクタの姿勢情報としてＲＡＭ５１３に書き込む。この初期値として、本実施形態ではキャラクタが立っている状態を示す値が予め定められているが、初期値およびその定め方として他のものを用いるようにしてもよい。
【００７８】
次に、自己のキャラクタの姿勢を変化させるためのプレイヤーの操作に応じた信号を検知したか否か、具体的にはオプション信号ＯＰ２を検知したか否かを判定する（ＳＤ２）。この判定の結果が「ＮＯ」の場合には、当該信号が出力されるまで当該判定を繰り返す。この判定の結果が「ＹＥＳ」の場合には、当該信号に基づいて姿勢情報を更新する（ＳＤ３）。以降、ステップＳＤ２に戻る。上記の更新では、具体的には、自己のキャラクタの姿勢情報が立位を示すものの場合には座位を示すように当該姿勢情報を更新し、座位を示すものの場合には、立位を示すように当該姿勢情報を更新する。
【００７９】
［５−４−５．仮想空間と画面との関係］
ここで、他の処理の説明に先立って、仮想空間と画面との関係について説明する。
画面に表示されるゲームの画像は、仮想空間内の物体を視点座標系の投影面に透視投影して得られる。この投影面の仮想空間における配置は、自己のキャラクタの視点の位置と向きに応じて定まる。自己のキャラクタの視点の位置は自己のキャラクタの位置、姿勢および身長（または座高）から求めることができるから、自己のキャラクタの位置、向き、姿勢および身長（または座高）が定まれば投影面の配置も定まることになる。
【００８０】
また、投影面は長方形であり、その縦横比は画面の縦横比と一致する。また、投影面は、その中心点で自己のキャラクタの視点の位置から当該キャラクタの向きに伸びる線と直交し、この交点と視点の位置との間の距離が所定の長さとなり、画面の鉛直方向に延びる辺に対応する辺が当該キャラクタの位置と視点の位置とを結ぶ直線に平行となるように配置される。上記の所定の長さは、キャラクタが視点の前方に視線に沿って腕を伸ばしてガンユニットを構えたときに銃口が投影面の中心点に位置するように定められている。
【００８１】
仮想空間と画面は上述した関係にあるため、画面上の位置が定まれば投影面上の位置が定まり、ひいては仮想空間における位置が定まる。以下に述べる処理は、このような関係を利用して行われる。
【００８２】
［５−４−６．弾道情報生成処理］
図１３は自己のキャラクタが発射した弾の弾道情報を生成して管理する弾道情報生成管理処理の流れを示すフローチャートである。弾道情報生成管理処理では、まず、自己のキャラクタに弾を発射させるためのプレイヤーの操作に応じた信号を検知したか否か、具体的にはトリガ信号ＴＧ１を検知したか否かを判定する（ＳＥ１）。この判定の結果が「ＮＯ」の場合には、当該信号が出力されるまで当該判定を繰り返す。この判定の結果が「ＹＥＳ」の場合には、自己のキャラクタが弾を発射したと判断し、弾道計算を行う。
【００８３】
弾道計算では、まず、当該弾について照準位置を特定する（ＳＥ２）。照準位置の特定方法は前述の通りである（図４参照）。次に、当該弾の発射位置および着弾位置を特定する（ＳＥ３）。発射位置は弾が発射された仮想空間内の位置であり、投影面の中心点の位置そのものである。投影面の配置は後述の画像生成処理において最新のものが求められるから、このステップでは、画像生成処理において求められた最新の投影面の配置に基づいて当該投影面の中心点を求める。着弾位置は弾が到達する仮想空間内の位置であり、このステップでは、上記の最新の投影面の配置と照準位置とに基づいて着弾位置を求める。
【００８４】
次に、発射位置および着弾位置に基づいて弾道情報を生成し、自己のキャラクタの弾道情報としてＲＡＭ５１３に記憶させる（ＳＥ４）。生成される弾道情報は、発射位置から直進して着弾位置を通る弾道を示す。こうして弾道計算が終わる。なお、弾道情報の表現形式は任意であり、例えば、経過時間のように時々刻々と過ぎ行く変量を引数とした関数を示すものであってもよい。
【００８５】
次に、生成した弾道情報をエコーサーバ（ゲーム装置Ａ１）へ送信し（ＳＥ５）、弾道情報が示す弾道が命中範囲内に達するキャラクタが存在するか否かを判定する（ＳＥ６）。この判定結果が「ＮＯ」の場合にはステップＳＥ１に戻る。逆に「ＹＥＳ」の場合には、該当するキャラクタを揺れるキャラクタとする（ＳＥ７）。具体的には、該当するキャラクタの位置情報に対応付けて不確定位置情報をＲＡＭ５１３に書き込む。不確定位置情報は仮想空間内の位置を示す情報であり、命中範囲の中心点とした場合に当該命中範囲を当該弾道が横切ることのない位置であって当該キャラクタの位置に最も近い位置を示す。以降、処理はステップＳＥ１に戻る。
【００８６】
なお、ステップＳＥ５で送信された弾道情報はエコーサーバにより受信され、送信元のゲーム装置５の通信アドレスとともに、ゲーム情報として、同一グループに属する全てのゲームクライアント（ゲーム装置Ａ１、Ａ２、Ｂ１およびＢ２）へ送信される。このゲーム情報は各ゲームクライアントに受信される。そして、他のゲームクライアントは、受信したゲーム情報に含まれている弾道情報を、当該ゲーム情報に含まれている通信アドレスのゲーム装置５に属するキャラクタの弾道情報としてＲＡＭ５１３に記憶させる。
【００８７】
［５−４−７．命中判定処理］
図１４は命中判定処理の流れを示すフローチャートである。命中判定処理では、まず、自己のキャラクタの位置情報を用いて命中範囲を特定する（ＳＦ１）。命中範囲は自己のキャラクタの位置を中心とする所定範囲であり、命中判定の基準となる。次に、直前に命中範囲を特定してから未使用の弾情報がＲＡＭ５１３に記憶されているか否かを判定する（ＳＦ２）。この判定結果が「ＮＯ」であれば、ステップＳＦ１に戻る。
【００８８】
ステップＳＦ２の判定結果が「ＹＥＳ」の場合、未使用の弾道情報の１つを選択し（ＳＦ３）、この弾道情報を用いて弾の位置を特定し（ＳＦ４）、当該弾が命中範囲内に位置するか否かを判定する（ＳＦ５）。この判定結果が「ＮＯ」の場合、この弾が自己のキャラクタに命中しないことが確定したか否かを判定する（ＳＦ６）。この判定は、例えば、自己のキャラクタの位置と弾の位置との距離が増大傾向にあるか否かを調べることにより行われる。
【００８９】
この判定の結果が「ＮＯ」の場合にはステップＳＦ２に戻り、「ＹＥＳ」の場合には、弾が自己のキャラクタに命中しなかった場合の処理である外れ処理を行い（ＳＦ７）、その後にステップＳＦ２に戻る。外れ処理では、当該弾が自己のキャラクタに命中しなかった旨の結果情報をエコーサーバ（ゲーム装置Ａ１）へ送信し、当該弾情報をＲＡＭ５１３から削除する。
【００９０】
ステップＳＦ５の判定結果が「ＹＥＳ」の場合、自己のキャラクタが被弾した場合の処理である被弾処理を行う（ＳＦ８）。被弾処理では、被弾フラグをオンにし、当該弾道情報に係る他のキャラクタが発射した弾が自己のキャラクタに命中した旨の結果情報をエコーサーバ（ゲーム装置Ａ１）送信し、当該弾道情報をＲＡＭ５１３から削除する。
【００９１】
なお、命中判定処理において送信された結果情報は、エコーサーバにより受信され、送信元のゲーム装置５の通信アドレスとともに、ゲーム情報として、同一グループに属する全てのゲームクライアント（ゲーム装置Ａ１、Ａ２、Ｂ１およびＢ２）へ送信される。なお、ＲＡＭ５１３に記憶されている全ての弾道情報は、ＲＡＭ５１３に書き込まれてから所定の時間が経過すると削除される。これにより、例えば、仮想空間内の空に向けて発射された弾の弾道情報がいつまでも残る事態を回避することができる。
【００９２】
［５−４−８．画像生成処理］
図１５は画面に表示するゲームの画像を生成する画像生成処理の流れを示すフローチャートである。画像生成処理では、まず、他のキャラクタの位置情報および被弾フラグに初期値を設定する（ＳＧ１）。被弾フラグの初期値はオフであり、他のキャラクタの位置情報の初期値は他のゲーム装置５における自己のキャラクタの位置情報の初期値と矛盾しないように定められている。
【００９３】
次に、自己のキャラクタが発射した弾が、揺れるキャラクタの揺れ開始範囲内に入ったか否かを判定する（ＳＧ２）。揺れ開始範囲は、当該キャラクタを仮想空間内で揺らす揺動処理を開始するか否かの基準となる仮想空間内の所定の範囲であり、当該キャラクタの位置を中心として命中範囲を含んで広がる。この判定結果が「ＮＯ」の場合にはステップＳＧ４へ進み、「ＹＥＳ」の場合には、揺動処理を開始し（ＳＧ３）、その後にステップＳＧ４へ進む。
【００９４】
揺動処理では、当該キャラクタの位置情報が示す位置と当該キャラクタの不確定位置情報が示す位置との間で当該キャラクタが揺れるように、画像生成処理において行われる当該キャラクタの配置を制御する。
【００９５】
ステップＳＧ４では、自己の処理内で、自己のキャラクタが発射した弾が揺れているキャラクタを通過したか否かを判定する。この判定は、例えば、自己のキャラクタが発射した弾の弾道情報と揺れているキャラクタの位置情報とに基づいて行われる。この判定結果が「ＮＯ」の場合にはステップＳＧ６へ進み、「ＹＥＳ」の場合には、揺動処理を終了し（ＳＧ５）、その後にステップＳＧ４へ進む。つまり、自己の処理において揺れているキャラクタは、当該キャラクタを自己のキャラクタが発射した弾が通過するまで揺れ続け、通過すると揺れなくなる。
【００９６】
なお、ステップＳＧ４の処理内容を変更して本実施形態を変形してもよい。具体的には、自己のキャラクタが発射した弾が揺れているキャラクタに命中しなかった旨の結果情報を受信したか否かを判定するようにし、この判定結果が「ＹＥＳ」の場合に揺動処理を終了するようにしてもよい。この態様では、自己の処理において、揺れているキャラクタは、当該キャラクタを自己のキャラクタが発射した弾が通過しても揺れ続けることになる。つまり、不自然に揺れ続ける。不自然に揺れ続ける時間は短い方が望ましいが、そのためには、結果情報を速く伝達する必要があるから、より多くの通信資源を消費することになる。これに対し、本実施形態では、結果情報を受信せずともキャラクタの揺れが止まるから、消費する通信資源を多くすることなく、キャラクタが不自然に揺れ続ける事態を回避することができる。
【００９７】
ステップＳＧ６では、弾がキャラクタに命中した旨の結果情報を受信したか否かを判定する。この結果情報は、当該キャラクタを自己のキャラクタとするゲームクライアントからエコーサーバ経由で渡されうる。この判定結果が「ＮＯ」の場合にはステップＳＧ８へ進み、「ＹＥＳ」の場合には、弾が他のキャラクタに命中した場合の処理である命中処理を開始し（ＳＧ７）、その後にステップＳＧ８へ進む。
【００９８】
命中処理では、弾が命中したキャラクタが倒れるように、画像生成処理において行われる当該キャラクタの配置を制御する。また、命中処理では、他のキャラクタの全てが倒れると、自己のキャラクタが生き残ったことを示す画像を画面に表示し、ゲームを終了することを示す終了情報を送信し、ゲームクライアント（およびエコーサーバ）を終了させる。こうしてゲーム処理および中継処理が終了する。
【００９９】
ステップＳＧ８では、画面に表示させるゲームの画像を生成する。この生成では、まず、自己のキャラクタの位置情報、姿勢情報および向き情報、他のキャラクタの位置情報、弾道情報、およびマップ情報に基づいて、キャラクタおよび弾を仮想空間内に配置する。この配置では、揺動処理による制御を優先する。次に、自己のキャラクタの位置情報、姿勢情報、向き情報および身長（または座高）を用いて前述の投影面の配置を特定し、この投影面に仮想空間内の物体を透視投影してゲームの画像を得る。
【０１００】
ステップＳＧ８で得られた画像は、表示装置５２の画面に表示される。この際、揺動処理により配置が制御されている他のキャラクタが存在する場合には、当該他のキャラクタが揺れている画像が画面に表示されることになる。図１６に他のキャラクタが揺れる画面の例を示す。この例では、弾６５０が着弾する前に、他のキャラクタ６１０が所定範囲６００の中で揺れる画像が表示される。この画像から弾６５０が他のキャラクタ６１０に命中したか否かを読み取るのは困難であるから、プレイヤーは予断しなくなる。予断しないのであれば、予断と実際の判定結果との間に矛盾が生じることもないから、弾６５０が他のキャラクタ６１０に命中したことや命中しなかったことが後に判明しても、プレイヤーが覚える違和感は、予断と判定結果とが矛盾する場合に比較して遥かに小さくなる。
【０１０１】
次に、被弾フラグがオンであるか否かを判定する（ＳＧ９）。この判定が「ＮＯ」の場合にはステップＳＧ２に戻り、「ＹＥＳ」の場合には、自己のキャラクタが被弾した場合の処理である被弾表示処理を開始し（ＳＧ１０）、その後にステップＳＧ１１へ進む。被弾表示処理では、自己のキャラクタが被弾したことを示す画像を所定の時間にわたって画面に表示する。一方、被弾しなかった場合には、例えば、図１６の下部に示すように着弾が他のキャラクタからはずれる位置となるように画像を表示する。
【０１０２】
ステップＳＧ１１では、終了情報を受信したか否かを判定し、この判定結果が「ＮＯ」であればステップＳＧ１１に戻る。すなわち、自己のキャラクタが被弾した場合には、終了情報を受信するまで待機する。ステップＳ１１の判定結果が「ＹＥＳ」であれば、ゲームクライアント（およびエコーサーバ）を終了させる終了処理を行う（ＳＧ１２）。こうして、ゲーム処理および中継処理が終了する。
【０１０３】
［６．総括］
上述したように、ゲームシステム１００では、ゲームクライアントは、プレイヤーがガンユニット５６を操作して自己のキャラクタから他のキャラクタに向けて弾を発射させると弾道情報を生成し、エコーサーバに送信する。また、エコーサーバから弾道情報を受信すると、自己のキャラクタの位置情報と受信した弾道情報に基づいて命中か否かの判定結果を示す情報を生成する。また、他のキャラクタに向けて弾を発射するようにガンユニット５６が操作されると、この操作の信号を検知してから他のゲーム装置５から結果情報を取得するまでの期間において、より詳しくは、この弾が他のキャラクタの揺れ開始範囲に入ってから他のゲーム装置５から結果情報を取得するまでの期間において、他のキャラクタに弾が命中したか否かが不確定となる画像、具体的にはキャラクタが揺れる画像を表示装置５２に表示させる。
【０１０４】
よって、本実施形態によれば、通信遅延に起因して生じる、画面では命中したように見えたのに実際には命中していなかったという違和感（矛盾）や、画面では命中しなかったように見えたのに実際には命中していたという違和感（矛盾）を低減（回避）することができる。
【０１０５】
また、本実施形態によれば、キャラクタの移動に関して複数のゲーム装置５間で送受信される情報は、基準ポイント間の移動があった場合にのみ送信される。したがって、キャラクタの少しの動きに対応して位置情報を送信する態様に比較して通信量を大幅に削減することができる。また、送信されるのは基準ポイントの識別子のみであるから、より一層、通信量を削減することができる。
【０１０６】
また、本実施形態において、基準ポイントは相互に十分に離間するように設定されている。したがって、自己のキャラクタと他のキャラクタとの間に、ある程度の距離を確保し易い。よって、他のキャラクタが揺れる画像が画面いっぱいに広がってプレイヤーに違和感を与える可能性を低く抑えることができる。なお、このような可能性を低く抑える他の方法としては、自己のキャラクタと他のキャラクタとの距離に応じて処理を分ける方法が挙げられる。すなわち、自己のキャラクタと他のキャラクタとの距離が所定の距離以下であれば、当該他のキャラクタについて揺動処理を行わない、というものである。
【０１０７】
また、前述したように、ゲームシステム１００では、ゲームクライアントは、プレイヤーがガンユニット５６を操作して自己のキャラクタから他のキャラクタに向けて弾を発射させると弾道情報を生成し、エコーサーバに送信する。また、エコーサーバから弾道情報を受信すると、自己のキャラクタの位置情報と受信した弾道情報に基づいて命中か否かの判定結果を示す情報を生成する。当該ゲーム装置５がエコーサーバに指定されている場合、当該ゲーム装置５で生成したゲーム情報と他のゲーム装置から受信したゲーム情報を受信した順序で他のゲーム装置５に送信する。
【０１０８】
よって、本実施形態によれば、エコーサーバによってゲーム情報の時系列が確定されるから、通信遅延に起因して生じるゲームの進行上の矛盾を回避することができる。また、自己のキャラクタの動作は、それが属するゲーム装置５では直ちに画面に反映されるので、サーバ装置で全ての処理を実行する場合と比較して、操作が画像に反映される時間を大幅に短縮することができる。
【０１０９】
また、命中判定に代表される、ゲームの進行に係る各種の判定は、ゲームクライアントによって行われる。したがって、ゲームの進行に係る各種の判定を中継装置が行う態様に比べて、エコーサーバとして機能する装置にかかる負荷を低減することができる。このことは、他のゲーム装置と通信してゲームを行っている最中に当該通信が途絶した場合に個々のゲーム装置において制約付きでありながらもシームレスに当該ゲームを継続するシステムを構築し易いことをも意味する。
【０１１０】
また、マスターとなるゲーム装置が固定されていないマスター／スレーブ方式のゲームシステムでは、ゲーム装置のプログラムとして、マスター用のプログラムとスレーブ用のプログラムを作成しなければならい。これに対して、本実施形態では、ゲーム装置のプログラムとして作成すべきはプログラムＰのみである。つまり、ゲームシステム１００は、その開発が容易である。
【０１１１】
［７．変形例］
上述した実施形態では、ゲーム装置５の通信アドレスをゲーム装置５の識別子として用いているが、これを変形し、プレイヤーが所持するカードに固有のＩＤを書き込んでおき、ゲーム装置がこのカードからＩＤを読み取って当該ゲーム装置の識別子として用いるようにしてもよい。
【０１１２】
また、上述した実施形態では、ゲーム装置５のグループ化にロビーサーバ１およびエントリーリストＥＬを用いているが、これに限るものではない。例えば、予めグループ化されている所定数のゲーム装置の間でゲームを行うゲームシステムとしてもよい。
【０１１３】
また、キャラクタの動作や、キャラクタを動作させるための操作を入力する手段は、上述したものに限定されない。例えば、キャラクタを跳躍させるボタンをゲーム装置に設け、このボタンが押されたら自己のキャラクタを跳躍させるようにしてもよいし、加速度センサを設け、このセンサを用いてプレイヤーの動きの勢いを検出し、検出した勢いに応じて自己のキャラクタを動作させるようにしてもよい。
【０１１４】
また、上述した実施形態では、ゲーム装置５をエコーサーバとして機能させているが、これを変形し、ゲーム装置以外の装置をエコーサーバとして機能させてもよい。例えば、図１の店舗Ａ内のゲーム装置５が参加するグループに係るエコーサーバとして店舗Ａ内のルータ４を機能させてもよい。さらに、このルータ４において複数のエコーサーバを起動できるようにしてもよい。この態様では、例えば、ゲーム装置Ａ１およびＢ１が第１のグループに参加し、ゲーム装置Ａ２およびＢ２が第２のグループに参加しているときに、店舗Ａのルータ４を第１のグループに係るエコーサーバとして機能させる一方、第２のグループに係るエコーサーバとして機能させることができる。
【図面の簡単な説明】
【０１１５】
【図１】本発明の一実施形態に係るゲームシステム１００の全体構成を示す図である。
【図２】ゲームシステム１００を構成するゲーム装置５の外観を示す斜視図である。
【図３】ゲーム装置５の電気的構成を示すブロック図である。
【図４】ゲーム装置５における照準位置の特定方法を説明するための図である。
【図５】ロビーサーバ１の電気的構成を示す図である。
【図６】ゲームシステム１００のグループ化処理における動作例を示すシーケンス図である。
【図７】ゲーム装置５、ゲームクライアントおよびエコーサーバの関係を説明するための図である。
【図８】複数のゲーム装置がエコーサーバを介さずに対等に通信を行うシステムにおいてゲームの進行に生じる矛盾を説明するための図である。
【図９】ゲーム装置５の位置情報生成管理処理を示すフローチャートである。
【図１０】ゲーム装置５のポイント間移動処理を示すフローチャートである。
【図１１】ゲーム装置５の向き情報生成管理処理を示すフローチャートである。
【図１２】ゲーム装置５の姿勢情報生成管理処理を示すフローチャートである。
【図１３】ゲーム装置５の弾道情報生成管理処理を示すフローチャートである。
【図１４】ゲーム装置５の命中判定処理を示すフローチャートである。
【図１５】ゲーム装置５の画像生成処理を示すフローチャートである。
【図１６】ゲーム装置５の画面の例を示す図である。
【符号の説明】
【０１１６】
１  ロビーサーバ
１００  ゲームシステム
２，４  ルータ、
５，Ａ１，Ａ２，Ｂ１，Ｂ２  ゲーム装置
５１１  ＣＰＵ
５１２  ＲＯＭ
５１３  ＲＡＭ
５１４  通信インターフェース
５３  表示装置
５４３  位置センサ
５４４  位置センサ
５４５  位置センサ
５４６  フットペダル
５６  ガンユニット
５６１  トリガ
５６２  オプションボタン
５６３  オプションボタン
５６４  トリガセンサ
５６５  オプションボタンセンサ
５６６  オプションボタンセンサ
５６７  光センサ
Ｐ  プログラム
【図１】
2007006953.tif 000003
【図２】
2007006953.tif 000004
【図３】
2007006953.tif 000005
【図４】
2007006953.tif 000006
【図５】
2007006953.tif 000007
【図６】
2007006953.tif 000008
【図７】
2007006953.tif 000009
【図８】
2007006953.tif 000010
【図９】
2007006953.tif 000011
【図１０】
2007006953.tif 000012
【図１１】
2007006953.tif 000013
【図１２】
2007006953.tif 000014
【図１３】
2007006953.tif 000015
【図１４】
2007006953.tif 000016
【図１５】
2007006953.tif 000017
【図１６】
2007006953.tif 000018