[1.第1実施形態]本発明の第1実施形態を図面に基づいて説明する。
[1−1.ゲームシステムの構成]図1は、本発明の第1実施形態に係るゲームシステム1の構成を示す。図1に示すように、本実施形態に係るゲームシステム1は、第1ゲーム端末10−1及び第2ゲーム端末10−2等を含む複数のゲーム端末と、サーバ装置30を含む。複数のゲーム端末の各々とサーバ装置30とはネットワークNに接続されている。このため、複数のゲーム端末の各々とサーバ装置30との間で相互にデータ通信が可能である。また、複数のゲーム端末の間でも相互にデータ通信が可能である。以下では、第1ゲーム端末10−1、第2ゲーム端末10−2、・・・の各々を総称して「ゲーム端末10」と記載することもある。
ゲーム端末10は、ユーザが操作するコンピュータである。より具体的には、ゲーム端末10は、ユーザがゲームをプレイするために使用するコンピュータである。例えば、ゲーム端末10は、家庭用ゲーム機(据置型ゲーム機)、携帯用ゲーム機、遊戯施設等に設置される業務用ゲーム機、携帯電話機(スマートフォンを含む)、携帯情報端末(タブレット型コンピュータを含む)、デスクトップ型コンピュータ、又はラップトップ型コンピュータである。
図1に示すように、ゲーム端末10は制御部11、記憶部12、通信部13、入力部14、表示部15、及び音声出力部16を含む。制御部11は少なくとも一つのマイクロプロセッサを含み、記憶部12に記憶されたオペレーティングシステムやその他のプログラムに従って情報処理を実行する。記憶部12は、主記憶部(例えばRAM)及び補助記憶部(例えば、不揮発性の半導体メモリ、ハードディスクドライブ、又はソリッドステートドライブ)を含む。記憶部12はプログラムやデータを記憶するためのものである。通信部13は、ネットワークNを介して他の装置とデータ通信するためのものである。
入力部14は、ユーザがゲームに対する指示を行うためのものである。入力部14は、例えば、ボタン(キー)、レバー(スティック)、タッチパネル、マウス、マイク、又はセンサー等を含む。なお、ボタンやレバーはゲーム端末10本体に設けられていてもよいし、ゲーム端末10に接続されたゲームコントローラ(ゲームパッド)に設けられていてもよい。なお、ボタンやレバーは、タッチパネルに表示された仮想的なボタン又はレバーであってもよい。また、マイクやセンサーもゲーム端末10本体に設けられていてもよいし、ゲーム端末10に接続されていてもよい。なお、ボタンやマイク等は、ケーブル等の有線を介してゲーム端末10に接続されてもよいし、赤外線やBluetooth(登録商標)等の無線を介してゲーム端末10に接続されてもよい。以下では、ユーザが入力部14を介してゲームに対する指示を行う行為を「ゲーム操作」と記載する。
図2は、入力部14の一例であるゲームコントローラ140の外観の一例を示す。ゲームコントローラ140はゲーム端末10に接続される。例えば、ゲームコントローラ140には、複数の操作部材として、方向ボタン群141と、ボタン142A,142B,142X,142Y,142L1,142L2,142R1,142R2,142Pと、左スティック(左レバー)143Lと、右スティック(右レバー)143Rと、マイク144と、タッチパッド145とが含まれる。以下では、ボタン142A,142B,142X,142Y,142L1,142L2,142R1,142R2,142Pを総称して「ボタン142」と記載することもある。
方向ボタン群141、左スティック143L、及び右スティック143Rは、方向を指示するために用いられる。この場合、ユーザが方向ボタン群141のうちの何れかのボタンを押下したり、左スティック143L又は右スティック143Rを傾倒したりすることによって方向を指示する行為が「ゲーム操作」に相当する。
また、複数のボタン142うちの何れかが押下された場合、押下されたボタンに対応する種類のゲーム制御が実行される。即ち、ユーザが複数のボタン142のうちの何れかを押下する行為も「ゲーム操作」に相当する。また、ユーザがマイク144に音声を入力したり、タッチパッド145をタッチしたりする行為も「ゲーム操作」に相当する。
ゲームコントローラ140の各操作部材の状態は一定周期毎(例えば、1フレーム:1/60秒毎)にスキャンされ、そのスキャン結果を表す操作信号が制御部11に供給される。この操作信号に基づいて、ゲーム操作の種類が判定される。
表示部15は、例えば液晶ディスプレイ又は有機ELディスプレイ等であり、制御部11により表示制御されることにより画像を表示する。音声出力部16は、例えばスピーカ又はヘッドホン等であり、音声を出力する。なお、表示部15や音声出力部16は、ゲーム端末10に接続された外部装置として設けられてもよいし、ゲーム端末10自体に設けられていてもよい。
サーバ装置30は例えばサーバコンピュータである。図1に示すように、サーバ装置30は制御部31、記憶部32、及び通信部33を含む。制御部31、記憶部32、通信部33は、ゲーム端末10の制御部11、記憶部12、通信部13と基本的に同様であるため、説明を省略する。
サーバ装置30はデータベースDBにアクセスできる。データベースDBはサーバ装置30内に構築されてもよいし、サーバ装置30とは別のサーバコンピュータ内に構築されてもよい。
ゲーム端末10又はサーバ装置30は、情報記憶媒体(例えば光ディスク又はメモリカード等)に記憶されたプログラムやデータを読み取るための構成要素(例えば光ディスクドライブ又はメモリーカードスロット等)を備えてもよい。プログラムやデータは、情報記憶媒体を介してゲーム端末10又はサーバ装置30に供給されて、記憶部12又は記憶部32に記憶されてもよい。なお、プログラムやデータは、ネットワークNを介して遠隔地からゲーム端末10又はサーバ装置30に供給されてもよい。
[1−2.ゲームの概要]ゲームシステム1は、複数のゲーム端末10をそれぞれ使用する複数のユーザが参加する各種ゲームを実行する。例えば、第1ゲーム端末10−1を使用する第1ユーザと、第2ゲーム端末10−2を使用する第2ユーザとが上記「複数のユーザ」に相当する。
「複数のユーザが参加するゲーム」とは、例えば、複数のユーザが対戦するゲームである。サッカーゲームや、野球ゲーム、バスケットボールゲーム、アイスホッケーゲーム等の対戦スポーツゲームが「複数のユーザが対戦するゲーム」の一例に相当する。他にも例えば、レースゲーム、格闘ゲーム、又はカードゲーム等が「複数のユーザが対戦するゲーム」の一例に相当するが、これらのゲームに限られず、他の種類の対戦ゲームも「複数のユーザが対戦するゲーム」の一例に相当する。
また例えば、「複数のユーザが参加するゲーム」とは、複数のユーザが協力して共通の目的を達成することを目指すゲームであってもよい。「目的」とは、例えば、対戦に勝利すること、敵を退治すること、ゲームキャラクタが所定の地点に到達すること、ゲーム評価が所定の基準を満たすこと、又はゲームアイテムを入手すること等である。例えば、複数のユーザが共通のチームを操作して、対戦相手のチームとの試合に勝利することを目指すスポーツゲームが「複数のユーザが協力して共通の目的を達成することを目指すゲーム」の一例に相当する。他にも例えば、複数のユーザがグループ(チーム又はパーティ等)を組んで、他のグループとの戦闘に勝利したり、特定の敵キャラクタを退治したり、特定のゲームアイテムを入手したりすることを目指すアクションゲームやロールプレイングゲーム等も「複数のユーザが協力して共通の目的を達成することを目指すゲーム」の一例に相当する。
ゲーム端末10においてゲームが実行される場合、ゲーム空間が記憶部12に構築される。「ゲーム空間」とは、記憶部12に構築される仮想的な空間であり、三つの座標軸が関連付けられた仮想的な3次元空間であってもよいし、二つの座標軸が関連付けられた仮想的な2次元平面であってもよい。例えば、ゲーム空間には、1又は複数のゲームオブジェクトが配置される。「ゲームオブジェクト」とは、ゲーム空間に配置される仮想的な有体物である。例えば、サッカーゲーム、野球ゲーム、バスケットボールゲーム、又はアイスホッケーゲーム等のスポーツゲームの場合、選手キャラクタやボールが「ゲームオブジェクト」の一例に相当する。また例えば、レースゲームの場合、レースカーが「ゲームオブジェクト」の一例に相当する。また例えば、格闘ゲーム、アクションゲーム、又はロールプレイングゲームの場合、ゲームキャラクタが「ゲームオブジェクト」の一例に相当する。例えば、カードゲームの場合、ゲームにおいて用いられるカードが「ゲームオブジェクト」の一例に相当する。
以下では、ゲームシステム1で実行されるゲームの一例として、サッカーゲームについて主に説明する。このサッカーゲームでは、ユーザが操作するチームと、他のユーザが操作するチームとの間でサッカーの試合が行われる。または、複数のユーザが協力して操作するチームと、対戦相手(コンピュータ又は1又は複数の他のユーザ)が操作するチームとの間でサッカーの試合が行われる。以下では、第1ゲーム端末10−1を使用する第1ユーザが操作する第1チームと、第2ゲーム端末10−2を使用する第2ユーザが操作する第2チームとの間でサッカーの試合が行われる場合を例として、このサッカーゲームについて説明する。
図3は、サッカーゲームにおけるゲーム空間の一例を示す。図3に示すゲーム空間50は、互いに直交する三つの座標軸(Xw軸、Yw軸、及びZw軸)が関連付けられた仮想的な3次元空間である。ゲーム空間50に配置される各ゲームオブジェクトの位置はワールド座標系(XwYwZw座標系)の3次元座標で特定される。
図3に示すように、ゲーム空間50には、サッカーフィールドを表すゲームオブジェクトであるフィールド51が配置される。フィールド51上には、サッカーのゴールを表すゲームオブジェクトであるゴール52が配置され、2本のゴールライン53及び2本のタッチライン54が表されている。ゴールライン53及びタッチライン54によって囲まれたピッチ55において、試合が行われる。
またフィールド51上には、サッカーボールを表すボール61と、第1チームに所属するサッカー選手を表す選手キャラクタ62と、第2チームに所属するサッカー選手を表す選手キャラクタ63とが配置される。図3では省略されているが、フィールド51上には、第1チームに所属する11体の選手キャラクタ62と、第2チームに所属する11体の選手キャラクタ63とが配置される。
選手キャラクタ62(63)とボール61とが近づくと、所定条件のもとで、選手キャラクタ62(63)とボール61とが関連付けられる。以降、選手キャラクタ62(63)とボール61とが関連付けられた状態を「選手キャラクタ62(63)がボール61を保有する」と記載する。ボール61を保有する選手キャラクタ62(63)は、ドリブル動作、パス動作、又はシュート動作等を行うことができる。
第1チームに所属する複数の選手キャラクタ62のうちの何れか1名の選手キャラクタ62が第1ユーザの操作対象となる。第1ユーザの操作対象になっている1名の選手キャラクタ62は、第1ユーザによって行われたゲーム操作に応じて各種動作を行う。即ち、第1ユーザの操作対象になっている1名の選手キャラクタ62は、第1ユーザによって行われたゲーム操作に対応する動作を行う。なお、第1ユーザの操作対象になる1名の選手キャラクタ62は、試合中に、第1チームに所属する複数の選手キャラクタ62のうちで切り替わるようにしてもよいし、固定されていてもよい。以下では、第1ユーザの操作対象になっている1名の選手キャラクタ62のことを単に「第1ユーザの操作対象の選手キャラクタ62」と記載する。
図4は、ゲーム操作とゲーム制御との対応関係情報の一例を示す。なお、図4に記載の「左スティック」は左スティック143Lを示す。また、「丸ボタン」、「ばつボタン」、「四角ボタン」、「L1ボタン」、「L2ボタン」、「R1ボタン」、及び「スタートボタン」は、それぞれボタン142A,142B,142Y,142L1,142L2,142R1,142Pを示す。また、「ボール保有時」とは、第1ユーザの操作対象の選手キャラクタ62がボール61を保有している状況のことを示し、「ボール非保有時」とは、第1ユーザの操作対象の選手キャラクタ62がボール61を保有していない状況のことを示す。さらに、「オフェンス時(ボール非保有)」とは、第1ユーザの操作対象になっていない選手キャラクタ62がボール61を保有している状況のことを示す。また、「ディフェンス時」とは、第2チームの選手キャラクタ63がボール61を保有している状況のことを示す。また、「デモ・リプレイ演出時」とは、デモ映像又はリプレイ画像が再生されている状況である。例えば、第1チームの得点イベントが発生した場合に、得点後の場面のデモ映像又は得点場面のリプレイ映像が再生されている状況である。
図4に示す例のうち、(1)〜(11)に関しては、ゲーム操作に対応するゲーム制御として、選手キャラクタ62の動作制御が設定されている。
例えば、(1)及び(2)は、第1ユーザが左スティック143Lを傾倒した場合に、第1ユーザの操作対象の選手キャラクタ62がボール61を保有していなければ、第1ユーザの操作対象の選手キャラクタ62に移動動作を行わせ、第1ユーザの操作対象の選手キャラクタ62がボール61を保有していれば、第1ユーザの操作対象の選手キャラクタ62にドリブル動作を行わせることを示す。(3)は、第1ユーザがボタン142Aを押下した場合に、第1ユーザの操作対象の選手キャラクタ62がボール61を保有していれば、第1ユーザの操作対象の選手キャラクタ62にパス動作を行わせることを示す。
なお、(5)における「パス要求」とは、ボール61を保有している味方の選手キャラクタ62に対して、第1ユーザの操作対象の選手キャラクタ62へのパスを要求する(即ち、第1ユーザの操作対象の選手キャラクタ62へのパス動作を、ボール61を保有している味方の選手キャラクタ62に行わせる)ことを示す。また、(6)における「シミュレーション」とは、第1ユーザの操作対象の選手キャラクタ62にシミュレーション動作(ファウルされたふりをして行うダイブ等の動作)を行わせることを示す。また、(10)における「キーパーによるプレス」とは、第1チームのキーパーである選手キャラクタ62にプレス動作を行わせることを示す。さらに、(11)における「オートムーブ」とは、第1ユーザの操作対象の選手キャラクタ62に本来のポジションに応じた位置まで戻る動作を行わせることを示す。
なお、(12)〜(14)に関しては、ゲーム操作に対応するゲーム制御として、選手キャラクタ62の動作制御以外のゲーム制御が設定されている。
例えば、(12)は、第1ユーザがボタン142Pを押下した場合には、試合の進行を一時停止(ポーズ)させることを示す。(13)は、第1ユーザがボタン142Bを押下した場合には、デモ映像又はリプレイ映像が再生されている状況であれば、デモ映像又はリプレイ映像の再生をスキップさせることを示す。(14)は、第1ユーザがボタン142L2を押下した場合には、チャットを行うためのゲーム制御を行うことを示す。
同じゲーム操作に対応するゲーム制御の内容がゲーム状況によって異なる場合がある。例えば(4)及び(10)に示すように、第1ユーザがボタン142Yを押下した場合のゲーム制御の内容はゲーム状況によって異なる。即ち、第1ユーザの操作対象の選手キャラクタ62がボール61を保有している状況であれば、第1ユーザの操作対象の選手キャラクタ62にシュート動作を行わせ、第2チームの選手キャラクタ63がボール61を保有している状況であれば、第1チームのキーパーの選手キャラクタ62がプレス動作を行わせる。
第1チームと同様に、第2チームに所属する複数の選手キャラクタ63のうちの何れか1名の選手キャラクタ63が第2ユーザの操作対象となる。第2ユーザの操作対象になっている1名の選手キャラクタ63は、第2ユーザによって行われたゲーム操作に応じて各種動作を行う。即ち、第2ユーザの操作対象になっている1名の選手キャラクタ63は、第2ユーザによって行われたゲーム操作に対応する動作を行う。第2ユーザのゲーム操作とゲーム制御との対応関係情報も図4に示した対応関係情報と同様である。なお、第2ユーザの操作対象になる1名の選手キャラクタ63は、試合中に、第2チームに所属する複数の選手キャラクタ62のうちで切り替わるようにしてもよいし、固定されていてもよい。以下では、第2ユーザの操作対象になっている1名の選手キャラクタ63のことを単に「第2ユーザの操作対象の選手キャラクタ63」と記載する。
第1ユーザ及び第2ユーザの操作対象になっていない選手キャラクタ62,63はコンピュータ(AI)による指示の下で自律的に各種動作を行う。
図3に戻り、ゲーム空間50には、仮想的な視点64が設定される。ゲーム空間50を視点64から視線方向Vを見た様子を表すゲーム画像が表示部15に表示される。第1ゲーム端末10−1での視点64等は第1ユーザの操作対象の選手キャラクタ62の位置に基づいて設定され、当該選手キャラクタ62を含むゲーム画像が第1ゲーム端末10−1の表示部15に表示される。一方、第2ゲーム端末10−2での視点64等は第2ユーザの操作対象の選手キャラクタ63の位置に基づいて設定され、当該選手キャラクタ63を含むゲーム画像が第2ゲーム端末10−2の表示部15に表示される。
第1ユーザと第2ユーザとが参加するゲームでは、第1ゲーム端末10−1と第2ゲーム端末10−2との各々で行われたゲーム操作を第1ゲーム端末10−1と第2ゲーム端末10−2との各々のゲーム状況に反映させる必要がある。また、第1ゲーム端末10−1と第2ゲーム端末10−2との間でゲーム状況が同じになり、ゲーム状況が互いに矛盾することがないように図る必要がある。「ゲーム状況が互いに矛盾する」とは、例えば、同じタイミングにおいて、第1ゲーム端末10−1におけるゲーム状況と第2ゲーム端末10−2におけるゲーム状況とが異なる状況になることであり、例えば、第1ゲーム端末10−1では選手キャラクタ62がボール61を保有し、第2ゲーム端末10−2では選手キャラクタ63がボール61を保有しているような状況となってしまうことである。
この点、第1ゲーム端末10−1と第2ゲーム端末10−2との間でゲーム状況を同じにするための処理としては、例えば図5Aに示すような処理が考えられる。図5Aでは、第1ユーザが第1ゲーム端末10−1でボタン142A(丸ボタン)を押下し、同じタイミングで、第2ユーザが第2ゲーム端末10−2でボタン142A(丸ボタン)を押下した場合を想定している。
図5Aの処理では、(1A)第1ゲーム端末10−1で行われたゲーム操作(ボタン142Aの押下)を示すゲーム操作情報Aが第1ゲーム端末10−1からサーバ装置30に送信される。なお、第1ゲーム端末10−1でゲーム操作が行われなかった場合、ゲーム操作が行われていないというゲーム操作情報Aが第1ゲーム端末10−1からサーバ装置30に送信される。(1B)同様に、第2ゲーム端末10−2で行われたゲーム操作(ボタン142Aの押下)を示すゲーム操作情報Bが第2ゲーム端末10−2からサーバ装置30に送信される。なお、第2ゲーム端末10−2でゲーム操作が行われなかった場合、ゲーム操作が行われていないというゲーム操作情報Bが第2ゲーム端末10−2からサーバ装置30に送信される。
(1C)そして、サーバ装置30は、ゲーム操作情報Aとゲーム操作情報Bとを第1ゲーム端末10−1と第2ゲーム端末10−2との両方に送信する。この場合、第1ゲーム端末10−1及び第2ゲーム端末10−2の各々には、図4に示した対応関係情報が記憶されており、第1ゲーム端末10−1と第2ゲーム端末10−2との各々では、ゲーム操作情報Aとゲーム操作情報Bの両方が届いた後で、上記対応情報とゲーム操作情報Aとゲーム操作情報Bとに基づいてゲーム状況が更新される。即ち、ゲーム操作情報Aに対応するゲーム制御とゲーム操作情報Bに対応するゲーム制御との両方が第1ゲーム端末10−1と第2ゲーム端末10−2との各々で実行される。図5Aの場合には、第1ユーザの操作対象の選手キャラクタ62にパス動作を行わせ、第2ユーザの操作対象の選手キャラクタ63にスライディング動作を行わせるというゲーム制御が第1ゲーム端末10−1及び第2ゲーム端末10−2との各々で実行される。なお、第1ゲーム端末10−1と第2ゲーム端末10−2とでは共通のアルゴリズムや乱数シード等が用いられる。このため、ゲーム制御の結果がランダムに決定される場合であっても、第1ゲーム端末10−1と第2ゲーム端末10−2との両方で同じ結果が得られる。
以上に説明した図5Aの処理によれば、第1ゲーム端末10−1と第2ゲーム端末10−2との間でゲーム状況を同じにすることができるが、ゲームシステム1では、図5Aの処理ではなく、図5Bに示す処理を採用する。図5Bでも、図5Aと同様、第1ユーザが第1ゲーム端末10−1でボタン142A(丸ボタン)を押下し、同じタイミングで、第2ユーザが第2ゲーム端末10−2でボタン142A(丸ボタン)を押下した場合を想定している。
図5Bの場合にも、図5Aの場合と同様、第1ゲーム端末10−1及び第2ゲーム端末10−2の各々に図4に示した対応関係情報が記憶される。
図5Bの処理では、(2A)第1ゲーム端末10−1において行われたゲーム操作(ボタン142Aの押下)に対応するゲーム制御の内容(パス)が判断され、当該内容を示すゲーム制御情報Aが第1ゲーム端末10−1からサーバ装置30に送信される。ゲームシステム1では、ゲーム制御内容ごとにID(識別情報)を設定しており、このIDがゲーム制御情報として送信される。図6は、ゲーム制御内容ごとに設定されるIDの一例を示す。なお、図6ではゲーム制御内容ごとに重要度も設定されているが、この点については後述する。図6では、ゲーム制御「パス」に対してID「PASS」が設定されているため、図5Bの場合、ゲーム制御情報AとしてID「PASS」が送信される。この場合、パス動作を制御するためのパス動作情報(例えばパスの方向又は相手等を示す情報)がID「PASS」とともに送信される。なお、第1ゲーム端末10−1でゲーム操作が行われなかった場合、ゲーム制御を何も実行しないことを示すゲーム制御情報Aが第1ゲーム端末10−1からサーバ装置30に送信される。図6では、ゲーム制御「何も実行しない」に対してID「NOTHING」が設定されているため、この場合、ゲーム制御情報AとしてID「NOTHING」のみが送信される。
(2B)同様に、第2ゲーム端末10−2において行われたゲーム操作(ボタン142Bの押下)に対応するゲーム制御の内容(スライディング)が判断され、当該内容を示すゲーム制御情報Bが第2ゲーム端末10−2からサーバ装置30に送信される。図6では、ゲーム制御「スライディング」に対してID「SLIDING」が設定されているため、図5Bの場合、ゲーム制御情報BとしてID「SLIDING」が送信される。この場合、スライディング動作を制御するためのスライディング動作情報(例えばスライディングの方向又は相手等を示す情報)がID「SLIDING」とともに送信される。なお、第2ゲーム端末10−2でゲーム操作が行われなかった場合、ゲーム制御を何も実行しないことを示すゲーム制御情報Bが第2ゲーム端末10−2からサーバ装置30に送信される。図6では、ゲーム制御「何も実行しない」に対してID「NOTHING」が設定されているため、この場合、ゲーム制御情報BとしてID「NOTHING」のみが送信される。
(2C)そして、サーバ装置30は、ゲーム制御情報Aとゲーム制御情報Bとを第1ゲーム端末10−1と第2ゲーム端末10−2との両方に送信する。
この場合、第1ゲーム端末10−1と第2ゲーム端末10−2との各々では、ゲーム操作情報Aとゲーム操作情報Bの両方が届いた後で、ゲーム制御情報Aとゲーム制御情報Bとに基づいてゲーム状況が更新される。即ち、ゲーム制御情報Aの示すゲーム制御とゲーム制御情報Bの示すゲーム制御との両方が第1ゲーム端末10−1と第2ゲーム端末10−2との各々で実行される。図5Bの場合には、第1ユーザの操作対象の選手キャラクタ62にパス動作を行わせ、かつ、第2ユーザの操作対象の選手キャラクタ63にスライディング動作を行わせるというゲーム制御が第1ゲーム端末10−1及び第2ゲーム端末10−2との各々で実行される。なお、図5Aの場合と同様、第1ゲーム端末10−1と第2ゲーム端末10−2とでは共通のアルゴリズムや乱数シード等が用いられ、ゲーム制御の結果がランダムに決定される場合であっても、第1ゲーム端末10−1と第2ゲーム端末10−2との両方で同じ結果が得られる。
ゲームシステム1では、図5Aのようにゲーム操作情報を送信するのではなく、図5Bのようにゲーム制御情報を送信することによって、下記に説明するような利点がある。
図6に示したように、ゲームシステム1では、ゲーム制御内容ごとに重要度を設定している。具体的には、0〜255の256段階で重要度が設定されている。ゲーム制御には重要度の高いものと重要度の高くないものとがある。例えば、ゲーム制御が実行されなかったとしてもユーザによって気づかれにくいものと、ゲーム制御が実行されないとユーザに違和感を覚えさせ、ゲームの興趣性が低下するおそれがあるものとがある。例えば、サッカーゲームでは、第2チームの選手キャラクタ63がボール61を保有している状況で、第1ユーザの操作に応じて選手キャラクタ62がスライディング動作を行わなかった場合には、当該動作が行われなかったことに第1ユーザが気づき、第1ユーザが違和感を覚える可能性が高いが、第1ユーザの操作に応じて選手キャラクタ62がプレス動作を行わなかったとしても第1ユーザによって気づかれにくく、第1ユーザが違和感を覚える可能性は低い。このため、「プレス」のゲーム制御の重要度は「スライディング」のゲーム制御に比べて低いということができる。
図7は、第1ゲーム端末10−1及び第2ゲーム端末10−2とサーバ装置30との間のゲーム制御情報の送受信について、さらに詳しく説明するための図である。なお、実際には、図7に示す(3D−1),(3D−2)は(3A−1),(3A−2)の直後に行われ、(3B),(3C)よりも先に行われるが、図7では、説明の簡便のため、(3D−1),(3D−2)を(3B),(3C)よりも後に記載している。(3G−1),(3G−2),(3J−1),(3J−2)に関しても同様である。
図7の例では、(3A−1)第1ゲーム端末10−1で第1ユーザによってドリブルのゲーム操作が行われ、「ドリブル」を示すゲーム制御情報として、ID「DRIBBLE」が第1ゲーム端末10−1からサーバ装置30に送信されている。この場合、ドリブル動作情報(例えばドリブルの方向等を示す情報)も送信される。
(3A−2)また、第2ゲーム端末10−2で第2ユーザによって移動のゲーム操作が行われ、「移動」を示すゲーム制御情報として、ID「MOVE」が第2ゲーム端末10−2からサーバ装置30に送信されている。この場合、移動動作情報(例えば移動の方向等を示す情報)も送信される。
(3B)この場合、サーバ装置30は、第1ゲーム端末10−1から受信したゲーム制御情報(DRIBBLE)と、第2ゲーム端末10−2から受信したゲーム制御情報(MOVE)とを第1ゲーム端末10−1と第2ゲーム端末10−2との両方に送信する。即ち、サーバ装置30は、第1ゲーム端末10−1のゲーム制御情報として、第1ゲーム端末10−1から受信したゲーム制御情報(DRIBBLE)を第1ゲーム端末10−1と第2ゲーム端末10−2との両方に送信し、第2ゲーム端末10−2のゲーム制御情報として、第2ゲーム端末10−2から受信したゲーム制御情報(MOVE)を第1ゲーム端末10−1と第2ゲーム端末10−2との両方に送信する。
(3C)そして、第1ゲーム端末10−1と第2ゲーム端末10−2との各々では、第1ゲーム端末10−1のゲーム制御情報(DRIBBLE)と、第2ゲーム端末10−2のゲーム制御情報(MOVE)とが受信され、これらのゲーム制御情報に基づいて、ゲーム状況が更新される。すなわち、第1ユーザの操作対象の選手キャラクタ62にドリブル動作を行わせ、かつ、第2ユーザの操作対象の選手キャラクタ63に移動動作を行わせるというゲーム制御が、第1ゲーム端末10−1と第2ゲーム端末10−2との各々で実行される。
図7の例では、(3D−1)第1ゲーム端末10−1で第1ユーザによってドリブルのゲーム操作が継続され、「ドリブル」を示すゲーム制御情報として、ID「DRIBBLE」が第1ゲーム端末10−1からサーバ装置30に送信されている。この場合、ドリブル動作情報(例えばドリブルの方向等を示す情報)も送信される。
(3D−2)また、第2ゲーム端末10−2では第2ユーザによってプレスのゲーム操作が行われ、「プレス」を示すゲーム制御情報として、ID「PRESS」が第2ゲーム端末10−2からサーバ装置30に送信されている。この場合、プレス動作情報(例えばプレスの相手等を示す情報)も送信される。ただし、図7に示す例では、第2ゲーム端末10−2とサーバ装置30との間で通信遅延が発生し、当該ゲーム制御情報が所定期間内にサーバ装置30に届いていない。
(3E)この場合、サーバ装置30は、第1ゲーム端末10−1のゲーム制御情報として、第1ゲーム端末10−1から受信したゲーム制御情報(DRIBBLE)を第1ゲーム端末10−1と第2ゲーム端末10−2との両方に送信し、第2ゲーム端末10−2のゲーム制御情報として、第2ゲーム端末10−2から受信されなかったゲーム制御情報(PRESS)の代わりに、ダミーゲーム制御情報を第1ゲーム端末10−1と第2ゲーム端末10−2との両方に送信する。この場合、ダミーゲーム制御情報としては、ゲーム制御として何も実行しないことを示すゲーム制御情報が送信される。この場合、ID「NOTHING」のみが送信される。
(3F)そして、第1ゲーム端末10−1と第2ゲーム端末10−2との各々では、第1ゲーム端末10−1のゲーム制御情報(DRIBBLE)と、第2ゲーム端末10−2のゲーム制御情報(NOTHING)とが受信され、これらのゲーム制御情報に基づいて、ゲーム状況が更新される。すなわち、第1ユーザの操作対象の選手キャラクタ62にドリブル動作を行わせるというゲーム制御が、第1ゲーム端末10−1及び第2ゲーム端末10−2との各々で実行される。
図7の例では、(3G−1)第1ゲーム端末10−1で第1ユーザによってドリブルのゲーム操作が継続され、「ドリブル」を示すゲーム制御情報として、ID「DRIBBLE」が第1ゲーム端末10−1からサーバ装置30に送信されている。この場合、ドリブル動作情報(例えばドリブルの方向等を示す情報)も送信される。
(3G−2)また、第2ゲーム端末10−2で第2ユーザによって移動のゲーム操作が行われ、「移動」を示すゲーム制御情報として、ID「MOVE」が第2ゲーム端末10−2からサーバ装置30に送信されている。この場合、移動動作情報(例えば移動の方向等を示す情報)も送信される。ただし、図7に示す例では、第2ゲーム端末10−2とサーバ装置30との間で通信遅延が発生し、当該ゲーム制御情報が所定期間内にサーバ装置30に届いていない。
(3H)この場合、サーバ装置30は、第1ゲーム端末10−1のゲーム制御情報として、第1ゲーム端末10−1から受信したゲーム制御情報(DRIBBLE)を第1ゲーム端末10−1と第2ゲーム端末10−2との両方に送信し、第2ゲーム端末10−2のゲーム制御情報として、第2ゲーム端末10−2から受信されなかったゲーム制御情報(MOVE)の代わりに、ダミーゲーム制御情報(NOTHING)を第1ゲーム端末10−1と第2ゲーム端末10−2との両方に送信する。
(3I)そして、第1ゲーム端末10−1と第2ゲーム端末10−2との各々では、第1ゲーム端末10−1のゲーム制御情報(DRIBBLE)と、第2ゲーム端末10−2のゲーム制御情報(NOTHING)とが受信され、これらのゲーム制御情報に基づいて、ゲーム状況が更新される。すなわち、第1ユーザの操作対象の選手キャラクタ62にドリブル動作を行わせるというゲーム制御が、第1ゲーム端末10−1及び第2ゲーム端末10−2との各々で実行される。
図7の例では、(3J−1)第1ゲーム端末10−1で第1ユーザによってドリブルのゲーム操作が継続され、「ドリブル」を示すゲーム制御情報として、ID「DRIBBLE」が第1ゲーム端末10−1からサーバ装置30に送信されている。この場合、ドリブル動作情報(例えばドリブルの方向等を示す情報)も送信される。
(3J−2)また、第2ゲーム端末10−2で第2ユーザによってスライディング操作が行われ、「スライディング」を示すゲーム制御情報として、ID「SLIDING」が第2ゲーム端末10−2からサーバ装置30に送信されている。この場合、スライディング動作情報(例えばスライディングの方向又は相手等を示す情報)も送信される。図7に示す例では、この時点で、第2ゲーム端末10−2とサーバ装置30との間の通信遅延が解消し、(3D−2),(3G−2),(3J−2)で送信されたゲーム制御情報がサーバ装置30に届いている。
(3K)この場合、サーバ装置30は、第1ゲーム端末10−1のゲーム制御情報として、第1ゲーム端末10−1から受信したゲーム制御情報(DRIBBLE)を第1ゲーム端末10−1と第2ゲーム端末10−2との両方に送信する。
また、サーバ装置30は、(3D−2)で第2ゲーム端末10−2から送信されたゲーム制御情報(PRESS)の重要度が基準重要度未満であるか否かを判定する。例えば、図7に示す例では第2ゲーム端末10−2の基準重要度が「50」に設定されており、図6に示す例ではゲーム制御情報(PRESS)の重要度が「20」に設定されているため、この場合、サーバ装置30は、(3D−2)で第2ゲーム端末10−2から送信されたゲーム制御情報(PRESS)の重要度が基準重要度未満であると判定する。この場合、サーバ装置30は、(3D−2)で第2ゲーム端末10−2から送信されたゲーム制御情報(PRESS)を第1ゲーム端末10−1と第2ゲーム端末10−2とに送信しない。
同様に、サーバ装置30は、(3G−2)で第2ゲーム端末10−2から送信されたゲーム制御情報(MOVE)の重要度が基準重要度未満であるか否かを判定する。図6に示す例ではゲーム制御情報(MOVE)の重要度が「1」に設定されているため、この場合、サーバ装置30は、(3G−2)で第2ゲーム端末10−2から送信されたゲーム制御情報(MOVE)の重要度が基準重要度未満であると判定する。この場合、サーバ装置30は、(3G−2)で第2ゲーム端末10−2から送信されたゲーム制御情報(MOVE)を第1ゲーム端末10−1と第2ゲーム端末10−2とに送信しない。
さらに、サーバ装置30は、(3J−2)で第2ゲーム端末10−2から送信されたゲーム制御情報(SLIDING)の重要度が基準重要度未満であるか否かを判定する。図6に示す例ではゲーム制御情報(SLIDING)の重要度が「90」に設定されているため、この場合、サーバ装置30は、(3J−2)で第2ゲーム端末10−2から送信されたゲーム制御情報(SLIDING)の重要度が基準重要度未満でないと判定する。この場合、サーバ装置30は、(3J−2)で第2ゲーム端末10−2から送信されたゲーム制御情報(SLIDING)を第1ゲーム端末10−1と第2ゲーム端末10−2との両方に送信する。
以上より、サーバ装置30は、第1ゲーム端末10−1のゲーム制御情報としてゲーム制御情報(DRIBBLE)を第1ゲーム端末10−1と第2ゲーム端末10−2との両方に送信し、第2ゲーム端末10−2のゲーム制御情報としてゲーム制御情報(SLIDING)を第1ゲーム端末10−1と第2ゲーム端末10−2との両方に送信する。
(3L)そして、第1ゲーム端末10−1と第2ゲーム端末10−2との各々では、第1ゲーム端末10−1のゲーム制御情報(DRIBBLE)と、第2ゲーム端末10−2のゲーム制御情報(SLIDING)とが受信され、これらのゲーム制御情報に基づいて、ゲーム状況が更新される。すなわち、第1ユーザの操作対象の選手キャラクタ62にドリブル動作を行わせ、かつ、第2ユーザの操作対象の選手キャラクタ63にスライディング動作を行わせるというゲーム制御が、第1ゲーム端末10−1及び第2ゲーム端末10−2との各々で実行される。
以上に説明したように、ゲームシステム1では、第2ゲーム端末10−2からのゲーム制御情報が通信遅延等によって受信されなかった場合に、第2ゲーム端末10−2のゲーム制御情報として、ダミーゲーム制御情報が第1ゲーム端末10−1と第2ゲーム端末10−2との各々に送信される。このため、通信遅延の発生した第2ゲーム端末10−2からのゲーム制御情報を待つことなく、ゲームを進行させることができる。即ち、通信遅延の発生していない第1ゲーム端末10−1で行われたゲーム操作のゲームへの反映が通信遅延の発生した第2ゲーム端末10−2に合わせて遅れてしまうことを避けることができる。
また、第2ゲーム端末10−2のゲーム制御情報として、2つのダミーゲーム制御情報が第1ゲーム端末10−1と第2ゲーム端末10−2との両方に送信された場合、このままの状態を放置すると、図8内の左図に示すように、これ以降、第2ゲーム端末10−2からのゲーム制御情報は第1ゲーム端末10−1よりも2つ遅れてゲームに反映されることになる。この点、ゲームシステム1では、第2ゲーム端末10−2のゲーム制御情報として、2つのダミーゲーム制御情報を第1ゲーム端末10−1と第2ゲーム端末10−2との両方に送信した後では、第2ゲーム端末10−2から受信された重要度の低い2つのゲーム制御情報を第1ゲーム端末10−1と第2ゲーム端末10−2とに送信することが制限される。即ち、ゲームシステム1では、第2ゲーム端末10−2のゲーム制御情報としてダミーゲーム制御情報を送信したことによって発生したずれを解消するために、送信したダミーゲーム制御情報の分だけ、第2ゲーム端末10−2から受信したゲーム制御情報を捨てる(間引く)。この際、重要度の高いゲーム制御情報を捨てないために基準重要度を用いており、基準重要度未満のゲーム制御情報を捨てる。その結果、重要度の高いゲーム制御情報を捨てないように担保しつつ、図8内の右図に示すように、上記のような遅れ(ずれ)の発生を抑制できる。なお、ゲームシステム1では、重要度の低いゲーム制御情報の送信が制限される(即ち、重要度の低いゲーム制御情報が捨てられる)ことによって通信負荷も低減されることになる。
なお、基準重要度はゲーム端末10とサーバ装置30との間の通信状況に基づいて設定される。図7の例では、第2ゲーム装置10−2からのゲーム制御情報の送信制限を行う場合の基準重要度として「50」が設定されているが、これは第2ゲーム端末10−2とサーバ装置30との間の通信状況に基づいて設定される。通信状況が良いほど、基準重要度は低く設定され、通信状況が悪いほど、基準重要度は高く設定される。なお、第1ゲーム装置10−1からのゲーム制御情報の送信制限を行う場合の基準重要度は、第1ゲーム端末10−1とサーバ装置30との間の通信状況に基づいて設定される。
以上に説明したように、ゲームシステム1では、重要度の低いゲーム制御情報の送信を制限する場合がある。図4に示したように、例えば、ボタン142B(ばつボタン)は「シュート」と「キーパーによるプレス」との両方に対応している。このため、ボタン142Bの押下を示すゲーム操作情報の重要度は高い場合(シュート)もあれば、低い場合(キーパーによるプレス)もある。このため、図5Aのように、ゲーム操作情報を送信する態様では、ゲーム操作情報が重要であるか否かを判定することが難しく、重要度の低いゲーム操作情報の送信を制限することが難しい。これに対し、図5Bのように、ゲーム制御情報を送信する態様では、ゲーム制御情報が重要であるか否かを判定でき、重要度の低いゲーム制御情報の送信を制限できる。
さらに、ゲームシステム1では、図5Bのようにゲーム制御情報を送信することによって、下記に説明するような通信負荷の低減も実現できる。図9は、この通信負荷の軽減について説明するための図である。
(4A)サッカーゲームでは、第1ユーザがチャンスの場面で興奮してシュートのゲーム操作を繰り返し行ってしまう(ボタン142Aを連打してしまう)場合がある。この場合、「シュート」を示すゲーム制御情報が複数個続けて取得される。図9の例では、「シュート」を示す3つのゲーム制御情報A1,A2,A3が第1ゲーム端末10−1で連続して取得されている。
(4B)シュート動作は複数回連続して行われるものではないため、ゲーム制御情報A1〜A3を連続して送信する必要性は低く、1つ目のゲーム制御情報A1だけを送信すれば足りる。そこで、「シュート」を示すゲーム制御情報A1〜A3が第1ゲーム端末10−1で連続して取得された場合に、第1ゲーム端末10−1は、2つ目以降のゲーム制御情報A2,A3の送信を制限し、その代わりに、ダミーゲーム制御情報A2D,A3Dを送信する。
ダミーゲーム制御情報A2D,A3Dはゲーム制御情報A2,A3よりもデータ量の小さい情報である。例えば、ゲーム制御として「何も実行しない」ことを示すゲーム制御情報(NOTHING)がダミーゲーム制御情報A2D,A3Dとして送信される。ゲーム制御情報A2,A3を送信する場合には、ID「SHOOT」とともに、シュート動作を制御するためのシュート動作情報(例えばシュートの方向又は強さ等を示す情報)が送信されるが、ダミーゲーム制御情報A2D,A3Dを送信する場合には、ID「NOTHING」のみが送信されるため、通信負荷が低減される。
(4C)またサッカーゲームでは、第2ユーザが第1ユーザのチャンスの場面で興奮してスライディングのゲーム操作を繰り返し行ってしまう(ボタン142Aを連打してしまう)場合がある。この場合、「スライディング」を示すゲーム制御情報が第2ゲーム端末10−2で複数個連続して取得される。図9の例では、「スライディング」を示す3つのゲーム制御情報B1,B2,B3が第2ゲーム端末10−2で連続して取得されている。
(4D)シュート動作と同様、スライディング動作は複数回連続して行われるものではないため、「スライディング」を示すゲーム制御情報B1〜B3が第2ゲーム端末10−2で連続して取得された場合に、第2ゲーム端末10−2は、2つ目以降のゲーム制御情報B2,B3の送信を制限し、その代わりに、ダミーゲーム制御情報B2D,B3Dを送信する。なお、ダミーゲーム制御情報B2D,B3Dはダミーゲーム制御情報A2D,A3Dと同様である。
(4E)この場合、サーバ装置30は、第1ゲーム端末10−1から受信したゲーム制御情報A1やダミーゲーム制御情報A2D,A3Dと、第2ゲーム端末10−2から受信したゲーム制御情報B1やダミーゲーム制御情報B2D,B3Dとを、第1ゲーム端末10−1と第2ゲーム端末10−2との両方に送信する。そして、第1ゲーム端末10−1と第2ゲーム端末10−2との各々では、第1ユーザの操作対象の選手キャラクタ62がシュート動作を1回のみ行い、第2ユーザの操作対象の選手キャラクタ63がスライディング動作を1回のみ行うことになる。このようにすることによって、必要性の低いゲーム制御情報の送信を制限でき、その結果としてゲームシステム1の通信負荷を低減できる。
以上に説明したような送信制限に加えて、ゲーム状況がゲーム制御情報のゲーム制御を行う必要性の低い状況(又は必要性の高くない状況、必要性のない状況)である場合にゲーム制御情報の送信を制限することもできる。
ゲーム制御情報の重要度はゲーム状況に基づいて変わる場合がある。サッカーゲームの場合、「シュート」を示すゲーム制御情報の重要度は、選手キャラクタ62(63)がシュート動作を行うことができる状況では高いが、選手キャラクタ62(63)がシュート動作を行うことができない状況では低い。このため、選手キャラクタ62(63)がシュート動作を行うことができない状況では、「シュート」を示すゲーム制御情報をサーバ装置30へ送信する必要性が低いと判定して、サーバ装置30への送信を制限して、その代わりに、ダミーゲーム制御情報をサーバ装置30に送信してもよい。なお、「選手キャラクタ62(63)がシュート動作を行うことができない状況」とは、例えば、選手キャラクタ62(63)がボール61を保有していない状況、選手キャラクタ62(63)が対戦相手の選手キャラクタ63(62)に囲まれている状況、選手キャラクタ62(63)が対戦相手のゴールの方向を向いていない状況、選手キャラクタ62(63)がシュート動作を行える姿勢ではない状況、選手キャラクタ62(63)が別の動作を実行中である状況、試合の進行が一時的に停止している状況(アウトオブプレイの状況)等である。先述したように、ダミーゲーム制御情報は通常のゲーム制御情報よりもデータ量の小さい情報であるため、上記のような必要性の低いゲーム制御情報の代わりにダミーゲーム制御情報を送信することによって、通信負荷が軽減される。
[1−3.機能ブロック]次に、以上に説明した機能を実現するための構成について説明する。図10はゲームシステム1で実現される機能ブロックの一例を示す。
図10に示すように、各ゲーム端末10は、データ記憶部1000と、ゲーム操作受付部1010と、ゲーム制御情報取得部1020と、送信部1030と、送信制限対象判定部1040と、制限部1050と、受信部1060と、ゲーム状況更新部1070と、表示制御部1080とを含む。このうち、データ記憶部1000は記憶部12によって実現され、送信部1030及び受信部1060は制御部11及び通信部13によって実現され、他の機能ブロックは制御部11によって実現される。
またサーバ装置30は、データ記憶部3000と、受信部3010と、ゲーム制御情報格納部3020と、バッファ部3030と、送信部3040と、代替送信部3050と、通信状況判定部3060と、送信制限決定部3070と、基準重要度設定部3080と、重要度取得部3090と、送信制限対象判定部3100と、制限部3110とを含む。このうち、データ記憶部3000は記憶部32又はデータベースDBによって実現され、受信部3010、送信部3040、及び代替送信部3050は制御部31及び通信部33によって実現され、他の機能ブロックは制御部31によって実現される。
[1−3−1]各ゲーム端末10のデータ記憶部1000は、ゲームを実行するために必要なデータを記憶する。例えば、ゲーム状況データD1001や対応関係データD1002等がデータ記憶部1000に記憶される。
[1−3−1−1]ゲーム状況データD1001はゲームの現在の状況を示すデータである。例えば、ゲーム状況データD1001はゲーム空間の状況を示すデータを含む。「ゲーム空間の状況を示すデータ」は、ゲーム空間に配置されるゲームオブジェクトの状態を示すデータを含む。
サッカーゲーム、野球ゲーム、バスケットボールゲーム、又はアイスホッケーゲーム等のスポーツゲームの場合、選手キャラクタやボールが「ゲームオブジェクト」の一例に相当する。この場合、選手キャラクタの位置、向き、姿勢、移動方向、移動速度、現在行っている動作種類、ボールを保持しているか否か等を示すデータや、ボールの位置、移動方向、移動速度等を示すデータが「ゲームオブジェクトの状態を示すデータ」の一例に相当する。
また、レースゲームの場合、レースカーが「ゲームオブジェクト」の一例に相当する。この場合レースカーの位置、向き、移動方向、移動速度等が「ゲームオブジェクトの状態を示すデータ」の一例に相当する。また、格闘ゲーム、アクションゲーム、又はロールプレイングゲームの場合、ゲームキャラクタが「ゲームオブジェクト」の一例に相当する。この場合、ゲームキャラクタの位置、向き、姿勢、移動方向、移動速度、現在行っている動作種類、ヒットポイント(ライフポイント)等を示すデータが「ゲームオブジェクトの状態を示すデータ」の一例に相当する。また、カードゲームの場合、ゲームカードが「ゲームオブジェクト」の一例に相当する。この場合、ゲームカードの位置、向き等を示すデータが「ゲームオブジェクトの状態を示すデータ」の一例に相当する。
また、ゲーム状況データD1001はゲームの進行状況を示すデータを含む。例えば、サッカーゲームの場合、試合開始からの経過時間、両チームの得点、アウトオブプレイの状態(例えば、コーナーキック、ペナルティキック、フリーキック、スローイング、又はゴールキック)であるか否か等を示すデータが「ゲームの進行状況を示すデータ」の一例に相当する。また、野球ゲームの場合、現在のイニング、両チームの得点等を示すデータが「ゲームの進行状況を示すデータ」の一例に相当する。
図11は、先述のサッカーゲームにおけるゲーム状況データD1001の一例を示す。図11に示すように、ゲーム状況データD1001は、現在のフィールド51の状態を示すデータや、現在の進行状況を示すデータ等を含む。例えば、現在のフィールド51の状態を示すデータは、第1チームの各選手キャラクタ62、第2チームの各選手キャラクタ63や、ボール61の現在の状態を示すデータを含む。
第1チームの各選手キャラクタ62の現在の状態を示すデータは、例えば、選手キャラクタ62を識別する情報であるキャラクタIDに関連付けて、操作対象、位置、向き、姿勢、移動方向、移動速度、及び、現在動作等の情報を含む。「操作対象」は、選手キャラクタ62を操作対象としているユーザを示す。なお、図11に記載の「U001」は第1ユーザ(第1ゲーム端末10−1)の識別情報である。「操作対象」として「COM」が設定されている選手キャラクタ62は、コンピュータ(AI)によって操作されている選手キャラクタ62であり、ユーザの操作対象ではないことを示す。
第2チームの各選手キャラクタ63の現在の状態を示すデータは、第1チームの各選手キャラクタ62の現在の状態を示すデータと同様である。なお、図11に記載の「U002」は第2ユーザ(第2ゲーム端末10−2)の識別情報である。
ボール61の現在の状態を示すデータは、例えば、ボール61の位置、移動方向、移動速度、保有キャラクタ等の情報を含む。「保有キャラクタ」は、ボール61を保有している選手キャラクタ62又は63のキャラクタIDを示す。現在の進行状況を示すデータは、試合開始からの経過時間(フレーム数)や現在の両チームの得点等の情報を含む。
[1−3−1−2]対応関係データD1002は、ゲーム操作とゲーム制御内容との対応関係を示すデータである。
ゲーム操作に対応するゲーム制御内容がゲーム状況に応じて異なる場合、対応関係データD1002には、ゲーム操作に対応する複数のゲーム制御内容として、複数のゲーム状況にそれぞれ対応する複数のゲーム制御内容が定められる。例えば、第1状況においてゲーム操作が行われた場合にゲームキャラクタが第1動作を行い、第2状況において同ゲーム操作が行われた場合にゲームキャラクタが第2動作を行うゲームの場合、ゲーム操作に対応するゲーム制御内容として、第1状況に対応する第1動作と、第2状況に対応する第2動作との両方が対応関係データD1002に登録される。
先述のサッカーゲームにおける対応関係データD1002は、図4に示した対応関係情報と図6に示した対応関係情報とを含むデータである。ただし、対応関係データD1002では重要度を省略してもよい。
[1−3−2]サーバ装置30のデータ記憶部3000も、ゲームを実行するために必要なデータを記憶する。例えば、対応関係データD3001、送信制限条件データD3002等がデータ記憶部3000に記憶される。
[1−3−2−1]対応関係データD3001は、複数種類のゲーム制御内容の各々に対する重要度を示す。「重要度」とは、ゲーム制御内容の重要さの程度を示す情報である。例えば、「重要度」は複数段階(例えば0〜255の256段階)で示される。必要性の高いゲーム制御内容の重要度は高く設定され、必要性の低いゲーム制御内容の重要度は低く設定される。
先述したように、「必要性の高いゲーム制御内容」とは、実行されないとユーザに違和感を覚えさせ、ゲームの興趣性が低下するおそれがあるゲーム制御である(例えば先述のサッカーゲームにおけるパス、シュート、スライディング等)。一方、「必要性の低いゲーム制御内容」とは、実行されなかったとしてもユーザによって気づかれにくいゲーム制御である(例えば先述のサッカーゲームにおけるプレス等)。先述のサッカーゲームにおける対応関係データD3001は図6に示した対応関係情報を含むデータである。
[1−3−2−2]送信制限条件データD3002は、ゲーム制御情報の送信制限を実行するための各種条件を示す。図12は、先述のサッカーゲームにおける送信制限条件データD3002の一例を示す。図12に示すように、送信制限条件データD3002には「送信元ID」と「代替送信回数」と「基準重要度」とが格納される。
「送信元ID」は、ゲーム制御情報の送信元であるゲーム端末10を識別するための情報である。図12では、送信元IDとして「U001」と「U002」とが設定されている。図10と同様、「U001」は第1ユーザ(第1ゲーム端末10−1)の識別情報であり、「U002」は第2ユーザ(第2ゲーム端末10−2)の識別情報である。
「代替送信回数」は、ゲーム端末10から送信されたゲーム制御情報が通信遅延等により所定期間内にサーバ装置30に届かなかったことによって、当該ゲーム制御情報の代わりに、ダミーゲーム制御情報が送信された回数を示す。言い換えれば、後述の代替送信部3050による代替送信が行われた回数を示す。通信遅延が発生しているゲーム端末10に関しては、代替送信回数が他のゲーム端末10に比べて多くなる。なお後述するように、「代替送信回数」の代わりに、「代替送信データ量」又は「総受信データ量」を格納してもよい。
「基準重要度」は、ゲーム制御内容の重要度が低いか否かの判定基準となるものである。後述するように、ゲーム制御内容の重要度が低いか否かによってゲーム制御情報が送信制限対象に該当するか否かが判定されるため、「基準重要度」は、ゲーム制御情報が送信制限対象に該当するか否かを判定するための判定基準に相当する。
[1−3−3]各ゲーム端末10のゲーム操作受付部1010はゲーム操作を受け付ける。
「ゲーム操作」とは、ユーザが入力部14を介してゲームに対する指示を行う行為である。例えば、ボタンを押下したり、スティック(レバー)を傾倒したり、タッチパネルをタッチしたり、マウスを動かしたり、マイクに音声を入力したり、センサーにジェスチャを検出させたりする行為が「ゲーム操作」の一例に相当する。例えば、ゲームコントローラ140の場合、ユーザが方向ボタン群141のうちの何れかのボタンを押下したり、左スティック143L又は右スティック143Rを傾倒したり、複数のボタン142のうちの何れかを押下したりする行為が「ゲーム操作」に相当する。
「ゲーム操作を受け付ける」とは、ユーザによって行われたゲーム操作の内容を取得することである。例えば、ゲームコントローラ140の場合であれば、方向ボタン群141や複数のボタンのうちの、ユーザによって操作されたボタンを示す情報を取得すること、左スティック143L又は右スティック143Rの傾倒方向及び角度を示す情報を取得することや、マイク144に入力された音声を示す情報を取得すること、タッチパッド145に対するタッチ位置を示す情報等を取得することが「ゲーム操作を受け付ける」ことの一例に相当する。
[1−3−4]各ゲーム端末10のゲーム制御情報取得部1020は、データ記憶部1000に記憶されるゲーム状況データD1001により示されるゲームの状況に基づいて、ゲーム操作に対応するゲーム制御内容を示すゲーム制御情報を取得する。
「ゲーム制御情報」とは、ゲーム操作に応じて行われるべきゲーム制御内容を示す情報である。なお、ゲーム操作とゲーム制御内容との対応関係を示す対応関係情報に基づいて、ゲーム操作に応じて行われるべきゲーム制御内容は特定される。
例えば、ゲーム操作に応じてゲームオブジェクトが動作するゲームの場合、ゲーム操作に応じてゲームオブジェクトが行うべき動作の内容を示す情報が「ゲーム制御情報」に含まれる。一例として、ゲームオブジェクトがユーザによって押下されたボタンに対応する種類の動作を行うゲームの場合、ユーザによって押下されたボタンに対応する動作種類を示す情報が「ゲーム制御情報」に含まれる。
また例えば、ゲームオブジェクトが方向ボタンの押下状態又はレバーの傾倒方向に対応する方向への動作を行うゲームの場合、方向ボタンの押下状態又はレバーの傾倒方向に対応するに対応する動作方向を示す情報が「ゲーム制御情報」に含まれる。また例えば、ゲームオブジェクトが方向ボタンの押下状態又はレバーの傾倒方向に対応する方向にある位置への動作を行うゲームの場合、方向ボタンの押下状態又はレバーの傾倒方向に対応する位置を示す情報が「ゲーム制御情報」に含まれる。
また例えば、ゲーム操作に応じて、所定の状況と、当該所定の状況以外の状況とが切り替わるゲームの場合、当該切り替えの実行を示す情報が「ゲーム制御情報」に含まれる。また例えば、ユーザの意思を他のユーザに伝えるための画像や音声の出力を示す情報が「ゲーム制御情報」に含まれる。
一のゲーム操作に対応するゲーム制御内容がゲームの状況に応じて異なる場合、ゲーム制御情報取得部1020は、当該一のゲーム操作に対応する複数のゲーム制御内容のうちの、ゲームの状況に対応するゲーム制御内容を示すゲーム制御情報を取得する。例えば、第1状況において所定のゲーム操作が行われた場合にはゲームキャラクタが第1動作を行い、第2状況において同じゲーム操作が行われた場合にはゲームキャラクタが第2動作を行うゲームでは、ゲーム制御情報取得部1020は、所定のゲーム操作に対応するゲーム制御情報として、第1動作又は第2動作の何れかを示す情報を、ゲームの状況に応じて取得する。より具体的には、ゲーム制御情報取得部1020は、第1状況において所定のゲーム操作が行われた場合に第1動作を示す情報をゲーム制御情報として取得し、第2状況において所定のゲーム操作が行われた場合に第2動作を示す情報をゲーム制御情報として取得する。
ゲーム制御情報取得部1020は、対応関係データD1002に基づいて、ゲーム操作に応じて行われるべきゲーム制御内容を示すゲーム制御情報を取得する。例えば、ゲーム制御情報取得部1020は、ゲーム操作受付部1010が受け付けたユーザのゲーム操作と、ゲーム状況データD1001により示されるゲーム状況とに対応するゲーム制御内容を対応関係データD1002(図4,6)に基づいて特定し、この特定されたゲーム制御内容を示す情報をゲーム制御情報として取得する。
例えば、先述のサッカーゲームのように、第1ユーザの操作対象の選手キャラクタ62がボール61を保有している状況でボタン142A(丸ボタン)が押下された場合に第1ユーザの操作対象の選手キャラクタ62がパス動作を行い、第2チームの選手キャラクタ63がボール61を保持している状況でボタン142A(丸ボタン)が押下された場合に第1ユーザの操作対象の選手キャラクタ62がスライディング動作を行うサッカーゲームでは、ボタン142Aが押下された場合に、ゲーム制御情報取得部1020は、第1ユーザの操作対象の選手キャラクタ62がボール61を保有している状況では、「パス」を示すゲーム制御情報として取得し、第2チームの選手キャラクタ63がボール61を保有している状況では、「スライディング」を示すゲーム制御情報として取得することである。
この場合、「パス」を示すゲーム制御情報としては、例えば、ID「PASS」とパス動作情報(例えばパスの方向又は相手等を示す情報)との組合せが取得される。また、「スライディング」を示すゲーム制御情報としては、例えば、ID「SLIDING」とスライディング動作情報(例えばスライディングの方向又は相手等を示す情報)との組合せが取得される。
なお、ユーザによってゲーム操作が行われていない場合、ゲーム制御情報取得部1020は、「何も実行しない」ことを示すゲーム制御情報を取得する。「何も実行しない」ことを示すゲーム制御情報としては、例えば、ID「NOTHING」が取得される。
[1−3−5]各ゲーム端末10の送信部1030は、ゲーム制御情報取得部1020によって取得されたゲーム制御情報を送信する。
例えば、第1ゲーム端末10−1の送信部1030は、第1ゲーム端末10−1のゲーム制御情報取得部1020によって取得されたゲーム制御情報をサーバ装置30に送信する。具体的には、第1ゲーム端末10−1の送信部1030は、第1ゲーム端末10−1を識別する送信元IDと、ゲーム操作が行われたタイミング(即ち、ゲーム操作受付部1010が第1ユーザのゲーム操作を受け付けたタイミング)を示すゲーム操作タイミング情報とをゲーム制御情報と関連付けて送信する。なお、ゲーム操作が行われたタイミングは、ゲーム操作が行われた時刻や、ゲーム(試合)が開始されてからのフレーム数又は経過時間等によって表される。同様に、第2ゲーム端末10−2の送信部1030は、第2ゲーム端末10−2のゲーム制御情報取得部1020によって取得されたゲーム制御情報をサーバ装置30に送信する。
[1−3−6]各ゲーム端末10の送信制限対象判定部1040は、ゲーム制御情報が所定の送信制限対象に該当するか否かを判定する。即ち、送信制限対象判定部1040は、ゲーム制御情報取得部1020によって取得されたゲーム制御情報が所定の送信制限対象に該当するか否かを判定する。
「送信制限対象」とは、送信が制限されるべき対象である。例えば、送信する必要性の低いゲーム制御情報が「送信制限対象」として設定される。別の言い方をすると、ゲーム状況データD1001(又はゲーム画像)に反映させる必要性の低いゲーム制御内容を示すゲーム制御情報が「送信制限対象」として判定される。また別の言い方をすると、無視しても影響の小さいゲーム制御内容や、無視してもユーザに気づかれにくいゲーム制御内容を示すゲーム制御情報が「送信制限対象」として判定される。ここでの「送信制限対象」とは、サーバ装置30への送信が制限されるべき対象である。
送信制限対象判定部1040は、ゲーム制御情報の示すゲーム制御内容に基づいて、当該ゲーム制御情報が送信制限対象に該当するか否かを判定する。
[1−3−6−1]例えば、送信制限対象判定部1040は、一のゲーム端末10において、第1のゲーム制御情報と、当該第1のゲーム制御情報と同じゲーム制御内容を示す第2のゲーム制御情報とが続けて取得された場合に、第2のゲーム制御情報が所定の送信制限対象に該当すると判定する。
「一のゲーム端末10において、第1のゲーム制御情報と、当該第1のゲーム制御情報と同じゲーム制御内容を示す第2のゲーム制御情報とが続けて取得された場合」とは、一のゲーム端末10において、ゲーム制御情報取得部1020によって第1のゲーム制御情報が取得された後に、所定時間以内に、第1のゲーム制御情報と異なるゲーム制御内容を示すゲーム制御情報が取得されることなく、第1のゲーム制御情報と同じゲーム制御内容を示す第2のゲーム制御情報が取得された場合である。
例えば、ゲーム操作に応じてゲームオブジェクトが動作するゲームの場合、「同じゲーム制御内容」とは、ゲーム制御情報により示される動作種類が同じであることである。即ち、第1のゲーム制御情報により示される動作種類と、第2のゲーム制御情報により示される動作種類とが同じである場合に、第1のゲーム制御情報と第2のゲーム制御情報とは同じゲーム制御内容を示すものに該当する。
図9の例では、ゲーム制御情報A1〜A3が何れも「シュート」を示すため、これらは同じゲーム制御内容を示すものである。この場合、送信制限対象判定部1040は、2つ目以降のゲーム制御情報A2,A3が「送信制限対象」に該当すると判定する。同様に、図9の例では、ゲーム制御情報B1〜B3が何れも「スライディング」を示すため、これらは同じゲーム制御内容を示すものである。この場合、送信制限対象判定部1040は、2つ目以降のゲーム制御情報B2,B3が「送信制限対象」に該当すると判定する。一般的にシュート動作やスライディング動作を連続して実行する必要性は低いため、2つ目以降のゲーム制御情報A2,A3やゲーム制御情報B2,B3は必要性の低いゲーム制御情報である。このため、送信制限対象判定部1040は、これらのゲーム制御情報A2,A3,B2,B3が「送信制限対象」に該当すると判定する。
また例えば、ゲーム操作に応じてゲームオブジェクトが選択されるゲームの場合、「同じゲーム制御内容」とは、ゲーム制御情報により示される選択対象のゲームオブジェクトが同じであることである。即ち、第1のゲーム制御情報により示される選択対象のゲームオブジェクトと、第2のゲーム制御情報により示される選択対象のゲームオブジェクトとが同じである場合に、第1のゲーム制御情報と第2のゲーム制御情報とのゲーム制御内容が同じであることになる。
また例えば、ゲーム操作に応じてゲームオブジェクトの位置又は向きが指定されるゲームの場合、「同じゲーム制御内容」とは、ゲーム制御情報により示される位置又は向きが同じであることであってもよい。即ち、第1のゲーム制御情報により示される位置又は向きと、第2のゲーム制御情報により示される位置又は向きとが同じである場合に、第1のゲーム制御情報と第2のゲーム制御情報とのゲーム制御内容が同じと判定してもよい。
例えば、カードゲームにおいて、ゲーム端末10で、同じゲームカードを選択するゲーム操作が連続して複数回受け付けられた場合、同じゲームカードを選択するゲーム制御情報が複数個連続して取得される。しかしながら、あるゲームカードが選択されている状態で同じゲームカードを再び選択することは意味のないゲーム制御である。同様に、ゲーム端末10で、ゲームカードの位置又は向きとして同じ位置又は向きを指定するゲーム操作が連続して複数回受け付けられた場合、ゲームカードの位置又は向きを同じ位置又は方向に設定するゲーム制御情報が複数個連続して取得される。しかしながら、ゲームカードがある位置又は方向に設定されている状態で同じ位置又は向きに設定することは意味のないゲーム制御である。この点、送信制限対象判定部1040は、同じゲームカードを選択するゲーム制御情報が複数個連続して取得された場合や、ゲームカードの位置又は向きを同じ位置や向きに設定するゲーム制御情報が複数個連続して取得された場合に、送信制限対象判定部1040は、2つ目以降のゲーム制御情報を「送信制限対象」に該当すると判定してもよい。
[1−3−6−2]また例えば、送信制限対象判定部1040は、ゲーム状況データD1001の示すゲーム状況に基づいて、ゲーム制御情報が送信制限対象に該当するか否かを判定する。
具体的には、送信制限対象判定部1040は、ゲーム状況データD1001の示すゲーム状況が、ゲーム制御情報の示すゲーム制御を行う必要性の低い状況(又は必要性のない状況)であるか否かを判定することによって、ゲーム制御情報が送信制限対象に該当するか否かを判定する。言い換えれば、送信制限対象判定部1040は、ゲーム状況データD1001の示すゲーム状況が、ゲーム制御情報の示すゲーム制御を行う必要性が高い状況であるか否かを判定することによって、ゲーム制御情報が送信制限対象に該当するか否かを判定する。ゲーム状況がゲーム制御情報のゲーム制御を行う必要性の低い状況(又は必要性のない状況、必要性の高くない状況)である場合、送信制限対象判定部1040は当該ゲーム制御情報が送信制限対象に該当すると判定する。一方、ゲーム状況がゲーム制御情報のゲーム制御を行う必要性の低くない状況(又は必要性のある状況、必要性の高い状況)である場合、送信制限対象判定部1040は当該ゲーム制御情報が送信制限対象に該当しないと判定する。
例えば、先述のサッカーゲームにおいて、第1ユーザによってシュートのゲーム操作(ボタン142Yの押下)が行われ、「シュート」を示すゲーム制御情報が第1ゲーム端末10−1のゲーム制御情報取得部1020によって取得された場合、送信制限対象判定部1040は、第1ユーザの操作対象の選手キャラクタ62がシュート動作を行うことができる状況であるか否かを判定する。例えば、第1ユーザの操作対象の選手キャラクタ62がボール61を保有していない状況、第1ユーザの操作対象の選手キャラクタ62がボール61を保有しているがシュート動作を行うことができる姿勢にない状況、第1ユーザの操作対象の選手キャラクタ62が第2チームのゴール52の方向に向いていない状況、第1ユーザの操作対象の選手キャラクタ62がシュート動作を行うことができない他の動作を実行している状況、又は、第1ユーザの操作対象の選手キャラクタ62が第2チームの選手キャラクタ63によって囲まれている状況である場合、送信制限対象判定部1040は、第1ユーザの操作対象の選手キャラクタ62がシュート動作を行うことができない状況であると判定し、「シュート」を示すゲーム制御情報が送信制限対象に該当すると判定する。
なお、送信制限対象判定部1040は、上記に例示した条件とは異なる条件に基づいて、ゲーム制御情報が送信制限対象に該当するか否かを判定してもよい。
[1−3−7]各ゲーム端末10の制限部1050は、ゲーム端末10(ゲーム制御情報取得部1020)で取得されたゲーム制御情報が所定の送信制限対象に該当する場合に、サーバ装置30への当該ゲーム制御情報の送信を制限する。この送信制限が行われる結果として、複数のゲーム端末10のうちの一のゲーム端末10で取得されたゲーム制御情報が送信制限対象に該当する場合に、複数のゲーム端末10のうちの他のゲーム端末10への当該ゲーム制御情報の送信が制限されることになる。
「ゲーム制御情報の送信を制限する」とは、ゲーム制御情報を送信することを抑止することである。即ち、ゲーム制御情報を送信しないようにすることである。ここでの「ゲーム制御情報の送信を制限する」とは、ゲーム端末10(ゲーム制御情報取得部1020)で取得されたゲーム制御情報を当該ゲーム端末10(送信部1030)がサーバ装置30に送信することを制限することである。
例えば、制限部1050は、ゲーム制御情報取得部1020によって取得されたゲーム制御情報が送信制限対象に該当すると判定された場合に、サーバ装置30への当該ゲーム制御情報の送信を制限する。この場合、送信部1030は、送信制限対象に該当すると判定されたゲーム制御情報の代わりに、ダミーゲーム制御情報を送信する。
先述したように、ダミーゲーム制御情報は、通常のゲーム制御情報に比べてデータ量の小さいデータである。例えば、ゲーム制御内容として「何も実行しない」を示すゲーム制御情報がダミーゲーム制御情報として用いられる。このダミーゲーム制御情報は、通常のゲーム制御情報と異なり、例えば、シュートの方向等を示すシュート動作情報(又は、スライディングの方向又は相手等を示すスライディング動作情報、プレスの相手等を示すプレス動作情報や、パスの方向又は相手等を示すパス動作情報)等を含まないため、通常のゲーム制御情報よりもデータ量が小さい。このため、このようなダミーゲーム制御情報を、送信制限対象に該当すると判定されたゲーム制御情報の代わりに送信することによって、通信負荷が軽減される。
[1−3−8]各ゲーム端末10の受信部1060は、複数のゲーム端末10のうちの他のゲーム端末10で取得されたゲーム制御情報を受信する。
後述するように、第1実施形態では、他のゲーム端末10で取得されたゲーム制御情報がサーバ装置30を介してゲーム端末10に送信されるため、受信部1060は、サーバ装置30から送信されたゲーム制御情報を受信する。
例えば図5Bの例では、第2ゲーム端末10−2で取得されたゲーム制御情報Bがサーバ装置30に送信され、当該ゲーム制御情報Bがサーバ装置30から第1ゲーム端末10−1に送信されている。この場合、第1ゲーム端末10−1の受信部1060は、サーバ装置30から送信されるゲーム制御情報Bを受信する。なお図5Bの例では、第1ゲーム端末10−1で取得されたゲーム制御情報Aもサーバ装置30に送信され、当該ゲーム制御情報Aがサーバ装置30から第1ゲーム端末10−1に送信される。このため、第1ゲーム端末10−1の受信部1060は、サーバ装置30から送信されるゲーム制御情報Aも受信する。
同様に、図5Bの例では、第1ゲーム端末10−1で取得されたゲーム制御情報Aがサーバ装置30に送信され、当該ゲーム制御情報Aがサーバ装置30から第2ゲーム端末10−2に送信されている。この場合、第2ゲーム端末10−2の受信部1060は、サーバ装置30から送信されるゲーム制御情報Aを受信する。なお図5Bの例では、第2ゲーム端末10−2で取得されたゲーム制御情報Bもサーバ装置30に送信され、当該ゲーム制御情報Bがサーバ装置30から第2ゲーム端末10−2に送信される。このため、第2ゲーム端末10−2の受信部1060は、サーバ装置30から送信されるゲーム制御情報Bも受信する。
[1−3−9]ゲーム端末10のゲーム状況更新部1070は、ゲーム制御情報取得部1020によって取得されたゲーム制御情報と、受信部1060によって受信されたゲーム制御情報とに基づいて、データ記憶部1000に記憶されるゲーム状況データD1001を更新する。
「ゲーム状況データD1001を更新する」とは、ゲーム制御情報が示す内容のゲーム制御が行われるように、ゲーム状況データD1001を更新することである。例えば、ゲーム制御情報がゲームオブジェクトの行うべき動作の内容を示す場合、当該動作がゲームオブジェクトによって行われるように、ゲーム状況データを更新することである。
「ゲーム制御情報取得部1020によって取得されたゲーム制御情報」とは、ゲーム制御情報取得部1020によって取得されたゲーム制御情報自体であってもよいし、ゲーム制御情報取得部1020によって取得されたゲーム制御情報がゲーム端末10からサーバ装置30に送信され、当該ゲーム制御情報がサーバ装置30から送信元のゲーム端末10に送信される場合には、サーバ装置30から送信されたゲーム制御情報であってもよい。
「ゲーム制御情報取得部1020によって取得されたゲーム制御情報と、受信部1060によって受信されたゲーム制御情報とに基づいて、ゲーム状況データD1001を更新する」とは、ゲーム制御情報取得部1020によって取得されたゲーム制御情報が示すゲーム制御情報が示す内容のゲーム制御と、受信部1060によって受信されたゲーム制御情報が示す内容のゲーム制御とが行われるように、ゲーム状況データD1001を更新することである。例えば、ゲーム制御情報取得部1020によって取得されたゲーム制御情報と、受信部1060によって受信されたゲーム制御情報とが、第1ゲームオブジェクトの行うべき動作として第1の動作と、第2ゲームオブジェクトの行うべき動作として第2の動作とをそれぞれ示す場合、ゲーム状況更新部1070は、第1の動作が第1ゲームオブジェクトによって行われるように、かつ、第2の動作が第2ゲームオブジェクトによって行われるようにゲーム状況データD1001を更新する。
例えば、先述のサッカーゲームでは、図5Bの例のように、第1ゲーム端末10−1のゲーム制御情報取得部1020によって取得されたゲーム制御情報Aが第1ゲーム端末10−1からサーバ装置30に送信され、サーバ装置30から第1ゲーム端末10−1に送信される。また、第2ゲーム端末10−2のゲーム制御情報取得部1020によって取得されたゲーム制御情報Bが第2ゲーム端末10−2からサーバ装置30に送信され、サーバ装置30から第1ゲーム端末10−1に送信される。この場合、第1ゲーム端末10−1のゲーム状況更新部1070は、第1ゲーム端末10−1のデータ記憶部1000に記憶されるゲーム状況データD1001を、ゲーム制御情報Aとゲーム制御情報Bとに基づいて更新する。例えば、ゲーム制御情報Aが「パス」を示すゲーム制御情報であり、かつ、ゲーム制御情報Bが「スライディング」を示すゲーム制御情報である場合、ゲーム状況更新部1070は、第1ユーザの操作対象の選手キャラクタ62の現在動作を「パス」に更新することによって、第1ユーザの操作対象の選手キャラクタ62にパス動作を開始させ、第2ユーザの操作対象の選手キャラクタ63の現在動作を「スライディング」に更新することによって、第2ユーザの操作対象の選手キャラクタ63にスライディング動作を開始させる。第2ゲーム端末10−2のゲーム状況更新部1070も同様にして、第2ゲーム端末10−2のデータ記憶部1000に記憶されるゲーム状況データD1001を更新する。
[1−3−10]ゲーム端末10の表示制御部1080は、ゲーム状況データD1001に基づいて、ゲームの状況を示すゲーム画像を表示部15に表示させるための制御を行う。
例えば、表示制御部1080は、ゲームの状況を示すゲーム画像を生成して表示部15に表示させる。即ち、表示制御部1080は、ゲーム空間50を視点64から見た様子を示すゲーム画像を生成して表示部15に表示させる。例えば、ゲーム状況データD1001において、第1ユーザの操作対象の選手キャラクタ62の現在動作が「パス」に設定され、第2ユーザの操作対象の選手キャラクタ63の現在動作が「スライディング」に設定されている場合、第1ユーザの操作対象の選手キャラクタ62がパス動作を行い、第2ユーザの操作対象の選手キャラクタ63がスライディング動作を行う様子を示すゲーム画像が生成され、当該ゲーム画像が表示部15に表示される。
[1−3−11]サーバ装置30の受信部3010は、複数のゲーム端末10の各々から送信されたゲーム制御情報を受信する。
先述したように、各ゲーム端末10の送信部1030は、送信元IDとゲーム操作タイミング情報とが関連付けられたゲーム制御情報を送信する。受信部3010は、各ゲーム端末10の送信部1030によって送信されたこれらの情報を受信する。
[1−3−12]サーバ装置30のゲーム制御情報格納部3020は、受信部3010によって受信されたゲーム制御情報をバッファ部3030に格納する。
図13はバッファ部3030の一例を示す。先述したように、受信部3010は、送信元IDとゲーム操作タイミング情報とが関連付けられたゲーム制御情報を受信するため、図13に示すように、これらの情報がバッファ部3030に格納される。
図13では、「パス」を示すゲーム制御情報として、ID「PASS」とパス動作情報との組合せが格納されている。パス動作情報は例えばパスの方向又は相手等を示す。また、「スライディング」を示すゲーム制御情報として、ID「SLIDING」とスライディング動作情報との組合せが格納されている。スライディング動作情報は例えばスライディングの方向又は相手等を示す。
[1−3−13]サーバ装置30の送信部3040は、複数のゲーム端末10の各々から受信部3010によって受信されたゲーム制御情報を、少なくとも、複数のゲーム端末10のうちの他のゲーム端末10に送信する。第1実施形態では、送信部3040は、複数のゲーム端末10の各々から受信部3010によって受信されたゲーム制御情報を当該複数のゲーム端末10に送信する。
例えば、送信部3040は、一のゲーム端末10から受信部3010が受信したゲーム制御情報を、当該一のゲーム端末10のゲーム制御情報として、他のゲーム端末10に送信する。「一のゲーム端末10のゲーム制御情報としてゲーム制御情報を送信する」とは、ゲーム制御情報に当該一のゲーム端末10を識別する識別情報を関連付けて送信することである。
先述のサッカーゲームの場合、送信部3040は、バッファ部3030に格納されたゲーム制御情報を送信元IDやゲーム操作タイミング情報とともに第1ゲーム端末10−1と第2ゲーム端末10−2との両方に送信する。
[1−3−14]サーバ装置30の代替送信部3050は、複数のゲーム端末10のうちの一のゲーム端末10からのゲーム制御情報が受信部3010によって受信されなかった場合に、当該一のゲーム端末10からのゲーム制御情報として、代替ゲーム制御情報を複数のゲーム端末10の各々に送信する。
「代替ゲーム制御情報」とは、ゲーム端末10から受信されなかったゲーム制御情報の代わりとして複数のゲーム端末10の各々に送信されるゲーム制御情報である。ゲーム端末10からのゲーム制御情報を装って複数のゲーム端末10の各々に送信されるゲーム制御情報である。例えば、ゲーム制御として何も行わないことを示すゲーム制御情報(言い換えれば、特定のゲーム制御内容を示さないゲーム制御情報)が「代替ゲーム制御情報」として送信される。なお、「代替ゲーム制御情報」は「ダミーゲーム制御情報」と呼ぶこともできる。また、「仮のゲーム制御情報」と呼ぶこともできる。
図7の例の場合、(3E)や(3H)において第2ゲーム端末10−2のゲーム制御情報として送信されたダミーゲーム制御情報(NOTHING)が「代替ゲーム制御情報」の一例に相当する。
即ち、図7の例のように、通信遅延等の理由によって、所定期間内に、第2ゲーム端末10−2からのゲーム制御情報(即ち、送信元ID「U002」と関連付けられたゲーム制御情報)が受信部3010によって受信されなかった場合に、代替送信部3050は、第2ゲーム端末10−2のゲーム制御情報として、ダミーゲーム制御情報(NOTHING)を第1ゲーム端末10−1と第2ゲーム端末10−2との両方に送信する。この場合のダミーゲーム制御情報には送信元ID「U002」が関連付けられる。なお、所定期間内に、第1ゲーム端末10−1からのゲーム制御情報(即ち、送信元ID「U001」と関連付けられたゲーム制御情報)が受信部3010によって受信されなかった場合に、代替送信部3050は、第1ゲーム端末10−1のゲーム制御情報として、ダミーゲーム制御情報(NOTHING)を第1ゲーム端末10−1と第2ゲーム端末10−2との両方に送信する。
[1−3−15]サーバ装置30の通信状況判定部3060は、ゲームシステム1における通信状況を判定する。即ち、通信状況判定部3060は、ゲームシステム1における通信状況が良いか否かを判定する。
「ゲームシステム1における通信状況」とは、ゲームシステム1のうちの一部の装置であるゲーム端末10又はサーバ装置30における通信状況であってもよいし、ゲームシステム1全体の通信状況であってもよい。通信速度又は通信遅延の有無・程度等が「通信状況」の一例に相当する。
「通信状況が良い」とは、通信速度が閾値よりも高いこと、通信遅延が発生していないこと、又は通信遅延が閾値よりも小さいことである。一方、「通信状況が良くない」とは、通信速度が閾値よりも低いこと、通信遅延が発生していること、又は通信遅延が閾値よりも大きいことである。
例えば、通信状況判定部3060は、ゲーム端末10とサーバ装置30との間のデータ授受にかかる時間を取得し、当該時間に基づいて、ゲーム端末10とサーバ装置30との間の通信状況を判定する。具体的には、通信状況判定部3060は、ゲーム端末10からサーバ装置30にデータ(例えばゲーム制御情報)を送信するのに要した時間を取得し、当該時間に基づいて、ゲーム端末10とサーバ装置30との間の通信状況を判定する。または、通信状況判定部3060は、ゲーム端末10に対して要求データを送信し、当該要求データに応じてゲーム端末10から返信される応答データを受信するまでの時間を計測し、当該時間に基づいて、ゲーム端末10とサーバ装置30との間の通信状況を判定してもよい。これらの場合、上記時間が短いほど、通信状況が良く、上記時間が長いほど、通信状況が良くないことになる。このため、例えば、上記時間が閾値よりも長い場合に、通信状況判定部3060はゲーム端末10とサーバ装置30との間の通信状況が良くないと判定する。または、上記時間が閾値よりも短い場合に、通信状況判定部3060はゲーム端末10とサーバ装置30との間の通信状況が良いと判定する。
また例えば、通信状況判定部3060は、送信制限条件データD3002に格納された各ゲーム端末10の代替送信回数に基づいて、各ゲーム端末10とサーバ装置30との間の通信状況を判定する。ゲーム端末10とサーバ装置30との間で通信遅延が発生している場合には、当該ゲーム端末10の代替送信回数が0よりも大きくなるため、通信状況判定部3060は、ゲーム端末10の代替送信回数が0よりも大きい場合に、当該ゲーム端末10とサーバ装置30との間の通信状況が良くない(当該一のゲーム端末10とサーバ装置30との間で通信遅延が発生している)と判定する。
[1−3−16]サーバ装置30の送信制限決定部3070は、ゲームシステム1における通信状況に基づいて、後述の制限部3110による制限を実行するか否かを決定する。
例えば、送信制限決定部3070は、一のゲーム端末10から受信したゲーム制御情報をサーバ装置30から各ゲーム端末10に送信することに関して制限部3110による制限を実行するか否かを、当該一のゲーム端末10とサーバ装置30との間の通信状況に基づいて決定する。例えば、一のゲーム端末10とサーバ装置30との間の通信状況が良くない(一のゲーム端末10とサーバ装置30との間で通信遅延が発生している)場合に、送信制限決定部3070は、一のゲーム端末10から受信したゲーム制御情報をサーバ装置30から各ゲーム端末10に送信することに関して、制限部3110による制限を実行すると決定する。
[1−3−17]サーバ装置30の基準重要度設定部3080は、ゲームシステム1における通信状況に基づいて、基準重要度を設定する。
「ゲームシステム1における通信状況に基づいて、基準重要度を設定する」とは、例えば、一のゲーム端末10から受信したゲーム制御情報が送信制限対象に該当するか否かを判定する場合に用いられる基準重要度を、当該一のゲーム端末10とサーバ装置30との間の通信状況に基づいて設定することである。
例えば、ゲーム制御内容の重要度が3段階以上の複数段階で示される場合、基準重要度設定部3080は、それらの複数段階のうちの何れかを基準重要度として設定する。例えば、基準重要度設定部3080は、通信状況が良くない場合には通信状況が良い場合に比べて基準重要度が高くなるようにして、基準重要度を設定する。
例えば、基準重要度設定部3080は、ゲーム端末10から受信したゲーム制御情報が送信制限対象に該当するか否かを判定する場合に用いられる基準重要度を、当該ゲーム端末10とサーバ装置30との間のデータ授受にかかる時間に基づいて設定する。例えば、上記時間と基準重要度との対応関係を示す情報に基づき、基準重要度設定部3080は、ゲーム端末10とサーバ装置30との間のデータ授受にかかった時間に対応する基準重要度を特定し、当該特定された基準重要度を、当該ゲーム端末10から受信したゲーム制御情報が送信制限対象に該当するか否かを判定する場合に用いられる基準重要度として設定する。上記時間と基準重要度との対応関係は、上記時間が長い場合には上記時間が短い場合に比べて基準重要度が高くなるようになっている。
[1−3−18]サーバ装置30の重要度取得部3090は、ゲーム制御内容と重要度との対応関係を示す対応関係データD3001に基づいて、ゲーム制御情報の重要度を取得する。
「ゲーム制御情報の重要度」とは、ゲーム制御情報が示すゲーム制御内容の重要さの程度を示す。例えば、重要度取得部3090は、ゲーム制御情報により示されるゲーム制御内容に対応する重要度を対応関係データD3001に基づいて特定し、当該特定された重要度を当該ゲーム制御情報の重要度として取得する。
例えば、対応関係データD3001が図6に示した対応関係情報を含む場合、重要度取得部3090は、「パス」を示すゲーム制御情報の重要度として「80」を取得し、「スライディング」を示すゲーム制御情報の重要度として「90」を取得する。
[1−3−19]サーバ装置30の送信制限対象判定部3100は、ゲーム制御情報が所定の送信制限対象に該当するか否かを判定する。即ち、送信制限対象判定部3100は、複数のゲーム端末10の各々から受信されたゲーム制御情報が所定の送信制限対象に該当するか否かを判定する。
「送信制限対象」とは、送信が制限されるべき対象である。例えば、送信する必要性の低いゲーム制御情報が「送信制限対象」として設定される。別の言い方をすると、ゲーム状況データD1001(又はゲーム画像)に反映させる必要性の低いゲーム制御内容を示すゲーム制御情報が「送信制限対象」として判定される。また別の言い方をすると、無視しても影響の小さいゲーム制御内容や、無視してもユーザに気づかれにくいゲーム制御内容を示すゲーム制御情報が「送信制限対象」として判定される。ここでの「送信制限対象」とは、サーバ装置30から各ゲーム端末10への送信が制限されるべき対象である。
送信制限対象判定部3100は、ゲーム制御情報が示すゲーム制御内容に基づいて、当該ゲーム制御情報が送信制限対象に該当するか否かを判定する。例えば、送信制限対象判定部3100は、ゲーム制御情報の重要度(即ち、ゲーム制御情報の示すゲーム制御内容の重要度)に基づいて、当該ゲーム制御情報が送信制限対象に該当するか否かを判定する。一例として、送信制限対象判定部3100は、ゲーム制御情報の重要度が基準重要度より低い場合に、当該ゲーム制御情報が送信制限対象に該当すると判定する。
[1−3−20]サーバ装置30の制限部3110は、複数のゲーム端末10のうちの一のゲーム端末10から受信されたゲーム制御情報の重要度に基づいて、複数のゲーム端末10の各々へのゲーム制御情報の送信を制限する。即ち、サーバ装置30の制限部3110は、送信制限対象判定部3100の判定結果に基づいて、複数のゲーム端末10の各々へのゲーム制御情報の送信を制限する。例えば、サーバ装置30の制限部3110は、複数のゲーム端末10のうちの一のゲーム端末10から受信されたゲーム制御情報が所定の送信制限対象に該当する場合に、各ゲーム端末10への当該ゲーム制御情報の送信を制限する。この送信制限が行われる結果として、複数のゲーム端末のうちの一のゲーム端末で取得されたゲーム制御情報が送信制限対象に該当する場合に、複数のゲーム端末のうちの他のゲーム端末への当該ゲーム制御情報の送信が制限されることになる。
「ゲーム制御情報の送信を制限する」とは、ゲーム制御情報を送信することを抑止することである。即ち、ゲーム制御情報を送信しないようにすることである。ここでの「ゲーム制御情報の送信を制限する」とは、一のゲーム端末10で取得されたゲーム制御情報を受信したサーバ装置30(送信部3040)が各ゲーム端末10に送信することを制限することである。また、「ゲーム制御情報の重要度に基づいて、複数のゲーム端末10の各々へのゲーム制御情報の送信を制限する」とは、複数のゲーム端末10の各々へのゲーム制御情報の送信を制限するか否かを、ゲーム制御情報の重要度に基づいて決定することである。例えば、ゲーム制御情報の重要度が高ければ、複数のゲーム端末10の各々へのゲーム制御情報の送信を制限しないと決定し、ゲーム制御情報の重要度が低ければ、複数のゲーム端末10の各々へのゲーム制御情報の送信を制限すると決定することである。先述のサッカーゲームでは、第1ゲーム端末10−1(又は第2ゲーム端末10−2)から受信されたゲーム制御情報が送信制限対象に該当すると判定された場合に、制限部3110は、当該ゲーム制御情報が送信部3040によって第1ゲーム端末10−1と第2ゲーム端末10−2との各々に送信されないように制限する。
制限部3110は、一のゲーム端末10からのゲーム制御情報として送信された代替ゲーム制御情報の量に基づいて、当該一のゲーム端末10からのゲーム制御情報の送信を制限する。例えば、制限部3110は、一のゲーム端末10からのゲーム制御情報として送信された代替ゲーム制御情報の量に基づいて、一のゲーム端末10からのゲーム制御情報の送信を制限する量を設定する。
「代替ゲーム制御情報の量」とは、例えば、一のゲーム端末10からのゲーム制御情報として送信された代替ゲーム制御情報の数(言い換えれば、一のゲーム端末10からのゲーム制御情報として代替ゲーム制御情報を送信した回数)である。または、「代替ゲーム制御情報の量」とは、例えば、一のゲーム端末10からのゲーム制御情報として送信された代替ゲーム制御情報の合計データ量であってもよい。
「一のゲーム端末10からのゲーム制御情報として送信された代替ゲーム制御情報の量に基づいて、一のゲーム端末10からのゲーム制御情報の送信を制限する量を設定する」とは、例えば、一のゲーム端末10からのゲーム制御情報として送信された代替ゲーム制御情報の量(数又はデータ量)と、一のゲーム端末10からのゲーム制御情報の送信を制限する量(数又はデータ量)とが等しく又は略等しくなるようにして、一のゲーム端末10からのゲーム制御情報の送信を制限する量を設定することである。なお、「略等しい」とは、等しくはないが、その差が所定の閾値以内であることを意味する。
先述のサッカーゲームの場合、代替送信部3050は、第2ゲーム端末10−2のゲーム制御情報としてダミーゲーム制御情報を各ゲーム端末10に送信した場合、第2ゲーム端末10−2の代替送信回数(図12)に1を加算する。そして、第2ゲーム端末10−2の代替送信回数が1以上である場合において、第2ゲーム端末10−2から受信したゲーム制御情報の重要度が基準重要度未満であると判定された場合に、制限部3110は、各ゲーム端末10への当該ゲーム制御情報の送信を制限(抑止)する。この場合、第2ゲーム端末10−2の代替送信回数から1を減算する。なお、第2ゲーム端末10−2の代替送信回数が1未満である場合には、第2ゲーム端末10−2から受信したゲーム制御情報の重要度が基準重要度未満であっても、制限部3110は、各ゲーム端末10への当該ゲーム制御情報の送信を制限(抑止)しない。
[1−4.処理]次に、以上に説明した機能ブロックを実現するための処理について説明する。図14は、ゲームシステム1で実行される処理の一例を示す。図14は、試合中に所定時間ごとに繰り返し実行される処理の一例を示す。図14に示す処理がプログラムに基づいて実行されることによって、ゲーム端末10の機能ブロック(データ記憶部1000を除く)や、サーバ装置30の機能ブロック(データ記憶部3000を除く)が実現される。ここでは、先述のサッカーゲームにおいて、第1ゲーム端末10−1を使用する第1ユーザと、第2ゲーム端末10−2を使用する第2ユーザとの間で試合が実行される場合を想定して、図14の処理について説明する。
図14に示すように、ゲーム端末10−1の制御部11(以下では「制御部11−1」と記載する。)は、第1ユーザによって行われたゲーム操作の内容を示すゲーム操作情報を取得し(S110−1)、当該ゲーム操作情報に対応するゲーム制御内容を示すゲーム制御情報を取得する(S112−1)。制御部11−1は、データ記憶部1000に記憶されるゲーム状況データD1001及び対応関係データD1002に基づいて、ゲーム操作情報に対応するゲーム制御情報を取得する。
例えば、制御部11−1は、ゲーム状況データD1001を参照して現在のゲーム状況を特定する。また制御部11−1は、対応関係データD1002に基づいて、ゲーム操作情報と現在のゲーム状況とに対応するゲーム制御内容を特定し、当該ゲーム制御内容を示す情報をゲーム制御情報として取得する。なお、第1ユーザによってゲーム操作が行われなかった場合、又は、対応関係データD1002に基づいて、ゲーム操作に対応するゲーム制御内容を特定できなかった場合、制御部11−1は「何も実行しない」ことを示すゲーム制御情報を取得する。
そして、制御部11−1は、ゲーム制御情報をサーバ装置30に送信するための送信処理を実行する(S114−1)。図15は、ステップS114−1で実行される送信処理の一例を示す。
図15に示すように、制御部11−1は、ステップS112−1で取得されたゲーム制御情報が送信制限対象に該当するか否かを判定する(S11400)。
例えば、制御部11−1は、ステップS112−1で取得されたゲーム制御情報の示すゲーム制御内容が一つ前に取得されたゲーム制御情報と同じであるか否かを判定する。そして、当該ゲーム制御内容が一つ前に取得されたゲーム制御情報と同じである場合に、制御部11−1は、ステップS112−1で取得されたゲーム制御情報が送信制限対象に該当すると判定する。なお、この判定を行うために、一つ前に取得されたゲーム制御情報の示すゲーム制御内容を記憶部12に保持しておくようにするとよい。
また例えば、制御部11−1は、ゲーム状況データD1001の示すゲーム状況が、ステップS112−1で取得したゲーム制御情報の示すゲーム制御を行う必要性の低い状況(又はゲーム制御を行う必要性のない状況)であるか否かを判定する。当該ゲーム制御を行う必要性の低い状況(又はゲーム制御を行う必要性のない状況)である場合に、制御部11−1は、ステップS112−1で取得されたゲーム制御情報が送信制限対象に該当すると判定する。
ステップS112−1で取得されたゲーム制御情報が送信制限対象に該当しない場合(S11400:No)、制御部11−1は、通信部13を介して、ステップS112−1で取得されたゲーム制御情報をサーバ装置30に送信する(S11402)。この場合、第1ゲーム端末10−1を示す送信元IDと、現在タイミングを示すゲーム操作タイミング情報とがゲーム制御情報に関連付けられる。なお、ゲーム操作タイミング情報としては、現在時刻を示す情報や、試合が開始されてからのフレーム数を示す情報が用いられる。
一方、ステップS112−1で取得されたゲーム制御情報が送信制限対象に該当する場合(S11400:Yes)、制御部11−1は、通信部13を介して、ステップS112−1で取得されたゲーム制御情報の代わりに、ダミーゲーム制御情報をサーバ装置30に送信する(S11404)。例えば、ゲーム制御内容として「何も実行しない」を示すゲーム制御情報がダミーゲーム制御情報として送信される。この場合、第1ゲーム端末10−1を示す送信元IDと、現在タイミングを示すゲーム操作タイミング情報とがダミーゲーム制御情報に関連付けられる。
図15に示す処理(ステップS114−1)の実行後、制御部11−1は、サーバ装置30から送信されるゲーム制御情報を待ち受ける(S116−1)。
同様に、ゲーム端末10−2の制御部11(以下では「制御部11−2」と記載する。)は、第2ユーザによって行われたゲーム操作の内容を示すゲーム操作情報を取得し(S110−2)、当該ゲーム操作情報に対応するゲーム制御内容を示すゲーム制御情報を取得する(S112−2)。また、制御部11−2は、ゲーム制御情報をサーバ装置30に送信するための送信処理を実行する(S114−2)。ステップS114−2はステップS114−1の処理(図15)と同様である。ステップS114−2の実行後、制御部11−2は、サーバ装置30から送信されるゲーム制御情報を待ち受ける(S116−2)。
サーバ装置30の制御部31はバッファ部3030に格納されるゲーム制御情報を全て削除し、バッファ部3030を初期化する(S300)。
またサーバ装置30は、通信部33を介して、第1ゲーム端末10−1又は第2ゲーム端末10−2から送信されたゲーム制御情報を受信する。ゲーム制御情報が受信された場合には、制御部31は受信処理を実行する(S302)。図16は、ステップS302で実行される受信処理の一例を示す。
図16に示すように、制御部31は、受信されたゲーム制御情報を、当該ゲーム制御情報と関連付けられた送信元ID及びゲーム操作タイミング情報とともにバッファ部3030に格納する(S30200)。
また、制御部31はゲーム制御情報の送受信に要した時間を取得する(S30202)。即ち、制御部31は、ゲーム制御情報がゲーム端末10から送信されてからサーバ装置30で受信されるまでに要した時間を取得する。例えば、制御部31は、ゲーム制御情報に関連付けられたゲーム操作タイミング情報の示すタイミングと、現在タイミングとを比較することによって、上記時間を取得する。なお、サーバ装置30は自らの時計機能と各ゲーム端末10の時計機能とのずれを予め取得しており、このずれを考慮して上記時間を取得する。
そして、制御部31は基準重要度を設定する(S30204)。例えば、第1ゲーム端末10−1から送信されたゲーム制御情報が受信された場合、制御部31は、ステップS30202で取得した時間に基づいて、第1ゲーム端末10−1の基準重要度を設定する。サーバ装置30では、上記時間と基準重要度との対応関係を示す情報が記憶部32に記憶されている。この対応関係は、上記時間が短いほど(即ち、第1ゲーム端末10−1とサーバ装置30との間の通信状況が良いほど)、基準重要度は低くなり、上記時間が長いほど、基準重要度は高くなるように設定されている。制御部31は、上記対応関係に基づき、ステップS30202で取得した時間に対応する基準重要度を特定し、当該基準重要度を第1ゲーム端末10−1の基準重要度として設定する。この第1ゲーム端末10−1の基準重要度は送信制限条件データD3002に登録される。なお、制御部31は、過去にステップS30202で取得した時間の統計値(平均値等)に基づいて基準重要度を設定してもよい。第2ゲーム端末10−2から送信されたゲーム制御情報が受信された場合にも同様の処理が実行され、第2ゲーム端末10−2の基準重要度が設定される。
図16に示す処理(ステップS302)の実行後、制御部31は、受信したゲーム制御情報を第1ゲーム端末10−1と第2ゲーム端末10−2との両方に送信するための送信処理を実行する(S304)。図17は、ステップS304で実行される送信処理の一例を示す。
図17に示すように、制御部31は変数iを1に初期化し(S30400)、第i番目のゲーム端末10から受信したゲーム制御情報がバッファ部3030に格納されているか否かを判定する(S30402)。なお例えば、第1番目のゲーム端末10とは第1ゲーム端末10−1であり、第2番目のゲーム端末10とは第2ゲーム端末10−2である。
第i番目のゲーム端末10から受信したゲーム制御情報がバッファ部3030に格納されている場合(S30402:Yes)、制御部31は当該ゲーム制御情報を取得する(S30404)。なお、第i番目のゲーム端末10から受信したゲーム制御情報がバッファ部3030に複数格納されている場合には、制御部31は、それら複数のゲーム制御情報のうちで、ゲーム操作タイミングの最も古いゲーム制御情報を取得する。即ち、最も古いタイミングで行われたゲーム操作に関するゲーム制御情報を取得する。
また制御部31は、第i番目のゲーム端末10の代替送信回数が0より大きいか否かを判定する(S30406)。第i番目のゲーム端末10の代替送信回数が0より大きい場合(S30406:Yes)とは、第i番目のゲーム端末10とサーバ装置30との間の通信遅延が発生し、第i番目のゲーム端末10から受信されなかったゲーム制御情報の代わりにダミーゲーム制御情報が送信されたことがある場合である。
この場合、制御部31は、ステップS30404で取得したゲーム制御情報が送信制限対象に該当するか否かを判定する(S30408)。例えば、制御部31は、ステップS30404で取得したゲーム制御情報の重要度を対応関係データD3001に基づいて特定し、第i番目のゲーム端末10の基準重要度を送信制限条件データD3002から取得する。そして、制御部31は、ステップS30404で取得したゲーム制御情報の重要度が第i番目のゲーム端末10の基準重要度未満であるか否かを判定する。重要度が基準重要度未満である場合に、制御部31は、ステップS30404で取得したゲーム制御情報が送信制限対象に該当すると判定する。
ステップS30404で取得したゲーム制御情報が送信制限対象に該当しない場合(S30408:No)、制御部31は、通信部33を介して、ステップS30404で取得したゲーム制御情報を各ゲーム端末10に送信する(S30410)。即ち、制御部31は、ステップS30404で取得したゲーム制御情報を第1ゲーム端末10−1と第2ゲーム端末10−2との両方に送信する。この場合、ゲーム制御情報に関連付けられた送信元ID等もゲーム制御情報とともに送信される。この場合、ステップS30404で取得したゲーム制御情報はバッファ部3030から削除される。
一方、ステップS30404で取得したゲーム制御情報が送信制限対象に該当する場合(S30408:Yes)、制御部31は、ステップS30404で取得したゲーム制御情報を各ゲーム端末10に送信せずに、第i番目のゲーム端末10の代替送信回数から1を減算する(S30412)。この場合、ステップS30404で取得したゲーム制御情報は各ゲーム端末10に送信されることなく捨てられることになる。この場合にも、ステップS30404で取得したゲーム制御情報はバッファ部3030から削除される。
ステップS30410又はS30412が実行された場合、制御部31は、第i番目のゲーム端末10から受信した他のゲーム制御情報がバッファ部3030に格納されているか否かを判定する(S30414)。第i番目のゲーム端末10から受信した他のゲーム制御情報がバッファ部3030に格納されている場合(S30414:Yes)、制御部31はステップS30404に戻る。一方、第i番目のゲーム端末10から受信した他のゲーム制御情報がバッファ部3030に格納されていない場合(S30414:No)、制御部31は変数iに1を加算し(S30416)、変数iがN以下であるか否かを判定する(S30418)。ここで、「N」は、サッカーゲームの試合に参加しているユーザのゲーム端末10の数である。第1ゲーム端末10−1を使用する第1ユーザと、第2ゲーム端末10−2を使用する第2ユーザとの間で試合が実行される場合であれば、「N」は2である。変数iがN以下でない場合(S30418:No)、本処理は終了する。一方、変数iがN以下である場合(S30418:Yes)、制御部31はステップS30402に戻る。
ステップS30406において、第i番目のゲーム端末10の代替送信回数が0より大きいと判定されなかった場合(S30406:No)、制御部31は先述のステップS30410を実行する。
ステップS30402において、第i番目のゲーム端末10から受信したゲーム制御情報がバッファ部3030に格納されていないと判定された場合(S30402:No)、制御部31は、第i番目のゲーム端末10からゲーム制御情報を前回受信した時、又は、第i番目のゲーム端末10のゲーム制御情報としてダミーゲーム制御情報を前回代替送信した時との遅い方から所定時間が経過したか否かを判定する(S30420)。
所定時間が経過している場合(S30420:Yes)、制御部31は、通信部33を介して、ダミーゲーム制御情報を第i番目のゲーム端末10のゲーム制御情報として各ゲーム端末10に送信する(S30422)。即ち、制御部31は、ダミーゲーム制御情報を第1ゲーム端末10−1と第2ゲーム端末10−2との両方に送信する。この場合、ゲーム制御内容として「何も実行しない」ことを示すゲーム制御情報(NOTHING)がダミーゲーム制御情報として送信される。また、このダミーゲーム制御情報には、第i番目のゲーム端末10の識別情報が送信元IDとして関連付けられる。またこの場合、制御部31は、第i番目のゲーム端末10の代替送信回数を増加させる(S30424)。なお、ステップS30422では、上記所定時間の長さに応じた数のダミーゲーム制御情報が第i番目のゲーム端末10のゲーム制御情報として送信される。例えば、上記所定時間がnフレーム分の時間である場合、n個のダミーゲーム制御情報が第i番目のゲーム端末10のゲーム制御情報として各ゲーム端末10に送信される。この場合、ステップS30424では、第i番目のゲーム端末10の代替送信回数にnが加算される。
一方、所定時間が経過していない場合(S30420:No)、制御部31は先述のステップS30416を実行する。
図14に示すように、第1ゲーム端末10−1の制御部11−1は、ステップS304でサーバ装置30から送信されたゲーム制御情報を受信する(S116−1)。そして制御部11−1は、受信したゲーム制御情報に基づいて、第1ゲーム端末10−1の記憶部12に記憶されるゲーム状況データD1001を更新する(S118−1)。また制御部11−1は、更新したゲーム状況データD1001に基づいて、ゲームの状況を示すゲーム画像を第1ゲーム端末10−1の表示部15に表示させる(S120−1)。
同様に、第2ゲーム端末10−2の制御部11−2は、ステップS304でサーバ装置30から送信されたゲーム制御情報を受信する(S116−2)。そして制御部11−2は、受信したゲーム制御情報に基づいて、第2ゲーム端末10−2の記憶部12に記憶されるゲーム状況データD1001を更新する(S118−2)。また制御部11−2は、更新したゲーム状況データD1001に基づいて、ゲームの状況を示すゲーム画像を第2ゲーム端末10−2の表示部15に表示させる(S120−2)。
[1−5.まとめ]第1実施形態に係るゲームシステム1によれば、何れかのゲーム端末10からのゲーム制御情報が通信遅延等によって所定期間内にサーバ装置30に届かなかった場合に、当該ゲーム端末10から届かなかったゲーム制御情報の代わりとして、ダミーゲーム制御情報が各ゲーム端末10に送信される。このため、通信遅延の発生したゲーム端末10からのゲーム制御情報を待つことなく、ゲームを進行できる。即ち、通信遅延の発生していない他のゲーム端末10で行われたゲーム操作のゲームへの反映が、通信遅延の発生したゲーム端末10に合わせて遅れることを避けることができる。
何れかのゲーム端末10から届かなかったゲーム制御情報の代わりとして、ダミーゲーム制御情報を各ゲーム端末10に送信した場合、このままの状態を放置すると、これ以降、当該ゲーム端末10からのゲーム制御情報は他のゲーム端末10よりも遅れてゲームに反映されることになる。この点、ゲームシステム1によれば、何れかのゲーム端末10から届かなかったゲーム制御情報の代わりとして、ダミーゲーム制御情報を各ゲーム端末10に送信した後では、送信したダミーゲーム制御情報の分だけ、当該ゲーム端末10から受信したゲーム制御情報の送信を制限して捨てるため、上記のような遅れの発生を抑制できる。
またゲームシステム1によれば、ゲーム制御情報の重要度が基準重要度よりも低い場合に当該ゲーム制御情報の送信を制限するようにしたことによって、重要度の高いゲーム制御情報(ゲーム画像への反映が行われないと、ユーザに違和感を覚えさせ、ゲームの興趣性が低下させてしまうおそれがあるもの)の送信を制限してしまうことによって当該ゲーム制御情報がゲーム画像反映されなくなることを防ぎつつ、重要度の低いゲーム制御情報(ゲーム画像への反映が行われなかったとしても、ユーザによって気づかれにくいもの)の送信を制限できる。
またゲームシステム1によれば、通信状況に基づいて基準重要度を設定するようにしたことによって、通信状況に合わせて基準重要度を設定できる。
またゲームシステム1によれば、重要度の低いゲーム制御情報の送信を制限することによって、ゲームシステム1の通信負荷を低減できる。
またゲームシステム1によれば、何れかのゲーム端末10において、同じゲーム制御内容を示すゲーム制御情報が複数回連続して取得された場合に、2つ目以降のゲーム制御情報が送信制限対象に該当すると判定するようにしたことによって、必要性の低いゲーム制御情報の送信を制限でき、その結果として、ゲームシステム1の通信負荷を低減できる。
[1−6.第1実施形態の変形例]第1実施形態に係るゲームシステム1では、以上に説明した構成の代わりに、以下に説明するような構成を採用してもよい。
[1−6−1]送信制限条件データD3002には、「代替送信回数」の代わりに、「ダミー送信データ量」を格納してもよい。例えば、第1ゲーム端末10−1の「ダミー送信データ量」は、代替送信部3050が第1ゲーム端末10−1のゲーム制御情報として送信したダミーゲーム制御情報の総データ量を示す。通信遅延が発生しているゲーム端末10の「ダミー送信データ量」は他のゲーム端末10に比べて大きくなる。
この場合、図17のステップS30406では、第i番目のゲーム端末10のダミー送信データ量が0より大きいか否かを判定してもよい。また、図17のステップS30422では、第i番目のゲーム端末10のダミー送信データ量に対して、ステップS30422で送信された個数分のダミーゲーム制御情報のデータ量を加算してもよい。さらに、図17のステップS30412では、第i番目のゲーム端末10のダミー送信データ量から1つ分のダミーゲーム制御情報のデータ量を減算してもよい。
または、送信制限条件データD3002には、「代替送信回数」の代わりに、「送受信データ量」を格納してもよい。例えば、第1ゲーム端末10−1の「総受信データ量」は、サーバ装置30が第1ゲーム端末10−1から受信したゲーム制御情報のデータ量び合計を示す。通信遅延が発生しているゲーム端末10に関しては「総受信データ量」が他のゲーム端末10に比べて少なくなる。
この場合、図17のステップS30406では、第i番目のゲーム端末10の総受信データ量が他のゲーム端末10に比べて少ないか否かを判定してもよい。例えば、第i番目のゲーム端末10の総受信データ量が他のゲーム端末10よりも少なく、かつ、その差が閾値以上であれば、第i番目のゲーム端末10の総受信データ量が他のゲーム端末10に比べて少ないと判定してもよい。また、図17のステップS30410又はS30412の実行後に、ステップS30404で取得されたゲーム制御情報のデータ量を第i番目のゲーム端末10の「総受信データ量」に加算すればよい。なお、この場合、ステップS30412,S40424を省略すればよい。
[1−6−2]送信制限決定部3070は、ゲームシステム1における通信状況に基づいて、制限部1050による制限を実行するか否かを決定してもよい。
例えば、送信制限決定部3070は、一のゲーム端末10からサーバ装置30にゲーム制御情報を送信することに関して制限部1050による制限を実行するか否かを、当該一のゲーム端末10とサーバ装置30との間の通信状況に基づいて決定してもよい。例えば、一のゲーム端末10とサーバ装置30との間の通信状況が良くない場合に、送信制限決定部3070は、一のゲーム端末10からサーバ装置30にゲーム制御情報を送信することに関して制限部1050による制限を実行すると決定し、当該一のゲーム端末10に対して、制限部1050による制限を実行するように通知(命令)するようにしてもよい。
[1−6−3]各ゲーム端末10の代わりに、サーバ装置30が送信制限対象判定部1040と制限部1050とを備えてもよい。
[1−6−3−1]第1のゲーム制御情報と、当該第1のゲーム制御情報と同じゲーム制御内容を示す第2のゲーム制御情報とがサーバ装置30で同じゲーム端末10から続けて受信された場合に、サーバ装置30の送信制限対象判定部1040が、第2のゲーム制御情報が所定の送信制限対象に該当すると判定し、サーバ装置30の制限部1050が、各ゲーム端末10への第2のゲーム制御情報の送信を制限するようにしてもよい。
例えば、図9の例の(4B)では、第1ゲーム端末10−1がゲーム制御情報A1〜A3をサーバ装置30に送信してもよい。そして、(4E)において、サーバ装置30がゲーム制御情報A1〜A3のうちの2つ目以降のゲーム制御情報A2,A3の送信を制限し、その代わりに、ダミーゲーム制御情報A2D,A3Dを第1ゲーム端末10−1と第2ゲーム端末10−2との両方に送信するようにしてもよい。
同様に、図9の例の(4D)では、第2ゲーム端末10−2がゲーム制御情報B1〜B3をサーバ装置30に送信してもよい。そして、(4E)において、サーバ装置30がゲーム制御情報B1〜B3のうちの2つ目以降のゲーム制御情報B2,B3の送信を制限し、その代わりに、ダミーゲーム制御情報B2D,B3Dを第1ゲーム端末10−1と第2ゲーム端末10−2との両方に送信するようにしてもよい。
このようにしても、サーバ装置30から各ゲーム端末10への通信量を軽減できるため、ゲームシステム1の通信負荷を軽減できる。
[1−6−3−2]また例えば、サーバ装置30の送信制限対象判定部1040が、各ゲーム端末10から受信したゲーム制御情報が送信制限対象に該当するか否かを、ゲームの状況に基づいて判定するようにしてもよい。
例えば、第1ユーザによってシュートのゲーム操作が行われた場合、第1ユーザの操作対象の選手キャラクタ62がシュート動作を行うことができない状況にあったとしても、第1ゲーム端末10−1は、「シュート」を示すゲーム制御情報をサーバ装置30に送信するようにしてもよい。そして、サーバ装置30が第1ユーザの操作対象の選手キャラクタ62がシュート動作を行うことができない状況であると判定し、当該ゲーム制御情報の送信を制限し、その代わりに、ダミーゲーム制御情報を第1ゲーム端末10−1と第2ゲーム端末10−2との両方に送信するようにしてもよい。
このようにしても、サーバ装置30から各ゲーム端末10への通信量を軽減できるため、ゲームシステム1の通信負荷を軽減できる。ただし、この場合、ゲーム状況データD1001と同様のデータをデータ記憶部3000に記憶させておく必要がある。また、ゲーム状況更新部1070と同様の機能ブロックをサーバ装置30が備え、サーバ装置30に記憶されるゲーム状況データを、送信部3040によって送信されるゲーム制御情報に基づいて更新することによって、サーバ装置30に記憶されるゲーム状況データが各ゲーム端末10に記憶されるゲーム状況データD1001と同じになるように図る必要がある。
[1−6−4]サーバ装置30の代わりに、各ゲーム端末10が重要度取得部3090を備えてもよい。この場合、各ゲーム端末10の送信部1030は、ゲーム制御情報と、重要度取得部3090が取得した当該ゲーム制御情報の重要度とを関連付けてサーバ装置30に送信してもよい。またこの場合、サーバ装置30の送信制限対象判定部3100は、各ゲーム端末10から送信された重要度に基づいて、ゲーム制御情報が送信対象制限に該当するか否かを判定してもよい。
[1−6−5]制限部3110は、受信部3010によって受信されたゲーム制御情報が送信制限対象に該当する場合に、当該ゲーム制御情報がバッファ部3030に格納されないように制限してもよい。送信部3040は、バッファ部3030に格納されるゲーム制御情報を各ゲーム端末10に送信するため、バッファ部3030に格納されなかったゲーム制御情報は各ゲーム端末10に送信されなくなる。このため、このようにしても、送信制限対象に該当すると判定されたゲーム制御情報が各ゲーム端末10に送信されないように制限できる。
[1−6−6]送信制限対象判定部1040と送信制限対象判定部3100とのうちの一方を省略してもよい。送信制限対象判定部1040を省略する場合には制限部1050も省略してもよい。また、送信制限対象判定部3100を省略する場合には、通信状況判定部3060、送信制限決定部3070、基準重要度設定部3080、重要度取得部3090や、制限部3110も省略してもよい。
[2.第2実施形態]本発明の第2実施形態に係るゲームシステム1Aについて説明する。第2実施形態に係るゲームシステム1Aは第1実施形態と同様の全体構成を有する(図1,2)。例えば、ゲームシステム1Aは、複数のゲーム端末10A(第1ゲーム端末10−1A、第2ゲーム端末10−2A、・・・)とサーバ装置30Aとを含む。ゲーム端末10Aやサーバ装置30Aのハードウェア構成は第1実施形態のゲーム端末10やサーバ装置30と同様である。
また、ゲームシステム1Aで実行されるゲームも第1実施形態と同様である。ゲームシステム1Aでは第1実施形態と同様のサッカーゲームが実行される(図3,4)。
[2−1.概要]第1実施形態では、各ゲーム端末10で取得されたゲーム制御情報をサーバ装置30を介して各ゲーム端末10に送信していた。これに対し、第2実施形態に係るゲームシステム1Aでは、各ゲーム端末10Aで取得されたゲーム制御情報をサーバ装置30を介さずに他のゲーム端末10Aに送信する。この点、下記に説明するように、第2実施形態に係るゲームシステム1Aでは、ゲーム端末10A間でのゲーム制御情報の送信を制限することによって、通信負荷の低減を図るようになっている。
[2−1−1]図18は、第2実施形態に係るゲームシステム1Aでのゲーム制御情報の送信制限の一例について説明するための図である。図9と同様、図18では、第1ユーザがチャンスの場面でシュートのゲーム操作を繰り返し行い(ボタン142Aを連打し)、第2ユーザがスライディングのゲーム操作を繰り返し行った(ボタン142Aを連打した)場合が想定している。
(5A)この場合、第1ゲーム端末10−1Aでは、「シュート」を示すゲーム制御情報が複数個続けて取得される。図18の例では、「シュート」を示す3つのゲーム制御情報A1,A2,A3が取得されている。
(5B)シュート動作は複数回連続して行われるものではないため、ゲーム制御情報A1〜A3を連続して送信する必要性は低く、1つ目のゲーム制御情報A1だけを送信すれば足りるため、第1ゲーム端末10−1Aは、2つ目以降のゲーム制御情報A2,A3の送信を制限し、その代わりに、ダミーゲーム制御情報A2D,A3Dを送信する。この場合、ゲーム制御情報A1と、ダミーゲーム制御情報A2D,A3Dとが第1ゲーム端末10−1Aから第2ゲーム端末10−2Aに送信される。ダミーゲーム制御情報A2D,A3Dは第1実施形態におけるダミーゲーム制御情報と同様であり、通常のゲーム制御情報A2,A3よりもデータ量が小さい情報である。このため、ゲーム制御情報A2,A3の代わりにダミーゲーム制御情報A2D,A3Dを送信することによって、通信負荷が低減される。
(5C)同様に、第2ゲーム端末10−2Aでは、「スライディング」を示すゲーム制御情報が複数個続けて取得される。図18の例では、「スライディング」を示す3つのゲーム制御情報B1,B2,B3が取得されている。
(5D)スライディング動作は複数回連続して行われるものではないため、ゲーム制御情報B1〜B3を連続して送信する必要性は低く、1つ目のゲーム制御情報B1だけを送信すれば足りるため、第2ゲーム端末10−1Aは、2つ目以降のゲーム制御情報B2,B3の送信を制限し、その代わりに、ダミーゲーム制御情報B2D,B3Dを送信する。この場合、ゲーム制御情報B1と、ダミーゲーム制御情報B2D,B3Dとが第2ゲーム端末10−2Aから第1ゲーム端末10−1Aに送信される。ダミーゲーム制御情報B2D,B3Dは第1実施形態におけるダミーゲーム制御情報と同様であり、通常のゲーム制御情報B2,B3よりもデータ量が小さい情報である。このため、ゲーム制御情報B2,B3の代わりにダミーゲーム制御情報B2D,B3Dを送信することによって、通信負荷が低減される。
この場合、第1ゲーム端末10−1Aでは、第1ゲーム端末10−1Aで取得したゲーム制御情報A1と、第2ゲーム端末10−2Aから受信したゲーム制御情報B1、ダミーゲーム制御情報B2D,B3Dとに基づいて、ゲーム状況データが更新される。この際、第2ゲーム端末10−2Aに送信していないゲーム制御情報A2,A3は無視される。同様に、第2ゲーム端末10−2Aでは、第1ゲーム端末10−1Aから受信したゲーム制御情報A1やダミーゲーム制御情報A2D,A3Dと、第2ゲーム端末10−2Aで取得したゲーム制御情報B1とに基づいて、ゲーム状況データが更新される。この際、第1ゲーム端末10−1Aに送信していないゲーム制御情報B2,B3は無視される。その結果、第1ゲーム端末10−1Aと第2ゲーム端末10−2Aとの各々では、第1ユーザの操作対象の選手キャラクタ62がシュート動作を1回のみ行い、第2ユーザの操作対象の選手キャラクタ63がスライディング動作を1回のみ行うことになる。
[2−1−2]また、第2実施形態に係るゲームシステム1Aでは、ゲーム状況がゲーム制御情報のゲーム制御を行う必要性の低い状況(又は必要性の高くない状況、必要性のない状況)である場合にゲーム制御情報の送信を制限する。例えば、第1ゲーム端末10−1Aでシュートのゲーム操作(ボタン142Aの押下操作)が行われた場合であっても、第1ユーザの操作対象の選手キャラクタ62がシュート動作を行うことができない状況である場合には、「シュート」を示すゲーム制御情報を第1ゲーム端末10−1Aから第2ゲーム端末10−2Bに送信することを制限する。この場合、「シュート」を示すゲーム制御情報の代わりに、ダミーゲーム制御情報が送信される。先述したように、ダミーゲーム制御情報は通常のゲーム制御情報よりもデータ量が小さい情報である。このため、「シュート」を示すゲーム制御情報の代わりにダミーゲーム制御情報を送信することによって、通信負荷が低減される。
[2−1−3]また、第2実施形態に係るゲームシステム1Aでは、第1ゲーム端末10−1Aと第2ゲーム端末10−2Aとの間の通信状況が良くない場合に、重要度の低いゲーム制御情報の送信を制限してもよい。図19は、重要度の低いゲーム制御情報の送信制限について説明するための図である。図19では、第1ユーザが第1ゲーム端末10−1Aでパスのゲーム操作(ボタン142Aの押下)を行い、同じタイミングで、第2ユーザが第2ゲーム端末10−2Aでプレスのゲーム操作(ボタン142Bの押下)を行った場合を想定している。また図19では、基準重要度が「50」に設定されている場合を想定している。
(6A)この場合、第1ゲーム端末10−1Aで行われたゲーム操作(ボタン142Aの押下)に対応するゲーム制御の内容(パス)が判断され、当該ゲーム制御の内容を示すゲーム制御情報Aが取得される。
(6B)そして、ゲーム制御情報Aの重要度が基準重要度未満であるか否かが判定され、ゲーム制御情報Aの重要度が基準重要度未満でない場合に、ゲーム制御情報Aが第1ゲーム端末10−1Aから第2ゲーム端末10−2Aに送信される。ゲーム制御情報Aの重要度は「80」であり、ゲーム制御情報Aの重要度「80」は基準重要度「50」未満でないため、ゲーム制御情報Aが第1ゲーム端末10−1Aから第2ゲーム端末10−2Aに送信される。
(6C)同様に、第2ゲーム端末10−2Aで行われたゲーム操作(ボタン142Bの押下)に対応するゲーム制御の内容(プレス)が判断され、当該ゲーム制御の内容を示すゲーム制御情報Bが取得される。
(6D)そして、ゲーム制御情報Bの重要度が基準重要度未満であるか否かが判定され、ゲーム制御情報Bの重要度が基準重要度未満である場合には、ゲーム制御情報Bの送信が制限される。ゲーム制御情報Bの重要度は「20」であり、ゲーム制御情報Bの重要度「20」は基準重要度「50」未満であるため、ゲーム制御情報Bの送信が制限され、その代わりに、ダミーゲーム制御情報BDが第2ゲーム端末10−1Aから第2ゲーム端末10−2Aに送信される。ダミーゲーム制御情報BDは第1実施形態におけるダミーゲーム制御情報と同様であり通常のゲーム制御情報Bよりもデータ量が小さい情報である。このため、ゲーム制御情報Bの代わりにダミーゲーム制御情報BDを送信することによって、通信負荷が低減される。
この場合、第1ゲーム端末10−1Aでは、第1ゲーム端末10−1Aで取得したゲーム制御情報Aと、第2ゲーム端末10−2Aから受信したダミーゲーム制御情報BDとに基づいて、ゲーム状況データが更新される。また、第2ゲーム端末10−2Aでは、第1ゲーム端末10−1Aから受信したゲーム制御情報Aに基づいて、ゲーム状況データが更新され、第1ゲーム端末10−1Aに送信していないゲーム制御情報Bは無視される。その結果、第1ユーザの操作対象の選手キャラクタ62にパス動作を行わせるというゲーム制御が第1ゲーム端末10−1B及び第2ゲーム端末10−2Bとの各々で実行される。
[2−2.機能ブロック]図20は、第2実施形態に係るゲームシステム1Aで実現される機能ブロックの一例を示す。
図20に示すように、各ゲーム端末10Aは、データ記憶部1000Aと、ゲーム操作受付部1010Aと、ゲーム制御情報取得部1020Aと、送信部1030Aと、送信制限対象判定部1040Aと、制限部1050Aと、受信部1060Aと、ゲーム状況更新部1070Aと、表示制御部1080Aと、通信状況判定部1090Aと、送信制限決定部1100Aと、基準重要度設定部1110Aと、重要度取得部1120Aとを含む。このうち、データ記憶部1000Aは記憶部12によって実現され、送信部1030A及び受信部1060Aは制御部11及び通信部13によって実現され、他の機能ブロックは制御部11によって実現される。
[2−2−1]各ゲーム端末10Aのデータ記憶部1000Aは、ゲームの実行に必要なデータとして、ゲーム状況データD1001A、対応関係データD1002A、送信制限条件データD1003A等を記憶する。ゲーム状況データD1001Aは第1実施形態のゲーム状況データD1001と同様である。対応関係データD1002Aは、第1実施形態の対応関係データD1002と対応関係データD3001とを組み合わせたようなデータであり、図4に示した対応関係情報と図6に示した対応関係情報とを含む。
図21は送信制限条件データD1003Aの一例を示す。図21に示すように、送信制限条件データD1003Aには「送信制限実行フラグ」と「基準重要度」とが格納される。「送信制限実行フラグ」は、後述の第2制限部1052Aによるゲーム制御情報の送信制限を実行するか否かを示すフラグ情報である。例えば値「0」又は「1」が送信制限実行フラグに対して設定される。値「0」は送信制限を実行しないことを示し、値「1」は送信制限を実行することを示す。「基準重要度」は第1実施形態の「基準重要度」と同様であり、ゲーム制御内容の重要度が低いか否かの判定基準となるものである。
[2−2−2]各ゲーム端末10Aのゲーム操作受付部1010A、ゲーム制御情報取得部1020Aは、第1実施形態のゲーム操作受付部1010、ゲーム制御情報取得部1020と基本的に同様であるため、ここでは説明を省略する。
[2−2−3]各ゲーム端末10Aの送信部1030Aは、ゲーム制御情報取得部1020Aによって取得されたゲーム制御情報を複数のゲーム端末10Aのうちの他のゲーム端末10Aに送信する。
例えば、第1ゲーム端末10−1の送信部1030Aは、第1ゲーム端末10−1Aのゲーム制御情報取得部1020Aによって取得されたゲーム制御情報を第2ゲーム端末10−2Aに送信する。具体的には、第1ゲーム端末10−1Aの送信部1030Aは、第1ゲーム端末10−1Aを識別する送信元IDと、ゲーム操作が行われたタイミング(即ち、ゲーム操作受付部1010Aが第1ユーザのゲーム操作を受け付けたタイミング)を示すゲーム操作タイミング情報とをゲーム制御情報と関連付けて送信する。同様に、第2ゲーム端末10−2Aの送信部1030Aは、第2ゲーム端末10−2Aのゲーム制御情報取得部1020Aによって取得されたゲーム制御情報を第1ゲーム端末10−1Aに送信する。
[2−2−4]各ゲーム端末10Aの通信状況判定部1090Aは、ゲームシステム1における通信状況を判定する。各ゲーム端末10Aの送信制限決定部1100Aは、ゲームシステム1における通信状況に基づいて、後述の第2制限部1052Aによる制限を実行するか否かを決定する。各ゲーム端末10Aの基準重要度設定部1110Aは、ゲームシステム1における通信状況に基づいて、基準重要度を設定する。
通信状況判定部1090Aは、ゲーム端末10A間のデータ授受にかかる時間を取得し、当該時間に基づいて、ゲーム端末10A間の通信状況を判定する。そして、送信制限決定部1100Aは、一のゲーム端末10Aから他のゲーム端末10Aへのゲーム制御情報の送信に関して第2制限部1052Aによる制限を実行するか否かを、一のゲーム端末10Aと他のゲーム端末10Aと間の通信状況に基づいて決定する。また、基準重要度設定部1110Aは、一のゲーム端末10Aと他のゲーム端末10Aと間の通信状況に基づいて、一のゲーム端末10Aで取得されたゲーム制御情報が送信制限対象に該当するか否かを判定する場合に用いられる基準重要度を設定する。
[2−2−4−1]例えば、第1ゲーム端末10−1Aの通信状況判定部1090Aは、データ(例えばゲーム制御情報)が第1ゲーム端末10−1Aによって送信されてから第2ゲーム端末10−2Aによって受信されるまでに要した時間を取得し、当該時間に基づいて、第2ゲーム端末10−2Aとの間の通信状況を判定する。例えば、上記時間は第2ゲーム端末10−2Aによって取得され、第1ゲーム端末10−1Aに通知される。上記時間が短いほど、通信状況が良く、上記時間が長いほど、通信状況が良くないことになる。このため、例えば、上記時間が閾値よりも長い場合に、第2ゲーム端末10−2Aとの間の通信状況が良くないことになり、上記時間が閾値よりも短い場合に、第2ゲーム端末10−2Aとの間の通信状況が良いことになる。
この場合、第1ゲーム端末10−1Aの送信制限決定部1100Aは、第2ゲーム端末10−2Aとの間の通信状況が良くない場合に、第2制限部1052Aによる制限を実行すると決定する。また、基準重要度設定部1110Aは、上記時間が長い場合には上記時間が短い場合に比べて基準重要度が高くなるようにして、基準重要度を設定する。
[2−2−4−2]また例えば、第1ゲーム端末10−1Aの通信状況判定部1090Aは、第2ゲーム端末10−2Aに対して要求データを送信し、当該要求データに応じて第2ゲーム端末10−2Aから返信される応答データを受信するまでの時間を計測し、当該時間に基づいて、第2ゲーム端末10−2Aとの間の通信状況を判定してもよい。この場合、上記時間が短いほど、通信状況が良く、上記時間が長いほど、通信状況が良くないことになる。このため、例えば、上記時間が閾値よりも長い場合に、第2ゲーム端末10−2Aとの間の通信状況が良くないことになり、上記時間が閾値よりも短い場合に、第2ゲーム端末10−2Aとの間の通信状況が良いことになる。
この場合、第1ゲーム端末10−1Aの送信制限決定部1100Aは、第2ゲーム端末10−2Aとの間の通信状況が良くない場合に、第2制限部1052Aによる制限を実行すると決定する。また、基準重要度設定部1110Aは、上記時間が長い場合には上記時間が短い場合に比べて基準重要度が高くなるようにして、基準重要度を設定する。
[2−2−4−3]なお、ゲームに参加する複数のユーザの複数のゲーム端末10のうちの何れかの送信制限決定部1100Aが第2制限部1052Aによる制限を実行すると決定した場合、他のゲーム端末10でも第2制限部1052Aによる制限を実行するようにしてもよい。ゲームに参加する複数のユーザの複数のゲーム端末10の各々の基準重要度設定部1110Aによって決定された基準重要度のうちの最も高い基準重要度を各ゲーム端末10で用いるようにしてもよい。
[2−2−5]各ゲーム端末10Aの重要度取得部1120Aは、ゲーム制御内容と重要度との対応関係を示す対応関係データD1002Aに基づいて、ゲーム制御情報取得部1020Aによって取得されたゲーム制御情報の重要度を取得する。重要度取得部1120Aの機能は基本的に第1実施形態の重要度取得部3090と類似する。
[2−2−6]各ゲーム端末10Aの送信制限対象判定部1040Aは、ゲーム制御情報取得部1020Aによって取得されたゲーム制御情報が所定の送信制限対象に該当するか否かを判定する。送信制限対象判定部1040Aは、第1送信制限対象判定部1041Aと、第2送信制限対象判定部1042Aとを含む。
第1送信制限対象判定部1041Aの機能は第1実施形態の送信制限対象判定部1040と同様である。第2送信制限対象判定部1042Aは、ゲーム制御情報取得部1020Aによって取得されたゲーム制御情報の重要度に基づいて、当該ゲーム制御情報が送信制限対象に該当するか否かを判定する。第2送信制限対象判定部1042Aの機能は基本的に第1実施形態の送信制限対象判定部3100と類似する。
[2−2−7]各ゲーム端末10の制限部1050Aは、ゲーム制御情報取得部1020Aによって取得されたゲーム制御情報が所定の送信制限対象に該当する場合に、他のゲーム端末10への当該ゲーム制御情報の送信を制限する。制限部1050Aは、第1制限部1051Aと、第2制限部1052Aとを含む。
第1制限部1051Aは、第1送信制限対象判定部1041Aによってゲーム制御情報が所定の送信制限対象に該当すると判定された場合に、他のゲーム端末10への当該ゲーム制御情報の送信を制限する。例えば、第1ゲーム端末10−1Aのゲーム制御情報取得部1020Aによって取得されたゲーム制御情報が第1ゲーム端末10−1Aの第1送信制限対象判定部1041Aによって送信制限対象に該当すると判定された場合、第1ゲーム端末10−1Aの第1制限部1051Aは、当該ゲーム制御情報が第1ゲーム端末10−1Aから第2ゲーム端末10−2Aに送信されるのを制限する。この場合、送信部1030Aは、送信制限対象に該当すると判定されたゲーム制御情報の代わりに、ダミーゲーム制御情報を送信する。先述したように、ダミーゲーム制御情報は、通常のゲーム制御情報に比べてデータ量の小さいデータであるため、送信制限対象に該当すると判定されたゲーム制御情報の代わりにダミーゲーム制御情報を送信することによって、通信負荷が軽減される。
第2制限部1052Aは、第2送信制限対象判定部1042Aによってゲーム制御情報が所定の送信制限対象に該当すると判定された場合に、他のゲーム端末10への当該ゲーム制御情報の送信を制限する。例えば、第1ゲーム端末10−1Aのゲーム制御情報取得部1020Aによって取得されたゲーム制御情報が第1ゲーム端末10−1Aの第2送信制限対象判定部1042Aによって送信制限対象に該当すると判定された場合、第1ゲーム端末10−1Aの第2制限部1052Aは、当該ゲーム制御情報が第1ゲーム端末10−1Aから第2ゲーム端末10−2Aに送信されるのを制限する。この場合、送信部1030Aは、送信制限対象に該当すると判定されたゲーム制御情報の代わりに、ダミーゲーム制御情報を送信する。先述したように、ダミーゲーム制御情報は、通常のゲーム制御情報に比べてデータ量の小さいデータであるため、送信制限対象に該当すると判定されたゲーム制御情報の代わりにダミーゲーム制御情報を送信することによって、通信負荷が軽減される。
[2−2−8]各ゲーム端末10Aの受信部1060Aは、他のゲーム端末10Aから送信されたゲーム制御情報を受信する。
[2−2−9]各ゲーム端末10Aのゲーム状況更新部1070Aは、ゲーム制御情報取得部1020Aによって取得されたゲーム制御情報と、受信部1060Aによって受信されたゲーム制御情報とに基づいて、データ記憶部1000Aに記憶されるゲーム状況データD1001Aを更新する。各ゲーム端末10Aの表示制御部1080Aは、ゲーム状況データD1001に基づいて、ゲームの状況を示すゲーム画像を表示部15に表示させるための制御を行う。ゲーム状況更新部1070Aや表示制御部1080Aの機能は、基本的に第1実施形態のゲーム状況更新部1070や表示制御部1080と同様である。
なお、ゲーム状況更新部1070Aは、同じタイミングにおいて複数のゲーム端末10Aの各々で受け付けられたゲーム操作に対応するゲーム制御情報に基づいて、ゲーム状況データD1001Aを更新する。
「同じタイミングにおいて複数のゲーム端末10Aの各々で受け付けられたゲーム操作に対応するゲーム制御情報に基づいて、ゲーム状況データD1001Aを更新する」とは、同じタイミング(例えば、ゲームが開始されてからのフレーム数又は経過時間が同じタイミング)において複数のゲーム端末10Aの各々で受け付けられたゲーム操作に対応するゲーム制御情報が、同時にゲーム状況データD1001Aに反映されるようにすることである。なお、上記のようなゲーム状況データD1001Aの更新は、ゲーム操作が行われたタイミングを示すゲーム操作タイミング情報が各ゲーム制御情報に関連付けられることによって可能になる。
例えば、先述のサッカーゲームの場合、第1ゲーム端末10−1A及び第2ゲーム端末10−2Aの各々のゲーム状況更新部1070Aは、あるタイミングにおいて第1ゲーム端末10−1Aで受け付けられたゲーム操作に対応するゲーム制御情報と、同じタイミングにおいて第2ゲーム端末10−2Aで受け付けられたゲーム操作に対応するゲーム制御情報とに基づいて、ゲーム状況データD1001を更新する。このようにすることで、第1ゲーム端末10−1Aと第2ゲーム端末10−2Aとの各々に記憶されるゲーム状況データD1001Aを互いに同期させることができる。
[2−3.処理]第2実施形態に係るゲームシステム1Aで実行される処理について説明する。
[2−3−1]図22は、送信制限実行フラグ及び基準重要度を設定するための処理の一例を示す。図22に示す処理は試合開始前又は試合中に実行される。図22に示す処理がプログラムに基づいて実行されることによって、通信状況判定部1090A、送信制限決定部1100A、及び基準重要度設定部1110Aが実現される。
図22に示すように、ゲーム端末10Aの制御部11は、ゲームシステム1における通信状況が良いか否かを判定する(S130A)。
例えば、ゲーム端末10Aの制御部11は、当該ゲーム端末10Aから送信されたデータが他のゲーム端末10Aで受信されるまでに要した時間を当該他のゲーム端末10Aから取得し、当該時間に基づいて通信状況が良いか否かを判定する。例えば、制御部11は、当該時間が閾値以下である場合に通信状況が良いと判定し、当該時間が閾値よりも長い場合に通信状況が良くないと判定する。
また例えば、ゲーム端末10Aの制御部11は、通信部13を介して、要求データを他のゲーム端末10Aに送信し、当該要求データに応じて当該他のゲーム端末10Aから返信される応答データを受信するまでの時間を計測し、当該時間に基づいて通信状況が悪いか否かを判定する。例えば、制御部11は、当該時間が閾値以下である場合に通信状況が良いと判定し、当該時間が閾値よりも長い場合に通信状況が良くないと判定する。
通信状況が良いと判定された場合には(S130A:Yes)、制御部11は送信制限実行フラグを「0」に設定する(S132A)。一方、通信状況が良いと判定されなかった場合には(S130A:No)、制御部31は送信制限実行フラグを「1」に設定する(S134A)。また、制御部31は基準重要度を設定する(S136A)。例えば、制御部31は基準重要度を所定値「50」に設定する。なお、ステップS136Aでは、通信状況の悪さの程度に応じて、基準重要度を変えてもよい。即ち、通信状況が悪いほど(上記時間が長いほど)、基準重要度を高くしてもよい。
[2−3−2]図23は、試合中に所定時間ごとに繰り返し実行される処理の一例を示す。図23に示す処理がプログラムに基づいて実行されることによって、ゲーム端末10Aの機能ブロック(データ記憶部1000A、通信状況判定部1090A、送信制限決定部1100A、及び基準重要度設定部1110Aを除く)が実現される。ここでは、先述のサッカーゲームにおいて、第1ゲーム端末10−1Aを使用する第1ユーザと、第2ゲーム端末10−2Aを使用する第2ユーザとの間で試合が実行される場合を想定して、図22の処理について説明する。
図22に示すように、第1ゲーム端末10−1Aの制御部11(以下「制御部11−1A」と記載する。)は、第1ユーザによって行われたゲーム操作の内容を示すゲーム操作情報を取得し(S110−1A)、当該ゲーム操作情報に対応するゲーム制御内容を示すゲーム制御情報を取得する(S112−1A)。ステップS110−1A,S112−1Aは第1実施形態のステップS110−1,S112−1と同様である。
ステップS112−1Aの実行後、制御部11−1Aはゲーム制御情報の送信処理を実行する(S114−1A)。ステップS114−1Aは第1実施形態のステップS114−1(図15)と基本的に同様である。
第2実施形態では、図15のステップS11400において、制御部11−1Aは、ステップS112−1Aで取得されたゲーム制御情報の示すゲーム制御内容が一つ前に取得されたゲーム制御情報と同じであるか否かを判定する。そして、当該ゲーム制御内容が一つ前に取得されたゲーム制御情報と同じである場合に、制御部11−1Aは、ステップS112−1Aで取得されたゲーム制御情報が送信制限対象に該当すると判定する。
またステップS11400において、制御部11−1Aは、ゲーム状況データD1001の示すゲーム状況が、ステップS112−1Aで取得したゲーム制御情報の示すゲーム制御を行う必要性の低い状況(又はゲーム制御を行う必要性のない状況)であるか否かを判定する。当該ゲーム制御を行う必要性の低い状況(又はゲーム制御を行う必要性のない状況)である場合に、制御部11−1Aは、ステップS112−1Aで取得されたゲーム制御情報が送信制限対象に該当すると判定する。
さらにステップS11400において、制御部11−1Aは、送信制限実行フラグが「1」であるか否かを判定し、送信制限実行フラグが「1」であれば、ステップS112−1Aで取得したゲーム制御情報の重要度が基準重要度未満であるか否かを判定する。そして、ゲーム制御情報の重要度が基準重要度未満である場合に、制御部11−1Aは、ステップS112−1Aで取得されたゲーム制御情報が送信制限対象に該当すると判定する。この処理は第1実施形態のS30408(図17)と類似する。
また第2実施形態では、図15のステップS11402において、ゲーム制御情報が第2ゲーム端末10−2Aに送信される。同様に、図15のステップS11404において、ダミーゲーム制御情報が第2ゲーム端末10−2Aに送信される。
また図23に示すように、第2ゲーム端末10−2Aの制御部11(以下「制御部11−2A」と記載する。)は、第2ユーザによって行われたゲーム操作の内容を示すゲーム操作情報を取得し(S110−2A)、当該ゲーム操作情報に対応するゲーム制御内容を示すゲーム制御情報を取得する(S112−2A)。そして、制御部11−2Aはゲーム制御情報の送信処理を実行する(S114−2A)。ステップS110−2A,S112−2A,S114−2AはステップS110−1A,S112−1A,S114−1Aと同様である。
また、第1ゲーム端末10−1Aの制御部11−1Aは、第2ゲーム端末10−2Aによって送信されたゲーム制御情報を受信し(S116−1A)、受信したゲーム制御情報と、ステップS112−1Aで取得したゲーム制御情報とに基づいて、第1ゲーム端末10−1Aに記憶されるゲーム状況データD1001Aを更新する(S118−1A)。そして、制御部11−1Aは、更新したゲーム状況データD1001Aに基づいて、ゲーム状況を示すゲーム画像を第1ゲーム端末10−1Aの表示部15に表示させる(S120−1A)。
同様に、第2ゲーム端末10−2Aの制御部11−2Aは、第1ゲーム端末10−1Aによって送信されたゲーム制御情報を受信し(S116−2A)、受信したゲーム制御情報と、ステップS112−2Aで取得したゲーム制御情報とに基づいて、第2ゲーム端末10−2Aに記憶されるゲーム状況データD1001Aを更新する(S118−2A)。そして、制御部11−1Aは、更新したゲーム状況データD1001Aに基づいて、ゲーム状況を示すゲーム画像を第1ゲーム端末10−2Aの表示部15に表示させる(S120−2A)。
[2−4.まとめ]第2実施形態に係るゲームシステム1Aによれば、ゲーム制御情報が送信制限対象に該当すると判定された場合に他のゲーム端末10Aへの当該ゲーム制御情報の送信を制限するようにしたことによって、送信制限対象に該当すると判定されるゲーム制御情報を送信する場合に比べて、ゲームシステム1Aの通信負荷を低減できる。
またゲームシステム1Aによれば、同じタイミングにおいて第1ゲーム端末10−1Aと第2ゲーム端末10−2Aとの各々で受け付けられたゲーム操作に対応するゲーム制御情報に基づいて、ゲーム状況データD1001Aを更新するようにしたことによって、第1ゲーム端末10−1Aと第2ゲーム端末10−2Aとの間でゲーム状況が矛盾しないように図ることができる。
[2−5.第2実施形態の変形例]第2実施形態に係るゲームシステム1Aでは、以上に説明した構成の代わりに、以下に説明するような構成を採用してもよい。
[2−5−1]各ゲーム端末10Aの代わりに、サーバ装置30Aが送信制限決定部1100Aや基準重要度設定部1110Aを備えてもよい。即ち、各ゲーム端末10Aが通信状況判定部1090Aの判定結果をサーバ装置30に通知するようにし、サーバ装置30Aの送信制限決定部1100Aや基準重要度設定部1110Aが、各ゲーム端末10Aから受信した判定結果に基づいて、各ゲーム端末10Aで第2制限部1052Aによる制限を実行するか否かを決定したり、各ゲーム端末10Aにおける基準重要度を決定したりし、その決定結果を各ゲーム端末10Aに通知してもよい。
また、各ゲーム端末10Aの代わりに、サーバ装置30Aが通信状況判定部1090Aも備えてもよい。この場合、サーバ装置30Aの通信状況判定部1090Aは、各ゲーム端末10Aから送信されたデータがサーバ装置30Aで受信されるまでの時間を取得することによって、各ゲーム端末10Aの通信状況を判定してもよい。または、サーバ装置30Aの通信状況判定部1090Aは、各ゲーム端末10Aに対して要求データを送信し、当該要求データに応じてゲーム端末10Aから返信される応答データを受信するまでの時間を計測することによって、各ゲーム端末10Aの通信状況を判定してもよい。
[2−5−2]第1送信制限対象判定部1041Aと第2送信制限対象判定部1042Aとのうちの一方を省略してもよい。なお、第1送信制限対象判定部1041Aを省略する場合には第1制限部1051Aも省略してもよい。また、第2送信制限対象判定部1042Aを省略する場合には、通信状況判定部1090A、送信制限決定部1100A、基準重要度設定部1110A、重要度取得部1120Aや、第2制限部1052Aも省略してもよい。
[2−5−3]ゲーム制御情報が送信制限対象に該当する場合に、当該ゲーム制御情報の代わりに、ダミーゲーム制御情報を送信していたが、ダミーゲーム制御情報を送信しなないようにしてもよい。この場合、ゲーム端末10Aでは、他のゲーム端末10Aからゲーム制御情報が受信されなかったら、他のゲーム端末10Aではゲーム操作が行われなかった(即ち、ゲーム制御内容が「何も実行しない」である)とみなすようにしてもよい。
[2−5−4]送信制限決定部1100Aは送信実行制限フラグを「0」に設定する代わりに、基準重要度を「0」に設定するようにしてもよい。
[3.変形例]本発明は以上に説明した第1及び第2実施形態に限定されるものではない。
[3−1]以上に説明した第1及び第2実施形態では、ゲーム制御情報の重要度が3段階以上の複数段階(例えば0〜255の256段階)で示されるようになっていたが、重要度は、ゲーム制御情報が示すゲーム制御内容が重要であるか否かを識別できる情報であればよい。例えば、重要度は、ゲーム制御内容が重要であるか否かを示すフラグ情報であってもよい。例えば、重要なゲーム制御内容の重要度として所定の値(例えば「1」)が設定され、重要でないゲーム制御内容の重要度として他の値(例えば「0」)が設定されるようにしてもよい。この場合、必ずしも基準重要度を設定しなくてもよく、基準重要度設定部3080,1110Aを省略してもよい。
[3−2]以上に説明した第1及び第2実施形態では、各ゲーム端末10(10A)の通信状況に基づいてゲーム端末10(10A)ごとに基準重要度を設定するようになっていたが、基準重要度を固定値(例えば50)に設定するようにしてもよい。
[3−3]以上では、第1ゲーム端末10−1を使用する第1ユーザと、第2ゲーム端末10−2を使用する第2ユーザとの2名のユーザが参加するゲームを実行する場合について主に説明したが、本発明は、3名以上のユーザがゲームを実行する場合にも適用できる。なお、3名以上のユーザが参加するゲームを第1実施形態によって実行し、2名のユーザが参加するゲームを第2実施形態によって実行してもよい。
[3−4]以上では、本発明をサッカーゲームに適用した場合について主に説明したが、本発明はサッカーゲーム以外のゲームにも適用できる。本発明は、複数のゲーム端末10をそれぞれ使用する複数のユーザが参加するゲームに適用できる。
[4.付記]以上のような記載から、本発明は例えば以下のように把握される。なお、本発明の理解を容易にするために、適宜図面に記載された符号を括弧書きで記載するが、それにより本発明が図示の態様に限定されるものではない。
1)本発明の一態様に係るゲームシステム(1)は、複数のゲーム端末(10)とサーバ装置(30)とを含み、前記複数のゲーム端末(10)をそれぞれ使用する複数のユーザが参加するゲームを実行するゲームシステム(1)において、前記複数のゲーム端末(10)の各々は、ゲームの状況を示すゲーム状況データ(D1001)を記憶する記憶手段(1000)と、ゲーム操作を受け付けるゲーム操作受付手段(1010)と、前記ゲームの状況に基づいて、前記ゲーム操作に対応するゲーム制御内容を示すゲーム制御情報を取得する取得手段(1020)と、前記取得手段(1020)によって取得された前記ゲーム制御情報を前記サーバ装置(30)に送信する第1送信手段(1030)と、を含み、前記サーバ装置(30)は、前記複数のゲーム端末(10)の各々から送信された前記ゲーム制御情報を受信する第2受信手段(3010)と、前記第2受信手段(3010)によって受信された前記ゲーム制御情報を前記複数のゲーム端末(10)の各々に送信する第2送信手段(3040)と、を含み、前記複数のゲーム端末(10)の各々は、前記サーバ装置(30)から送信された前記ゲーム制御情報を受信する第1受信手段(1060)と、前記第1受信手段(1060)によって受信された前記ゲーム制御情報に基づいて、前記ゲーム状況データを更新する更新手段(1070)と、前記ゲーム状況データに基づいて、前記ゲームの状況を示すゲーム画像を表示手段(15)に表示させるための制御を行う表示制御手段(1080)と、をさらに含み、前記サーバ装置(30)は、ゲーム制御内容と重要度との対応関係を示す対応関係情報(D3001)に基づいて、前記ゲーム制御情報の重要度を取得する重要度取得手段(3090)と、前記複数のゲーム端末(10)のうちの一のゲーム端末(10−2)からの前記ゲーム制御情報が前記第2受信手段(3010)によって受信されなかった場合に、前記一のゲーム端末(10−2)からの前記ゲーム制御情報として、代替ゲーム制御情報(例えばダミーゲーム制御情報)を前記複数のゲーム端末(10)の各々に送信する代替送信手段(3050)と、前記一のゲーム端末(10−2)からの前記ゲーム制御情報として前記代替ゲーム制御情報が前記複数のゲーム端末(10)の各々に送信された後において、前記一のゲーム端末(10−2)からの前記ゲーム制御情報が前記第2受信手段(3010)によって受信された場合に、当該ゲーム制御情報の重要度に基づいて、前記複数のゲーム端末(10)の各々への当該ゲーム制御情報の送信を制限する制限手段(3110)と、をさらに含む。
5)本発明の一態様に係るサーバ装置(30)は、ゲーム操作に対応するゲーム制御内容を示すゲーム制御情報を複数のゲーム端末(10)の各々から受信する受信手段(3010)と、前記受信手段(3010)によって受信された前記ゲーム制御情報を前記複数のゲーム端末(10)の各々に送信する送信手段(3040)と、前記複数のゲーム端末(10)のうちの一のゲーム端末(10−2)からの前記ゲーム制御情報が前記受信手段(3010)によって受信されなかった場合に、前記一のゲーム端末(10−2)からの前記ゲーム制御情報として、代替ゲーム制御情報を前記複数のゲーム端末(10)の各々に送信する代替送信手段(3050)と、ゲーム制御内容と重要度との対応関係を示す対応関係情報(D3001)に基づいて、前記ゲーム制御情報の重要度を取得する重要度取得手段(3090)と、前記一のゲーム端末(10−2)からの前記ゲーム制御情報として前記代替ゲーム制御情報が前記複数のゲーム端末(10)の各々に送信された後において、前記一のゲーム端末(10−2)からの前記ゲーム制御情報が前記受信手段(3010)によって受信された場合に、当該ゲーム制御情報の重要度に基づいて、前記複数のゲーム端末(10)の各々への当該ゲーム制御情報の送信を制限する制限手段(3110)と、を含む。
6)また、本発明の一態様に係るプログラムは、5)に記載のサーバ装置(30)としてコンピュータを機能させるためのプログラムである。
7)また、本発明の一態様に係る情報記憶媒体は、6)に記載のプログラムを記録したコンピュータで読み取り可能な情報記憶媒体である。
8)本発明の一態様に係るサーバ装置(30)の制御方法は、ゲーム操作に対応するゲーム制御内容を示すゲーム制御情報を複数のゲーム端末(10)の各々から受信する受信ステップ(S302)と、前記受信ステップ(S302)によって受信された前記ゲーム制御情報を前記複数のゲーム端末(10)の各々に送信する送信ステップと、前記複数のゲーム端末(10)のうちの一のゲーム端末(10−2)からの前記ゲーム制御情報が前記受信ステップ(S302)によって受信されなかった場合に、前記一のゲーム端末からの前記ゲーム制御情報として、代替ゲーム制御情報を前記複数のゲーム端末(10)の各々に送信する代替送信ステップ(S30422)と、ゲーム制御内容と重要度との対応関係を示す対応関係情報(D3001)に基づいて、前記ゲーム制御情報の重要度を取得する重要度取得ステップ(S30408)と、前記一のゲーム端末(10−2)からの前記ゲーム制御情報として前記代替ゲーム制御情報が前記複数のゲーム端末(10)の各々に送信された後において、前記一のゲーム端末(10−2)からの前記ゲーム制御情報が前記受信ステップ(S302)によって受信された場合に、当該ゲーム制御情報の重要度に基づいて、前記複数のゲーム端末(10)の各々への当該ゲーム制御情報の送信を制限する制限ステップ(S30408:Yes)と、を含む。
上記1)、5)〜8)に記載の発明によれば、複数のゲーム端末のうちの一のゲーム端末からのゲーム制御情報が通信遅延等によって受信されなかった場合に、当該一のゲーム端末からのゲーム制御情報として、代替ゲーム制御情報が複数のゲーム端末の各々に送信される。このため、通信環境の良くないゲーム端末からのゲーム制御情報が取得されるのを待つことなく、ゲームを進行させることができる。
また、一のゲーム端末からのゲーム制御情報として代替ゲーム制御情報が複数のゲーム端末の各々に送信された場合、このままの状態を放置すると、一のゲーム端末からのゲーム制御情報として代替ゲーム制御情報が挿入されたことによって、これ以降、一のゲーム端末からのゲーム制御情報は他のゲーム端末よりも一つ遅れてゲームに反映されることになる。この点、本発明によれば、一のゲーム端末からのゲーム制御情報として代替ゲーム制御情報が複数のゲーム端末の各々に送信された後で、一のゲーム端末からのゲーム制御情報が受信された場合に、複数のゲーム端末の各々への当該ゲーム制御情報の送信が制限されるため、上記のような不都合の発生を抑制できる。
なお、ゲーム制御情報には、複数のゲーム端末の各々への送信が制限されてゲームへの反映が行われなかったとしても、ユーザによって気づかれにくいもの(重要度の低いもの)と、複数のゲーム端末の各々への送信が制限されてゲームへの反映が行われないと、ユーザに違和感を覚えさせ、ゲームの興趣性が低下するおそれがあるもの(重要度の高いもの)とがある。この点、本発明によれば、後者のような重要度の高いゲーム制御情報が送信されなくなることを防ぎつつ、前者のような重要度の低いゲーム制御情報の送信を制限できる。
本発明によれば、複数のゲーム端末をそれぞれ使用する複数のユーザが参加するゲームにおいて、複数のゲーム端末のうちに通信環境の良くないゲーム端末が存在していたとしても、他のゲーム端末を使用するユーザがゲームを快適にプレイできるように図ることが可能になる。
2)本発明の一態様では、前記制限手段(3110)は、前記ゲーム制御情報の重要度が基準重要度よりも低い場合に、前記複数のゲーム端末の各々への当該ゲーム制御情報の送信を制限してもよい。
2)に記載の発明によれば、ゲーム制御情報の重要度が基準重要度よりも低い場合に、複数のゲーム端末の各々への当該ゲーム制御情報の送信を制限するため、重要度が基準重要度よりも高いゲーム制御情報が送信されなくなることを防ぎつつ、基準重要度よりも低いゲーム制御情報の送信が制限されるようにできる。
3)本発明の一態様では、前記サーバ装置(30)は、前記一のゲーム端末(10−2)と前記サーバ装置(30)との間の通信状況に基づいて、前記基準重要度を設定する基準重要度設定手段(3080)をさらに含むようにしてもよい。
3)に記載の発明によれば、一のゲーム端末とサーバ装置との間の通信状況に基づいて基準重要度を設定するため、一のゲーム端末とサーバ装置との間の通信状況に合わせて基準重要度を設定できる。例えば、一のゲーム端末とサーバ装置との間の通信遅延が小さい場合には基準重要度を低く設定することによって、比較的重要度の低いゲーム制御情報も送信制限しないようにしたり、一のゲーム端末とサーバ装置との間の通信遅延が大きい場合には基準重要度を高く設定することによって、比較的重要度の高いゲーム制御情報も送信制限したりできる。
4)本発明の一態様では、前記制限手段(3110)は、前記一のゲーム端末(10−2)からの前記ゲーム制御情報として送信された代替ゲーム制御情報の量に基づいて、前記ゲーム制御情報の送信を制限するようにしてもよい。
4)に記載の発明によれば、一のゲーム端末からのゲーム制御情報として送信された代替ゲーム制御情報の量に基づいて、ゲーム制御情報の送信を制限するため、ゲーム制御情報の送信を制限する必要がないにもかかわらずゲーム制御情報の送信を制限してしまうことがないように抑制できる。