(57)【要約】【課題】ゲーム装置間で生じる遅延を許容した好適なゲーム体験を実現する。【解決手段】ゲームシステムは、複数の電子機器においてなされた行動命令により進行するゲームを実行する。ゲームシステムは、第１の電子機器において第１の行動命令がなされた場合に、該第１の電子機器において行動命令がなされたことを該第１の電子機器と異なる第２の電子機器に通知する。また第１の行動命令による行動がゲームに反映されるまでの第１の時間を設定し、第１の行動命令に基づく時間から第１の時間が経過した後に、第１の行動命令による行動を第２の電子機器において実行されるゲームに反映する。【選択図】図３
2015167737.tif 000002
【特許請求の範囲】
【請求項１】
複数の電子機器においてなされた行動命令により進行するゲームを実行するゲームシステムであって、
第１の電子機器において第１の行動命令がなされた場合に、該第１の電子機器において行動命令がなされたことを該第１の電子機器と異なる第２の電子機器に通知する通知手段と、
前記第１の行動命令による行動が前記ゲームに反映されるまでの第１の時間を設定する設定手段と、
前記第１の行動命令に基づく時間から前記第１の時間が経過した後に、前記第１の行動命令による行動を前記第２の電子機器において実行される前記ゲームに反映する反映手段と、
を有するゲームシステム。
【請求項２】
前記第１の電子機器と前記第２の電子機器との間において発生するデータ送信の遅延量を取得する取得手段をさらに有し、
前記設定手段は、前記取得手段により取得された前記遅延量に基づいて前記第１の時間を決定する請求項１に記載のゲームシステム。
【請求項３】
前記遅延量は、前記第１の電子機器と前記第２の電子機器との地理的な位置関係に応じて決定される請求項２に記載のゲームシステム。
【請求項４】
前記ゲームの実行に係る演算を行う演算手段をさらに有し、
前記演算手段は、前記第１の行動命令に基づく時間から前記第１の時間が経過するまでの間に、前記第１の行動命令による行動を前記ゲームに反映するための演算を行う請求項１乃至３のいずれか１項に記載のゲームシステム。
【請求項５】
前記設定手段は、該行動を前記ゲームに反映するための演算量に基づいて前記第１の時間を決定する請求項４に記載のゲームシステム。
【請求項６】
前記設定手段は、前記第１の行動命令による行動について予め定められている時間に基づいて前記第１の時間を決定する請求項１乃至５のいずれか１項に記載のゲームシステム。
【請求項７】
前記通知手段は、前記第１の行動命令がなされた後に前記第２の電子機器において第２の行動命令がなされた場合に、前記第２の電子機器において行動命令がなされたことを前記第１の電子機器に通知し、
前記設定手段は、前記第２の行動命令による行動が前記ゲームに反映されるまでの第２の時間を設定し、
前記反映手段は、前記第２の行動命令がなされてから前記第２の時間が経過した後に前記第１の行動命令がなされてから前記第１の時間が経過する場合に、前記第１の行動命令による行動の効果を前記第２の行動命令による行動の効果で低減して前記ゲームに反映する請求項１乃至６のいずれか１項に記載のゲームシステム。
【請求項８】
複数の電子機器においてなされた行動命令により進行するゲームに係る処理を実行する情報処理装置であって、
第１の電子機器において第１の行動命令がなされた場合に、該第１の電子機器において行動命令がなされたことを該第１の電子機器と異なる第２の電子機器に通知する通知手段と、
前記第１の行動命令による行動を前記ゲームに反映するまでの第１の時間を設定する設定手段と、
前記第１の行動命令に基づく時間から前記第１の時間が経過した後に、前記第１の行動命令による行動を前記ゲームに反映する反映手段と、
を有する情報処理装置。
【請求項９】
前記反映手段による反映がなされた後の前記ゲームに係るゲーム画面を生成して、前記第１の電子機器及び前記第２の電子機器に送信する送信手段をさらに有する請求項８に記載の情報処理装置。
【請求項１０】
複数の電子機器においてなされた行動命令により進行するゲームに係る処理を実行する情報処理装置の制御方法であって、
第１の電子機器において第１の行動命令がなされた場合に、該第１の電子機器において行動命令がなされたことを該第１の電子機器と異なる第２の電子機器に通知する通知工程と、
前記第１の行動命令による行動を前記ゲームに反映するまでの第１の時間を設定する設定工程と、
前記第１の行動命令に基づく時間から前記第１の時間が経過した後に、前記第１の行動命令による行動を前記ゲームに反映する反映工程と、
を有する情報処理装置の制御方法。
【請求項１１】
複数の電子機器においてなされた行動命令により進行するゲームに係る処理を実行するためのプログラムであって、
１以上のコンピュータに、
第１の電子機器において第１の行動命令がなされた場合に、該第１の電子機器において行動命令がなされたことを該第１の電子機器と異なる第２の電子機器に通知する通知工程と、
前記第１の行動命令による行動を前記ゲームに反映するまでの第１の時間を設定する設定工程と、
前記第１の行動命令に基づく時間から前記第１の時間が経過した後に、前記第１の行動命令による行動を前記ゲームに反映する反映工程と、
を実行させるプログラムを記録したコンピュータが読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ゲームシステム、情報処理装置、制御方法、及び記録媒体に関し、特に装置間の通信を利用する電子ゲームに関する。
【背景技術】
【０００２】
家庭用ゲーム機やＰＣ等、所定の記録媒体に記録されたゲームプログラムを実行するゲーム装置の中には、他のゲーム装置との間で通信を行って取得した情報を提供するゲームに反映するものがある。このようなゲーム装置間の通信は、有線無線を問わず、様々な手法により行われている。
【０００３】
ゲーム装置間の通信に限らず、データの送受信には伝送経路に応じた遅延が生じる。即ち、一方の装置から送信されたデータは、通信に要する所定の時間が経過した後に、データの全体が他方の装置において受信が完了する。データ送受信における遅延時間は送信するデータ量に応じて増減するため、遅延時間を低減するためのデータ構成や送受信の方法には様々な技術が提案されている。
【０００４】
また、ゲームコンテンツの中には、受信するデータの遅延の有無に依らず、ゲーム画面を所定の間隔で更新しなければならないものもある。このようなゲームコンテンツでは、更新間隔で規定される時間内に他のゲーム装置からデータが受信されない場合には、過去に受信したデータから受信されるであろうデータを推測し、推測結果に基づいてゲームへの反映処理を行うこともある（特許文献１）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第５３５７７５２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１のように推測に基づいてゲームへの反映処理を行うゲームコンテンツでは、例えば反映処理後に受信したデータとの整合をとるための補間処理が実行され、遅延の補償が行われる。また、遅延したデータの補償による実際のデータとのずれが蓄積していくと処理が破綻することもあるため、所定のタイミングでずれをリセットし、補間を行わずに受信したデータを使用したゲームへの反映処理を行うこともある。
【０００７】
しかしながら、このような補間処理やずれ量のリセット等が行われた場合、次のような問題が生じうる。例えば携帯用ゲーム装置を使用する複数のプレイヤが、実空間において互いの画面を確認できるような位置関係に存在する場合、各ゲーム装置において独立して補間処理やずれ量のリセット等が行われる状況を考える。このとき、例えばカーレースゲーム等において各プレイヤの操作する車の順位がゲーム装置間で異なる現象、あるいはずれ量のリセットによって、これまで存在しなかった場所に他のプレイヤの車が突然現れる等の現象が生じうる。このようなゲーム装置間での不整合は、プレイヤの興趣を低減する可能性があった。
【０００８】
本発明の少なくとも一つの実施形態は、上述の問題点に鑑みてなされたものであり、ゲーム装置間で生じる遅延を許容した好適なゲーム体験を実現するゲームシステム、情報処理装置、制御方法、及び記録媒体を提供することを目的とする。
【課題を解決するための手段】
【０００９】
前述の目的を達成するために、本発明の少なくとも１つの実施形態に係るゲームシステムは、複数の電子機器においてなされた行動命令により進行するゲームを実行するゲームシステムであって、第１の電子機器において第１の行動命令がなされた場合に、該第１の電子機器において行動命令がなされたことを該第１の電子機器と異なる第２の電子機器に通知する通知手段と、第１の行動命令による行動がゲームに反映されるまでの第１の時間を設定する設定手段と、第１の行動命令に基づく時間から第１の時間が経過した後に、第１の行動命令による行動を第２の電子機器において実行されるゲームに反映する反映手段と、を有する。
【発明の効果】
【００１０】
このような構成により本発明の少なくとも１つの実施形態によれば、ゲーム装置間で生じる遅延を許容した好適なゲーム体験を実現することが可能となる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施形態に係るゲームコンソール１００の機能構成を示したブロック図
【図２】本発明の実施形態に係る対戦ゲームの概要を説明するための図
【図３】本発明の実施形態１に係るゲームコンソール１００において実行される行動管理処理を例示したフローチャート
【図４】本発明の実施形態１に係るゲームコンソール１００において実行される行動処理（自機）を例示したフローチャート
【図５】本発明の実施形態１に係るゲームコンソール１００において実行される行動処理（他機）を例示したフローチャート
【図６】本発明の実施形態に係る対戦ゲームで管理される各種パラメータテーブルの構成を示した図
【図７】本発明の実施形態２に係るゲームシステムのシステム構成を示した図
【図８】本発明の実施形態２に係るサーバ８００の機能構成を示したブロック図
【図９】本発明の実施形態２に係るサーバ８００において実行される行動管理処理を例示したフローチャート
【図１０】本発明の実施形態２に係るサーバ８００において実行される行動処理（全体）を例示したフローチャート
【図１１】本発明の変形例１に係るゲームシステムのシステム構成を示した図
【図１２】本発明の変形例２に係るサーバ８００の機能構成を示したブロック図
【発明を実施するための形態】
【００１２】
［実施形態１］
以下、本発明の例示的な実施形態について、図面を参照して詳細に説明する。なお、以下に説明する一実施形態は、ゲームシステムの一例としての、接続された複数のゲームコンソール１００間で通信を行いながら進行するゲームを実行するシステムに、本発明を適用した例を説明する。しかし、本発明は、複数の電子機器においてなされた行動命令により進行するゲームを実行することが可能な任意の機器及びシステムに適用可能である。
【００１３】
《ゲームコンソール１００の構成》
図１は、本発明の実施形態に係るゲームシステムを構成するゲームコンソール１００の機能構成を示すブロック図である。
【００１４】
ＣＰＵ１０１は、ゲームコンソール１００が有する各ブロックの動作を制御する。ＣＰＵ１０１は、例えばＲＯＭ１０２や記録媒体１０５に記録された各ブロックの動作プログラムを読み出し、ＲＡＭ１０３に展開して実行することにより各ブロックの動作を制御する。
【００１５】
ＲＯＭ１０２は、電気的に書き換え可能な不揮発性メモリである。ＲＯＭ１０２は、ゲームコンソール１００が有する各ブロックの動作プログラムや、各ブロックの動作において必要なパラメータ等を記録する。またＲＡＭ１０３は、揮発性メモリである。ＲＡＭ１０３は、各ブロックの動作プログラムの展開領域としてだけでなく、各ブロックの動作において出力された中間データ等を一時的に記録する格納領域としても用いられる。
【００１６】
描画部１０４は、例えばＧＰＵ等のゲームに係るゲーム画面を描画する描画装置である。描画部１０４は、ＣＰＵ１０１からの描画命令を受信し、不図示のＧＰＵメモリに展開された描画オブジェクトに係るデータを命令に従って処理することで、ビデオメモリ上にゲーム画面を描画する。
【００１７】
記録媒体１０５は、例えばＨＤＤやゲームプログラムを格納したディスク等の、ゲームコンソール１００に着脱可能に接続される記録装置である。記録媒体１０５は、ゲームコンソール１００が有する各ブロックの動作プログラムだけでなく、ゲーム画面の描画に必要となる描画オブジェクトに係るデータ等を格納している。
【００１８】
操作入力部１０６は、コントローラやキーボード等の、ゲームコンソール１００が有する各種ユーザインタフェースである。操作入力部１０６は、操作入力がなされたことを検出すると、対応する制御信号をＣＰＵ１０１に出力する。
【００１９】
通信部１０７は、ゲームコンソール１００が有する外部機器との通信に係る通信インタフェースである。本実施形態では、ゲームコンソール１００は他のゲームコンソール１００と無線通信により接続し、ゲーム実行中に通信を行い、必要なデータの送受信を行う。本実施形態ではゲームコンソール１００は無線通信により他のゲームコンソール１００との通信を行うものとして説明するが、通信部１０７の通信方式は無線通信に限られるものではなく、有線で直接接続される方式が用いられてもよい。
【００２０】
表示部１０８は、例えばＬＣＤ等の表示装置である。表示部１０８は、ゲームコンソール１００と一体となって構成されるものであってもよいし、ゲームコンソール１００に着脱可能に接続される外部の表示装置であってもよい。表示部１０８は、ゲームコンソール１００において生成されたゲーム画面を表示する。
【００２１】
《ゲームにおいて生じる遅延》
ここで、ゲームにおいてプレイヤの操作によりなされた行動命令に対して発生する遅延の要素を説明する。本実施形態では、ゲームシステムにおいて実行されるゲームは、フィールド上へのキャラクタ等のユニットの配置や、配置したユニットに対する行動命令を行いながら進行する、所謂リアルタイムストラテジー（ＲＴＳ）ゲームであるものとして説明する。しかしながら、本発明の実施はこのようなＲＴＳゲームに限られないことは容易に理解されよう。
【００２２】
ＲＴＳゲームは、ターン制のゲームとは異なりプレイヤが操作を行わない時間も常にゲームが進行するため、各プレイヤは自身の使用するユニットの生成及び配置、該ユニットの移動、アイテム収集、フィールド探索、あるいは対戦相手のプレイヤへの攻撃等の行動命令を順次行っていく必要がある。またプレイヤは、相手プレイヤが起こした行動に反応してリアルタイムに対応策を講じる、あるいは相手プレイヤの起こしうる行動を予測して事前に回避行動の準備を進める等をリアルタイムに考えて行動命令を行う必要がある。
【００２３】
ＲＴＳゲームではフィールド上にユニットが多数配置され、各プレイヤが１つのユニットを自身の操作にリアルタイムに追従させて行動させることは現実的でないため、通常、ユニットへの行動命令は行動の最終到達目標や中間到達目標を定義することにより行われる。即ち、行動命令が与えられた場合、対象のユニットが到達目標に至るまでにとる行動は、該命令に応じた所定の演算により、あるいはＡＩプログラムとして設けられた所定の行動パターンの情報に従って生成され、操作に応じて瞬時に生成されるものではない。換言すれば、所定の行動命令がなされた場合には設定された到達目標に至るまでの間にとる行動を順次決定するための演算がユニットごとに必要になる。また、最終到達目標が地形変形や建造物破壊等、フィールドや相手キャラクタのユニットにダメージ等の影響を及ぼす効果や物理演算等を含んだ描画エフェクトを伴うものである場合、最終到達目標への到達に対応する時点での状況に応じて、これらの効果に係る演算もさらに行う必要がある。つまり、ＲＴＳゲームではリアルタイムにゲーム状況が進行するため、最終到達目標に係る行動を実行する際には、命令を行った時点とゲーム状況が異なっている可能性が高い。このため、例えば該目標に到達する時点でのゲームパラメータを取得し、発生させる行動に係る効果等の演算を行う、あるいは既に行っていた演算結果をゲームパラメータによって補正する処理を行う必要がある。従って、到達目標に至るまでの移動等の中間行動の生成に係り順次行われる処理や、行動による効果や描画エフェクトの発生に係り行われる処理は、選択された行動によって演算量が変化する。即ち、なされた行動命令に応じた処理が行われてゲームに反映されるまでには、演算量に応じた遅延（発動遅延）が発生しうる。またこのような発動遅延は、機器で単位時間に行うことができる演算量（処理リソース）が有限であることを考慮すると、フィールド上に多数のユニットが配置されている場合等では、その全てについて行動に係る処理を行われることになるため、ユニット数に応じて発動遅延は増加しうる。
【００２４】
さらに、本実施形態のように２つのゲームコンソール１００が通信接続して対戦ゲームを行う場合、各プレイヤによりなされた操作入力は該プレイヤの使用するゲームコンソール１００において入力評価等の処理がなされることで、入力に対応する行動命令が特定される。特定された行動命令は、該処理を行ったゲームコンソール１００において管理されるゲームパラメータにまず反映され、反映後のゲームパラメータが対戦相手のゲームコンソール１００に対して送信されることになる。従って、操作入力がなされてから他方のゲームコンソール１００に該操作入力に係るパラメータ変更がなされるまでは、操作入力がなされたゲームコンソール１００における処理、ゲームコンソール１００間におけるパラメータの送受信、及び対戦相手のゲームコンソール１００におけるゲームパラメータへの反映処理に係る時間が遅延（以下、通信遅延とする）することになる。このとき、特にゲームコンソール１００間の通信状況によって、処理結果の送受信に係る遅延量は前後することになる。通信状況には、例えばゲームコンソール１００間の伝送距離、通信を行う環境における障害物の配置や、単にパケット損失による不受信等が含まれる。また処理結果の送受信に係る遅延量は、処理結果に係る情報のデータ量によって受信完了までの時間が前後するため、物理演算等のエフェクト関係の処理結果を伝送する場合は当然その分遅延量が多くなる。
【００２５】
なお、本実施形態のＲＴＳゲームでは、操作入力のデータを互いに送受信し、それぞれのゲームコンソール１００において独立して操作入力の評価を行ってゲームパラメータへの反映を行う方式を用いないものとする。これは、各ゲームコンソール１００において複数台分の操作入力を処理することで演算量が増加することや、独立して処理することで例えば受信タイミングの差等により各機器において生じる演算結果の不一致が生じることに起因する。しかしながら、本発明の実施はこれに限られるものではなく、特定された操作入力に対応する行動命令の情報が対戦相手のゲームコンソール１００に送信されて、該ゲームコンソール１００においてゲームパラメータへの反映処理がなされてもよい。
【００２６】
また、一般的なゲームコンソール用に提供されるゲームアプリケーションは、ゲームコンソール間に基本性能の差異がないため、両者におけるゲームパラメータの反映や操作入力の評価に要する処理時間に差はない。しかしながら、例えばＰＣ等、プレイヤによって性能が異なる機器が使用される場合には処理能力の違いにより、機器間で操作入力の結果が反映されるまでの時間に差が生じる、即ち一方の機器から見れば他方の機器に結果が反映されるまでに、より多くの遅延（以下、性能遅延とする）が生じうる。
【００２７】
本実施形態では、これらゲームにおいて生じる遅延のうち、少なくとも発動遅延及び通信遅延を許容して、プレイヤの興趣を持続させる方法について説明する。
【００２８】
《ゲーム概要》
次に、本実施形態のＲＴＳゲームの概要について、図２を用いて説明する。以下の説明では、簡単のためＲＴＳゲームが２つのゲームコンソール１００間での対戦ゲームとして実行されるものとして説明する。
【００２９】
本実施形態のＲＴＳゲームでは、対戦する各ゲームコンソール１００のプレイヤには、図２（ａ）に示されるようにゲームフィールド（以下、単にフィールド）上の異なる位置がホーム位置（本拠地）として割り当てられる。該本拠地は、ゲーム中移動しないものとする。各プレイヤは、フィールド上に自身の支配下にあるユニットを配置し、各ユニットに行動命令を与えることで、対応する行動をユニットに実行させることができる。本ＲＴＳゲームは、対戦相手のユニットあるいは本拠地にダメージを与え、最終的に本拠地に定められた耐久力を先にゼロとしたプレイヤがゲームの勝者となるものとする。
【００３０】
ここで、各プレイヤがフィールド上のユニットに対して行動命令を与えた際に、該行動命令に係る行動がゲームに反映されるまでの処理の概要を示す。本実施形態のＲＴＳゲームでは、フィールド上の各プレイヤの本拠地の距離を、ゲームコンソール１００間の所定の単位データの伝送に係る通信遅延量に基づいて決定する。即ち、計測したゲームコンソール１００間の該通信遅延量が多いほど、両者の間にはフィールド上における隔たりが生じるものとして表現する。該隔たりは、フィールド上の実際の距離としてゲームに反映されてもよいし、フィールドの広さは予め定められた広さと変わらないまま、ユニットの進行速度や進行難易度を変更することによりゲームに反映されてもよい。本実施形態のＲＴＳゲームでは、通信遅延量に基づいてフィールド上におけるプレイヤ間の本拠地の隔たりを規定するものとして説明するが、このような変更は必須ではない。プレイヤ間の本拠地の隔たりは、予め定められたルールに基づいて設定されてもよいし、固定値であってもよいし、ランダムに設定されるものであってもよい。
【００３１】
本実施形態のＲＴＳゲームでは、ある行動に係る行動命令がなされた場合、行動の発動までに要する時間は、行動の発動地点、行動を行うユニットの現在位置、及び行動に係る演算量の全てを考慮して決定される。例えば図２（ｂ）に示されるように、プレイヤ１が現在、地点ＰunitAに配置されている自身のユニットＵAに対して、プレイヤ１の本拠地Ｐbase1から遠く、プレイヤ２の本拠地Ｐbase2に近い地点ＰactAを発動地点とする行動に係る行動命令を行ったとする。このとき、行動の発動までに要する時間、即ち実際に演算処理が完了し、行動が発動したことを通知するまでに要する時間は、
１．本拠地からユニットＵAへの命令伝達に要する時間（本拠地Ｐbase1と地点ＰunitAとの距離に比例）
２．ユニットＵAが地点ＰunitAから発動地点ＰactAまでの移動に要する時間（ユニットに定められた移動速度ＶunitAと地点ＰunitAから発動地点ＰactAまでの距離との積に比例）
３．予め定められた行動の発動に要する時間（ユニットＵAに定められた遂行能力ＡunitAと行動に係る演算量に応じて予め定められた時間Ｔneedとの積に比例）
の例えば総和として決定されるものとする。また、行動が発動してからその効果がゲーム画面に反映されるまでの時間は、
４．発動地点ＰactAから各プレイヤの本拠地への効果の伝搬に要する時間（発動地点ＰactAと各プレイヤの本拠地Ｐbase1、Ｐbase2との距離に比例）
として決定されるものとする。
【００３２】
つまり、本実施形態のＲＴＳゲームでは、各プレイヤは自身の本拠地から遠く、かつ相手プレイヤの本拠地に近い地点で行動を発動させようとする場合には、本拠地からの発動地点までの距離に応じた時間を待機する必要がある。また発動させる行動が、中間行動生成及びエフェクト生成等に係る処理に多くの演算量を必要とするような行動である場合は、各プレイヤは、発動までの時間さらに待機する必要がある。さらに、行動が発動することによる効果の伝搬も発動地点と本拠地との距離に応じて意図的に遅延される。
【００３３】
また反対に例えば図２（ｃ）に示されるように、プレイヤ１が現在、地点ＰunitBに配置されている自身のユニットＵBに対して、プレイヤ１の本拠地Ｐbase1から近く、プレイヤ２の本拠地Ｐbase2から遠い地点ＰactBを発動地点とする行動Ｂに係る行動命令を行ったとする。このとき、行動Ｂの発動までに要する時間は図２（ｂ）の例で行動の発動までに要する時間よりは短く、効果が伝搬されるまでの時間も同様に短くなる。
【００３４】
即ち、本実施形態のＲＴＳゲームでは、単位データの通信遅延量によってゲーム上のプレイヤ間の距離を規定し、さらに演算量の多い処理によって発生しうる発動遅延やエフェクト等の処理結果の伝送量が多いことによる通信遅延を考慮して、予め行動の発動までに要する時間を規定することで、通信を介した対戦ゲームにおける遅延による不整合や処理の破綻の発生を回避する。また行動の発動による効果も距離に応じて通知されるように制御するため、波及的に伝搬されるように演出できる。つまり、このように行動の発動や伝搬に予め遅延をもたせてその間に演算を完了させておくようにすることで、上述の発動遅延や通信遅延のゲームへの影響を、プレイヤの興趣を低減させない範囲で回避することができる。
【００３５】
《行動管理処理》
以下、本実施形態のゲームシステムにおいて実現される上述の対戦ゲームに係る行動管理処理について図３のフローチャートを用いて具体的な処理を説明する。該フローチャートに対応する処理は、各ゲームコンソール１００のＣＰＵ１０１が、例えば記録媒体１０５に記憶されているゲームアプリケーションに係るプログラムを読み出し、ＲＡＭ１０３に展開して実行することにより実現することができる。
【００３６】
本行動管理処理は、例えば複数のゲームコンソール１００の各々において、ゲームアプリケーションが提供する対戦ゲームの実行指示がなされ、対戦ゲームに参加するゲームコンソール１００が確定した際に開始され、フレーム単位で繰り返し実行されるものとして説明する。また、本実施形態では簡単のため、同一の性能を有する２つのゲームコンソール１００間で対戦ゲームが行われるものとして説明する。また以下の説明において、フローチャートはいずれか一方のゲームコンソール１００のＣＰＵ１０１が行うものとして説明するが、本フローチャートは対戦ゲームに参加するゲームコンソール１００の各々のＣＰＵ１０１が実行するものであってよい。なお、対戦ゲームの開始時に参加する全てのゲームコンソール１００において、同期してゲーム開始からの経過時間の測定を開始するものとする。
【００３７】
Ｓ３０１で、ＣＰＵ１０１は、ゲームコンソール１００間の通信状況によって生じる通信遅延量を取得する。例えばＣＰＵ１０１は、対戦相手のゲームコンソール１００に対してレスポンス要求を送信し、送信してから該要求に応じて返送されるレスポンスを受信するまでに要した時間を通信遅延量としてＲＡＭ１０３に格納する。
【００３８】
Ｓ３０２で、ＣＰＵ１０１は、フィールドにおけるプレイヤ間の本拠地の距離を通信遅延量に基づいて規定する。通信遅延量の取得及び本拠地間の距離の変更は、対戦ゲームの開始時にのみ行われるものであってもよいし、通信状況の変化に動的に対応するよう、所定のフレーム間隔で行われるものであってもよい。
【００３９】
Ｓ３０２の処理の後、ＣＰＵ１０１は、自身のゲームコンソール１００において新たになされた行動命令に係る操作入力に対応する処理を行うＳ３０３の行動処理（自機）と、他のゲームコンソール１００において新たになされた行動命令に係る操作入力に対応する処理を行うＳ３０４の行動処理（他機）とを並行実行する。
【００４０】
〈行動処理（自機）〉
ここで、行動管理処理のＳ３０３においてＣＰＵ１０１が実行する行動処理（自機）の詳細について図４のフローチャートを用いて説明する。
【００４１】
Ｓ４０１で、ＣＰＵ１０１は、行動命令に係る操作入力がなされたか否かを判断する。本実施形態の対戦ゲームでは、ＣＰＵ１０１は、行動命令に係る操作入力がなされたと判断した場合は処理をＳ４０２に移し、なされていないと判断した場合は処理をＳ４０６に移す。
【００４２】
Ｓ４０２で、ＣＰＵ１０１は、操作入力に対応する行動命令を解釈し、行動命令がなされたことを示す情報、行動命令がなされた経過時間、行動命令に係る行動Ｘが発動する座標の情報を通信部１０７に伝送し、行動Ｘの識別情報（行動識別情報）に関連付けて対戦相手のゲームコンソール１００に対して送信させる。またＣＰＵ１０１は、自身のＲＡＭ１０３にもこれらの情報を格納する。
【００４３】
本実施形態の対戦ゲームでは、行動命令がなされた場合、行動の種類は特定せず、発動座標におけるいずれか行動に係る行動命令がなされたことを対戦相手に通知する。該通知は、ゲームコンソール１００において実行されるゲームに反映され、通知メッセージとして該ゲームコンソール１００のプレイヤに提示される。これは、後述するように行動の発動をゲーム内で遅延に応じて調整することに伴う不公平性をなくすためである。また、このように事前にいずれかの行動が発動することを通知することで、対戦相手のプレイヤは起こりうる行動を予測して行動を起こすことができる。このとき、通知された行動の発動までに要する時間よりも、予測して起こした行動の発動までに要する時間が短ければ、プレイヤは通知された行動が発動した際には影響を低減することができる可能性がある。また、通知された行動の発動地点がフィールド上で自身の本拠地に近ければ、プレイヤは地理的に優位に立つため、予防策を講じるための時間をより得ることができる。
【００４４】
Ｓ４０３で、ＣＰＵ１０１は、行動Ｘが発動するまでの時間を算出する。まずＣＰＵ１０１は、記録媒体１０５に格納されている各種パラメータテーブルを参照して、命令対象のユニットの移動速度、遂行能力、発動所要時間の情報を取得する。そしてＣＰＵ１０１は、これらのパラメータと行動Ｘの発動座標と命令対象のユニットの現在座標とに基づいて、発動するまでの時間を算出する。本実施形態の対戦ゲームでは、例えば図６（ａ）に示されるように、プレイヤがゲーム内で操作可能なユニットの各々について、耐久力等の基本的なパラメータ（基本パラメータ）に加えて、移動速度、命令可能な行動及びその行動の遂行能力を定めたユニットパラメータテーブルが記録媒体１０５に格納されている。また、図６（ｂ）に示されるように、対戦ゲームで設けられている行動のそれぞれには、行動により生じる影響を示す影響パラメータに加えて、エフェクト処理を含む行動発動に係る演算に要する時間よりも長い時間を発動所要時間として定めた行動パラメータテーブルが記録媒体１０５に格納されている。各行動の発動所要時間は、該行動の発動に係る演算に要する時間に比例して定められている。ＣＰＵ１０１はこれらのテーブルを参照して上述のパラメータを取得し、発動するまでの時間Ｔactを例えば
Ｔact＝RootLength(Ｐunit−Ｐbase)
＋RootLength(Ｐact−Ｐunit)／Ｖunit＋Ａunit×Ｔneed
として算出する。ここで、RootLength()は地形を考慮した２地点間の距離を算出する関数、Ｐbaseは本拠地座標、Ｐunitはユニットの現在座標、Ｐactは行動発動座標、Ｖunitはユニットの移動速度、Ａunitはユニットの行動Ｘに係る遂行能力（＞１）、Ｔneedは行動Ｘの発動所要時間である。
【００４５】
Ｓ４０４で、ＣＰＵ１０１は、行動Ｘが発動した際に、その効果が各プレイヤに通知されるまでの時間、即ち行動Ｘの結果が各ゲームコンソール１００で実行されているゲームに反映されるまでの時間（効果の伝搬に要する時間）を算出する。ゲームに反映されるまでの時間Ｔnotifyは、例えば行動Ｘの演算結果のデータ量Ｄact、行動Ｘの発動座標と各ゲームコンソール１００のプレイヤに割り当てられた本拠地座標との距離、及び変換係数Ｋとに基づいて、
Ｔnotify＝Ｄact×RootLength(Ｐact−Ｐbase)×Ｋ
として算出する。ここで、変換係数Ｋは、行動管理処理のＳ３０２において通信遅延量からプレイヤ間の本拠地の距離を規定するために使用される変換係数の逆数である。
【００４６】
なお、本実施形態の対戦ゲームでは、行動命令に係る行動が発動するまでの時間及び行動の結果がゲームに反映されるまでの時間を上述の二式によって算出するものとして説明するが、本発明の実施はこれに限られるものではない。本発明の実施において行動が発動するまでの時間は、通信遅延による不整合を公平化するために、命令をしたプレイヤの本拠地から発動地点が遠いほど、また行動に係る処理の演算量が多いほど、発動遅延に係る遅延量や通信遅延量を超えて発動を遅らせるようにするものであればよい。また行動の結果がゲームに反映されるまでの時間は、後述のように該行動の演算を行う装置からの通信遅延量と演算結果のデータ量とを考慮して決定するものであればよい。
【００４７】
Ｓ４０５で、ＣＰＵ１０１は、行動Ｘの発動座標に本拠地が最も近いプレイヤのゲームコンソール１００に、行動Ｘに係る演算処理を割り当てる。ここで演算処理を割り当てるゲームコンソール１００（対象コンソール）が自身のゲームコンソール１００とは異なる場合、ＣＰＵ１０１は、Ｓ４０３において算出した行動が発動するまでの時間の情報と、Ｓ４０４において算出した結果がゲームに反映されるまでの時間の情報とを通信部１０７に伝送し、行動Ｘの行動識別情報に関連付けて対象コンソールに送信させる。また対象コンソールが自身のゲームコンソール１００である場合、ＣＰＵ１０１は同様の情報をＲＡＭ１０３に保持する。
【００４８】
Ｓ４０６で、ＣＰＵ１０１は、Ｓ４０５における行動Ｘに係る演算処理の割り当てが自身であったか否かを判断する。ＣＰＵ１０１は、行動Ｘに係る演算処理の割り当てが自身であったと判断した場合は処理をＳ４０７に移し、自身ではないと判断した場合は本行動処理（自機）を完了する。
【００４９】
Ｓ４０７で、ＣＰＵ１０１は、行動Ｘの発動タイミング及び各ゲームコンソール１００で実行されているゲームへの反映タイミングを算出し、例えばＲＡＭ１０３に格納されているタイミングテーブルに行動識別情報に関連付けて追加する。行動の発動タイミングは、ＲＡＭ１０３に格納されている同一の行動識別情報に関連付けられた「行動命令がなされた経過時間」に「行動が発動するまでの時間」を加算することで得られる。また各ゲームコンソール１００で実行されているゲームへの反映タイミングは、さらに「ゲームに反映されるまでの時間」を加算することで得られる。
【００５０】
Ｓ４０８で、ＣＰＵ１０１は、行動Ｘに係る演算処理を開始する。なお、ここで開始した演算処理がＳ４０７において算出した行動の発動タイミングまでに完了するように、Ｓ４０３における算出式は規定されているものとする。また例えば、ゲームコンソール１００に割り当てられている演算処理が多い等、処理遅延を発生しうる状況にある場合、ＣＰＵ１０１は、処理量に応じてタイミングテーブルに追加されているタイミングを適宜延長するようにしてもよい。この場合、延長後のタイミングは対戦相手のゲームコンソール１００にも各行動識別情報に関連付けて通知されるものとする。
【００５１】
〈行動処理（他機）〉
次に、行動管理処理のＳ３０４において実行する行動処理（他機）の詳細について図５のフローチャートを用いて説明する。
【００５２】
Ｓ５０１で、ＣＰＵ１０１は、対戦相手のゲームコンソール１００から行動命令がなされたことを示す情報を受信したか否かを判断する。ＣＰＵ１０１は、行動命令がなされたことを示す情報を受信したと判断した場合は処理をＳ５０２に移し、受信していないと判断した場合は処理をＳ５０３に移す。
【００５３】
Ｓ５０２で、ＣＰＵ１０１は、受信した行動命令がなされたことを示す情報をＲＡＭ１０３に格納し、該情報に含まれる発動座標の情報を読み出し、該座標に対戦相手によりいずれかの行動命令がなされたことをゲーム画面に通知する情報として設定する。
【００５４】
Ｓ５０３で、ＣＰＵ１０１は、自身が行動に係る演算処理を新たに割り当てられたか否かを判断する。本ステップでＣＰＵ１０１は、対戦相手のゲームコンソール１００から演算処理の割り当てに係る情報を受信した場合に、割り当てられたものと判断する。ＣＰＵ１０１は、演算処理を新たに割り当てられたと判断した場合は処理をＳ５０４に移し、割り当てられていないと判断した場合は本行動処理（他機）を完了する。
【００５５】
Ｓ５０４で、ＣＰＵ１０１は、新たに割り当てられた演算処理に係る行動について、その発動タイミング及び各ゲームコンソール１００で実行されているゲームへの反映タイミングを算出し、例えばＲＡＭ１０３に格納されているタイミングテーブルに行動識別情報に関連付けて追加する。行動の発動タイミングや各ゲームコンソール１００で実行されているゲームへの反映タイミングは、行動処理（自機）のＳ４０７のように算出すればよい。
【００５６】
Ｓ５０５で、ＣＰＵ１０１は、新たに割り当てられた演算処理を開始する。なお、ここで開始した演算処理がＳ５０４において算出した行動の発動タイミングまでに完了するように、行動処理（自機）のＳ４０３における算出式は規定されているものとする。また例えば、ゲームコンソール１００に割り当てられている演算処理が多い等、処理遅延を発生しうる状況にある場合、ＣＰＵ１０１は行動処理（自機）と同様に、処理量に応じてタイミングテーブルに追加されているタイミングを適宜延長するようにしてもよい。この場合、延長後のタイミングは対戦相手のゲームコンソール１００にも各行動識別情報に関連付けて通知されるものとする。
【００５７】
このように自機及び他機に係る行動処理を並行して実行した後、ＣＰＵ１０１は行動管理処理のＳ３０５で、タイミングテーブルに発動タイミングあるいは反映タイミングに至った行動が存在するか否かを判断し、存在する場合はＳ３０６で発動したことの通知、ゲームパラメータへの反映処理を実行し、本フレームに係る行動管理処理を完了する。なお、行動に係る演算結果は、演算完了次第、少なくとも反映タイミングに至るまでには、他方のゲームコンソール１００に送信されているものとする。またＣＰＵ１０１は、タイミングテーブルに発動タイミングあるいは反映タイミングに至った行動が存在しない場合は本フレームに係る行動管理処理を完了する。
【００５８】
以上説明したように、本実施形態のゲームシステムは、ゲーム装置間で生じる遅延を許容した好適なゲーム体験を実現することができる。本実施形態のゲームシステムは、複数の電子機器においてなされた行動命令により進行するゲームを実行する。ゲームシステムは、第１の電子機器において第１の行動命令がなされた場合に、該第１の電子機器において行動命令がなされたことを該第１の電子機器と異なる第２の電子機器に通知する。また第１の行動命令による行動がゲームに反映されるまでの第１の時間を設定し、第１の行動命令に基づく時間から第１の時間が経過した後に、第１の行動命令による行動を第２の電子機器において実行されるゲームに反映する。
【００５９】
このようにすることで本実施形態のゲームシステムでは、プレイヤによりなされた行動命令に対して、ゲーム内で発生しうる遅延を考慮して行動の発動時期を調整することで、演算や通信による遅延の影響を排除あるいは低減した対戦ゲームを実現することができる。
【００６０】
［実施形態２］
上述した実施形態１では、ゲームコンソール１００間で直接無線接続して対戦ゲームを実現する方法について説明した。本実施形態のゲームシステムでは、図７に示されるように各プレイヤが使用するゲームコンソール１００が、ネットワーク７００を介してサーバ８００に接続することで対戦ゲームを実現する例について説明する。
【００６１】
本実施形態のゲームシステムでは、サーバ８００が中央サーバとしての役割を担い、対戦ゲームにおけるゲームパラメータの管理を集中して行う。本実施形態のゲームシステムでは、サーバ８００は各プレイヤの操作する機器においてなされた行動命令の情報を取得し、行動に係る演算処理を実行してフィールド全体に係るゲームパラメータを更新して各機器に送信する。プレイヤの操作する機器（ゲームコンソール１００）は、受信したゲームパラメータの情報に基づいて自身の機器で管理しているゲームパラメータを更新し、該パラメータに基づいて描画処理を行ってゲーム画面を生成する。
【００６２】
また本実施形態では、各プレイヤが演算能力が異なるゲームコンソール１００を使用して対戦ゲームに参加する場合の処理についても説明する。
【００６３】
《サーバ８００の構成》
図８は、実施形態２に係るゲームシステムにおいて中央サーバとして機能するサーバ８００の機能構成を示したブロック図である。
【００６４】
サーバＣＰＵ８０１は、サーバ８００が有する各ブロックの動作を制御する。サーバＣＰＵ８０１は、例えばサーバＲＯＭ８０２やサーバ記録媒体８０４に記録された各ブロックの動作プログラムを読み出し、サーバＲＡＭ８０３に展開して実行することにより各ブロックの動作を制御する。
【００６５】
サーバＲＯＭ８０２は、電気的に書き換え可能な不揮発性メモリである。サーバＲＯＭ８０２は、サーバ８００が有する各ブロックの動作プログラムや、各ブロックの動作において必要なパラメータ等を記録する。またサーバＲＡＭ８０３は、揮発性メモリである。サーバＲＡＭ８０３は、各ブロックの動作プログラムの展開領域としてだけでなく、各ブロックの動作において出力された中間データ等を一時的に記録する格納領域としても用いられる。
【００６６】
サーバ記録媒体８０４は、例えばＨＤＤ等の、サーバ８００に着脱可能に接続される記録装置である。サーバ記録媒体８０４は、サーバ８００が有する各ブロックの動作プログラムだけでなく、演算に必要な各種パラメータ等を記録している。
【００６７】
サーバ通信部８０５は、サーバ８００が有する外部機器との通信に係る通信インタフェースである。本実施形態では、サーバ８００はネットワーク７００を介してクライアント機器である各ゲームコンソール１００と接続し、ゲーム実行中に通信を行い、必要なデータの送受信を行う。
【００６８】
《行動管理処理》
次に、このような構成を有する本実施形態のサーバ８００において実行される、上述の対戦ゲームに係る行動管理処理について、図９のフローチャートを用いて具体的な処理を説明する。該フローチャートに対応する処理は、サーバＣＰＵ８０１が、例えばサーバ記録媒体８０４に記録されている対戦ゲームに係る管理用アプリケーションに係るプログラムを読み出し、サーバＲＡＭ８０３に展開して実行することにより実現することができる。
【００６９】
本行動管理処理は、例えばサーバ８００に接続している複数の機器が参加する対戦ゲームの実行が決定し、ゲームに係る処理が開始されたことに同期して開始され、フレーム単位で繰り返し実行されるものとして説明する。なお、対戦ゲームの開始時にサーバ８００から送信された同期信号を受けて、ゲームに参加する全てのゲームコンソール１００においてゲーム開始からの経過時間の測定が開始されるものとする。
【００７０】
Ｓ９０１で、サーバＣＰＵ８０１は、対戦ゲームに参加するゲームコンソール１００の各々について、通信状況によって生じる通信遅延量を取得する。例えばサーバＣＰＵ８０１は、各ゲームコンソール１００に対してレスポンス要求を送信し、送信してから該要求に応じて返送されるレスポンスを受信するまでに要した時間を通信遅延量としてサーバＲＡＭ８０３に格納する。またサーバＣＰＵ８０１は、この他、各ゲームコンソール１００から、該ゲームコンソール１００との通信におけるデータ送信レート（以下、単に送信レート）と、該ゲームコンソール１００においてゲームパラメータの更新を開始してから更新後のパラメータに係るゲーム画面が生成されて表示部１０８に提示されるまでに要する時間（反映必要時間）の情報とを取得する。取得した情報は、例えばプレイヤの識別情報であるプレイヤＩＤに関連付けてサーバＲＡＭ８０３に格納される。
【００７１】
Ｓ９０２で、サーバＣＰＵ８０１は、フィールドにおけるプレイヤ間の本拠地の距離を通信遅延量に基づいて規定する。このとき、参加するゲームコンソール１００のプレイヤがそれぞれ異なるグループに属するものとして対戦ゲームが進行する、即ち各プレイヤがそれぞれ本拠地を有する独立のグループを操作する場合は、各ゲームコンソール１００との通信遅延量に基づいてプレイヤ間の本拠地の距離が規定される。また複数のプレイヤが１つのグループに属するものとして対戦ゲームが進行する、即ち複数のプレイヤで構成されるグループの各々に対して１つの本拠地が設けられる場合は、各グループに属するプレイヤが使用するゲームコンソール１００のうち、最も大きい通信遅延量に基づいてグループ間の本拠地の距離が規定される。
【００７２】
Ｓ９０３で、サーバＣＰＵ８０１は、ゲームコンソール１００において新たになされた行動命令に係る操作入力に対応する処理を行う行動処理（全体）を実行する。
【００７３】
〈行動処理（全体）〉
ここで、本実施形態の行動管理処理のＳ９０２においてサーバＣＰＵ８０１が実行する行動処理（全体）の詳細について図１０のフローチャートを用いて説明する。
【００７４】
Ｓ１００１で、サーバＣＰＵ８０１は、新たになされた行動命令に係る情報を受信したか否かを判断する。本実施形態の対戦ゲームでは、各ゲームコンソール１００のＣＰＵ１０１は、行動命令に係る操作入力がなされたと判断した場合は操作入力に対応する行動命令を解釈し、
・行動命令の対象であるユニットを示す情報
・なされた行動命令を示す情報
・行動命令がなされた経過時間
・行動命令に係る行動Ｘが発動する座標の情報
を取得する。そしてＣＰＵ１０１は、該情報を通信部１０７に伝送し、新たになされた行動命令に係る情報としてサーバ８００に送信する。サーバＣＰＵ８０１は、このようにして送信された新たになされた行動命令に係る情報を受信したと判断した場合は処理をＳ１００２に移し、受信していないと判断した場合は本行動処理（全体）を完了する。
【００７５】
Ｓ１００２で、サーバＣＰＵ８０１は、受信した新たになされた行動命令に係る情報に行動識別情報を割り当て、これらを関連付けてサーバＲＡＭ８０３に格納する。またサーバＣＰＵ８０１は、受信した情報に基づいて、行動命令がなされたことを示す情報、行動命令がなされた経過時間、行動Ｘが発動する座標の情報を生成してサーバ通信部８０５に伝送し、行動識別情報を関連付けて対戦ゲームに参加する全ゲームコンソール１００、あるいは行動命令がなされたゲームコンソール１００以外のゲームコンソール１００に対して送信させる。
【００７６】
Ｓ１００３で、サーバＣＰＵ８０１は、行動Ｘが発動するまでの時間を算出する。まずサーバＣＰＵ８０１は、サーバ記録媒体８０４に格納されている各種パラメータテーブルを参照して、命令対象のユニットの移動速度、遂行能力、発動所要時間の情報を取得する。そしてＣＰＵ１０１は、これらのパラメータと行動Ｘの発動座標と命令対象のユニットの現在座標とに基づいて、発動するまでの時間を算出する。行動Ｘが発動するまでの時間は、例えば実施形態１の行動処理（自機）のＳ４０３で示した計算式により算出されてよい。
【００７７】
Ｓ１００４で、サーバＣＰＵ８０１は、行動Ｘが発動した際に、その効果が各プレイヤに通知されるまでの時間、即ち行動Ｘの結果が各ゲームコンソール１００で実行されているゲームに反映されるまでの時間を算出する。本実施形態では対戦ゲームに参加するゲームコンソール１００は、各々異なる演算能力を有しているため、本ステップにおいてサーバＣＰＵ８０１は、例えば実施形態１の行動処理（自機）のＳ４０４で示した計算式により算出した値を、演算能力に応じて補正する。サーバＣＰＵ８０１は、例えば本実施形態の行動管理処理のＳ９０１において各ゲームコンソール１００から取得した、該ゲームコンソール１００に係る送信レートと反映必要時間の情報に基づいて算出した値を補正し、該ゲームコンソール１００で実行されているゲームに反映されるまでの時間とする。
【００７８】
Ｓ１００５で、サーバＣＰＵ８０１は、新たになされた行動命令に係る行動Ｘについて、その発動タイミング及び各ゲームコンソール１００で実行されているゲームへの反映タイミングを算出し、例えばサーバＲＡＭ８０３に格納されているタイミングテーブルに行動識別情報に関連付けて追加する。
【００７９】
Ｓ１００６で、サーバＣＰＵ８０１は、行動Ｘに係る演算処理を開始する。
【００８０】
このようにサーバ８００に接続しているゲームコンソール１００の全体についての行動処理を実行した後、サーバＣＰＵ８０１は行動管理処理のＳ９０４で、実行している行動に係る演算処理の中に実行が完了した演算処理が存在するか否かを判断する。サーバＣＰＵ８０１は、実行が完了した演算処理が存在すると判断した場合は処理をＳ９０５に移し、存在しないと判断した場合は本行動管理処理を完了する。
【００８１】
Ｓ９０５で、サーバＣＰＵ８０１は、完了した演算処理に対応する行動識別情報が関連付けられた、各ゲームコンソール１００における発動タイミング及び反映タイミングの情報をタイミングテーブルから読み出す。そしてサーバＣＰＵ８０１は、該演算処理の演算結果に読み出したタイミングの情報を関連付けて、対戦ゲームに参加するゲームコンソール１００の各々にサーバ通信部８０５を介して送信させ、本行動管理処理を完了する。このようにサーバ８００において生成された演算結果の情報は各ゲームコンソール１００に伝送され、それぞれのＣＰＵ１０１が、装置における経過時間が関連付けられたタイミングと一致した際に、行動が発動したことの通知あるいはゲームパラメータへの反映処理を実行すればよい。
【００８２】
このようにすることで、ネットワーク７００上のサーバ８００を介した場合であっても、対戦ゲームにおいて発生しうる演算や通信による遅延の影響を排除あるいは低減した対戦ゲームを実現することができる。
【００８３】
［変形例１］
上述した実施形態２では、各ゲームコンソール１００がネットワーク７００上の１つのサーバ８００に接続し、対戦ゲームを行う例について説明したが、本発明の実施はこのようなシステム構成に限られるものではない。例えば図１１に示されるように、各ゲームコンソール１００は、例えばゲームコンソール１００から最も近い地域に配置されたサーバ８００に接続し、該サーバを介して他のサーバ８００に接続したゲームコンソール１００との間で対戦ゲームが可能なようにゲームシステムが構成されてもよい。このような場合、各ゲームコンソール１００と該ゲームコンソール１００が接続するサーバ８００との通信遅延だけでなく、サーバ８００間における通信遅延も考慮する必要がある。また、地域ごとにトラヒックに差が生じるため、トラヒックも考慮して発動タイミングや反映タイミングの算出方法を異ならせてもよい。
【００８４】
本変形例のようなゲームシステムでは実施形態１と同様に、行動に係る演算処理の実行は、命令がなされた行動の発動地点に近い本拠地が割り当てられたゲームコンソール１００が接続しているサーバ８００に割り当てるものとしてよい。あるいは、接続端末数、トラヒック、処理能力等を考慮して決定したサーバ８００に割り当てるようにしてもよい。
【００８５】
また実施形態２や本変形例のゲームシステムのように、サーバ８００にゲームコンソール１００を接続させて対戦ゲームを行う場合、プレイヤにとって、固定のサーバ８００との通信遅延量は、複数回のゲームプレイによって体感的に理解しうるものである。一方で、本変形例のように異なる地域に存在する複数のサーバ８００を経由して対戦ゲームが実現される場合、対戦相手の決定によって初めて定まる他の地域のサーバ８００と接続しているサーバ８００との通信遅延量は、プレイヤにとって未知数と言える。このため、本変形例のゲームシステムでは、各プレイヤが対戦相手のプレイヤやグループを選択する、あるいは他のプレイヤから対戦を申し込まれた場合に、該プレイヤの使用する端末が接続しているサーバ８００と、自身のゲームコンソール１００が接続しているサーバ８００との通信遅延量を対戦ゲームの開始前に通知し、プレイヤがより戦略を立てやすいようにしてもよい。また、このような各サーバ間の通信遅延量の情報は、ゲームコンソール１００がサーバ８００に接続している間、定期的にゲームコンソール１００に送信されるように構成してもよい。
【００８６】
また通信遅延量は、伝送経路の長さに比例して変化するものでもあるため、ゲームに反映させる通信遅延量を、通信するサーバ８００の各々が存在する地域の地理的な距離に応じて擬似的に規定するものとしてもよい。即ち、対戦ゲームにおいてＡ国のサーバ８００に接続するゲームコンソール１００のプレイヤと、Ｂ国のサーバ８００に接続するゲームコンソール１００のプレイヤとが対戦する場合、ゲームのフィールド上の本拠地間の距離はＡ国とＢ国との距離に対応させて簡易的に規定してもよい。ゲームへの反映にあたっては、各国のサーバ８００間で生じる通信遅延量の平均値とその地理的な距離を考慮し、遅延による破綻が生じないように予め変換係数を規定しておけばよい。このようにすることで、プレイヤはいずれの国のサーバ８００に接続しているゲームコンソール１００のプレイヤと対戦ゲームを行う場合であってもゲームプレイを繰り返すことで、接続先の地域が判明すれば、発動タイミングや反映タイミングを予測して戦略をたてることができる。
【００８７】
［変形例２］
また上述した実施形態及び変形例では、ゲームパラメータへの更新がなされた後に各ゲームコンソール１００がゲーム画面を生成して表示部１０８に表示するものとして説明したが、本発明の実施はこのような態様に限られるものではない。例えば、所謂クラウド型のゲームシステムのように、サーバ側でゲーム画面の描画を行って生成するような構成であっても本発明は適用可能である。
【００８８】
《サーバ８００の構成》
サーバ側でゲーム画面の描画を行う場合、サーバ８００の構成は図１２に示されるように図６に示したサーバ８００の構成の他に、さらにサーバ描画部１２０１及びサーバ符号化部１２０２を有していればよい。
【００８９】
サーバ描画部１２０１は、例えばＧＰＵ等のゲームに係るゲーム画面を描画する描画装置である。サーバ描画部１２０１は、サーバＣＰＵ８０１からの描画命令を受信し、不図示のＧＰＵメモリに展開された描画オブジェクトに係るデータを命令に従って処理することで、ビデオメモリ上にゲーム画面を描画する。ゲーム画面は、各ゲームコンソール１００から送信された視点情報に従って各々描画される。
【００９０】
サーバ符号化部１２０２は、サーバ描画部１２０１により描画されたゲーム画面を符号化し、動画データを生成する。サーバ符号化部１２０２により生成された動画データは、サーバ通信部８０５に伝送され、ストリーミング形式の動画データとして対応するゲームコンソール１００に送信される。
【００９１】
なお、この場合、ゲームコンソール１００においてなされた操作入力は、ゲームコンソール１００において解析された後に対応する行動命令の情報としてサーバ８００に送信される構成であってもよいし、操作入力のデータがサーバ８００に送信され、サーバＣＰＵ８０１が解析を行って対応する行動命令の情報を生成する構成であってもよい。
【００９２】
このような構成を有するサーバ８００では、ゲーム画面描画に係るゲームパラメータへの更新、及びゲーム画面の生成をサーバ８００で行うため、各ゲームコンソール１００における処理による遅延は、動画データの復号に係る処理のみを考慮すればよい。
【００９３】
［その他の実施形態］
本発明は上記実施の形態に制限されるものではなく、本発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。また本発明に係るゲームシステムは、１以上のコンピュータを該ゲームシステムの各構成要素として機能させるプログラムによっても実現可能である。該プログラムは、コンピュータが読み取り可能な記録媒体に記録されることにより、あるいは電気通信回線を通じて、提供／配布することができる。
【図１】
2015167737.tif 000003
【図２】
2015167737.tif 000004
【図３】
2015167737.tif 000005
【図４】
2015167737.tif 000006
【図５】
2015167737.tif 000007
【図６】
2015167737.tif 000008
【図７】
2015167737.tif 000009
【図８】
2015167737.tif 000010
【図９】
2015167737.tif 000011
【図１０】
2015167737.tif 000012
【図１１】
2015167737.tif 000013
【図１２】
2015167737.tif 000014