(57)【要約】【課題】通信ネットワークを介して接続する複数のコンピュータゲーム装置間に通信遅延が生じる場合であっても、各コンピュータゲーム装置間で、データがほぼ同時に処理されるデータ処理方法を提供する。【解決手段】通信遅延を有するネットワークを介してコンピュータゲームの対戦が行われる場合、ゲーム開始前に、ゲーム装置間の遅延時間を求め、それに基づいて、各ゲーム装置がカウントする時間の同期が取られる。そして、ゲーム進行中は、操作データ信号は、その発生からあらかじめ測定したゲーム装置間の遅延時間のうち最も長い遅延時間経過後に処理される。これにより、複数のゲーム装置において、同時に操作データ信号を処理することができる。【選択図】  図４
2007260410.tif 000002
【特許請求の範囲】
【請求項１】
サーバから通信ネットワークを介して複数のゲーム装置それぞれにゲーム情報が配信され、各ゲーム装置のプレイヤが前記ゲーム情報に対応する操作を行うことにより、各プレイヤが対戦する通信ゲーム方法において、
各ゲーム装置の計測手段が、プレイヤの前記ゲーム情報に応答する入力操作が可能になってから当該入力操作が開始されるまでの応答時間を計測し、
各ゲーム装置の通信手段が、プレイヤの前記応答時間又はそれに対応する値を前記サーバに送信し、
前記サーバの決定手段が、各プレイヤの応答時間又はそれに対応する値を利用して、各プレイヤの勝敗及び／又は順位を決定することを特徴とする通信ゲーム方法。
【請求項２】
請求項１において、
各ゲーム装置の判定手段が、各プレイヤの前記ゲーム情報に対応する入力の正誤を判定し、各ゲーム装置の通信手段は、少なくとも正しい入力と判定された場合のプレイヤの前記応答時間又はそれに対応する値を前記サーバに送信することを特徴とする通信ゲーム方法。
【請求項３】
サーバと、通信ネットワークを介して前記サーバと接続する複数のゲーム装置とを備え、前記サーバから各ゲーム装置それぞれにゲーム情報が配信され、各ゲーム装置のプレイヤが前記ゲーム情報に対応する操作を行うことにより、各プレイヤが対戦する通信ゲームシステムにおいて、
各ゲーム装置は、
プレイヤの前記ゲーム情報に応答する入力操作が可能になってから当該入力操作が開始されるまでの応答時間を計測する計測手段と、
プレイヤの前記応答時間又はそれに対応する値を前記サーバに送信する通信手段とを備え、
前記サーバは、
各プレイヤの応答時間又はそれに対応する値を利用して、各プレイヤの勝敗及び／又は順位を決定する決定手段を備えることを特徴とする通信ゲームシステム。
【請求項４】
請求項３において、
各ゲーム装置は、各プレイヤの前記ゲーム情報に対応する入力の正誤を判定する判定手段を備え、
前記通信手段は、少なくとも正しい入力と判定された場合のプレイヤの前記応答時間又はそれに対応する値を前記サーバに送信することを特徴とする通信ゲームシステム。
【請求項５】
サーバから通信ネットワークを介してゲーム情報を受信し、プレイヤが前記ゲーム情報に対応する操作を行うコンピュータゲーム装置において、
前記プレイヤが前記ゲーム情報に応答する入力操作が可能になってから当該入力操作が開始されるまでの応答時間を計測する計測手段と、
前記応答時間又はそれに対応する値を前記サーバに送信し、プレイヤの応答時間又はそれに対応する値を利用して決定されるプレイヤの勝敗及び／又は順位を、前記サーバから受信する通信手段とを備えることを特徴とするコンピュータゲーム装置。
【請求項６】
複数のコンピュータゲーム装置に通信ネットワークを介してゲーム情報を配信するコンピュータ装置において、
各コンピュータゲーム装置から、プレイヤの前記ゲーム情報に応答する入力操作が可能になってから当該入力操作が開始されるまでまでの応答時間又はそれに対応する値を受信する受信手段と、
各プレイヤの前記応答時間又はそれに対応する値を利用して、各プレイヤの勝敗及び／又は順位を決定する決定手段と、
前記決定された各プレイヤの勝敗及び／又は順位を、対応する各コンピュータゲーム装置に送信する送信手段とを備えることを特徴とするコンピュータ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信ネットワークを介して接続されたコンピュータゲーム装置におけるデータ処理方法に係り、特に、一の装置から入力されたデータを各装置において同時に処理するためのデータ処理方法に関する。
【背景技術】
【０００２】
近年、通信機能を有する家庭用コンピュータゲーム装置が普及しつつある。このようなコンピュータゲーム装置は、インターネットなどのネットワークを介して、１台以上の別のコンピュータゲーム装置と接続することにより、互いに離れている各コンピュータゲーム装置のプレイヤとコンピュータゲームの対戦を楽しむことができる。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、互いに離れたコンピュータゲーム装置を、インターネットなどのネットワークを介して接続する場合、通信の遅延が問題となる。即ち、ある一のコンピュータゲーム装置において、プレイヤの操作（キャラクタの移動や攻撃動作など）に対応して発生する操作データは、その一のコンピュータゲーム装置において処理されるとともに、他のコンピュータゲーム装置にも送信されて同様に処理される。このとき、一のコンピュータゲーム装置では、操作データはほぼ瞬時に処理されて、それに対応する画面が表示されるが、他のコンピュータゲーム装置では、その操作データは所定の送信時間を経て到達し、その後処理され、対応する画面が表示される。
【０００４】
このように、通信遅延が生じると、同じデータの処理時刻が各コンピュータゲーム装置で異なるため、ゲームが同時に進行しない。従って、各コンピュータゲーム装置のプレイヤは、ある時刻において、それぞれ異なるゲーム画面を見ながら操作することになるので、プレイヤは相手の操作に違和感を覚えたり、さらには、ゲーム結果がコンピュータゲーム装置ごとに変わってしまうという不都合が生じる。
【０００５】
従って、本発明の目的は、ネットワークを介して接続する複数のコンピュータゲーム装置間に通信遅延が生じる場合であっても、各コンピュータゲーム装置間で、データがほぼ同時に処理されるデータ処理方法を提供することである。
【課題を解決するための手段】
【０００６】
上記目的を達成するための本発明によれば、通信遅延を有するネットワークを介してコンピュータゲームの対戦が行われる場合、ゲーム開始前に、装置間の遅延時間を求め、それに基づいて、各装置がカウントする時間の同期が取られる。そして、ゲーム進行中は、操作データ信号は、その発生からあらかじめ測定した装置間の遅延時間のうち最も長い遅延時間経過後に処理される。これにより、複数の装置において、同時に操作データ信号を処理することができる。
【０００７】
上記目的を達成するために、本発明では、例えば、通信ネットワークを介して接続する複数のコンピュータゲーム装置間におけるデータ処理方法において、
複数の装置それぞれの間における遅延時間を測定する測定ステップと、
測定された遅延時間のうちの最長時間を取得する取得ステップと、
複数の装置でカウントされる時間を同期させる同期ステップと、
複数の装置において、各装置から送信されたデータを、その送信された時間から遅延時間の最長時間経過時に処理する処理ステップとを備えるデータ処理方法が提供される。
【０００８】
そして、好ましくは、上記発明において、データは送信された時間の情報を有し、データを受信した場合、処理ステップは、データが送信された時間と自己のカウントする時間との差分に基づいて、上記最長時間経過時を認識する。
【０００９】
また、さらに好ましくは、上記発明において、同期ステップは、複数の装置のうちの一の装置から他の装置に、一の装置のカウント値を送信する送信ステップと、
他の装置において、自己のカウント値と受信したカウント値との差が前記一の装置との遅延時間になるように、カウントアップを一時的に停止する停止ステップとを備える。
【発明の効果】
【００１０】
以上、本発明によれば、通信遅延を有するネットワークを介してコンピュータゲームの対戦が行われる場合、ゲーム開始前に、ゲーム装置間の遅延時間を求め、それに基づいて、各ゲーム装置がカウントする時間の同期が取られる。そして、ゲーム進行中は、操作データ信号は、その発生からあらかじめ測定したゲーム装置間の遅延時間のうち最も長い遅延時間経過後に処理される。これにより、複数のゲーム装置において、同時に操作データ信号を処理することができる。
【００１１】
また、本発明によれば、ネットワークゲームを管理するネットワークサーバにおいて、ゲーム装置からの最初の接続要求を受け付ける主サーバの負担を軽くすることができる。
【００１２】
さらに、本発明によれば、１台のコンピュータゲーム装置から複数のプレイヤがネットワークゲームに参加することができる。
【００１３】
さらに、本発明によれば、複数のプレイヤが参加する通信ゲームにおいて、各プレイヤがサーバから配信されるゲーム情報に応答するまでの時間を競う場合、各プレイヤが操作するゲーム装置がその応答時間を計測し、サーバにそれを送信することにより、サーバから各ゲーム装置へのゲーム情報の配信時間がそれぞれ異なる場合であっても、正確な応答時間を求めることができる。  
【発明を実施するための最良の形態】
【００１４】
以下、本発明の実施の形態について説明する。しかしながら、本発明の技術的範囲が、本実施の形態に限定されるものではない。
【００１５】
図１は、ネットワークを介して接続するコンピュータゲーム装置の模式図である。図１では、各コンピュータゲーム装置（以下、「ゲーム装置」と称す）Ａ、Ｂ、Ｃは、インターネットプロバイダのサーバと接続することにより、インターネットを介して他のゲーム装置と接続する。また、プレイヤａはゲーム装置Ａを操作し、プレイヤｂがゲーム装置Ｂを操作し、プレイヤｃ、ｄがゲーム装置Ｃを操作する。即ち、ゲーム装置Ｃは複数のプレイヤによって操作される。
【００１６】
図２は、通信機能を有する家庭用コンピュータゲーム装置のブロック構成図である。ゲーム装置は、コンピュータグラフィック（ＣＧ）技術により生成される画像をモニタに表示する。ＣＧ技術では、仮想３次元空間に配置されるオブジェクトは、複数のポリゴンで構成され、ポリゴンは複数のピクセルで構成される。そして、モニタには、所定の視点座標から見た仮想３次元空間毎のオブジェクトを二次元平面に投影した画像が表示される。
【００１７】
そのために、ゲーム装置は、全体システムを制御するCPU１０と、ジオメトリ演算を行うジオメトリプロセッサ１１と、ワークＲＡＭなどのシステムメモリ１２と、ゲームプログラムが記憶された記憶媒体としてのCD-ROM１３と、ゲームの起動用のROM１４と、バス制御を行うバスアービタ１５と、レンダリングを実行するレンダリングプロセッサ１６と、グラフィックメモリ１７と、グラフィックデータのデジタル−アナログ変換を行うビデオDAC１８と、オーディオプロセッサと、オーディオメモリ２０と、オーディオデータのデジタル−アナログ変換を行うオーディオDAC２１と、バスアービタの制御下におかれるモデム２２とから構成される。ゲーム装置は、モデム２２から通信回線を介して、インターネットプロバイダと接続する。
【００１８】
図３は、本発明の実施の形態において例示されるコンピュータゲームを説明するための図である。本実施の形態では、画面内の盤面１００において、碁盤の目状に区切られた升目を多数のネズミキャラクタ１０１とネコキャラクタ１０２が走り回る。キャラクタ１０１、１０２は、角、壁１０５にぶつかると進行方向を変える。なお、壁１０５にぶつかった場合は、キャラクタ１０１、１０２は、一方向例えば右方向に曲がる。また、プレイヤは、操作により升目に矢印１０３を置くことができる。キャラクタ１０１、１０２は、その矢印１０３の升目に来ると、矢印方向に進行方向を変える。
【００１９】
そして、プレイヤ一人に対して一つの升目が与えられ、そこに穴１０４が設定される。そして、プレイヤは、相手プレイヤより多くのネズミキャラクタ１０１を自分の穴に落とすことを競う。そのために、プレイヤは、自分の穴にネズミキャラクタ１０１を誘導するように、矢印を置く操作を行う。なお、矢印１０３は、一人のプレイヤにつき、例えば３つまで置くことができる。従って、４つめの矢印を置くと、最も古い矢印が消える。１ステージは、例えば３分であって、その間にネズミキャラクタ１０１が各プレイヤの穴１０４に落ちた数が得点として表示される。
【００２０】
また、このゲームでは、ネコキャラクタ１０２が穴に落ちると、既に穴に落ちたネズミキャラクタ１０１の数が所定の割合で減る（例えば３分の２減）。従って、プレイヤが相手プレイヤの穴にネコキャラクタ１０２を誘導するように矢印を置くことも戦術の一つである。
【００２１】
このようなゲームを、ネットワークを介して、複数のプレイヤで対戦する場合、上述したような通信遅延があると、あるプレイヤによる矢印を升目に置く操作に対応する処理時刻が各ゲーム装置によって異なると、各ゲーム装置の画面上で走り回るキャラクタの位置が異なってしまう。そうすると、各ゲーム装置において進行するゲームはそれぞれ異なり、対戦結果も各ゲーム装置によって異なってしまい、これでは、ネットワークを介した対戦ゲームを実施することができない。
【００２２】
従って、本発明の実施の形態は、通信遅延を有するネットワークを介して接続する複数のゲーム装置で進行するゲームが同じになるように、以下に説明するデータ処理方法を提供する。以下の説明では、図１に示したように、３台のゲーム装置Ａ、Ｂ及びＣがネットワークを介して接続して、ゲームが実行される場合について説明する。また、以下に説明するデータ処理方法は、図２における記録媒体１３に格納されるゲームプログラムによって提供され、CPU１０によって実行される。
【００２３】
図４は、本発明の実施の形態におけるデータ処理方法の処理フローチャートである。まず、ゲームを開始する前に、ステップＳ１Ａ、Ｓ１Ｂ、Ｓ１Ｃにおいて、各ゲーム装置間でテストデータを送信しあい、遅延時間が測定される。例えば、ステップＳ１Ａにおいて、ゲーム装置Ａは、ゲーム装置Ｂ、Ｃそれぞれに自己のＩＤを付したテストデータを送信する。ゲーム装置Ｂ、Ｃは、ゲーム装置Ａからのテストデータを受信すると、それぞれ自己のＩＤを付して、送信元のゲーム装置Ａにテストデータを送り返す。ゲーム装置Ａは、テストデータを送信して、それが返ってくるまでの時間を測定することにより、他のゲーム装置Ｂ、Ｃとの間の遅延時間を求めることができる。ゲーム装置Ｂ、Ｃにおいても同様の測定が行われる（ステップＳ１Ｂ、Ｓ１Ｃ）。各ゲーム装置は、1/60秒単位（１intという）でカウントするタイマーを内蔵し、タイマーのカウント値を使って、時間を測定することができる。
【００２４】
また、測定は複数回（例えば５０回）行われ、各ゲーム装置は、他のゲーム装置との間の平均遅延時間と最大遅延時間を取得する（ステップＳ２Ａ、Ｓ２Ｂ、Ｓ２Ｃ）。即ち、ゲーム装置Ａは、ゲーム装置Ｂ、Ｃそれぞれとの平均遅延時間と最大遅延時間を取得し（ステップＳ２Ａ）、ゲーム装置Ｂは、ゲーム装置Ａ、Ｃそれぞれとの平均遅延時間と最大遅延時間を取得し（ステップＳ２Ｂ）、ゲーム装置Ｃは、ゲーム装置Ａ、Ｂそれぞれとの平均遅延時間と最大遅延時間を取得する（ステップＳ２Ｃ）。
【００２５】
そして、各ゲーム装置によって取得された他のゲーム装置との平均遅延時間Dtavgと最大遅延時間DTmaxの情報（以下、遅延時間情報という）は、一つのゲーム装置に集められる。例えば、この遅延時間情報が集められるゲーム装置（以下、代表装置という）をゲーム装置Ａとすると、ゲーム装置Ｂ、Ｃは、それぞれの遅延時間情報を代表装置Ａに通知する（ステップＳ３Ｂ、Ｓ３Ｃ）。
【００２６】
代表装置Ａは、集められた遅延時間情報のうち最も長い最大遅延時間を、ゲーム開始後の基準遅延時間DTrefとして決定し、その時間DTrefを他のゲーム装置Ｂ、Ｃに通知する（ステップＳ４Ａ）。
【００２７】
次に、代表装置Ａは、他のゲーム装置Ｂ、Ｃに対して、各ゲーム装置のタイマーのカウント値の同期を取るためのリセット予告信号を送信する（ステップＳ５Ａ）。そして、代表装置Ａは、リセット予告信号送信から第一の時間Ｔ１（例えば数秒）経過後に、タイマーのカウント値を「０（ゼロ）」にリセットする（ステップＳ７Ａ）。
【００２８】
一方、ゲーム装置Ｂ、Ｃは、代表装置Ａからのリセット予告信号を、それぞれ遅延時間DTBA、DTCA経過後後受信する（ステップＳ６Ｂ、Ｓ６Ｃ）。このとき、各ゲーム装置Ｂ、Ｃは、リセット予告信号の遅延時間を、それぞれ上記ステップＳ２Ｂ、Ｓ２Ｃで取得したゲーム装置Ａとの最大遅延時間DTmaxBA、DTmaxCAと推定し、リセット予告信号を受信してから、上記第一の時間Ｔ１からそれぞれゲーム装置Ａとの平均遅延時間を差し引いた時間経過後に、それぞれのタイマーのカウント値を「０（ゼロ）」にリセットする（ステップＳ７Ｂ、Ｓ７Ｃ）。
【００２９】
図５を参照しながら、さらに具体的に説明する。図５は、ゲーム装置Ａ、Ｂ、Ｃの時間を同期させる方法を説明するためのタイミングチャートである。例えば、ゲーム装置Ｂは、リセット予告信号を受信すると、その遅延時間DTBAをゲーム装置Ａとの最大遅延時間ＤＴmaxBAと認識する。同様に、ゲーム装置Ｃは、リセット予告信号の遅延時間DTCAをゲーム装置Ａとの最大遅延時間ＤＴmaxCAと認識する。そして、ゲーム装置Ｂは、リセット予告信号を受信してから、（Ｔ１−ＤＴmaxBA）秒後にタイマーをリセットする。同様に、ゲーム装置Ｃは、リセット信号を受信してから、（Ｔ１−ＤＴmaxCA）秒後にタイマーをリセットする。これにより、ゲーム装置Ａ、Ｂ、Ｃのタイマ−は、ほぼ同時に「０（ゼロ）」にリセットされ、新たにカウントを開始する。
【００３０】
但し、各ゲーム装置における実際の遅延時間は、最大遅延時間ＤＴmaxであるとは限らない。従って、厳密には、各ゲーム装置のリセットタイミングが大きくずれている可能性があり、各ゲーム装置の時間は、正確に同期していない可能性がある。そこで、本発明の実施の形態では、リセットから第二の時間Ｔ２（例えば数秒）経過する間に行われる次の調整処理により、各ゲーム装置の時間をさらに正確に同期させる。
【００３１】
図４に戻って、代表装置Ａは、ステップＳ８Ａにおいて、リセットと同時にその時のカウント値「０」を含むカウント値信号を他のゲーム装置Ｂ、Ｃに送信する。また、ゲーム装置Ａは、リセット後の所定時刻におけるカウント値を含むカウント値信号を送信してもよい。
【００３２】
ゲーム装置Ｂ、Ｃは、それぞれ遅延時間経過後に、ゲーム装置Ａからのカウント値信号を受信すると、カウント値信号を受信したときの自己のタイマーのカウント値を読み出す（ステップＳ９Ｂ、Ｓ９Ｃ）。さらに、ゲーム装置Ｂ、Ｃは、（読み出したカウンタ値−カウンタ値信号のカウンタ値）を計算することにより、ゲーム装置Ａとの遅延時間を計算する。
【００３３】
そして、図５に示されるように、例えば、ゲーム装置Ｂにおいて計算された遅延時間ＤＴBAが、ゲーム装置Ａとの平均遅延時間ＤＴavgBAより所定時間（例えば、3〜4カウント（3〜4int））以上長い場合（図４のステップＳ１０Ｂ）、ゲーム装置Ｂは、タイマーのカウンタ値のカウントアップを、（遅延時間ＤＴBA−平均遅延時間ＤＴavgBA）だけ停止する（図４のステップＳ１１Ｂ）。ゲーム装置Ｃにおいても同様である（図４のステップＳ１０Ｃ、Ｓ１１Ｃ）。
【００３４】
上述において、ゲーム装置Ｂ、Ｃのタイマーリセットは、リセット予告信号を受信してから、（Ｔ１−DTmax）である。従って、ゲーム装置Ｂ、Ｃは、ゲーム装置Ａと同時又は先にリセットしているので、ゲーム装置Ａのカウント値を基準に、ゲーム装置Ｂ、Ｃのカウントアップを一時停止することによって、ゲーム装置Ｂ、Ｃのカウント値とゲーム装置Ａのカウント値を正確に同期させることができる。
【００３５】
このように、ステップＳ７Ａ、Ｓ７Ｂ、Ｓ７Ｃにおけるタイマーリセットによって、各ゲーム装置の時間はある程度同期する。そして、各ゲーム装置の時間をさらに正確に同期させるために、リセット後において、代表装置以外のゲーム装置（Ｂ、Ｃ）は、代表装置Ａからのカウンタ値信号の遅延時間をそれぞれのタイマーのカウント値に基づいて求め、その遅延時間と平均遅延時間とを比較する。そして、求められた遅延時間が平均遅延時間より所定時間以上大きい場合、タイマーのカウントアップを（遅延時間−平均遅延時間）分停止させ、カウント値を修正することで、タイマーによって計測される各ゲーム装置Ａ、Ｂ、Ｃの時間をほぼ正確に同期させることができる。
【００３６】
そして、第二の時間Ｔ２経過時に、各ゲーム装置Ａ、Ｂ、Ｃにおいて、ゲームが同時にスタートする（ステップＳ１２Ａ、Ｓ１２Ｂ、Ｓ１２Ｃ）。ある一のゲーム装置におけるプレイヤの操作（例えば、図３のコンピュータゲームにおいて、矢印を所定の升目に置く操作）に対応する操作データ信号は、一のゲーム装置で処理されるとともに、他のゲーム装置にも送信され、他のゲーム装置でも処理される。このとき、操作データ信号は、上述したように、一のゲーム装置及び他のゲーム装置において同時に処理される必要がある。
【００３７】
図６は、操作データ信号のフォーマットの例を示す図である。図６に示されるように、操作データ信号は、ヘッダ部３０に、送信元のゲーム装置の操作データ送信時におけるカウンタ値情報と、送信元のゲーム装置で操作するプレイヤの数情報とを含む。そして、データ部４０は、プレイヤ毎の操作データで構成され、操作データは、例えば、カーソルの位置情報や矢印の位置情報などを含む。
【００３８】
図１に示したように、本発明の実施の形態におけるコンピュータゲーム装置は、１台のゲーム装置に複数のプレイヤがネットワークを介した対戦型コンピュータゲームに参加することができる（図１において、プレイヤｃ、ｄがゲーム装置Ｃを操作）。従って、１台のゲーム装置から送信される操作データ信号のデータ部４０には、複数のプレイヤに対応する操作データがプレイヤ毎に含まれる。従って、１台のゲーム装置で操作するプレイヤの数によって、操作データ信号のデータ長は異なる。また、操作データ信号を受信するゲーム装置は、送信元のゲーム装置を操作するプレイヤの人数を、ヘッダ部３０に含まれるプレイヤの数情報によって認識し、それによって、その後のデータ部４０の長さを認識することができる。この場合、１プレイヤに対応する操作データの長さは、データ量の大きさにかかわらず一定長さに設定される。
【００３９】
図７は、ゲーム進行中における各ゲーム装置の処理フローチャートである。図７（ａ）は、操作データ信号を受信する場合の処理であって、図７（ｂ）は、操作データ信号を送信する場合の処理である。
【００４０】
図７（ａ）において、ステップＳ２１において、ゲーム装置は操作データ信号を受信すると、ステップＳ２２において、操作データ信号に含まれるカウント値と、受信時における自己のタイマーのカウント値を比較することによって、遅延時間DTを計算する。さらに、ステップＳ２３において、ゲーム装置は、基準遅延遅延時間DTrefと計算された遅延時間との差分時間を計算する。そして、ステップＳ２４において、ゲーム装置は、操作データ信号を受信したときから差分時間経過後に操作データ信号を処理する。
【００４１】
また、図７（ｂ）において、ステップＳ３１において、ゲーム装置は操作データ信号を送信すると、ステップＳ３２において、基準遅延時間DTref経過後に操作データ信号を処理する。
【００４２】
図５に戻って、例えば、ゲーム装置Ｃから送信される操作データ信号の各ゲーム装置におけるデータ処理について説明する。まず、ゲーム装置Ｃは、送信した操作データ信号をすぐに処理せず、送信時の時刻（カウント値）から基準遅延時間DTref経過時に操作データ信号を処理する。一方、ゲーム装置Ａ、Ｂは、ゲーム装置Ｃからの操作データ信号を受信すると、その受信時のカウント値を読み出し、それぞれ遅延時間DT（受信時のカウント値−操作データ信号に含まれるカウント値）を計算する。さらに、ゲーム装置Ａ、Ｂは、基準遅延時間と上記で求めた遅延時間DTとの差分時間（基準時間DTref−DT）をそれぞれ計算する。そして、操作データ信号を受信してから求められた差分時間経過後に、操作データ信号を処理する。
【００４３】
これにより、操作データ信号は、その送信時から基準遅延時間DTstd経過後に、各ゲーム装置Ａ、Ｂ、Ｃにおいて処理される。そして、各ゲーム装置Ａ、Ｂ、Ｃのタイマーのカウント値は、上述の同期処理によりほぼ一致しているので、操作データ信号は、設定された所定の基準遅延時間経過後に、各ゲーム装置Ａ、Ｂ、Ｃにおいて、一斉に同時に処理することができる。
【００４４】
上述のように、基準遅延時間は、各ゲーム装置間におけるそれぞれの最大遅延時間のうちで最も長い時間なので、全てのゲーム装置が、ある操作データ信号の送信時刻から基準遅延時間だけ待機することで、全てのゲーム装置は確実にその操作データ信号を受信することができる。このように、本発明では、同じ操作データ信号を全てのゲーム装置で同時に処理するために、全てのゲーム装置が同じ操作データ信号を受信するまで、操作データ信号の処理を待機する。その待機時間を測定するために、各ゲーム装置のタイマが計測する時間を同期させ、さらに、待機時間、即ち基準遅延時間が設定される。
【００４５】
ところで、図３に示したコンピュータゲーム画面に表示されるネズミキャラクタ、ネコキャラクタ、矢印、さらには、升目を有する盤面などの背景は、３次元仮想空間上のオブジェクトとして画像処理される。
【００４６】
図８は、本発明の実施の形態におけるコンピュータゲームのオブジェクトが配置される３次元仮想空間を示す図である。図８では、盤面１００、その上にいるネズミキャラクタ１０１ａ、１０１ｂ及びネコキャラクタ１０２のオブジェクトが３次元仮想空間上に配置されている。ネズミキャラクタ１０１ａ、１０１ｂ及びネコキャラクタ１０２は、それぞれ盤面１００上で進行方向（正面方向）を向いたオブジェクトとして与えられる。
【００４７】
図９は、図８の３次元仮想空間を所定の視点から見た画像の例を示す図である。本実施の形態のコンピュータゲームでは、プレイヤの操作によってゲームが進行している場合、３次元仮想空間を視点Ａから見た画像、即ち、図９（ａ）に示されるように、盤面１００を真上から見た画像がモニタに表示される。また、ゲームが始まる前のデモンストレーションや、ゲーム中におけるステージとステージとの間においては、視点Ｂから見た画像、即ち、図９（ｂ）に示されるように、盤面を斜め上から見た画像がモニタに表示される。
【００４８】
このとき、図９（ａ）に示す画像のように、盤面１００の真上からの画像は、プレイヤにとって、盤面全体におけるキャラクタの動きが最も見やすい画像である。従って、ゲーム進行中の画像として最適であるが、盤面１００上のネズミキャラクタ１０１ａ、１０１ｂ及びネコキャラクタ１０２の頭部しか表示されず、キャラクタの姿形状がわかりにくいのが欠点である。
【００４９】
そこで、本発明の実施の形態では、盤面１００の真上にある視点（図８の視点Ａ）から見た画像を表示する場合、キャラクタの向きが所定角度（例えば４５度）傾けられる。
【００５０】
図１０は、キャラクタの向きを説明する図である。ネズミキャラクタを例示するが、ネコキャラクタも同様に傾けられる。図１０（ａ）は、ネズミキャラクタを側面から見た図であって、ネズミキャラクタは、通常の向きである正面を向いている。この向きにおいて図７の視点Ａから見たネズミキャラクタは、図１０（ｂ）のように見える。図１０（ｃ）は、正面上方向に傾けられたネズミキャラクタの側面図である。そして、この向きのネズミキャラクタを図８の視点Ａから見ると、図１０（ｄ）のように見える。図１０（ｂ）と比較して、明らかに、ネズミキャラクタの全体像がよりわかりやすく表現されている。また、図１０（ｅ）は、ネズミキャラクタを正面から見た図であって、ネズミキャラクタは横方向に傾けられている。そして、この向きのネズミキャラクタを図８の視点Ａから見ると、図１０（ｆ）のように見える。図１０（ｂ）と比較して、明らかに、ネズミキャラクタの全体像がわかりやすく表現される。
【００５１】
本発明の実施の形態では、上述のように、キャラクタの真上に視点がある場合、キャラクタを所定方向に所定角度傾ける。これにより、ゲーム進行中でも、キャラクタの姿形状をわかりやすく表示することができる。また、傾けられる方向は、キャラクタの移動方向によらず、一方向に固定されてもよい。例えば、図９（ａ）において、キャラクタは、図面における上方向（矢印Ｘ方向）に傾けられるものとする。そうすると、ネズミキャラクタ１０１ａは、図１０（ｃ）のように正面上方向に傾くので、図１０（ｄ）のように表示される。また、ネズミキャラクタ１０１ｂは、図１０（ｅ）のように横方向（図１０（ｅ）では左方向）に傾くので、図１０（ｆ）のように表示されることになる。
【００５２】
このように、本発明の実施の形態では、３次元仮想空間内の視点座標の位置に応じて、オブジェクトの向きが変わる。これにより、ゲーム画面に表示されるオブジェクト（キャラクタ）をよりわかりやすく表示することができる。
【００５３】
（別の実施の形態）
ところで、図１の各ゲーム装置Ａ、Ｂ、Ｃは、上述のようなネットワーク対戦ゲームを開始する前に、互いに、対戦相手のゲーム装置を認識する必要がある。そのために、プレイヤは、ゲーム開始前に、まず、ネットワーク対戦ゲームを管理するサーバ（以下、ネットワークサーバという）に、ネットワークシステムにおいてクライアントとなるゲーム装置を接続し、そのネットワークサーバに登録する。これにより、対戦グループが構成される。このように、ネットワーク対戦ゲームを希望するプレイヤは、まず、このネットワークサーバと接続する。
【００５４】
図１１は、本発明の実施の形態におけるネットワークサーバのブロック構成図である。図１１において、ネットワークサーバは、主サーバ１、複数の副サーバ２ａ、２ｂ、２ｃ、２ｄ及び共有メモリ３を備える。また、図１２は、ゲーム装置におけるネットワークサーバへの登録手順のフローチャート、図１３は、各手順におけるゲーム装置での表示画面例を示す図である。図１１、図１３を参照しながら、図１２について説明する。
【００５５】
まず、ステップS101において、プレイヤは、コンピュータゲームプログラムを格納した記録媒体（例えばCD-ROM）をゲーム装置に設定し、コンピュータゲームプログラムを起動させる。ゲームプログラムが起動すると、まず、図１３のゲームモード選択画面M1が表示される。ゲームモード選択画面には、例えば、ゲーム装置内での対戦である「4 Players Battle」、希望するステージを選んで対戦する「Stage Challenge」、ネットワーク対戦モードである「Network Battle」などが表示される。プレイヤは、コントローラを操作して「Network Battle」を選択する（ステップS102）。
【００５６】
ネットワーク対戦モードが選択されると、ネットワーク対戦に参加する人数の選択画面M2（図１３）が表示される。プレイヤは、コントローラを操作して、参加人数を選択する（ステップS103）。参加人数が複数の場合は、複数のプレイヤのうちの一人がコントローラを操作して、参加人数を選択する。ゲーム装置には、プレイヤが操作するためのコントローラを複数（例えば４つ）接続することが可能である。従って、１台のゲーム装置から複数のプレイヤがネットワーク対戦ゲームに参加する場合が想定される。
【００５７】
従来では、ネットワークを介さずにゲーム装置内で行われる対戦ゲームでは、１台のゲーム装置に接続する複数のコントローラを利用することによって、複数のプレイヤが対戦可能である。一方、ネットワーク上では、ネットワークサーバは、それに接続するゲーム装置を識別するだけで、そこに接続するコントローラの数（又はプレイヤの数）まで認識することはできない。
【００５８】
即ち、従来、ネットワークを介した対戦ゲームにおいては、１台のゲーム装置とネットワークサーバとの間に作成される接続は１本であり、ネットワークサーバは、ゲーム装置に接続するコントローラやプレイヤの数を認識できない。そのため、１台のゲーム装置から１人のプレイヤしかネットワークを介した対戦ゲームに参加できなった。
【００５９】
そこで、本発明の実施の形態では、１台のゲーム装置からネットワーク対戦ゲームに参加するプレイヤの数をあらかじめネットワークサーバに通知する。これにより、１台のゲーム装置とネットワークサーバとの間の接続が１本であっても、ネットワークサーバに１台のゲーム装置から参加するプレイヤの数を認識させることでき、１台のゲーム装置から複数のプレイヤのネットワーク対戦ゲームへの参加を可能にする。なお、参加人数の選択は、上記ステップS103で行われる場合に限られず、参加人数をネットワークサーバに通知するまでのどの段階で行われてもよい。
【００６０】
参加人数が選択されると、ゲーム装置は、モデムを介して、インターネットプロバイダに電話をかけて（ステップS104）、インターネットプロバイダ経由でネットワークサーバに接続要求を通知する。接続要求には、プレイヤのID及びパスワードなど１人のプレイヤの識別情報が含まれる。TCP/IPプロトコルを利用したインターネットが利用される場合、IPアドレス及びポート番号を指定することによって、接続相手を特定することができる。ゲーム装置は、まず、主サーバ１のIPアドレスとポート番号を指定することによって、ネットワークサーバの主サーバ１と接続する。ゲーム装置には、あらかじめ主サーバ１のIPアドレスとポート番号が記憶される。ここでは、IPアドレスは、ネットワークサーバを識別し、ポート番号は、そのなかの各サーバを識別する。なお、図１１では、主サーバと副サーバは、１つのネットワークサーバ内でソフトウェア的に区分されたものとして示される。なお、主サーバと副サーバが別々のシステムである場合、それぞれの別のIPアドレスが与えられる。
【００６１】
ここで、TCP/IPについて、簡単に説明する。図１４は、TCP/IPプロトコルの階層を示す図である。図１４において、TCP/IPプロトコルは、５層構造を有する。OSI参照モデルと比較すると、TCPは、コネクション型のデータリンクを提供するプロトコルであって、上位のアプリケーションに対してストリーム型のインターフェースであって、ネットワーク上の離れたプロセス間での接続を確立するトランスポート層に対応する。また、IPは、ネットワーク上でデータを転送するネットワーク層に対応し、データが転送されるネットワーク上の２点をIPアドレスで表現する。TCPの上位層は、アプリケーション層であって、IPの階層は、インターフェース層及び物理層である。下位層として、イーサネットやFDDIなどが知られている。
【００６２】
また、TCP/IPプロトコルのアプリケーション層に含まれるソケットは、TCP上でプロセス間通信によるデータ送受信を行うアプリケーションを作成するためのアプリケーション・プログラミング・インターフェース（API）であって、より詳しくは、OSI参照モデルにおけるセッション層に対応する。ソケットは、プロセスのユーザがその環境（システムやネットワークなど）を意識することなく、プロセス間通信をあたかもファイルの入出力と同じように処理できる環境を提供する。そして、接続される２つのプロセス（本実施の形態では、ゲーム装置とネットワークサーバ）がソケット（通信の入出力口）を作成し、ソケット間でデータ信号が送受信される。
【００６３】
図１２に戻って、ゲーム装置からの接続要求は、ネットワークサーバにおける主サーバ１によって、受付処理され、さらに認証処理される（ステップS201）。このように、主サーバ１は、ゲーム装置からの接続要求に対する受付処理及び認証処理を実行するサーバである。主サーバ１は、接続要求を受け付けると、それにあらかじめ登録されたユーザ情報と通知された識別情報とに基づいて、認証処理を実行する。正当なプレイヤであると認定されると、主サーバ１は、ゲーム装置に対して、接続応答とともに副サーバ２の情報を通知する。これにより、ゲーム装置とネットワークサーバとの接続が確立する（ステップS105）。
【００６４】
副サーバ２の情報は、例えば、各副サーバ２の名称、IPアドレス、ポート番号及び現在の登録人数の情報などである。現在の登録人数の情報は、後述するように、共有メモリ３に格納される。主サーバ１は、共有メモリ３から各副サーバ２の現在の登録人数の情報を読み出す。副サーバ２は、実際に実行されるネットワーク対戦ゲームを管理するためのサーバであって、プレイヤが副サーバに登録されることで、対戦グループが形成される。
【００６５】
ネットワークサーバと接続すると、ゲーム装置には、サーバの案内画面M3が表示される。画面M3には、副サーバ２の名称が表示される。プレイヤ（参加人数が複数の場合は、複数のプレイヤのうちの一人）は、コントローラを操作して一つの副サーバを選択する（ステップS106）。なお、１つの副サーバに登録可能なプレイヤの数はサーバの容量に応じて決められている。従って、最大人数が既に登録されている副サーバ２が選択された場合は、選択不可能である旨が表示される。また、プレイヤは、コントローラを操作して、各副サーバの現在の登録人数又はそれに基づいた接続の可否情報を表示させることもできる。
【００６６】
副サーバ２が選択されると、主サーバ１は、ゲーム装置との接続を、選択された副サーバ２に切り替える（ステップS202）。具体的には、主サーバ１は、ゲーム装置から選択された副サーバが通知されると、選択された副サーバ２のIPアドレス及びポート番号をゲーム装置に通知する。
【００６７】
また、副サーバが選択されると、選択された副サーバのIPアドレスとポート番号を用いて、選択された副サーバに接続要求が通知される。選択された副サーバは、その接続要求を受け付け処理すると（ステップS202）、選択された副サーバ２内で区分けされた複数の登録領域（以下、部屋と称する）の情報をゲーム装置に通知する。例えば、ネットワーク対戦ゲームの最大対戦可能人数が４人である場合、副サーバ２には、４人分のプレイヤを登録するための部屋が複数用意される。ゲーム装置には、部屋の案内画面M4（図１３）が表示される。なお、この情報は、主サーバ１から通知される副サーバの情報に含まれてもよい。この場合は、副サーバが選択されたとき、副サーバに対する接続要求は行う必要はない。
【００６８】
プレイヤは、コントローラを操作して、一つの部屋を選択する（ステップS107）。部屋が選択されると、選択された部屋と参加人数が、ゲーム装置から選択された副サーバに通知される。そして、選択された副サーバは、通知された部屋に、参加人数分のプレイヤを登録する（ステップS203）。選択された副サーバは、選択された部屋に登録されたプレイヤの情報をゲーム装置に通知する。登録されたプレイヤの情報は、例えば、プレイヤの名称、及び各プレイヤのゲーム装置のIPアドレス及びポート番号である。このようにして、各ゲーム装置は、対戦相手のゲーム装置のIPアドレスとポート番号を取得する。
【００６９】
選択された部屋に登録されたプレイヤの情報が画面M5（図１３）に表示される。図１３の画面M5において、例えば、一台のゲーム装置から２人参加する場合、プレイヤ名称として、プレイヤＸ１、プレイヤＸ２のように表示される。ネットワークサーバは、一つのゲーム装置に対して、１人のプレイヤの識別情報しか登録していないからである。そして、選択された部屋に登録されたプレイヤのうちの一人が、コントローラを操作して、画面Ｍ５のスタートボタンを選択することで、ゲームが開始される（ステップS108）。
【００７０】
なお、選択された部屋に、既に最大対戦可能人数（例えば４人）が登録されている場合、又は、参加人数が２人において、２人登録すると最大対戦可能人数を超えてしまう場合、又は、既にゲームが開始されている場合などは、プレイヤは、選択した部屋に登録することはできない。プレイヤは、コントローラを操作して、既に登録されている人数や、ゲーム進行中かどうかなどの各部屋の状態を表示させることができる。
【００７１】
また、副サーバ２の部屋は、階層構造であってもよい。例えば、副サーバは、複数の種類のネットワーク対戦ゲームやチャットなどを管理するサーバであって、ゲームの種類毎の大部屋及びチャットのための大部屋を有し、その大部屋の下に、さらに複数の小部屋が設定されてもよい。
【００７２】
また、上記各画面M2〜M5には、「出る」という項目が表示される。これを選択することで、一つ前の画面に戻ることができる。従って、「出る」を選択すると、副サーバの部屋が階層構造である場合、一つ上の階層に戻る。また、画面M4において、「出る」が選択されると、画面M3に戻る、即ち、ゲーム装置は、再度主サーバ１と接続する。プレイヤは、例えば、遠隔の友人が他の副サーバに含まれる部屋に登録している場合などに、登録する副サーバを変更する場合がある。このような場合、従来は、プレイヤは、画面M4の「出る」を選択して、一旦、主サーバ１との接続に切り替え、画面M3により、他の副サーバを選択する必要があった。
【００７３】
しかしながら、副サーバの変更が頻繁に起きると、次のような問題点がある。即ち、主サーバ１のオペレーティングシステム（より一般的にはソフトウェア）の能力により、主サーバ１への接続要求を一回に処理できる数に限界がある。そのため、一時的に、主サーバの接続要求処理能力を超える数の接続要求が主サーバ１に集中すると、主サーバ１は、接続要求を受け付けなくなるので、ゲーム装置は、主サーバ１と接続することができなくなる。
【００７４】
図１５は、従来のネットワークサーバのブロック構成図である。図１５において、従来においては、複数の副サーバ２は、主サーバ１と接続し、主サーバ１に自己の情報を通知する。一方、各副サーバ２間は接続されていないので、各副サーバ２は、他の副サーバに関する情報を取得することができない。それゆえ、ゲーム装置が接続する副サーバを切り替えるときに、ゲーム装置は、一旦、主サーバに再接続する必要があった。このように、従来のネットワークサーバは、主サーバ１に接続要求が集中する構造である。
【００７５】
従って、主サーバ１への接続要求の数をできるだけ減らすことが望ましい。そこで、本発明の実施の形態では、ゲーム装置の接続が、以前に選択された副サーバから他の副サーバに直接切り替えられる。そのために、図１１におけるネットワークサーバに共有メモリ３が設けられる。
【００７６】
共有メモリ３は、複数の副サーバ２それぞれの稼動状態及び登録人数など各副サーバに関する情報が格納される。各副サーバ２に関する情報は、それぞれ自分自身によって定期的（例えば、0.5秒毎）に更新される。
【００７７】
共有メモリ３には、主サーバ１及び複数の副サーバ２それぞれがアクセス可能である。主サーバ１は、全ての副サーバ２に関する情報を共有メモリ３から読み出す。また、各副サーバ２は、自己以外の他の副サーバ２に関する情報を共有メモリ３から読み出す。全てのサーバからアクセス可能な共有メモリを設けることにより、各サーバを１対１で接続することなく、他のサーバの情報を取得することができるようになる。
【００７８】
図１６は、共有メモリ３の領域を模式的に例示する図である。図１６に示されるように、各副サーバ２に関する情報は、例えばマトリックス状に記憶される。図１６において、４つの副サーバ２ａ、２ｂ、２ｃ、２ｄは、自己の行に、自己の現在の登録人数を、他の副サーバの列に対して書き込む。そして、各副サーバ２ａ、２ｂ、２ｃ、２ｄは、それぞれ自分の列に書き込まれた他の副サーバに関する情報を読み込む。このように、各副サーバ２ａ、２ｂ、２ｃ、２ｄが読み込む領域が異なるので、同時に複数の副サーバが、情報の読み込みのために共有メモリ３にアクセスした場合であっても、同時に読み込むことができる。また、主サーバ１は、共有メモリ３の主サーバ１の列から、各副サーバに関する情報を読み込む。
【００７９】
情報が読み出されると、次の情報に更新するまでの間、読み出された領域の値は、読み出された状態である旨の数値（例えば「−１」）となる。これにより、副サーバが何らかの障害により、情報を書き込めない場合は、共有メモリ３の領域は、読み出された状態のままとなる。そうすると、他のサーバは、その副サーバが故障中であると認識する。
【００８０】
図１３に戻って、画面M4には、本発明に特徴的な「他のサーバに移る」という項目が表示される。これを選択すると、選択されている副サーバ２は、上記共有メモリ３の自分の列から他の副サーバに関する情報を読み込み、それをゲーム装置に通知する。副サーバに関する情報は、上記同様に、副サーバの名称、IPアドレス、ポート番号及び登録人数などの情報である。各副サーバは、他の副サーバのIPアドレスとポート番号の情報をあらかじめ記憶している。
【００８１】
そして、ゲーム装置には、他の副サーバの案内画面M4-1が表示される。画面M4-1は、自分以外の他の副サーバの名称が表示される。そして、上記ステップS106同様に、プレイヤによって、一つの副サーバが選択されると、選択された副サーバのIPアドレスとポート番号を用いて、選択された副サーバに対して接続要求が通知される。以降、図１２と同様の処理が実行される。
【００８２】
このように、各副サーバに関する情報を格納し、各副サーバがアクセス可能な共有メモリ３を設けることにより、各副サーバは、自己以外の他の副サーバの状態を知ることができるようになる。従って、現在接続している副サーバから、他の副サーバに関する情報をゲーム装置に通知できるようになるので、ゲーム装置の接続を、副サーバ間で直接切り替えることができる。即ち、従来のように、ゲーム装置を主サーバ１と再度接続させる必要がなくなるので、主サーバ１に対する接続要求の数を削減することができる。これにより、主サーバ１が、その接続要求受付能力を超えて、接続要求を受ける可能性が低減されるので、ゲーム装置からの接続要求を主サーバ１が拒否する場合がほぼなくすことができる。これは、ネットワークを利用するプレイヤへのサービス向上に寄与する。
【００８３】
さらに、１台のゲーム装置からネットワーク対戦ゲームに参加するプレイヤの人数が複数であっても、ゲーム装置とネットワークサーバとの間の接続は１本、即ち、作成されるソケットは１つである。そのために、上述のように、１台のゲーム装置からの参加人数が、ネットワークサーバ（具体的には、選択された副サーバ）にあらかじめ通知され、且つ、上記図６で示したように、複数のプレイヤ分のデータは、１つのソケットを使って、１つのデータ信号で送信される。
【００８４】
参加人数分の接続を確立（ソケットを作成）してもよいが、参加人数分の接続要求が必要となり、上述した接続要求受付能力についての問題が生じる。そのため、本実施の形態では、１台のゲーム装置からの参加人数にかかわらず、１台のゲーム装置とネットワークサーバとの接続を１本（ソケット１つ）とすることにより、主サーバ１の接続要求受付処理の負担が軽くなる。これにより、主サーバ１での処理遅延を解消することができ、サービス向上に寄与する。
【００８５】
（更なる別の実施の形態）
また、ネットワークにおける通信遅延は、次のような場合においても問題となる。例えば、複数のプレイヤ間で、ネットワークを介したクイズゲーム（以下、ネットワーククイズゲーム）が行われる場合において、正解数（又は正解率）に加えて、クイズ問題の解答時間を考慮して、順位を決定する場合である。
【００８６】
図１７は、主サーバに通信回線を介して複数のゲーム装置が接続するネットワークを示す図である。主サーバ１と各ゲーム装置との間の通信時間は、主サーバ１と各ゲーム装置との間の地理的距離、回線状況（混雑程度）、通信速度、通信機器の性能などによってそれぞれ異なる。また、各ゲーム装置は、地理的に離間されて配置されてもよい。例えば、互いに地理的に離れたＡ店、…、Ｚ店に少なくとも１台のゲーム装置が配置される。
【００８７】
ネットワーククイズゲームの場合、主サーバ１から、ゲーム情報として複数のクイズ問題が各ゲーム装置に配信される。プレイヤは、ゲーム装置の画面に順次表示される各問題に解答する。各ゲーム装置における解答は、主サーバ１に送信される。又は、各ゲーム装置において、解答の正解／不正解を判定し、正解である場合に、その旨の情報が送信されてもよい。主サーバ１は、各プレイヤの正解数（又は正解率）に基づいて、勝敗及び／又は順位を決定する。
【００８８】
このとき、正解数（又は正解率）の同じプレイヤが複数いる場合が想定される。このような場合、各プレイヤにおけるクイズゲームの全問題の解答時間を比較し、解答時間のより短いプレイヤの方を上位の順位に決定する方法がある。
【００８９】
この解答時間（応答時間）を、主サーバ１で計測すると、ネットワークにおける通信時間のずれにより、正確な解答時間を計測できないという問題がある。主サーバ１は、各ゲーム装置に問題を配信してから、各ゲーム装置からの解答情報又は正解情報を受信するまでの時間を解答時間として計測する。このとき、主サーバ１と各ゲーム装置との間の通信時間が全て同じであるならば、ゲーム装置間における上記配信から受信までの時間の差は、各ゲーム装置に問題が表示されてプレイヤが解答するまでの本来の解答時間を反映する。
【００９０】
しかしながら、主サーバ１と各ゲーム装置との間の通信時間は、上述のようにそれぞれ異なるので、各ゲーム装置間における上記配信から受信までの時間は、本来の解答時間を正確に反映しない。あらかじめ、主サーバ１と各ゲーム装置間の通信時間を測定しておいてもよいが、クイズゲーム実施中において、回線の混雑状況の変化などによって、通信時間が変化する可能性がある。このように、各ゲーム装置における解答時間は、主サーバ１では計測することができない。
【００９１】
そこで、本発明の実施の形態では、各ゲーム装置自身が、各問題の解答時間を計測し、解答又は正解／不正解の情報とともに、解答時間を主サーバ１に通知する。なお、解答時間（応答時間）は、例として、サーバから配信されるクイズ問題の受信開始若しくは受信完了から、プレイヤが解答の入力を開始若しくは完了するまでの時間であってもよいし、プレイヤが解答可能になったとき（例えば、クイズ問題が画面に表示されたとき）から、プレイヤが解答の入力を開始若しくは完了するまでの時間であってもよい。
【００９２】
図１８及び図１９は、本発明の実施の形態におけるネットワーククイズゲームのフローチャートである。図１８において、各ゲーム装置は、ネットワーククイズゲームが実施されていない間は、各ゲーム装置単体で通常のクイズゲームを提供する（Ｓ４００（通常クイズモード））。即ち、プレイヤは、ゲーム装置に表示される所定数のクイズを解答し、できるだけ高い正解率を目指す。
【００９３】
ネットワーククイズゲームが実施される場合、まず始めに、主サーバ１が、各ゲーム装置に対して、ネットワーククイズゲームを所定時間後に開催する旨を通知するエントリ開始信号を通知する（Ｓ３００）。各ゲーム装置は、エントリ開始信号を受信すると、エントリー受付画面を表示する（Ｓ４０１）。各ゲーム装置が、エントリ開始信号を受信したときに、ゲーム装置単体による通常のクイズゲームが実施されている場合は、それが終了次第、エントリ受付画面に切り替わる。
【００９４】
図２０は、エントリ受付画面の例である。ネットワーククイズゲーム参加希望のプレイヤは、所定金額のコインを投入したあと、エントリ受付画面に表示される文字を選択して、名前を入力する（Ｓ４０２）。ゲーム装置の画面は、例えば、タッチパネルであって、プレイヤは、表示されている文字を接触することにより、文字を選択してもよい。また、プレイヤは、操作レバーによって表示されている文字を選択してもよい。
【００９５】
図１８において、プレイヤが、エントリ受付締切までに名前を入力し、終了ボタンを選択すると、ゲーム装置は、エントリ作業終了信号を主サーバ１に送信する。エントリ作業終了信号は、入力されたプレイヤの名前、ゲーム装置が配置されている店情報、ゲーム装置識別情報などを含む。
【００９６】
主サーバ１は、エントリ作業信号を受信すると、エントリの有ったゲーム装置を確認する（Ｓ３０１）。エントリ受付締切の所定時間（例えば２分）前になると、各ゲーム装置に、締切２分前を通知する（Ｓ３０２）。各ゲーム装置は、締切２分前信号を受信すると、図２０のエントリ受付画面に、受付締切までの残り時間をカウントダウン表示する（Ｓ４０３）。各ゲーム装置は、エントリ受付締切までの残り時間がなくなると、エントリの受付を締め切り（Ｓ４０４）、エントリ受付終了信号を主サーバ１に送信する。エントリ受付終了信号は、エントリ作業終了信号と同様に、エントリしたプレイヤの名前、店情報、ゲーム装置識別情報を含む。なお、エントリのなかったゲーム装置は、プレイヤの名前に変わって、エントリなし情報を含むエントリ受付終了信号を送信する。
【００９７】
主サーバ１は、全てのゲーム装置からエントリ受付終了信号を受信すると、全てのゲーム装置からエントリ有りのゲーム装置を分別し、エントリ有りの各ゲーム装置及びそのプレイヤ名を最終確認する（Ｓ３０３）。このとき、主サーバ１は、エントリ有りのゲーム装置に対して、仮想の司会キャラクタによるクイズゲームの説明映像を配信する（Ｓ３０４）。各ゲーム装置は、説明映像を表示し（Ｓ４０５）、それが終了すると、説明終了信号を主サーバ１に送信する。
【００９８】
主サーバ１は、エントリ有りのゲーム装置全てから説明終了信号を受信すると、クイズをスタートさせる。具体的には、クイズの問題数が全部で例えば３０問の場合、主サーバ１は、まず全３０問の問題とその正解をエントリ有りのゲーム装置にそれぞれ配信する（Ｓ３０５）。なお、主サーバ１からの配信は、全てのゲーム装置（又は、エントリ有りのゲーム装置全て）に対して同時に行われてもよいし、時分割的に順次行われてもよい。順次送信する場合、主サーバ１は、説明終了信号の受信に応じて、それを送信したゲーム装置に対して、問題とその正解を送信してもよい。なお、問題とその正解とともに、参加人数もゲーム装置に通知される。また、問題とその正解は、分割されて配信されてもよい。例えば、まず、最初の１０問が配信され、最初の１０問終了前に、次の１０問が配信され、さらに、その後、最後の１０問が配信されてもよい。
【００９９】
ゲーム装置は、問題とその正解を受信すると、クイズスタートまでの時間（例えば２０秒）をカウントダウン表示する（Ｓ４０６）。このとき、参加人数も表示される。これにより、プレイヤは、参加人数を知ることができる。クイズがスタートすると、図１９に移って、ゲーム装置は、まず、第一問の問題を選択する（Ｓ４０７）。
【０１００】
なお、このとき、ゲーム装置は、問題を表示すると、タイマによる時間計測を開始し、解答までの時間を計測する（Ｓ４０８）。プレイヤは、問題に対応する解答を、表示される複数の選択肢から一つ選択する。ゲーム装置の画面がタッチパネルの場合は、プレイヤは、選択する選択肢に接触する。又は、レバー操作により、選択肢を選択してもよい。図２１は、問題表示画面の例である。
【０１０１】
プレイヤにより解答が選択されると（Ｓ４０９）、ゲーム装置は、時間計測を停止し、解答時間を取得する（Ｓ４１０）。さらに、選択された選択肢の正誤を配信された正解から判定する（Ｓ４１０）。正解の場合、正解である旨を画面に表示するとともに、問題番号及び正解である旨を含む解答情報と、取得した解答時間を主サーバ１に送信する。このように、本発明の実施の形態では、各ゲーム装置が解答時間を計測し、それを主サーバ１に送信するので、主サーバ１と各ゲーム装置間に通信時間がそれぞれ異なっても、主サーバ１は、各ゲーム装置における正確な解答時間を取得することができる。
【０１０２】
一方、不正解の場合は、不正解である旨を画面に表示し、その問題番号と不正解である旨を含む解答情報のみを送信し、解答時間は送信しない。また、一問解答するのにあらかじめ与えられた所定時間を超えても、選択肢が選択されたなかった場合も（タイムオーバー）、不正解とみなされる。なお、正解判定は、主サーバ１で行ってもよい。この場合、主サーバ１は、問題のみ各ゲーム装置に送信し、各ゲーム装置は、各問題について、選択された解答とその解答時間を主サーバ１に送信する。主サーバ１は、各ゲーム装置毎に受信した解答の正解／不正解判定を行い、正解の場合にのみ、受信した解答時間を積算する。
【０１０３】
主サーバ１は、解答情報（正解又は不正解）及び正解の場合における解答時間を受信すると、それらを集計して、一問ごとに順位を計算する（Ｓ３０６）。正解数が同じである場合は、解答時間の合計が小さいプレイヤの順位を上位とする。順位が決定されると、主サーバ１は、各ゲーム装置に対して個別の経過順位を通知する（Ｓ３０８）。また、ゲーム装置が配置される店に順位を表示するための別の表示装置が配置されている場合（図１７の「順位表示装置）参照）、主サーバ１は、順位表示装置に対して、例えば、上位１０人のプレイヤとその経過順位を送信する。順位表示装置は、各ゲーム装置を操作するプレイヤから見える位置に配置され、プレイヤは、自己の順位とは別に、各問毎に上位順位のプレイヤ名を知ることができる。
【０１０４】
ゲーム装置は、主サーバ１から個別の経過順位を受信すると、図２１の順位表示部分にそれを表示するとともに、次の問題を選択し（Ｓ４１２）、上述のＳ４０８乃至Ｓ４１０の各処理を繰り返す。
【０１０５】
そして、クイズゲームを盛り上げるために、例えば、クイズゲームの終盤（最後の１０問）では、経過順位を送信しないようにしてもよい（もちろん、順位の計算は行われる）。即ち、演出上、順位は表示されない。また、逆転を可能にするために、一問正解に対するカウント数や解答時間を２倍にして、順位を決定してもよい。具体的には、主サーバ１は、通常（最後の１０問以外の問題）、一問正解に対して正解数を１カウントする場合において、最後の１０問の正解に対して一問正解に対して複数カウント（例えば２カウント）する。また、正解についての解答時間も所定倍（例えば２倍）にして、これまでの解答時間合計に積算する。これにより、通常の場合と比較して、解答時間の差が大きくなり、順位の逆転が起きやすくなる。
【０１０６】
全ての問題が終了すると（Ｓ３０７、Ｓ４１１）、主サーバ１は、最終順位を作成し、個別の最終順位を各ゲーム装置に通知し、さらに、最終順位上位のプレイヤ名とその順位を、順位表示装置に通知する（Ｓ３０９）。ゲーム装置は、最終順位を表示する（Ｓ４１３）。なお、最終順位情報の送信とともに、仮想の司会キャラクタによるクイズゲーム終了後の演出映像（上位順位プレイヤの発表など）が配信されてもよい。また、上位順位のプレイヤのゲーム装置とそれ以外のプレイヤのゲーム装置には、別の映像が配信されてもよい。そして、  ゲーム装置は、最終順位表示してから所定時間経過後、通常クイズモード画面に戻る。
【０１０７】
順位の決定方法は、正解数（上述のように、一問正解に対するカウント数が問題によって異なる場合は、正解カウント数）が同じである場合に、解答時間合計が短いプレイヤの順位を上位にする方法の他に、例えば、解答時間に応じて正解に対するポイント数を変える方法でもよい。例えば、問題表示後、５秒以内に解答した場合は、１００ポイント、１０秒以内の場合は、８０ポイント、１５秒以内の場合は、６０ポイントのように、解答時間が長くなるに従って、ポイント数を減少させてもよい。この場合、ポイントの合計で勝敗及び／又は順位が決定される。
【０１０８】
上述のように、ネットワークを介したクイズゲームにおいて、ゲーム装置がクイズの問題の解答時間を計測し、それを主サーバ１に送信する。これにより、主サーバと各ゲーム装置との通信時間がそれぞれ異なっても、クイズゲームを管理する主サーバは、各ゲーム装置における各問題毎の正確な解答時間を取得することができる。
【０１０９】
また、上記実施の形態は、ネットワーククイズゲーム以外の通信ゲームにも適用可能である。例えば、複数のプレイヤ間で、サーバから提示された文字入力を正確に行う速度を競うネットワーク対戦タイピングゲームや、複数のプレイヤ間で、サーバから提示された入力操作を正確に行う速度を競うネットワーク対戦モグラたたきゲームなど、ゲームが要求する入力操作をプレイヤがするまでの応答時間を競うゲームにも適用可能である。ネットワーク対戦タイピングゲームでは、ゲーム情報として所定の文字・符号などがサーバから配信され、例えば、プレイヤがその配信された文字・符号に対応する入力操作が可能になってから実際に入力操作を行うまでの応答時間が計測される。また、ネットワーク対戦モグラたたきゲームでは、ゲーム情報として画面上でモグラのキャラクタが出没する位置が配信され、例えば、モグラが画面上の表示されてからプレイヤがその位置に対応する入力操作を行うまでの応答時間が計測される。計測された応答時間は主サーバに送信され、応答時間の合計に基づいて勝敗及び／又は順位が決定される。この場合、応答時間の合計が少ないほど高い順位となる。
【０１１０】
本発明の保護範囲は、上記の実施の形態に限定されず、特許請求の範囲に記載された発明とその均等物に及ぶものである。
【図面の簡単な説明】
【０１１１】
【図１】ネットワークを介して接続するコンピュータゲーム装置の模式図である。
【図２】コンピュータゲーム装置のブロック構成図である。
【図３】本発明の実施の形態において例示されるコンピュータゲームを説明するための図である。
【図４】本発明の実施の形態におけるデータ処理方法の処理フローチャートである。
【図５】ゲーム装置Ａ、Ｂ、Ｃの時間を同期させる方法を説明するためのタイミングチャートである。
【図６】操作データ信号のフォーマットの例を示す図である。
【図７】ゲーム進行中における各ゲーム装置の処理フローチャートである。
【図８】本発明の実施の形態におけるコンピュータゲームのオブジェクトが配置される３次元仮想空間を示す図である。
【図９】図８の３次元仮想空間を所定の視点から見た画像の例を示す図である。
【図１０】キャラクタの向きを説明する図である。
【図１１】本発明の実施の形態におけるネットワークサーバのブロック構成図である。
【図１２】ゲーム装置におけるネットワークサーバへの登録手順のフローチャートである。
【図１３】図１２の各手順におけるゲーム装置での表示画面例を示す図である。
【図１４】TCP/IPプロトコルの階層を示す図である。
【図１５】従来のネットワークサーバのブロック構成図である。
【図１６】共有メモリ３の領域を模式的に例示する図である。
【図１７】主サーバに通信回線を介して複数のゲーム装置が接続するネットワークを示す図である。
【図１８】本発明の実施の形態におけるネットワーククイズゲームのフローチャートである。
【図１９】本発明の実施の形態におけるネットワーククイズゲームのフローチャートである。
【図２０】エントリ受付画面の例である。
【図２１】問題表示画面の例である。
【符号の説明】
【０１１２】
１  主サーバ
２  副サーバ
３  メモリ
１０  CPU
１１  ジオメトリプロセッサ
１３  記録媒体（CD-ROM）
１６  レンダリングプロセッサ
２２  モデム
【図１】
2007260410.tif 000003
【図２】
2007260410.tif 000004
【図３】
2007260410.tif 000005
【図４】
2007260410.tif 000006
【図５】
2007260410.tif 000007
【図６】
2007260410.tif 000008
【図７】
2007260410.tif 000009
【図８】
2007260410.tif 000010
【図９】
2007260410.tif 000011
【図１０】
2007260410.tif 000012
【図１１】
2007260410.tif 000013
【図１２】
2007260410.tif 000014
【図１３】
2007260410.tif 000015
【図１４】
2007260410.tif 000016
【図１５】
2007260410.tif 000017
【図１６】
2007260410.tif 000018
【図１７】
2007260410.tif 000019
【図１８】
2007260410.tif 000020
【図１９】
2007260410.tif 000021
【図２０】
2007260410.tif 000022
【図２１】
2007260410.tif 000023