JP2007260410A - データ処理方法 - Google Patents
データ処理方法 Download PDFInfo
- Publication number
- JP2007260410A JP2007260410A JP2007106820A JP2007106820A JP2007260410A JP 2007260410 A JP2007260410 A JP 2007260410A JP 2007106820 A JP2007106820 A JP 2007106820A JP 2007106820 A JP2007106820 A JP 2007106820A JP 2007260410 A JP2007260410 A JP 2007260410A
- Authority
- JP
- Japan
- Prior art keywords
- game
- player
- server
- game device
- time
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Abstract
【課題】通信ネットワークを介して接続する複数のコンピュータゲーム装置間に通信遅延が生じる場合であっても、各コンピュータゲーム装置間で、データがほぼ同時に処理されるデータ処理方法を提供する。
【解決手段】通信遅延を有するネットワークを介してコンピュータゲームの対戦が行われる場合、ゲーム開始前に、ゲーム装置間の遅延時間を求め、それに基づいて、各ゲーム装置がカウントする時間の同期が取られる。そして、ゲーム進行中は、操作データ信号は、その発生からあらかじめ測定したゲーム装置間の遅延時間のうち最も長い遅延時間経過後に処理される。これにより、複数のゲーム装置において、同時に操作データ信号を処理することができる。
【選択図】 図4
【解決手段】通信遅延を有するネットワークを介してコンピュータゲームの対戦が行われる場合、ゲーム開始前に、ゲーム装置間の遅延時間を求め、それに基づいて、各ゲーム装置がカウントする時間の同期が取られる。そして、ゲーム進行中は、操作データ信号は、その発生からあらかじめ測定したゲーム装置間の遅延時間のうち最も長い遅延時間経過後に処理される。これにより、複数のゲーム装置において、同時に操作データ信号を処理することができる。
【選択図】 図4
Description
本発明は、通信ネットワークを介して接続されたコンピュータゲーム装置におけるデータ処理方法に係り、特に、一の装置から入力されたデータを各装置において同時に処理するためのデータ処理方法に関する。
近年、通信機能を有する家庭用コンピュータゲーム装置が普及しつつある。このようなコンピュータゲーム装置は、インターネットなどのネットワークを介して、1台以上の別のコンピュータゲーム装置と接続することにより、互いに離れている各コンピュータゲーム装置のプレイヤとコンピュータゲームの対戦を楽しむことができる。
しかしながら、互いに離れたコンピュータゲーム装置を、インターネットなどのネットワークを介して接続する場合、通信の遅延が問題となる。即ち、ある一のコンピュータゲーム装置において、プレイヤの操作(キャラクタの移動や攻撃動作など)に対応して発生する操作データは、その一のコンピュータゲーム装置において処理されるとともに、他のコンピュータゲーム装置にも送信されて同様に処理される。このとき、一のコンピュータゲーム装置では、操作データはほぼ瞬時に処理されて、それに対応する画面が表示されるが、他のコンピュータゲーム装置では、その操作データは所定の送信時間を経て到達し、その後処理され、対応する画面が表示される。
このように、通信遅延が生じると、同じデータの処理時刻が各コンピュータゲーム装置で異なるため、ゲームが同時に進行しない。従って、各コンピュータゲーム装置のプレイヤは、ある時刻において、それぞれ異なるゲーム画面を見ながら操作することになるので、プレイヤは相手の操作に違和感を覚えたり、さらには、ゲーム結果がコンピュータゲーム装置ごとに変わってしまうという不都合が生じる。
従って、本発明の目的は、ネットワークを介して接続する複数のコンピュータゲーム装置間に通信遅延が生じる場合であっても、各コンピュータゲーム装置間で、データがほぼ同時に処理されるデータ処理方法を提供することである。
上記目的を達成するための本発明によれば、通信遅延を有するネットワークを介してコンピュータゲームの対戦が行われる場合、ゲーム開始前に、装置間の遅延時間を求め、それに基づいて、各装置がカウントする時間の同期が取られる。そして、ゲーム進行中は、操作データ信号は、その発生からあらかじめ測定した装置間の遅延時間のうち最も長い遅延時間経過後に処理される。これにより、複数の装置において、同時に操作データ信号を処理することができる。
上記目的を達成するために、本発明では、例えば、通信ネットワークを介して接続する複数のコンピュータゲーム装置間におけるデータ処理方法において、
複数の装置それぞれの間における遅延時間を測定する測定ステップと、
測定された遅延時間のうちの最長時間を取得する取得ステップと、
複数の装置でカウントされる時間を同期させる同期ステップと、
複数の装置において、各装置から送信されたデータを、その送信された時間から遅延時間の最長時間経過時に処理する処理ステップとを備えるデータ処理方法が提供される。
複数の装置それぞれの間における遅延時間を測定する測定ステップと、
測定された遅延時間のうちの最長時間を取得する取得ステップと、
複数の装置でカウントされる時間を同期させる同期ステップと、
複数の装置において、各装置から送信されたデータを、その送信された時間から遅延時間の最長時間経過時に処理する処理ステップとを備えるデータ処理方法が提供される。
そして、好ましくは、上記発明において、データは送信された時間の情報を有し、データを受信した場合、処理ステップは、データが送信された時間と自己のカウントする時間との差分に基づいて、上記最長時間経過時を認識する。
また、さらに好ましくは、上記発明において、同期ステップは、複数の装置のうちの一の装置から他の装置に、一の装置のカウント値を送信する送信ステップと、
他の装置において、自己のカウント値と受信したカウント値との差が前記一の装置との遅延時間になるように、カウントアップを一時的に停止する停止ステップとを備える。
他の装置において、自己のカウント値と受信したカウント値との差が前記一の装置との遅延時間になるように、カウントアップを一時的に停止する停止ステップとを備える。
以上、本発明によれば、通信遅延を有するネットワークを介してコンピュータゲームの対戦が行われる場合、ゲーム開始前に、ゲーム装置間の遅延時間を求め、それに基づいて、各ゲーム装置がカウントする時間の同期が取られる。そして、ゲーム進行中は、操作データ信号は、その発生からあらかじめ測定したゲーム装置間の遅延時間のうち最も長い遅延時間経過後に処理される。これにより、複数のゲーム装置において、同時に操作データ信号を処理することができる。
また、本発明によれば、ネットワークゲームを管理するネットワークサーバにおいて、ゲーム装置からの最初の接続要求を受け付ける主サーバの負担を軽くすることができる。
さらに、本発明によれば、1台のコンピュータゲーム装置から複数のプレイヤがネットワークゲームに参加することができる。
さらに、本発明によれば、複数のプレイヤが参加する通信ゲームにおいて、各プレイヤがサーバから配信されるゲーム情報に応答するまでの時間を競う場合、各プレイヤが操作するゲーム装置がその応答時間を計測し、サーバにそれを送信することにより、サーバから各ゲーム装置へのゲーム情報の配信時間がそれぞれ異なる場合であっても、正確な応答時間を求めることができる。
以下、本発明の実施の形態について説明する。しかしながら、本発明の技術的範囲が、本実施の形態に限定されるものではない。
図1は、ネットワークを介して接続するコンピュータゲーム装置の模式図である。図1では、各コンピュータゲーム装置(以下、「ゲーム装置」と称す)A、B、Cは、インターネットプロバイダのサーバと接続することにより、インターネットを介して他のゲーム装置と接続する。また、プレイヤaはゲーム装置Aを操作し、プレイヤbがゲーム装置Bを操作し、プレイヤc、dがゲーム装置Cを操作する。即ち、ゲーム装置Cは複数のプレイヤによって操作される。
図2は、通信機能を有する家庭用コンピュータゲーム装置のブロック構成図である。ゲーム装置は、コンピュータグラフィック(CG)技術により生成される画像をモニタに表示する。CG技術では、仮想3次元空間に配置されるオブジェクトは、複数のポリゴンで構成され、ポリゴンは複数のピクセルで構成される。そして、モニタには、所定の視点座標から見た仮想3次元空間毎のオブジェクトを二次元平面に投影した画像が表示される。
そのために、ゲーム装置は、全体システムを制御するCPU10と、ジオメトリ演算を行うジオメトリプロセッサ11と、ワークRAMなどのシステムメモリ12と、ゲームプログラムが記憶された記憶媒体としてのCD-ROM13と、ゲームの起動用のROM14と、バス制御を行うバスアービタ15と、レンダリングを実行するレンダリングプロセッサ16と、グラフィックメモリ17と、グラフィックデータのデジタル−アナログ変換を行うビデオDAC18と、オーディオプロセッサと、オーディオメモリ20と、オーディオデータのデジタル−アナログ変換を行うオーディオDAC21と、バスアービタの制御下におかれるモデム22とから構成される。ゲーム装置は、モデム22から通信回線を介して、インターネットプロバイダと接続する。
図3は、本発明の実施の形態において例示されるコンピュータゲームを説明するための図である。本実施の形態では、画面内の盤面100において、碁盤の目状に区切られた升目を多数のネズミキャラクタ101とネコキャラクタ102が走り回る。キャラクタ101、102は、角、壁105にぶつかると進行方向を変える。なお、壁105にぶつかった場合は、キャラクタ101、102は、一方向例えば右方向に曲がる。また、プレイヤは、操作により升目に矢印103を置くことができる。キャラクタ101、102は、その矢印103の升目に来ると、矢印方向に進行方向を変える。
そして、プレイヤ一人に対して一つの升目が与えられ、そこに穴104が設定される。そして、プレイヤは、相手プレイヤより多くのネズミキャラクタ101を自分の穴に落とすことを競う。そのために、プレイヤは、自分の穴にネズミキャラクタ101を誘導するように、矢印を置く操作を行う。なお、矢印103は、一人のプレイヤにつき、例えば3つまで置くことができる。従って、4つめの矢印を置くと、最も古い矢印が消える。1ステージは、例えば3分であって、その間にネズミキャラクタ101が各プレイヤの穴104に落ちた数が得点として表示される。
また、このゲームでは、ネコキャラクタ102が穴に落ちると、既に穴に落ちたネズミキャラクタ101の数が所定の割合で減る(例えば3分の2減)。従って、プレイヤが相手プレイヤの穴にネコキャラクタ102を誘導するように矢印を置くことも戦術の一つである。
このようなゲームを、ネットワークを介して、複数のプレイヤで対戦する場合、上述したような通信遅延があると、あるプレイヤによる矢印を升目に置く操作に対応する処理時刻が各ゲーム装置によって異なると、各ゲーム装置の画面上で走り回るキャラクタの位置が異なってしまう。そうすると、各ゲーム装置において進行するゲームはそれぞれ異なり、対戦結果も各ゲーム装置によって異なってしまい、これでは、ネットワークを介した対戦ゲームを実施することができない。
従って、本発明の実施の形態は、通信遅延を有するネットワークを介して接続する複数のゲーム装置で進行するゲームが同じになるように、以下に説明するデータ処理方法を提供する。以下の説明では、図1に示したように、3台のゲーム装置A、B及びCがネットワークを介して接続して、ゲームが実行される場合について説明する。また、以下に説明するデータ処理方法は、図2における記録媒体13に格納されるゲームプログラムによって提供され、CPU10によって実行される。
図4は、本発明の実施の形態におけるデータ処理方法の処理フローチャートである。まず、ゲームを開始する前に、ステップS1A、S1B、S1Cにおいて、各ゲーム装置間でテストデータを送信しあい、遅延時間が測定される。例えば、ステップS1Aにおいて、ゲーム装置Aは、ゲーム装置B、Cそれぞれに自己のIDを付したテストデータを送信する。ゲーム装置B、Cは、ゲーム装置Aからのテストデータを受信すると、それぞれ自己のIDを付して、送信元のゲーム装置Aにテストデータを送り返す。ゲーム装置Aは、テストデータを送信して、それが返ってくるまでの時間を測定することにより、他のゲーム装置B、Cとの間の遅延時間を求めることができる。ゲーム装置B、Cにおいても同様の測定が行われる(ステップS1B、S1C)。各ゲーム装置は、1/60秒単位(1intという)でカウントするタイマーを内蔵し、タイマーのカウント値を使って、時間を測定することができる。
また、測定は複数回(例えば50回)行われ、各ゲーム装置は、他のゲーム装置との間の平均遅延時間と最大遅延時間を取得する(ステップS2A、S2B、S2C)。即ち、ゲーム装置Aは、ゲーム装置B、Cそれぞれとの平均遅延時間と最大遅延時間を取得し(ステップS2A)、ゲーム装置Bは、ゲーム装置A、Cそれぞれとの平均遅延時間と最大遅延時間を取得し(ステップS2B)、ゲーム装置Cは、ゲーム装置A、Bそれぞれとの平均遅延時間と最大遅延時間を取得する(ステップS2C)。
そして、各ゲーム装置によって取得された他のゲーム装置との平均遅延時間Dtavgと最大遅延時間DTmaxの情報(以下、遅延時間情報という)は、一つのゲーム装置に集められる。例えば、この遅延時間情報が集められるゲーム装置(以下、代表装置という)をゲーム装置Aとすると、ゲーム装置B、Cは、それぞれの遅延時間情報を代表装置Aに通知する(ステップS3B、S3C)。
代表装置Aは、集められた遅延時間情報のうち最も長い最大遅延時間を、ゲーム開始後の基準遅延時間DTrefとして決定し、その時間DTrefを他のゲーム装置B、Cに通知する(ステップS4A)。
次に、代表装置Aは、他のゲーム装置B、Cに対して、各ゲーム装置のタイマーのカウント値の同期を取るためのリセット予告信号を送信する(ステップS5A)。そして、代表装置Aは、リセット予告信号送信から第一の時間T1(例えば数秒)経過後に、タイマーのカウント値を「0(ゼロ)」にリセットする(ステップS7A)。
一方、ゲーム装置B、Cは、代表装置Aからのリセット予告信号を、それぞれ遅延時間DTBA、DTCA経過後後受信する(ステップS6B、S6C)。このとき、各ゲーム装置B、Cは、リセット予告信号の遅延時間を、それぞれ上記ステップS2B、S2Cで取得したゲーム装置Aとの最大遅延時間DTmaxBA、DTmaxCAと推定し、リセット予告信号を受信してから、上記第一の時間T1からそれぞれゲーム装置Aとの平均遅延時間を差し引いた時間経過後に、それぞれのタイマーのカウント値を「0(ゼロ)」にリセットする(ステップS7B、S7C)。
図5を参照しながら、さらに具体的に説明する。図5は、ゲーム装置A、B、Cの時間を同期させる方法を説明するためのタイミングチャートである。例えば、ゲーム装置Bは、リセット予告信号を受信すると、その遅延時間DTBAをゲーム装置Aとの最大遅延時間DTmaxBAと認識する。同様に、ゲーム装置Cは、リセット予告信号の遅延時間DTCAをゲーム装置Aとの最大遅延時間DTmaxCAと認識する。そして、ゲーム装置Bは、リセット予告信号を受信してから、(T1−DTmaxBA)秒後にタイマーをリセットする。同様に、ゲーム装置Cは、リセット信号を受信してから、(T1−DTmaxCA)秒後にタイマーをリセットする。これにより、ゲーム装置A、B、Cのタイマ−は、ほぼ同時に「0(ゼロ)」にリセットされ、新たにカウントを開始する。
但し、各ゲーム装置における実際の遅延時間は、最大遅延時間DTmaxであるとは限らない。従って、厳密には、各ゲーム装置のリセットタイミングが大きくずれている可能性があり、各ゲーム装置の時間は、正確に同期していない可能性がある。そこで、本発明の実施の形態では、リセットから第二の時間T2(例えば数秒)経過する間に行われる次の調整処理により、各ゲーム装置の時間をさらに正確に同期させる。
図4に戻って、代表装置Aは、ステップS8Aにおいて、リセットと同時にその時のカウント値「0」を含むカウント値信号を他のゲーム装置B、Cに送信する。また、ゲーム装置Aは、リセット後の所定時刻におけるカウント値を含むカウント値信号を送信してもよい。
ゲーム装置B、Cは、それぞれ遅延時間経過後に、ゲーム装置Aからのカウント値信号を受信すると、カウント値信号を受信したときの自己のタイマーのカウント値を読み出す(ステップS9B、S9C)。さらに、ゲーム装置B、Cは、(読み出したカウンタ値−カウンタ値信号のカウンタ値)を計算することにより、ゲーム装置Aとの遅延時間を計算する。
そして、図5に示されるように、例えば、ゲーム装置Bにおいて計算された遅延時間DTBAが、ゲーム装置Aとの平均遅延時間DTavgBAより所定時間(例えば、3〜4カウント(3〜4int))以上長い場合(図4のステップS10B)、ゲーム装置Bは、タイマーのカウンタ値のカウントアップを、(遅延時間DTBA−平均遅延時間DTavgBA)だけ停止する(図4のステップS11B)。ゲーム装置Cにおいても同様である(図4のステップS10C、S11C)。
上述において、ゲーム装置B、Cのタイマーリセットは、リセット予告信号を受信してから、(T1−DTmax)である。従って、ゲーム装置B、Cは、ゲーム装置Aと同時又は先にリセットしているので、ゲーム装置Aのカウント値を基準に、ゲーム装置B、Cのカウントアップを一時停止することによって、ゲーム装置B、Cのカウント値とゲーム装置Aのカウント値を正確に同期させることができる。
このように、ステップS7A、S7B、S7Cにおけるタイマーリセットによって、各ゲーム装置の時間はある程度同期する。そして、各ゲーム装置の時間をさらに正確に同期させるために、リセット後において、代表装置以外のゲーム装置(B、C)は、代表装置Aからのカウンタ値信号の遅延時間をそれぞれのタイマーのカウント値に基づいて求め、その遅延時間と平均遅延時間とを比較する。そして、求められた遅延時間が平均遅延時間より所定時間以上大きい場合、タイマーのカウントアップを(遅延時間−平均遅延時間)分停止させ、カウント値を修正することで、タイマーによって計測される各ゲーム装置A、B、Cの時間をほぼ正確に同期させることができる。
そして、第二の時間T2経過時に、各ゲーム装置A、B、Cにおいて、ゲームが同時にスタートする(ステップS12A、S12B、S12C)。ある一のゲーム装置におけるプレイヤの操作(例えば、図3のコンピュータゲームにおいて、矢印を所定の升目に置く操作)に対応する操作データ信号は、一のゲーム装置で処理されるとともに、他のゲーム装置にも送信され、他のゲーム装置でも処理される。このとき、操作データ信号は、上述したように、一のゲーム装置及び他のゲーム装置において同時に処理される必要がある。
図6は、操作データ信号のフォーマットの例を示す図である。図6に示されるように、操作データ信号は、ヘッダ部30に、送信元のゲーム装置の操作データ送信時におけるカウンタ値情報と、送信元のゲーム装置で操作するプレイヤの数情報とを含む。そして、データ部40は、プレイヤ毎の操作データで構成され、操作データは、例えば、カーソルの位置情報や矢印の位置情報などを含む。
図1に示したように、本発明の実施の形態におけるコンピュータゲーム装置は、1台のゲーム装置に複数のプレイヤがネットワークを介した対戦型コンピュータゲームに参加することができる(図1において、プレイヤc、dがゲーム装置Cを操作)。従って、1台のゲーム装置から送信される操作データ信号のデータ部40には、複数のプレイヤに対応する操作データがプレイヤ毎に含まれる。従って、1台のゲーム装置で操作するプレイヤの数によって、操作データ信号のデータ長は異なる。また、操作データ信号を受信するゲーム装置は、送信元のゲーム装置を操作するプレイヤの人数を、ヘッダ部30に含まれるプレイヤの数情報によって認識し、それによって、その後のデータ部40の長さを認識することができる。この場合、1プレイヤに対応する操作データの長さは、データ量の大きさにかかわらず一定長さに設定される。
図7は、ゲーム進行中における各ゲーム装置の処理フローチャートである。図7(a)は、操作データ信号を受信する場合の処理であって、図7(b)は、操作データ信号を送信する場合の処理である。
図7(a)において、ステップS21において、ゲーム装置は操作データ信号を受信すると、ステップS22において、操作データ信号に含まれるカウント値と、受信時における自己のタイマーのカウント値を比較することによって、遅延時間DTを計算する。さらに、ステップS23において、ゲーム装置は、基準遅延遅延時間DTrefと計算された遅延時間との差分時間を計算する。そして、ステップS24において、ゲーム装置は、操作データ信号を受信したときから差分時間経過後に操作データ信号を処理する。
また、図7(b)において、ステップS31において、ゲーム装置は操作データ信号を送信すると、ステップS32において、基準遅延時間DTref経過後に操作データ信号を処理する。
図5に戻って、例えば、ゲーム装置Cから送信される操作データ信号の各ゲーム装置におけるデータ処理について説明する。まず、ゲーム装置Cは、送信した操作データ信号をすぐに処理せず、送信時の時刻(カウント値)から基準遅延時間DTref経過時に操作データ信号を処理する。一方、ゲーム装置A、Bは、ゲーム装置Cからの操作データ信号を受信すると、その受信時のカウント値を読み出し、それぞれ遅延時間DT(受信時のカウント値−操作データ信号に含まれるカウント値)を計算する。さらに、ゲーム装置A、Bは、基準遅延時間と上記で求めた遅延時間DTとの差分時間(基準時間DTref−DT)をそれぞれ計算する。そして、操作データ信号を受信してから求められた差分時間経過後に、操作データ信号を処理する。
これにより、操作データ信号は、その送信時から基準遅延時間DTstd経過後に、各ゲーム装置A、B、Cにおいて処理される。そして、各ゲーム装置A、B、Cのタイマーのカウント値は、上述の同期処理によりほぼ一致しているので、操作データ信号は、設定された所定の基準遅延時間経過後に、各ゲーム装置A、B、Cにおいて、一斉に同時に処理することができる。
上述のように、基準遅延時間は、各ゲーム装置間におけるそれぞれの最大遅延時間のうちで最も長い時間なので、全てのゲーム装置が、ある操作データ信号の送信時刻から基準遅延時間だけ待機することで、全てのゲーム装置は確実にその操作データ信号を受信することができる。このように、本発明では、同じ操作データ信号を全てのゲーム装置で同時に処理するために、全てのゲーム装置が同じ操作データ信号を受信するまで、操作データ信号の処理を待機する。その待機時間を測定するために、各ゲーム装置のタイマが計測する時間を同期させ、さらに、待機時間、即ち基準遅延時間が設定される。
ところで、図3に示したコンピュータゲーム画面に表示されるネズミキャラクタ、ネコキャラクタ、矢印、さらには、升目を有する盤面などの背景は、3次元仮想空間上のオブジェクトとして画像処理される。
図8は、本発明の実施の形態におけるコンピュータゲームのオブジェクトが配置される3次元仮想空間を示す図である。図8では、盤面100、その上にいるネズミキャラクタ101a、101b及びネコキャラクタ102のオブジェクトが3次元仮想空間上に配置されている。ネズミキャラクタ101a、101b及びネコキャラクタ102は、それぞれ盤面100上で進行方向(正面方向)を向いたオブジェクトとして与えられる。
図9は、図8の3次元仮想空間を所定の視点から見た画像の例を示す図である。本実施の形態のコンピュータゲームでは、プレイヤの操作によってゲームが進行している場合、3次元仮想空間を視点Aから見た画像、即ち、図9(a)に示されるように、盤面100を真上から見た画像がモニタに表示される。また、ゲームが始まる前のデモンストレーションや、ゲーム中におけるステージとステージとの間においては、視点Bから見た画像、即ち、図9(b)に示されるように、盤面を斜め上から見た画像がモニタに表示される。
このとき、図9(a)に示す画像のように、盤面100の真上からの画像は、プレイヤにとって、盤面全体におけるキャラクタの動きが最も見やすい画像である。従って、ゲーム進行中の画像として最適であるが、盤面100上のネズミキャラクタ101a、101b及びネコキャラクタ102の頭部しか表示されず、キャラクタの姿形状がわかりにくいのが欠点である。
そこで、本発明の実施の形態では、盤面100の真上にある視点(図8の視点A)から見た画像を表示する場合、キャラクタの向きが所定角度(例えば45度)傾けられる。
図10は、キャラクタの向きを説明する図である。ネズミキャラクタを例示するが、ネコキャラクタも同様に傾けられる。図10(a)は、ネズミキャラクタを側面から見た図であって、ネズミキャラクタは、通常の向きである正面を向いている。この向きにおいて図7の視点Aから見たネズミキャラクタは、図10(b)のように見える。図10(c)は、正面上方向に傾けられたネズミキャラクタの側面図である。そして、この向きのネズミキャラクタを図8の視点Aから見ると、図10(d)のように見える。図10(b)と比較して、明らかに、ネズミキャラクタの全体像がよりわかりやすく表現されている。また、図10(e)は、ネズミキャラクタを正面から見た図であって、ネズミキャラクタは横方向に傾けられている。そして、この向きのネズミキャラクタを図8の視点Aから見ると、図10(f)のように見える。図10(b)と比較して、明らかに、ネズミキャラクタの全体像がわかりやすく表現される。
本発明の実施の形態では、上述のように、キャラクタの真上に視点がある場合、キャラクタを所定方向に所定角度傾ける。これにより、ゲーム進行中でも、キャラクタの姿形状をわかりやすく表示することができる。また、傾けられる方向は、キャラクタの移動方向によらず、一方向に固定されてもよい。例えば、図9(a)において、キャラクタは、図面における上方向(矢印X方向)に傾けられるものとする。そうすると、ネズミキャラクタ101aは、図10(c)のように正面上方向に傾くので、図10(d)のように表示される。また、ネズミキャラクタ101bは、図10(e)のように横方向(図10(e)では左方向)に傾くので、図10(f)のように表示されることになる。
このように、本発明の実施の形態では、3次元仮想空間内の視点座標の位置に応じて、オブジェクトの向きが変わる。これにより、ゲーム画面に表示されるオブジェクト(キャラクタ)をよりわかりやすく表示することができる。
(別の実施の形態)
ところで、図1の各ゲーム装置A、B、Cは、上述のようなネットワーク対戦ゲームを開始する前に、互いに、対戦相手のゲーム装置を認識する必要がある。そのために、プレイヤは、ゲーム開始前に、まず、ネットワーク対戦ゲームを管理するサーバ(以下、ネットワークサーバという)に、ネットワークシステムにおいてクライアントとなるゲーム装置を接続し、そのネットワークサーバに登録する。これにより、対戦グループが構成される。このように、ネットワーク対戦ゲームを希望するプレイヤは、まず、このネットワークサーバと接続する。
ところで、図1の各ゲーム装置A、B、Cは、上述のようなネットワーク対戦ゲームを開始する前に、互いに、対戦相手のゲーム装置を認識する必要がある。そのために、プレイヤは、ゲーム開始前に、まず、ネットワーク対戦ゲームを管理するサーバ(以下、ネットワークサーバという)に、ネットワークシステムにおいてクライアントとなるゲーム装置を接続し、そのネットワークサーバに登録する。これにより、対戦グループが構成される。このように、ネットワーク対戦ゲームを希望するプレイヤは、まず、このネットワークサーバと接続する。
図11は、本発明の実施の形態におけるネットワークサーバのブロック構成図である。図11において、ネットワークサーバは、主サーバ1、複数の副サーバ2a、2b、2c、2d及び共有メモリ3を備える。また、図12は、ゲーム装置におけるネットワークサーバへの登録手順のフローチャート、図13は、各手順におけるゲーム装置での表示画面例を示す図である。図11、図13を参照しながら、図12について説明する。
まず、ステップS101において、プレイヤは、コンピュータゲームプログラムを格納した記録媒体(例えばCD-ROM)をゲーム装置に設定し、コンピュータゲームプログラムを起動させる。ゲームプログラムが起動すると、まず、図13のゲームモード選択画面M1が表示される。ゲームモード選択画面には、例えば、ゲーム装置内での対戦である「4 Players Battle」、希望するステージを選んで対戦する「Stage Challenge」、ネットワーク対戦モードである「Network Battle」などが表示される。プレイヤは、コントローラを操作して「Network Battle」を選択する(ステップS102)。
ネットワーク対戦モードが選択されると、ネットワーク対戦に参加する人数の選択画面M2(図13)が表示される。プレイヤは、コントローラを操作して、参加人数を選択する(ステップS103)。参加人数が複数の場合は、複数のプレイヤのうちの一人がコントローラを操作して、参加人数を選択する。ゲーム装置には、プレイヤが操作するためのコントローラを複数(例えば4つ)接続することが可能である。従って、1台のゲーム装置から複数のプレイヤがネットワーク対戦ゲームに参加する場合が想定される。
従来では、ネットワークを介さずにゲーム装置内で行われる対戦ゲームでは、1台のゲーム装置に接続する複数のコントローラを利用することによって、複数のプレイヤが対戦可能である。一方、ネットワーク上では、ネットワークサーバは、それに接続するゲーム装置を識別するだけで、そこに接続するコントローラの数(又はプレイヤの数)まで認識することはできない。
即ち、従来、ネットワークを介した対戦ゲームにおいては、1台のゲーム装置とネットワークサーバとの間に作成される接続は1本であり、ネットワークサーバは、ゲーム装置に接続するコントローラやプレイヤの数を認識できない。そのため、1台のゲーム装置から1人のプレイヤしかネットワークを介した対戦ゲームに参加できなった。
そこで、本発明の実施の形態では、1台のゲーム装置からネットワーク対戦ゲームに参加するプレイヤの数をあらかじめネットワークサーバに通知する。これにより、1台のゲーム装置とネットワークサーバとの間の接続が1本であっても、ネットワークサーバに1台のゲーム装置から参加するプレイヤの数を認識させることでき、1台のゲーム装置から複数のプレイヤのネットワーク対戦ゲームへの参加を可能にする。なお、参加人数の選択は、上記ステップS103で行われる場合に限られず、参加人数をネットワークサーバに通知するまでのどの段階で行われてもよい。
参加人数が選択されると、ゲーム装置は、モデムを介して、インターネットプロバイダに電話をかけて(ステップS104)、インターネットプロバイダ経由でネットワークサーバに接続要求を通知する。接続要求には、プレイヤのID及びパスワードなど1人のプレイヤの識別情報が含まれる。TCP/IPプロトコルを利用したインターネットが利用される場合、IPアドレス及びポート番号を指定することによって、接続相手を特定することができる。ゲーム装置は、まず、主サーバ1のIPアドレスとポート番号を指定することによって、ネットワークサーバの主サーバ1と接続する。ゲーム装置には、あらかじめ主サーバ1のIPアドレスとポート番号が記憶される。ここでは、IPアドレスは、ネットワークサーバを識別し、ポート番号は、そのなかの各サーバを識別する。なお、図11では、主サーバと副サーバは、1つのネットワークサーバ内でソフトウェア的に区分されたものとして示される。なお、主サーバと副サーバが別々のシステムである場合、それぞれの別のIPアドレスが与えられる。
ここで、TCP/IPについて、簡単に説明する。図14は、TCP/IPプロトコルの階層を示す図である。図14において、TCP/IPプロトコルは、5層構造を有する。OSI参照モデルと比較すると、TCPは、コネクション型のデータリンクを提供するプロトコルであって、上位のアプリケーションに対してストリーム型のインターフェースであって、ネットワーク上の離れたプロセス間での接続を確立するトランスポート層に対応する。また、IPは、ネットワーク上でデータを転送するネットワーク層に対応し、データが転送されるネットワーク上の2点をIPアドレスで表現する。TCPの上位層は、アプリケーション層であって、IPの階層は、インターフェース層及び物理層である。下位層として、イーサネットやFDDIなどが知られている。
また、TCP/IPプロトコルのアプリケーション層に含まれるソケットは、TCP上でプロセス間通信によるデータ送受信を行うアプリケーションを作成するためのアプリケーション・プログラミング・インターフェース(API)であって、より詳しくは、OSI参照モデルにおけるセッション層に対応する。ソケットは、プロセスのユーザがその環境(システムやネットワークなど)を意識することなく、プロセス間通信をあたかもファイルの入出力と同じように処理できる環境を提供する。そして、接続される2つのプロセス(本実施の形態では、ゲーム装置とネットワークサーバ)がソケット(通信の入出力口)を作成し、ソケット間でデータ信号が送受信される。
図12に戻って、ゲーム装置からの接続要求は、ネットワークサーバにおける主サーバ1によって、受付処理され、さらに認証処理される(ステップS201)。このように、主サーバ1は、ゲーム装置からの接続要求に対する受付処理及び認証処理を実行するサーバである。主サーバ1は、接続要求を受け付けると、それにあらかじめ登録されたユーザ情報と通知された識別情報とに基づいて、認証処理を実行する。正当なプレイヤであると認定されると、主サーバ1は、ゲーム装置に対して、接続応答とともに副サーバ2の情報を通知する。これにより、ゲーム装置とネットワークサーバとの接続が確立する(ステップS105)。
副サーバ2の情報は、例えば、各副サーバ2の名称、IPアドレス、ポート番号及び現在の登録人数の情報などである。現在の登録人数の情報は、後述するように、共有メモリ3に格納される。主サーバ1は、共有メモリ3から各副サーバ2の現在の登録人数の情報を読み出す。副サーバ2は、実際に実行されるネットワーク対戦ゲームを管理するためのサーバであって、プレイヤが副サーバに登録されることで、対戦グループが形成される。
ネットワークサーバと接続すると、ゲーム装置には、サーバの案内画面M3が表示される。画面M3には、副サーバ2の名称が表示される。プレイヤ(参加人数が複数の場合は、複数のプレイヤのうちの一人)は、コントローラを操作して一つの副サーバを選択する(ステップS106)。なお、1つの副サーバに登録可能なプレイヤの数はサーバの容量に応じて決められている。従って、最大人数が既に登録されている副サーバ2が選択された場合は、選択不可能である旨が表示される。また、プレイヤは、コントローラを操作して、各副サーバの現在の登録人数又はそれに基づいた接続の可否情報を表示させることもできる。
副サーバ2が選択されると、主サーバ1は、ゲーム装置との接続を、選択された副サーバ2に切り替える(ステップS202)。具体的には、主サーバ1は、ゲーム装置から選択された副サーバが通知されると、選択された副サーバ2のIPアドレス及びポート番号をゲーム装置に通知する。
また、副サーバが選択されると、選択された副サーバのIPアドレスとポート番号を用いて、選択された副サーバに接続要求が通知される。選択された副サーバは、その接続要求を受け付け処理すると(ステップS202)、選択された副サーバ2内で区分けされた複数の登録領域(以下、部屋と称する)の情報をゲーム装置に通知する。例えば、ネットワーク対戦ゲームの最大対戦可能人数が4人である場合、副サーバ2には、4人分のプレイヤを登録するための部屋が複数用意される。ゲーム装置には、部屋の案内画面M4(図13)が表示される。なお、この情報は、主サーバ1から通知される副サーバの情報に含まれてもよい。この場合は、副サーバが選択されたとき、副サーバに対する接続要求は行う必要はない。
プレイヤは、コントローラを操作して、一つの部屋を選択する(ステップS107)。部屋が選択されると、選択された部屋と参加人数が、ゲーム装置から選択された副サーバに通知される。そして、選択された副サーバは、通知された部屋に、参加人数分のプレイヤを登録する(ステップS203)。選択された副サーバは、選択された部屋に登録されたプレイヤの情報をゲーム装置に通知する。登録されたプレイヤの情報は、例えば、プレイヤの名称、及び各プレイヤのゲーム装置のIPアドレス及びポート番号である。このようにして、各ゲーム装置は、対戦相手のゲーム装置のIPアドレスとポート番号を取得する。
選択された部屋に登録されたプレイヤの情報が画面M5(図13)に表示される。図13の画面M5において、例えば、一台のゲーム装置から2人参加する場合、プレイヤ名称として、プレイヤX1、プレイヤX2のように表示される。ネットワークサーバは、一つのゲーム装置に対して、1人のプレイヤの識別情報しか登録していないからである。そして、選択された部屋に登録されたプレイヤのうちの一人が、コントローラを操作して、画面M5のスタートボタンを選択することで、ゲームが開始される(ステップS108)。
なお、選択された部屋に、既に最大対戦可能人数(例えば4人)が登録されている場合、又は、参加人数が2人において、2人登録すると最大対戦可能人数を超えてしまう場合、又は、既にゲームが開始されている場合などは、プレイヤは、選択した部屋に登録することはできない。プレイヤは、コントローラを操作して、既に登録されている人数や、ゲーム進行中かどうかなどの各部屋の状態を表示させることができる。
また、副サーバ2の部屋は、階層構造であってもよい。例えば、副サーバは、複数の種類のネットワーク対戦ゲームやチャットなどを管理するサーバであって、ゲームの種類毎の大部屋及びチャットのための大部屋を有し、その大部屋の下に、さらに複数の小部屋が設定されてもよい。
また、上記各画面M2〜M5には、「出る」という項目が表示される。これを選択することで、一つ前の画面に戻ることができる。従って、「出る」を選択すると、副サーバの部屋が階層構造である場合、一つ上の階層に戻る。また、画面M4において、「出る」が選択されると、画面M3に戻る、即ち、ゲーム装置は、再度主サーバ1と接続する。プレイヤは、例えば、遠隔の友人が他の副サーバに含まれる部屋に登録している場合などに、登録する副サーバを変更する場合がある。このような場合、従来は、プレイヤは、画面M4の「出る」を選択して、一旦、主サーバ1との接続に切り替え、画面M3により、他の副サーバを選択する必要があった。
しかしながら、副サーバの変更が頻繁に起きると、次のような問題点がある。即ち、主サーバ1のオペレーティングシステム(より一般的にはソフトウェア)の能力により、主サーバ1への接続要求を一回に処理できる数に限界がある。そのため、一時的に、主サーバの接続要求処理能力を超える数の接続要求が主サーバ1に集中すると、主サーバ1は、接続要求を受け付けなくなるので、ゲーム装置は、主サーバ1と接続することができなくなる。
図15は、従来のネットワークサーバのブロック構成図である。図15において、従来においては、複数の副サーバ2は、主サーバ1と接続し、主サーバ1に自己の情報を通知する。一方、各副サーバ2間は接続されていないので、各副サーバ2は、他の副サーバに関する情報を取得することができない。それゆえ、ゲーム装置が接続する副サーバを切り替えるときに、ゲーム装置は、一旦、主サーバに再接続する必要があった。このように、従来のネットワークサーバは、主サーバ1に接続要求が集中する構造である。
従って、主サーバ1への接続要求の数をできるだけ減らすことが望ましい。そこで、本発明の実施の形態では、ゲーム装置の接続が、以前に選択された副サーバから他の副サーバに直接切り替えられる。そのために、図11におけるネットワークサーバに共有メモリ3が設けられる。
共有メモリ3は、複数の副サーバ2それぞれの稼動状態及び登録人数など各副サーバに関する情報が格納される。各副サーバ2に関する情報は、それぞれ自分自身によって定期的(例えば、0.5秒毎)に更新される。
共有メモリ3には、主サーバ1及び複数の副サーバ2それぞれがアクセス可能である。主サーバ1は、全ての副サーバ2に関する情報を共有メモリ3から読み出す。また、各副サーバ2は、自己以外の他の副サーバ2に関する情報を共有メモリ3から読み出す。全てのサーバからアクセス可能な共有メモリを設けることにより、各サーバを1対1で接続することなく、他のサーバの情報を取得することができるようになる。
図16は、共有メモリ3の領域を模式的に例示する図である。図16に示されるように、各副サーバ2に関する情報は、例えばマトリックス状に記憶される。図16において、4つの副サーバ2a、2b、2c、2dは、自己の行に、自己の現在の登録人数を、他の副サーバの列に対して書き込む。そして、各副サーバ2a、2b、2c、2dは、それぞれ自分の列に書き込まれた他の副サーバに関する情報を読み込む。このように、各副サーバ2a、2b、2c、2dが読み込む領域が異なるので、同時に複数の副サーバが、情報の読み込みのために共有メモリ3にアクセスした場合であっても、同時に読み込むことができる。また、主サーバ1は、共有メモリ3の主サーバ1の列から、各副サーバに関する情報を読み込む。
情報が読み出されると、次の情報に更新するまでの間、読み出された領域の値は、読み出された状態である旨の数値(例えば「−1」)となる。これにより、副サーバが何らかの障害により、情報を書き込めない場合は、共有メモリ3の領域は、読み出された状態のままとなる。そうすると、他のサーバは、その副サーバが故障中であると認識する。
図13に戻って、画面M4には、本発明に特徴的な「他のサーバに移る」という項目が表示される。これを選択すると、選択されている副サーバ2は、上記共有メモリ3の自分の列から他の副サーバに関する情報を読み込み、それをゲーム装置に通知する。副サーバに関する情報は、上記同様に、副サーバの名称、IPアドレス、ポート番号及び登録人数などの情報である。各副サーバは、他の副サーバのIPアドレスとポート番号の情報をあらかじめ記憶している。
そして、ゲーム装置には、他の副サーバの案内画面M4-1が表示される。画面M4-1は、自分以外の他の副サーバの名称が表示される。そして、上記ステップS106同様に、プレイヤによって、一つの副サーバが選択されると、選択された副サーバのIPアドレスとポート番号を用いて、選択された副サーバに対して接続要求が通知される。以降、図12と同様の処理が実行される。
このように、各副サーバに関する情報を格納し、各副サーバがアクセス可能な共有メモリ3を設けることにより、各副サーバは、自己以外の他の副サーバの状態を知ることができるようになる。従って、現在接続している副サーバから、他の副サーバに関する情報をゲーム装置に通知できるようになるので、ゲーム装置の接続を、副サーバ間で直接切り替えることができる。即ち、従来のように、ゲーム装置を主サーバ1と再度接続させる必要がなくなるので、主サーバ1に対する接続要求の数を削減することができる。これにより、主サーバ1が、その接続要求受付能力を超えて、接続要求を受ける可能性が低減されるので、ゲーム装置からの接続要求を主サーバ1が拒否する場合がほぼなくすことができる。これは、ネットワークを利用するプレイヤへのサービス向上に寄与する。
さらに、1台のゲーム装置からネットワーク対戦ゲームに参加するプレイヤの人数が複数であっても、ゲーム装置とネットワークサーバとの間の接続は1本、即ち、作成されるソケットは1つである。そのために、上述のように、1台のゲーム装置からの参加人数が、ネットワークサーバ(具体的には、選択された副サーバ)にあらかじめ通知され、且つ、上記図6で示したように、複数のプレイヤ分のデータは、1つのソケットを使って、1つのデータ信号で送信される。
参加人数分の接続を確立(ソケットを作成)してもよいが、参加人数分の接続要求が必要となり、上述した接続要求受付能力についての問題が生じる。そのため、本実施の形態では、1台のゲーム装置からの参加人数にかかわらず、1台のゲーム装置とネットワークサーバとの接続を1本(ソケット1つ)とすることにより、主サーバ1の接続要求受付処理の負担が軽くなる。これにより、主サーバ1での処理遅延を解消することができ、サービス向上に寄与する。
(更なる別の実施の形態)
また、ネットワークにおける通信遅延は、次のような場合においても問題となる。例えば、複数のプレイヤ間で、ネットワークを介したクイズゲーム(以下、ネットワーククイズゲーム)が行われる場合において、正解数(又は正解率)に加えて、クイズ問題の解答時間を考慮して、順位を決定する場合である。
また、ネットワークにおける通信遅延は、次のような場合においても問題となる。例えば、複数のプレイヤ間で、ネットワークを介したクイズゲーム(以下、ネットワーククイズゲーム)が行われる場合において、正解数(又は正解率)に加えて、クイズ問題の解答時間を考慮して、順位を決定する場合である。
図17は、主サーバに通信回線を介して複数のゲーム装置が接続するネットワークを示す図である。主サーバ1と各ゲーム装置との間の通信時間は、主サーバ1と各ゲーム装置との間の地理的距離、回線状況(混雑程度)、通信速度、通信機器の性能などによってそれぞれ異なる。また、各ゲーム装置は、地理的に離間されて配置されてもよい。例えば、互いに地理的に離れたA店、…、Z店に少なくとも1台のゲーム装置が配置される。
ネットワーククイズゲームの場合、主サーバ1から、ゲーム情報として複数のクイズ問題が各ゲーム装置に配信される。プレイヤは、ゲーム装置の画面に順次表示される各問題に解答する。各ゲーム装置における解答は、主サーバ1に送信される。又は、各ゲーム装置において、解答の正解/不正解を判定し、正解である場合に、その旨の情報が送信されてもよい。主サーバ1は、各プレイヤの正解数(又は正解率)に基づいて、勝敗及び/又は順位を決定する。
このとき、正解数(又は正解率)の同じプレイヤが複数いる場合が想定される。このような場合、各プレイヤにおけるクイズゲームの全問題の解答時間を比較し、解答時間のより短いプレイヤの方を上位の順位に決定する方法がある。
この解答時間(応答時間)を、主サーバ1で計測すると、ネットワークにおける通信時間のずれにより、正確な解答時間を計測できないという問題がある。主サーバ1は、各ゲーム装置に問題を配信してから、各ゲーム装置からの解答情報又は正解情報を受信するまでの時間を解答時間として計測する。このとき、主サーバ1と各ゲーム装置との間の通信時間が全て同じであるならば、ゲーム装置間における上記配信から受信までの時間の差は、各ゲーム装置に問題が表示されてプレイヤが解答するまでの本来の解答時間を反映する。
しかしながら、主サーバ1と各ゲーム装置との間の通信時間は、上述のようにそれぞれ異なるので、各ゲーム装置間における上記配信から受信までの時間は、本来の解答時間を正確に反映しない。あらかじめ、主サーバ1と各ゲーム装置間の通信時間を測定しておいてもよいが、クイズゲーム実施中において、回線の混雑状況の変化などによって、通信時間が変化する可能性がある。このように、各ゲーム装置における解答時間は、主サーバ1では計測することができない。
そこで、本発明の実施の形態では、各ゲーム装置自身が、各問題の解答時間を計測し、解答又は正解/不正解の情報とともに、解答時間を主サーバ1に通知する。なお、解答時間(応答時間)は、例として、サーバから配信されるクイズ問題の受信開始若しくは受信完了から、プレイヤが解答の入力を開始若しくは完了するまでの時間であってもよいし、プレイヤが解答可能になったとき(例えば、クイズ問題が画面に表示されたとき)から、プレイヤが解答の入力を開始若しくは完了するまでの時間であってもよい。
図18及び図19は、本発明の実施の形態におけるネットワーククイズゲームのフローチャートである。図18において、各ゲーム装置は、ネットワーククイズゲームが実施されていない間は、各ゲーム装置単体で通常のクイズゲームを提供する(S400(通常クイズモード))。即ち、プレイヤは、ゲーム装置に表示される所定数のクイズを解答し、できるだけ高い正解率を目指す。
ネットワーククイズゲームが実施される場合、まず始めに、主サーバ1が、各ゲーム装置に対して、ネットワーククイズゲームを所定時間後に開催する旨を通知するエントリ開始信号を通知する(S300)。各ゲーム装置は、エントリ開始信号を受信すると、エントリー受付画面を表示する(S401)。各ゲーム装置が、エントリ開始信号を受信したときに、ゲーム装置単体による通常のクイズゲームが実施されている場合は、それが終了次第、エントリ受付画面に切り替わる。
図20は、エントリ受付画面の例である。ネットワーククイズゲーム参加希望のプレイヤは、所定金額のコインを投入したあと、エントリ受付画面に表示される文字を選択して、名前を入力する(S402)。ゲーム装置の画面は、例えば、タッチパネルであって、プレイヤは、表示されている文字を接触することにより、文字を選択してもよい。また、プレイヤは、操作レバーによって表示されている文字を選択してもよい。
図18において、プレイヤが、エントリ受付締切までに名前を入力し、終了ボタンを選択すると、ゲーム装置は、エントリ作業終了信号を主サーバ1に送信する。エントリ作業終了信号は、入力されたプレイヤの名前、ゲーム装置が配置されている店情報、ゲーム装置識別情報などを含む。
主サーバ1は、エントリ作業信号を受信すると、エントリの有ったゲーム装置を確認する(S301)。エントリ受付締切の所定時間(例えば2分)前になると、各ゲーム装置に、締切2分前を通知する(S302)。各ゲーム装置は、締切2分前信号を受信すると、図20のエントリ受付画面に、受付締切までの残り時間をカウントダウン表示する(S403)。各ゲーム装置は、エントリ受付締切までの残り時間がなくなると、エントリの受付を締め切り(S404)、エントリ受付終了信号を主サーバ1に送信する。エントリ受付終了信号は、エントリ作業終了信号と同様に、エントリしたプレイヤの名前、店情報、ゲーム装置識別情報を含む。なお、エントリのなかったゲーム装置は、プレイヤの名前に変わって、エントリなし情報を含むエントリ受付終了信号を送信する。
主サーバ1は、全てのゲーム装置からエントリ受付終了信号を受信すると、全てのゲーム装置からエントリ有りのゲーム装置を分別し、エントリ有りの各ゲーム装置及びそのプレイヤ名を最終確認する(S303)。このとき、主サーバ1は、エントリ有りのゲーム装置に対して、仮想の司会キャラクタによるクイズゲームの説明映像を配信する(S304)。各ゲーム装置は、説明映像を表示し(S405)、それが終了すると、説明終了信号を主サーバ1に送信する。
主サーバ1は、エントリ有りのゲーム装置全てから説明終了信号を受信すると、クイズをスタートさせる。具体的には、クイズの問題数が全部で例えば30問の場合、主サーバ1は、まず全30問の問題とその正解をエントリ有りのゲーム装置にそれぞれ配信する(S305)。なお、主サーバ1からの配信は、全てのゲーム装置(又は、エントリ有りのゲーム装置全て)に対して同時に行われてもよいし、時分割的に順次行われてもよい。順次送信する場合、主サーバ1は、説明終了信号の受信に応じて、それを送信したゲーム装置に対して、問題とその正解を送信してもよい。なお、問題とその正解とともに、参加人数もゲーム装置に通知される。また、問題とその正解は、分割されて配信されてもよい。例えば、まず、最初の10問が配信され、最初の10問終了前に、次の10問が配信され、さらに、その後、最後の10問が配信されてもよい。
ゲーム装置は、問題とその正解を受信すると、クイズスタートまでの時間(例えば20秒)をカウントダウン表示する(S406)。このとき、参加人数も表示される。これにより、プレイヤは、参加人数を知ることができる。クイズがスタートすると、図19に移って、ゲーム装置は、まず、第一問の問題を選択する(S407)。
なお、このとき、ゲーム装置は、問題を表示すると、タイマによる時間計測を開始し、解答までの時間を計測する(S408)。プレイヤは、問題に対応する解答を、表示される複数の選択肢から一つ選択する。ゲーム装置の画面がタッチパネルの場合は、プレイヤは、選択する選択肢に接触する。又は、レバー操作により、選択肢を選択してもよい。図21は、問題表示画面の例である。
プレイヤにより解答が選択されると(S409)、ゲーム装置は、時間計測を停止し、解答時間を取得する(S410)。さらに、選択された選択肢の正誤を配信された正解から判定する(S410)。正解の場合、正解である旨を画面に表示するとともに、問題番号及び正解である旨を含む解答情報と、取得した解答時間を主サーバ1に送信する。このように、本発明の実施の形態では、各ゲーム装置が解答時間を計測し、それを主サーバ1に送信するので、主サーバ1と各ゲーム装置間に通信時間がそれぞれ異なっても、主サーバ1は、各ゲーム装置における正確な解答時間を取得することができる。
一方、不正解の場合は、不正解である旨を画面に表示し、その問題番号と不正解である旨を含む解答情報のみを送信し、解答時間は送信しない。また、一問解答するのにあらかじめ与えられた所定時間を超えても、選択肢が選択されたなかった場合も(タイムオーバー)、不正解とみなされる。なお、正解判定は、主サーバ1で行ってもよい。この場合、主サーバ1は、問題のみ各ゲーム装置に送信し、各ゲーム装置は、各問題について、選択された解答とその解答時間を主サーバ1に送信する。主サーバ1は、各ゲーム装置毎に受信した解答の正解/不正解判定を行い、正解の場合にのみ、受信した解答時間を積算する。
主サーバ1は、解答情報(正解又は不正解)及び正解の場合における解答時間を受信すると、それらを集計して、一問ごとに順位を計算する(S306)。正解数が同じである場合は、解答時間の合計が小さいプレイヤの順位を上位とする。順位が決定されると、主サーバ1は、各ゲーム装置に対して個別の経過順位を通知する(S308)。また、ゲーム装置が配置される店に順位を表示するための別の表示装置が配置されている場合(図17の「順位表示装置)参照)、主サーバ1は、順位表示装置に対して、例えば、上位10人のプレイヤとその経過順位を送信する。順位表示装置は、各ゲーム装置を操作するプレイヤから見える位置に配置され、プレイヤは、自己の順位とは別に、各問毎に上位順位のプレイヤ名を知ることができる。
ゲーム装置は、主サーバ1から個別の経過順位を受信すると、図21の順位表示部分にそれを表示するとともに、次の問題を選択し(S412)、上述のS408乃至S410の各処理を繰り返す。
そして、クイズゲームを盛り上げるために、例えば、クイズゲームの終盤(最後の10問)では、経過順位を送信しないようにしてもよい(もちろん、順位の計算は行われる)。即ち、演出上、順位は表示されない。また、逆転を可能にするために、一問正解に対するカウント数や解答時間を2倍にして、順位を決定してもよい。具体的には、主サーバ1は、通常(最後の10問以外の問題)、一問正解に対して正解数を1カウントする場合において、最後の10問の正解に対して一問正解に対して複数カウント(例えば2カウント)する。また、正解についての解答時間も所定倍(例えば2倍)にして、これまでの解答時間合計に積算する。これにより、通常の場合と比較して、解答時間の差が大きくなり、順位の逆転が起きやすくなる。
全ての問題が終了すると(S307、S411)、主サーバ1は、最終順位を作成し、個別の最終順位を各ゲーム装置に通知し、さらに、最終順位上位のプレイヤ名とその順位を、順位表示装置に通知する(S309)。ゲーム装置は、最終順位を表示する(S413)。なお、最終順位情報の送信とともに、仮想の司会キャラクタによるクイズゲーム終了後の演出映像(上位順位プレイヤの発表など)が配信されてもよい。また、上位順位のプレイヤのゲーム装置とそれ以外のプレイヤのゲーム装置には、別の映像が配信されてもよい。そして、 ゲーム装置は、最終順位表示してから所定時間経過後、通常クイズモード画面に戻る。
順位の決定方法は、正解数(上述のように、一問正解に対するカウント数が問題によって異なる場合は、正解カウント数)が同じである場合に、解答時間合計が短いプレイヤの順位を上位にする方法の他に、例えば、解答時間に応じて正解に対するポイント数を変える方法でもよい。例えば、問題表示後、5秒以内に解答した場合は、100ポイント、10秒以内の場合は、80ポイント、15秒以内の場合は、60ポイントのように、解答時間が長くなるに従って、ポイント数を減少させてもよい。この場合、ポイントの合計で勝敗及び/又は順位が決定される。
上述のように、ネットワークを介したクイズゲームにおいて、ゲーム装置がクイズの問題の解答時間を計測し、それを主サーバ1に送信する。これにより、主サーバと各ゲーム装置との通信時間がそれぞれ異なっても、クイズゲームを管理する主サーバは、各ゲーム装置における各問題毎の正確な解答時間を取得することができる。
また、上記実施の形態は、ネットワーククイズゲーム以外の通信ゲームにも適用可能である。例えば、複数のプレイヤ間で、サーバから提示された文字入力を正確に行う速度を競うネットワーク対戦タイピングゲームや、複数のプレイヤ間で、サーバから提示された入力操作を正確に行う速度を競うネットワーク対戦モグラたたきゲームなど、ゲームが要求する入力操作をプレイヤがするまでの応答時間を競うゲームにも適用可能である。ネットワーク対戦タイピングゲームでは、ゲーム情報として所定の文字・符号などがサーバから配信され、例えば、プレイヤがその配信された文字・符号に対応する入力操作が可能になってから実際に入力操作を行うまでの応答時間が計測される。また、ネットワーク対戦モグラたたきゲームでは、ゲーム情報として画面上でモグラのキャラクタが出没する位置が配信され、例えば、モグラが画面上の表示されてからプレイヤがその位置に対応する入力操作を行うまでの応答時間が計測される。計測された応答時間は主サーバに送信され、応答時間の合計に基づいて勝敗及び/又は順位が決定される。この場合、応答時間の合計が少ないほど高い順位となる。
本発明の保護範囲は、上記の実施の形態に限定されず、特許請求の範囲に記載された発明とその均等物に及ぶものである。
1 主サーバ
2 副サーバ
3 メモリ
10 CPU
11 ジオメトリプロセッサ
13 記録媒体(CD-ROM)
16 レンダリングプロセッサ
22 モデム
2 副サーバ
3 メモリ
10 CPU
11 ジオメトリプロセッサ
13 記録媒体(CD-ROM)
16 レンダリングプロセッサ
22 モデム
Claims (6)
- サーバから通信ネットワークを介して複数のゲーム装置それぞれにゲーム情報が配信され、各ゲーム装置のプレイヤが前記ゲーム情報に対応する操作を行うことにより、各プレイヤが対戦する通信ゲーム方法において、
各ゲーム装置の計測手段が、プレイヤの前記ゲーム情報に応答する入力操作が可能になってから当該入力操作が開始されるまでの応答時間を計測し、
各ゲーム装置の通信手段が、プレイヤの前記応答時間又はそれに対応する値を前記サーバに送信し、
前記サーバの決定手段が、各プレイヤの応答時間又はそれに対応する値を利用して、各プレイヤの勝敗及び/又は順位を決定することを特徴とする通信ゲーム方法。 - 請求項1において、
各ゲーム装置の判定手段が、各プレイヤの前記ゲーム情報に対応する入力の正誤を判定し、各ゲーム装置の通信手段は、少なくとも正しい入力と判定された場合のプレイヤの前記応答時間又はそれに対応する値を前記サーバに送信することを特徴とする通信ゲーム方法。 - サーバと、通信ネットワークを介して前記サーバと接続する複数のゲーム装置とを備え、前記サーバから各ゲーム装置それぞれにゲーム情報が配信され、各ゲーム装置のプレイヤが前記ゲーム情報に対応する操作を行うことにより、各プレイヤが対戦する通信ゲームシステムにおいて、
各ゲーム装置は、
プレイヤの前記ゲーム情報に応答する入力操作が可能になってから当該入力操作が開始されるまでの応答時間を計測する計測手段と、
プレイヤの前記応答時間又はそれに対応する値を前記サーバに送信する通信手段とを備え、
前記サーバは、
各プレイヤの応答時間又はそれに対応する値を利用して、各プレイヤの勝敗及び/又は順位を決定する決定手段を備えることを特徴とする通信ゲームシステム。 - 請求項3において、
各ゲーム装置は、各プレイヤの前記ゲーム情報に対応する入力の正誤を判定する判定手段を備え、
前記通信手段は、少なくとも正しい入力と判定された場合のプレイヤの前記応答時間又はそれに対応する値を前記サーバに送信することを特徴とする通信ゲームシステム。 - サーバから通信ネットワークを介してゲーム情報を受信し、プレイヤが前記ゲーム情報に対応する操作を行うコンピュータゲーム装置において、
前記プレイヤが前記ゲーム情報に応答する入力操作が可能になってから当該入力操作が開始されるまでの応答時間を計測する計測手段と、
前記応答時間又はそれに対応する値を前記サーバに送信し、プレイヤの応答時間又はそれに対応する値を利用して決定されるプレイヤの勝敗及び/又は順位を、前記サーバから受信する通信手段とを備えることを特徴とするコンピュータゲーム装置。 - 複数のコンピュータゲーム装置に通信ネットワークを介してゲーム情報を配信するコンピュータ装置において、
各コンピュータゲーム装置から、プレイヤの前記ゲーム情報に応答する入力操作が可能になってから当該入力操作が開始されるまでまでの応答時間又はそれに対応する値を受信する受信手段と、
各プレイヤの前記応答時間又はそれに対応する値を利用して、各プレイヤの勝敗及び/又は順位を決定する決定手段と、
前記決定された各プレイヤの勝敗及び/又は順位を、対応する各コンピュータゲーム装置に送信する送信手段とを備えることを特徴とするコンピュータ装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2007106820A JP2007260410A (ja) | 1999-09-14 | 2007-04-16 | データ処理方法 |
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP26101399 | 1999-09-14 | ||
| JP31813199 | 1999-11-09 | ||
| JP2007106820A JP2007260410A (ja) | 1999-09-14 | 2007-04-16 | データ処理方法 |
Related Parent Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2000113947A Division JP2001198363A (ja) | 1999-09-14 | 2000-04-14 | データ処理方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2007260410A true JP2007260410A (ja) | 2007-10-11 |
Family
ID=38633948
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2007106820A Withdrawn JP2007260410A (ja) | 1999-09-14 | 2007-04-16 | データ処理方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2007260410A (ja) |
Cited By (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2010104389A (ja) * | 2008-08-26 | 2010-05-13 | Keizo Watanabe | ネットワークゲームシステム及びプログラム |
| JP2010213806A (ja) * | 2009-03-14 | 2010-09-30 | Tomoyasu Mizuno | ネットワークゲームシステム |
| JP5602963B1 (ja) * | 2014-01-30 | 2014-10-08 | グリー株式会社 | ゲーム管理プログラム、ゲーム管理方法及びゲーム管理システム |
| JP2015139699A (ja) * | 2014-08-20 | 2015-08-03 | グリー株式会社 | ゲーム管理プログラム、ゲーム管理方法及びゲーム管理システム |
| JP2015144841A (ja) * | 2015-03-19 | 2015-08-13 | グリー株式会社 | ゲーム管理方法及びゲーム管理システム |
| JP2016067670A (ja) * | 2014-09-30 | 2016-05-09 | 株式会社セガゲームス | 通知システム、通知方法及びサーバ装置 |
| JP2022502165A (ja) * | 2018-10-01 | 2022-01-11 | マイクロソフト テクノロジー ライセンシング,エルエルシー | マルチプレーヤープログラムにおける高入力レイテンシの導入 |
| JP2023055233A (ja) * | 2021-10-06 | 2023-04-18 | Necソリューションイノベータ株式会社 | 対戦型学習支援装置、学習者端末、対戦型学習支援システム装置、対戦型学習支援方法、及びプログラム |
-
2007
- 2007-04-16 JP JP2007106820A patent/JP2007260410A/ja not_active Withdrawn
Cited By (14)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2010104389A (ja) * | 2008-08-26 | 2010-05-13 | Keizo Watanabe | ネットワークゲームシステム及びプログラム |
| JP2010213806A (ja) * | 2009-03-14 | 2010-09-30 | Tomoyasu Mizuno | ネットワークゲームシステム |
| US10322341B2 (en) | 2014-01-30 | 2019-06-18 | Gree, Inc. | Game management method, game management system, and game management program for synchronizing game progress at a plurality of devices in different communication states |
| JP5602963B1 (ja) * | 2014-01-30 | 2014-10-08 | グリー株式会社 | ゲーム管理プログラム、ゲーム管理方法及びゲーム管理システム |
| US11628359B2 (en) | 2014-01-30 | 2023-04-18 | Gree, Inc. | Game management method, game management system, and game management program for synchronizing game progress at a plurality of devices in different communication states |
| US10549192B2 (en) | 2014-01-30 | 2020-02-04 | Gree, Inc. | Game management method, game management system, and game management program for synchronizing game progress at a plurality of devices in different communication states |
| US10105598B2 (en) | 2014-01-30 | 2018-10-23 | Gree, Inc. | Game management method, game management system, and game management program for synchronizing game progress at a plurality of devices in different communication states |
| JP2015139699A (ja) * | 2014-08-20 | 2015-08-03 | グリー株式会社 | ゲーム管理プログラム、ゲーム管理方法及びゲーム管理システム |
| JP2016067670A (ja) * | 2014-09-30 | 2016-05-09 | 株式会社セガゲームス | 通知システム、通知方法及びサーバ装置 |
| JP2015144841A (ja) * | 2015-03-19 | 2015-08-13 | グリー株式会社 | ゲーム管理方法及びゲーム管理システム |
| JP2022502165A (ja) * | 2018-10-01 | 2022-01-11 | マイクロソフト テクノロジー ライセンシング,エルエルシー | マルチプレーヤープログラムにおける高入力レイテンシの導入 |
| JP7438201B2 (ja) | 2018-10-01 | 2024-02-26 | マイクロソフト テクノロジー ライセンシング,エルエルシー | マルチプレーヤープログラムにおける高入力レイテンシの導入 |
| JP2023055233A (ja) * | 2021-10-06 | 2023-04-18 | Necソリューションイノベータ株式会社 | 対戦型学習支援装置、学習者端末、対戦型学習支援システム装置、対戦型学習支援方法、及びプログラム |
| JP7740694B2 (ja) | 2021-10-06 | 2025-09-17 | Necソリューションイノベータ株式会社 | 対戦型学習支援装置、学習者端末、対戦型学習支援システム装置、対戦型学習支援方法、及びプログラム |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR100727511B1 (ko) | 데이터 처리 방법 | |
| JP2007260410A (ja) | データ処理方法 | |
| US6287200B1 (en) | Relative positioning and virtual objects for mobile devices | |
| US20050086301A1 (en) | Systems and methods for facilitating multi-user interaction over a network | |
| JP2002248273A (ja) | ビデオゲーム装置およびその制御方法、ならびにビデオゲームのプログラムおよびそのプログラムを記録したコンピュータ読取り可能な記録媒体。 | |
| TW200412527A (en) | Game proceeding synchronization system and program | |
| US20040018875A1 (en) | Premium acquisition game system utilizing communication network, and premium acquisition game host computer and player terminal both used in that system | |
| JP6405479B1 (ja) | ゲームシステム、ゲーム端末、及びプログラム | |
| WO2014002239A1 (ja) | 情報処理システム、情報処理装置、情報端末装置、情報処理方法、情報処理プログラム | |
| JP2006223419A (ja) | ゲームシステム | |
| JP2005267347A (ja) | 仮想空間共有装置 | |
| JPWO2014002240A1 (ja) | 情報処理システム、情報処理装置、情報端末装置、情報処理方法、情報処理プログラム | |
| KR101601587B1 (ko) | 통신처 판정 장치, 게임 시스템, 통신처 판정 방법, 기록 매체 | |
| JP7177380B1 (ja) | 情報処理装置、情報処理方法および情報処理プログラム | |
| KR20070018753A (ko) | 네트워크 게임 방법 및 네트워크 게임 시스템 | |
| KR20070021093A (ko) | 통신 게임 방법, 통신 게임 시스템 및 컴퓨터 장치 | |
| HK1095945B (en) | Data processing method for a network computer game | |
| HK1095779B (en) | Data processing method | |
| JP6084746B2 (ja) | ゲームシステムおよびゲームプログラム | |
| KR20030034987A (ko) | 온라인 게임에서의 뷰포트 리스트를 이용한 데이터 전송방법 및 그 방법이 구현된 컴퓨터로 읽을 수 있는 기록매체 | |
| HK40043481A (en) | Video live broadcast method and video sending method for game match, apparatus and device | |
| JP2019141563A (ja) | ゲームシステム、ゲーム端末、及びプログラム | |
| JP2019141266A (ja) | ゲームシステム、ゲーム制御装置、及びプログラム |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090428 |
|
| A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20090601 |