(57)【要約】【課題】通信遅延が発生し易い環境下においても、遅延をなるべく感じさせずに快適にゲームプレイできるようにする技術を提供すること。【解決手段】ゲーム画像をリフレッシュする制御サイクル時間（例えば１／６０秒）よりも長い所与のフェーズ時間を計時し、その間に自機に操作入力された操作入力情報（自機情報）を、当該フェーズ時間が経過する毎に他機に送信することを繰り返す。その逆に、他機からは当該他機にとっての自機情報である他機情報を受信する。そして、自機情報および他機情報に基づくマルチプレイゲームの進行制御の開始タイミングを、自機のフェーズ時間の切り替えタイミングから変更可能として進行制御する処理を行う。【選択図】図３
2018166966.tif 000002
【特許請求の範囲】
【請求項１】
所定のネットワークに通信接続可能なコンピュータに、前記ネットワークを介して自機と他機との間で送受したプレーヤ各自の操作入力情報に基づいて進行するマルチプレイゲームを実行させるためのプログラムであって、
ゲーム画像をリフレッシュする制御サイクル時間よりも長い所与のフェーズ時間（以下「自機フェーズ時間」という）の間に自機に操作入力された前記操作入力情報（以下「自機情報」という）を、当該自機フェーズ時間が経過する毎に他機に送信する送信制御手段、
他機から、当該他機が計時する前記フェーズ時間（以下「他機フェーズ時間」という）毎に送信されてくる、当該他機フェーズ時間の間に当該他機に操作入力された前記操作入力情報（以下「他機情報」という）を受信する受信制御手段、
前記自機情報および前記他機情報に基づいて、所与の単位進行時間分、前記マルチプレイゲームを進行制御する処理を繰り返す進行制御手段であって、前記単位進行時間の開始タイミングを、前記自機フェーズ時間の切り替えタイミングから変更可能として前記進行制御する処理を行う進行制御手段、
として前記コンピュータを機能させるためのプログラム。
【請求項２】
前記進行制御手段は、前記切り替えタイミングから所与の待機許容タイミングが経過するまでに、最新の前記自機フェーズ時間に対応する前記他機フェーズ時間に係る前記他機情報が受信された場合には、当該他機情報の受信次第、前記単位進行時間分の進行制御を開始する、
請求項１に記載のプログラム。
【請求項３】
前記進行制御手段は、前記切り替えタイミングから前記待機許容タイミングが経過するまでに、前記他機情報が受信されない場合には、前記自機情報および前記他機情報を対比してゲーム進行を判定する必要のない先行可能制御を開始する、
請求項２に記載のプログラム。
【請求項４】
前記進行制御手段は、最新の前記自機情報を用いて、自機に係るキャラクタの位置制御及び／又は動作制御のうちの前記先行可能制御を開始する、
請求項３に記載のプログラム。
【請求項５】
前記進行制御手段は、過去の前記他機情報を用いて、他機に係るキャラクタの位置制御及び／又は動作制御のうちの前記先行可能制御を予測して開始する、
請求項３又は４に記載のプログラム。
【請求項６】
前記進行制御手段は、他機に係るキャラクタの前記先行可能制御を開始して後、受信される前記他機情報に基づいて、他機情報と当該先行可能制御との整合をとる修正制御を行う、
請求項５に記載のプログラム。
【請求項７】
前記進行制御手段は、前記先行可能制御が終了するまでに前記他機情報が受信されない場合には、前記先行可能制御を終了した後、ゲーム進行を一時停止する、
請求項３〜６の何れか一項に記載のプログラム。
【請求項８】
前記切り替えタイミングから前記待機許容タイミングまでの時間は、前記制御サイクル時間の２倍以上の時間であり、且つ、前記フェーズ時間より短い時間である、
請求項２〜７の何れか一項に記載のプログラム。
【請求項９】
前記フェーズ時間は、前記制御サイクル時間の１０倍以上の時間である、
請求項１〜８の何れか一項に記載のプログラム。
【請求項１０】
前記コンピュータは、携帯型の電子機器であり、
前記ネットワークは、少なくともインターネットが含まれる、
請求項１〜９の何れか一項に記載のプログラム。
【請求項１１】
所定のネットワークに通信接続可能であり、前記ネットワークを介して自機と他機との間で送受したプレーヤ各自の操作入力情報に基づいて進行するマルチプレイゲームを実行する電子機器であって、
ゲーム画像をリフレッシュする制御サイクル時間よりも長い所与のフェーズ時間（以下「自機フェーズ時間」という）の間に自機に操作入力された前記操作入力情報（以下「自機情報」という）を、当該自機フェーズ時間が経過する毎に他機に送信する送信制御手段と、
他機から、当該他機が計時する前記フェーズ時間（以下「他機フェーズ時間」という）毎に送信されてくる、当該他機フェーズ時間の間に当該他機に操作入力された前記操作入力情報（以下「他機情報」という）を受信する受信制御手段と、
前記自機情報および前記他機情報に基づいて、所与の単位進行時間分、前記マルチプレイゲームを進行制御する処理を繰り返す進行制御手段であって、前記単位進行時間の開始タイミングを、前記自機フェーズ時間の切り替えタイミングから変更可能として前記進行制御する処理を行う進行制御手段と、
を備えた電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータに、ネットワークを介して自機と他機との間で送受したプレーヤ各自の操作入力情報に基づいて進行するマルチプレイゲームを実行させるためのプログラム等に関する。
【背景技術】
【０００２】
ビデオゲームでは、操作入力に応じてゲーム進行制御が行われ、進行制御の結果がゲームプレイ画像に反映される。操作入力のタイミングから、その結果がゲームプレイ画像に反映されるまでの時間を「遅延時間」と言う。
【０００３】
遅延時間が生じる原因は様々であるが、通信回線の混雑などを原因とする通信遅延もその１つである。複数のゲーム装置を通信接続してプレイする通信型マルチプレイゲームのうち、夫々のプレーヤの操作入力情報を用いてゲーム進行を行うゲームにおいては、ゲーム進行制御を開始するためには参加人数分の操作入力情報が揃う必要があるので、通信遅延が与える影響は大きい。
【０００４】
遅延時間が長いと、例えばプレーヤが操作入力したタイミングから１テンポ遅れてプレーヤキャラクタが動くといったことが起こり、操作感を大きく損ねる。特に格闘ゲームなど操作入力のタイミングがプレイ成績に直結する類いのゲームを通信対戦で実現する場合には、通信遅延の対策はそのゲームタイトルの人気を左右することにもなる。
【０００５】
例えば特許文献１では、通信遅延を測定し、その通信遅延の時間以上の再生時間を有する動画を表示することで、通信遅延を隠蔽する技術が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１６−９３３６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
近年の通信型マルチプレイゲームの環境は、通信回線としてインターネット等の公衆通信網を無線通信で利用するとともに、スマートフォンなどの汎用コンピュータでゲームアプリケーションプログラムを実行することでゲーム装置として利用するケースが多くなってきた。
【０００８】
インターネットは、ＬＡＮや近距離無線によるアドホック通信等に比べると通信遅延が大きくなり易い。しかも、スマートフォンなどの汎用コンピュータでは、主に携帯電話網を利用した無線によるインターネットへの接続が一般的である。据置型の家庭用ゲーム装置が光通信ケーブルなどの有線によるブロードバンド有線回線を介したインターネット接続であるのに比べると、パケットロスが発生する頻度が高くなる傾向があるのも、通信遅延が大きくなり易い原因の１つである。なお、以降「通信遅延」には、パケットロスに起因するゲーム進行の遅延を含むものとして説明する。
【０００９】
また、そもそもスマートフォンなどの汎用コンピュータは、据置型の家庭用ゲーム装置などのゲーム専用機に比べると、ＣＰＵや通信装置、画像処理回路等のハードウェアの処理性能の点で劣るため、自機内での処理待ちに起因する遅延も発生し易い。
【００１０】
本発明は、通信遅延が発生し易い環境下においても、遅延をなるべく感じさせずに快適にゲームプレイできるようにする技術を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上述した課題を解決するための第１の発明は、所定のネットワークに通信接続可能なコンピュータに、前記ネットワークを介して自機と他機との間で送受したプレーヤ各自の操作入力情報に基づいて進行するマルチプレイゲームを実行させるためのプログラムであって、
ゲーム画像をリフレッシュする制御サイクル時間よりも長い所与のフェーズ時間（以下「自機フェーズ時間」という）の間に自機に操作入力された前記操作入力情報（以下「自機情報」という）を、当該自機フェーズ時間が経過する毎に他機に送信する送信制御手段（例えば、図６の処理部２００、ゲーム演算部２１０、送信制御部２１４、図９のステップＳ１２〜ステップＳ２４）、
他機から、当該他機が計時する前記フェーズ時間（以下「他機フェーズ時間」という）毎に送信されてくる、当該他機フェーズ時間の間に当該他機に操作入力された前記操作入力情報（以下「他機情報」という）を受信する受信制御手段（例えば、図６の処理部２００、ゲーム演算部２１０、受信制御部２１６、図９のステップＳ１０、ステップＳ４０）、
前記自機情報および前記他機情報に基づいて、所与の単位進行時間分、前記マルチプレイゲームを進行制御する処理を繰り返す進行制御手段であって、前記単位進行時間の開始タイミングを、前記自機フェーズ時間の切り替えタイミングから変更可能として前記進行制御する処理を行う進行制御手段（例えば、図６の処理部２００、ゲーム演算部２１０、進行制御部２１８、図９のステップＳ１２２）、として前記コンピュータを機能させるためのプログラムである。
【００１２】
通信型マルチプレイゲームの環境における遅延時間の対策を考えた場合、通信型マルチプレイに参加するゲーム機間で操作入力情報をやり取りする通信回数を少なくして、通信遅延が介在する機会を削減する着想を得るだろう。しかし、通信とゲーム進行制御の関係を従来のままに、単純に通信回数を少なくしたとしても、必ずしも遅延時間を削減できるとは限らない。
【００１３】
すなわち、ビデオゲームに係る制御は、ゲーム画像のリフレッシュ時間（例えば、１／６０秒）未満の制御サイクルで繰り返し行われる。そのため、通信遅延が無視できるネットワーク（例えば店舗内の専用ネットワークや家庭内ＬＡＮ等）に接続されたゲーム機間で通信型マルチプレイを実現する場合、従来は、１制御サイクル毎にその間に入力された操作入力の情報を他機に送信し、１制御サイクル毎に次のゲーム画像の描画に必要なだけ自機及び他機における最新の操作入力に基づいてゲーム進行制御（例えば、ヒット判定や、プレーヤキャラクタのオブジェクトの移動など）が実行された。言い換えると、操作入力情報の送受と、ゲーム進行制御とは、ともに１制御サイクルの切り替えをタイミングとして実行されていた。
【００１４】
通信型マルチプレイゲームでは、ゲーム進行制御はマルチプレイに参加する全プレーヤの操作入力の情報が必要になるので、他機からの操作入力情報の受信に通信遅延が生じると、ゲーム進行制御は１制御サイクル単位に実行待機の状態となる。
【００１５】
ここで、通信型マルチプレイに参加するゲーム機間で操作入力情報をやり取りする通信回数を少なくするために、フェーズ時間なるものを設定して、操作入力情報の送受信を複数の制御サイクル分を１回にまとめるとすることとしたとする。上述のような従来の通信とゲーム進行制御の関係をそのまま踏襲した場合、フェーズ時間を計時完了し、自機の操作入力情報を送信した後に、他機からの操作入力情報の受信を次のフェーズ時間を計時する間、待つことになる。次のフェーズ時間の間のどこかで他機の操作入力情報が受信されたとしても、ゲーム進行制御は、更に次のフェーズ時間の開始まで待機することとなる。全機の操作入力情報が揃うまで待機する必要があったからである。これでは、従来のように１制御サイクル毎に通信を実行するケースよりも、かえって長い待機時間が生じて操作感を損なう可能性が高い。
【００１６】
しかし、第１の発明によれば、フェーズ時間を単位として自機と他機とにおける操作入力情報を送受してゲーム進行制御するが、このゲーム進行制御の単位進行時間の開始タイミングを、フェーズ時間の切り替えタイミングから変更可能としている。よって、フェーズ時間を計時完了し、自機の操作入力情報を送信するとともに、他機からの操作入力情報の受信を待つことになるが、他機からの操作入力情報が受信されればすぐにでもゲーム進行制御を開始できる。そのため、ゲーム機間で操作入力情報をやり取りする通信回数を少なくするメリットを享受しつつ、無駄な待機時間の発生を抑制し、上記課題を解決することができる。すなわち、通信遅延が発生し易い環境下においても、遅延をなるべく感じさせずに快適にゲームプレイできるようにする技術を実現できる。
【００１７】
第２の発明は、前記進行制御手段が、前記切り替えタイミングから所与の待機許容タイミングが経過するまでに、最新の前記自機フェーズ時間に対応する前記他機フェーズ時間に係る前記他機情報が受信された場合には、当該他機情報の受信次第、前記単位進行時間分の進行制御を開始する、第１の発明のプログラムである。
【００１８】
切り替えタイミングから待機許容タイミングまでの時間の長さは、プレーヤが違和感を覚え始める時間をもとに、遅延として許容できる長さに設定すると好適である。
第２の発明によれば、他機情報の受信がフェーズ時間の切り替えタイミングから多少遅れたとしても、待機許容タイミングが経過するまではゲーム進行制御の待機を許容し、受信され次第、即座に単位進行時間分のゲーム進行制御を開始できるので、実質的に遅延時間の影響をプレーヤに感じさせない、或いは、感じさせるとしても微小な影響にとどめることができる。
【００１９】
第３の発明は、前記進行制御手段が、前記切り替えタイミングから前記待機許容タイミングが経過するまでに、前記他機情報が受信されない場合には、前記自機情報および前記他機情報を対比してゲーム進行を判定する必要のない先行可能制御を開始する、第２の発明のプログラムである。
【００２０】
待機許容タイミングが経過してなお単位進行時間分のゲーム進行制御が開始されなければ、つまりゲームが止まったままではプレーヤは遅延を感じ得る。
しかし、第３の発明によれば、他機情報が受信されていない場合に、自機情報と他機情報の全てが揃わなくとも、ゲーム進行上不都合が生じない先行可能制御を開始することができる。見た目上は（ゲーム画面上は）ゲームが進んでいるので、プレーヤにそれを気づかせずにいられる。
【００２１】
先行可能制御の内容は、ゲーム内容や、マルチプレイに参加する人数などにより適宜設定可能である。例えば、第４の発明として、前記進行制御手段が、最新の前記自機情報を用いて、自機に係るキャラクタの位置制御及び／又は動作制御のうちの前記先行可能制御を開始する、第３の発明のプログラムを構成することもできる。
【００２２】
第５の発明は、前記進行制御手段が、過去の前記他機情報を用いて、他機に係るキャラクタの位置制御及び／又は動作制御のうちの前記先行可能制御を予測して開始する、第３又は第４の発明のプログラムである。
【００２３】
第５の発明によれば、未だ受信されていない他機情報を、過去に受信した結果から予測・仮決めして先行可能制御を開始することができる。よって、未受信の他機情報が受信されるまでの間、遅延時間が生じつつあることをプレーヤに気づかせずにいられる。
【００２４】
第６の発明は、前記進行制御手段が、他機に係るキャラクタの前記先行可能制御を開始して後、受信される前記他機情報に基づいて、他機情報と当該先行可能制御との整合をとる修正制御を行う、第５の発明のプログラムである。
【００２５】
第６の発明によれば、未だ受信されていない他機情報に係る先行可能制御を予測した結果と、実際に受信された他機情報との間で違いが有ったとしても、ゲーム進行やゲーム画面の見え方として不都合が生じないようにできる。
【００２６】
第７の発明は、前記進行制御手段が、前記先行可能制御が終了するまでに前記他機情報が受信されない場合には、前記先行可能制御を終了した後、ゲーム進行を一時停止する、第３〜第６の何れかの発明のプログラムである。
【００２７】
先行可能制御にも時間的な限界がある。つまり、遅延時間が生じつつあることをプレーヤに感じさせずに隠蔽するにも限度ある。第７の発明によれば、限界を超えた隠蔽で無理をするよりも、潔くゲーム進行を一時停止することでゲーム進行上の決定的な破綻を招かずに済む。
【００２８】
また、第８の発明として、前記切り替えタイミングから前記待機許容タイミングまでの時間は、前記制御サイクル時間の２倍以上の時間であり、且つ、前記フェーズ時間より短い時間である、第２〜第７の何れかの発明のプログラムを構成すると好適である。
【００２９】
また、第９の発明として、前記フェーズ時間が、前記制御サイクル時間の１０倍以上の時間である、第１〜第８の何れかの発明のプログラムを構成すると好適である。
【００３０】
第１０の発明は、前記コンピュータは、携帯型の電子機器であり、前記ネットワークは、少なくともインターネットが含まれる、第１〜第９の何れかの発明のプログラムである。
【００３１】
第１０の発明によれば、通信型マルチプレイゲームの昨今のプレイ環境として、比較的通信遅延が生じやすい環境であっても、第１〜第９の発明と同様の効果を得ることができる。
【００３２】
第１１の発明は、所定のネットワークに通信接続可能であり、前記ネットワークを介して自機と他機との間で送受したプレーヤ各自の操作入力情報に基づいて進行するマルチプレイゲームを実行する電子機器であって、ゲーム画像をリフレッシュする制御サイクル時間よりも長い所与のフェーズ時間（以下「自機フェーズ時間」という）の間に自機に操作入力された前記操作入力情報（以下「自機情報」という）を、当該自機フェーズ時間が経過する毎に他機に送信する送信制御手段と、他機から、当該他機が計時する前記フェーズ時間（以下「他機フェーズ時間」という）毎に送信されてくる、当該他機フェーズ時間の間に当該他機に操作入力された前記操作入力情報（以下「他機情報」という）を受信する受信制御手段と、前記自機情報および前記他機情報に基づいて、所与の単位進行時間分、前記マルチプレイゲームを進行制御する処理を繰り返す進行制御手段であって、前記単位進行時間の開始タイミングを、前記自機フェーズ時間の切り替えタイミングから変更可能として前記進行制御する処理を行う進行制御手段と、を備えた電子機器である。
【００３３】
第１１の発明によれば、第１の発明と同様の効果を発揮させることができる電子機器を実現できる。
【図面の簡単な説明】
【００３４】
【図１】ゲームシステムの構成の一例を示す図。
【図２】スマートフォンの構成例を示す正面図。
【図３】操作入力情報の通信制御とゲーム進行制御との相対的な実行タイミングの関係を示す図。
【図４】操作入力情報の通信制御とゲーム進行制御との相対的な実行タイミングの関係を示す図。
【図５】操作入力情報の通信制御とゲーム進行制御との相対的な実行タイミングの関係を示す図。
【図６】スマートフォンの機能構成の一例を示す機能ブロック図。
【図７】スマートフォンの記憶部が記憶するプログラムやデータの構成例を示す図。
【図８】キャラクタ初期設定データのデータ構成例を示す図。
【図９】スマートフォンにおける処理の流れについて説明するためのフローチャート。
【図１０】先行可能制御処理の流れを説明するためのフローチャート。
【図１１】操作入力情報の通信制御とゲーム進行制御との相対的な実行タイミングの関係の変形例を示す図。
【発明を実施するための形態】
【００３５】
以下、本発明を適用した実施形態の一例を説明するが、本発明を適用可能な形態が以下の実施形態に限られないことは勿論である。
【００３６】
図１は、本実施形態におけるゲームシステムの構成の一例を示す図である。
本実施形態のゲームシステム１０００は、通信型マルチプレイゲームを提供するシステムである。具体的には、ゲームシステム１０００は、通信回線に接続することで相互にデータ通信が可能なマッチングサーバ１２００と、プレーヤがゲームプレイのために個別に使用する電子機器である複数のスマートフォン１５００（１５００ａ，１５００ｂ，…）とを含む。
【００３７】
ここで言う「通信回線」は、データ通信が可能な通信路を意味する。すなわち、通信回線とは、直接接続のための専用線（専用ケーブル）やイーサネット（登録商標）等によるＬＡＮ（Local Area Network）の他、電話通信網やケーブル網、インターネット等の通信網を含む意味であり、また、通信方法については有線／無線を問わない。
【００３８】
本実施形態における通信回線は、単数又は複数の末端ネットワーク６（６ａ，６ｂ，…）と、インターネット９とが含まれている。この通信環境は、近年の通信型マルチプレイゲームの通信環境として一般的な構成でありながらも、残念ながら光通信ケーブルのようなブロードバンド回線にゲーム装置を有線接続している通信環境よりも通信遅延が起きやすい環境である。また、公衆通信網の代表例として本実施形態ではインターネット９としたが、他の公衆通信網（例えば公衆無線ＬＡＮ）であってもよい。末端ネットワーク６およびインターネット９は、いわゆるベストエフォート型の通信網が好例である。
【００３９】
マッチングサーバ１２００は、通信型マルチプレイゲームを希望するプレーヤ同士をマッチングし、マッチングしたプレーヤのスマートフォン１５００へ相互に通信接続を実現するための情報（マッチングデータ）を提供する。
【００４０】
マッチングされたプレーヤのスマートフォン１５００は、この提供された情報（マッチングデータ）を元に互いに直接通信接続し、それぞれを使用するプレーヤの操作入力情報を送受し有って通信型マルチプレイゲームを実行する。
【００４１】
スマートフォン１５００（１５００ａ，１５００ｂ，…）は、無線によるデータ通信機能を備えた携帯型の汎用コンピュータである。本実施形態におけるスマートフォン１５００は、ゲーム装置或いはプレーヤ端末に相当する。なお、末端ネットワーク６に接続可能で、且つアプリケーションとしてゲームプログラムを実行できる汎用コンピュータであれば、パソコンや、タブレット型コンピュータ、ウェアラブルコンピュータ、などに適宜置き換えが可能である。
【００４２】
末端ネットワーク６とは、スマートフォン１５００とインターネット９とを繋ぐネットワークであって、スマートフォン１５００側から見ると通信型マルチプレイゲームを実行するために最初に接続するネットワークである。本実施形態では、スマートフォン１５００による通話サービスを提供する事業者のネットワークと考えることができる。
【００４３】
本実施形態では、末端ネットワーク６は、スマートフォン１５００が無線接続する無線基地局４（４ａ，４ｂ，…）と、無線基地局４に接続したスマートフォン１５００をインターネット９に接続させるサービスを提供するインターネット接続サーバ５（５ａ，５ｂ，…）とを備えた、いわゆる携帯電話ネットワークとする。
【００４４】
勿論、末端ネットワーク６は、携帯電話ネットワークに限らない。主に無線ＬＡＮ基地局で構築されたデータ通信サービスネットワークに適宜置き換えることができる。また、利用料金の有料／無料は問わない。例えば、施設内に構築されたネットワーク（例えば、空港内の無料Ｗｉ−Ｆｉネットワークなど）でもよい。
【００４５】
図２は、本実施形態におけるスマートフォン１５００の構成例を示す正面図である。
スマートフォン１５００は、方向入力キー１５０２と、ボタンスイッチ１５０４と、画像表示デバイス兼接触位置入力デバイスとして機能するタッチパネル１５０６と、スピーカ１５１０と、内蔵バッテリー１５０９と、マイク１５１２と、イメージセンサユニット１５２０と、制御基板１５５０と、コンピュータ読み出し可能な記憶媒体であるメモリカード１５４０からデータを読み書きできるメモリカード読取装置１５４２と、を備える。その他、図示されていない電源ボタン、音量調節ボタン等が設けられている。また、ゲームプレイの対価の支払いが可能なＩＣカード型のクレジットカードやプリペイドカードに対して非接触にデータの読み書きが行えるＩＣカード読取装置などを設けるとしてもよい。
【００４６】
制御基板１５５０は、ＣＰＵ１５５１やＧＰＵ，ＤＳＰなどの各種マイクロプロセッサ、ＶＲＡＭやＲＡＭ，ＲＯＭ等の各種ＩＣメモリ１５５２、無線基地局４などと無線通信するための無線通信モジュール１５５３、インターフェース回路１５５７などを搭載する。
【００４７】
インターフェース回路１５５７には、タッチパネル１５０６のドライバ回路、方向入力キー１５０２及びボタンスイッチ１５０４からの信号を受信する回路、スピーカ１５１０へ音声信号を出力する出力アンプ回路、マイク１５１２で集音した音声の信号を生成する音声信号生成回路、イメージセンサユニット１５２０で撮影された画像の画像データを入力する回路、メモリカード読取装置１５４２への信号入出力回路、などが含まれている。
【００４８】
制御基板１５５０に搭載されているこれらの要素は、バス回路などを介して電気的に接続され、データの読み書きや信号の送受信が可能に接続されている。なお、制御基板１５５０の一部または全部をＡＳＩＣやＦＰＧＡ、ＳｏＣにて構成してもよい。
【００４９】
なお、本実施形態では、スマートフォン１５００は通信型マルチプレイゲームの実行に必要なプログラムや各種設定データを外部装置（例えば、マッチングサーバ１２００など）からダウンロードする構成とするが、別途入手したメモリカード１５４０などの記憶媒体から読み出す構成としても良い。
【００５０】
［原理の説明］
さて、本実施形態では、マッチングサーバ１２００によりマッチングされたプレーヤは、それぞれのスマートフォン１５００で通信型マルチプレイゲームを楽しむことができる。
本実施形態の通信型マルチプレイゲームは、各プレーヤがそれぞれプレーヤキャラクタを操作して格闘する格闘対戦ゲームとするが、ゲーム内容はこれに限らず適宜設定可能である。
【００５１】
スマートフォン１５００は、末端ネットワーク６に無線接続する。このため、据置型家庭用ゲーム装置といった専用装置を光通信ケーブルのような高速で広帯域で安定した通信回線で有線接続する通信環境に比べて、遅延が生じやすい。遅延時間に占める通信遅延の割合もどうしても大きくなる。
そこで本実施形態では、マッチングされたスマートフォン１５００間で行われる操作入力情報の送受の時間当たりの回数（頻度とも言える）をできるだけ少なくして、通信遅延の影響を受ける機会を減らすことで、トータルでの遅延時間の削減を図る。
【００５２】
図３は、本実施形態における操作入力情報の通信制御とゲーム進行制御との相対的な実行タイミングの関係を示す図である。
中央の太横線が時間軸を示し、当該太横線の上側に描かれている横長四角Ｃｎ（ｎ＝整数；Ｃ１，Ｃ２，…）が、操作入力情報の通信制御を行う単位期間を表している。また、当該太横線の下側に描かれている横長四角Ｐｎ（ｎ＝整数；Ｐ１，Ｐ２，…）が、ゲーム進行制御を行う単位期間を表している。符号Ｃの添え数ｎの通信制御を行う単位期間で入力された操作入力の結果は、符号Ｐの同じ添え数ｎのゲーム進行制御を行う単位期間の制御に反映されることを意味する。
【００５３】
先ず、本実施形態では、ゲーム画像のリフレッシュ時間（例えば、１／６０秒）よりも長い所与のフェーズ時間Ｃｎ（ｎ＝１，２，…）を繰り返し計時する。フェーズ時間は、従来の制御サイクルが幾つも内包されるほどの長さを有するように設定する。好ましくは、制御サイクル時間の１０倍以上の時間とする。本実施形態ではフェーズ時間を２５０ｍｓとするが、例えば２００ｍｓ〜３００ｍｓの範囲で定めることができる。
【００５４】
フェーズ時間が計時されている間に、自機にてなされた操作入力の情報（自機情報）は、フェーズ時間単位でバッファされる。
そして、本実施形態では、フェーズ時間Ｃｎ（ｎ＝１，２，…）が計時完了する毎に、今回のフェーズと、過去Ｍフェーズ分（Ｍは２以上の整数：本実施形態では「７」）、合計（１＋Ｍ）フェーズ分の操作入力情報を他機へ送信する。
つまり、制御サイクル毎に自機情報を他機へ送信していた従来方式に比べると、データ通信の機会が減り、それだけ通信遅延の影響を受けにくくなる。
【００５５】
しかし、従来のように自機情報を他機へ送信するタイミングと、ゲーム進行制御を開始するタイミングとを合わせる同期的制御関係をそのまま踏襲したのでは、操作入力のタイミングから、その結果がゲームプレイ画像に反映されるまでの時間が長時間になる。
【００５６】
すなわち、ある第ｎフェーズ時間が経過すると自機情報を他機に送信するが、他機から送られてくる操作入力情報（他機情報）は、次の第（ｎ＋１）フェーズ時間の間に受信することになる。従来のような同期的制御関係をそのまま踏襲すると、次の第（ｎ＋１）フェーズ時間の間は、他機情報の受信待ちの時間となるため、自機情報および他機情報を用いたゲーム進行制御は更にその次の第（ｎ＋２）フェーズ時間となる。フェーズ時間は、そもそも従来の制御サイクルよりも長いので、せっかくデータ通信の機会を減らして通信遅延の影響を受け難くしたのに、トータルで見ると遅延時間が減らないばかりか、逆に遅延時間が長くなる。
【００５７】
そこで本実施形態では、単位進行時間毎にゲームを進行制御するその単位進行時間分のゲーム進行制御の開始タイミングを、フェーズ時間の切り替えタイミングから変更可能とすることでこの問題を解決する。
【００５８】
すなわち、第ｎフェーズ時間の計時が完了したタイミング（切り替えタイミング）にて自機情報を送信する。そして、当該タイミングを基点として、所与の待機許容タイミングが経過するまでに、最新の第ｎフェーズ時間に対応する他機におけるフェーズ時間（他機フェーズ時間）に係る操作入力情報（他機情報）が受信された場合には、当該他機情報を受信し次第、第ｎフェーズ時間に対応する単位進行時間分のゲーム進行制御を開始する。これにより、他機情報を受信しているにもかかわらずゲーム進行制御が開始されるまでの待機時間が無駄に生じるのを回避する。
【００５９】
なお、切り替えタイミングから待機許容タイミングまでの時間の長さは、プレーヤが違和感を覚え始める時間をもとに、遅延として許容できる長さに設定すると好適である。具体的には、制御サイクル時間の２倍以上の時間であり、且つ、フェーズ時間より短い時間とする。本実施形態では５０ｍｓとするが、例えば３０〜１００ｍｓの範囲で定めることができる。なお、切り替えタイミングから待機許容タイミングまでの時間の長さを、対戦ゲーム開始前等に対戦相手の端末との通信遅延を測定した結果に基づいてその都度定めてもよい。
また、ゲーム進行制御の単位進行時間については、本実施形態では自機フェーズ時間と同じとする。
【００６０】
図４は、本実施形態における操作入力情報の通信制御とゲーム進行制御との相対的な実行タイミングの関係を示す図であって、自機フェーズ時間の切り替えタイミングから待機許容タイミングを超えてなお他機情報が受信されないケースについて説明するための図である。
【００６１】
本実施形態では、自機フェーズ時間の切り替えタイミングから待機許容タイミングが経過するまでに他機情報が受信されない場合には、自機情報および他機情報を対比してゲーム進行を判定する必要のない先行可能制御を開始する。
【００６２】
ここで言う「先行可能制御」とは、自機情報と他機情報の何れか一方の情報のみでゲームを進行したとしても他方の情報如何に関わらずゲーム進行に不整合や不都合、支障、矛盾が生じない制御である。具体的には、プレーヤキャラクタのゲーム空間内における移動といった位置制御や、アクションの予備動作（例えば、攻撃アクションであれば、攻撃する前段階の構えの動作）や、見得動作（例えば、感情やアクションが発動することを誇張して見せることを目的とした一時停止やスローモーション、動作の“ため（＝時間的な間）”を含む演出的動作）、ゲーム進行状況を演出するための演出表示制御（例えば、背景パターンの変化、マンガの集中線に相当するエフェクト表示、仮想カメラのズームアップ、など）がこれに該当する。
【００６３】
そして、自機のプレーヤキャラクタについての先行可能制御は、直近の自機情報に基づいて選択・実行される。例えば、直近の自機情報が必殺技の入力コマンドに該当するならならば、その予備動作が選択されて実行される。
他機のプレーヤキャラクタについての先行可能制御は、（直近の自機情報の自機フェーズ時間に対応する他機フェーズ時間の他機情報は未受信なので、）過去の他機情報に基づいて選択・実行される。例えば、過去の他機情報が継続的な移動制御の操作であれば、未受信の他機情報においてもそれが継続されるものと予測して先行可能制御が選択されて実行される。
【００６４】
但し、他機に係るプレーヤキャラクタの先行可能制御を開始して後、未受信であった他機情報が受信され、その内容が先の予測と異なる場合には、受信した他機情報と当該先行可能制御との整合をとる修正制御を行う。例えば、予測した結果が「前進移動」の入力コマンドであるが、未受信であった他機情報が受信されて見ると「上段パンチ」の入力コマンドであった場合、前進移動を通常よりも早回しで逆転動作させて、あたかも間合いを取り直したかのように見せ、通常よりも早回しで上段パンチ動作を実行するように動作制御する。すなわち、ゲーム状態を「前進移動」に基づくゲーム進行を行う前のゲーム状態に巻き戻してから、「上段パンチ」に基づくゲーム進行を実行するように動作制御する。「前進移動」に基づくゲーム進行は本来であれば「上段パンチ」に基づくゲーム進行であったところ、これらのゲーム進行を時間軸方向に連続して実行することとなると、同じ時間に行ったはずの出来事を時間軸方向に直列的に実行することとなってしまい、他のプレーヤとの時間の整合性が取れなくなってしまう。このような問題を解決するために、巻き戻しを行う際には、他プレーヤの入力情報を受信した後のゲーム進行を通常よりも早回しで動作させ、他プレーヤとの時間の整合性を取るように動作制御する。
【００６５】
もし、自機又は他機について実行されている先行可能制御が終了するまでに他機情報が受信されない場合には、当該先行可能制御を終了した後、ゲーム進行を一時停止させる。他方、先行可能制御が終了するまでに他機情報が受信された場合には（図４がこの場合である）、先行可能制御を行った時間を含めて、すなわち、待機許容タイミングから単位進行時間が開始されていたとして、ゲーム進行制御を行う。よって、この場合には、やや早送り的なゲーム進行となる。
【００６６】
図５は、本実施形態における操作入力情報の通信制御とゲーム進行制御との相対的な実行タイミングの関係を示す図であって、一時停止の後、更に待機限界タイミングが経過するまでについて説明するための図である。
【００６７】
待機時間には、所定の待機限界タイミングが設定されている。フェーズ時間の切り替えタイミングから待機限界タイミングまでの時間は、フェーズ時間の２倍以上の時間とする。本実施形態では、１０００ｍｓとする。
【００６８】
先行可能制御が終了するまでに他機情報が受信できない場合には一時停止となり、その一時停止の後、この待機限界タイミングが経過するまでに他機情報が受信された場合には、自機情報および受信された他機情報を用いてゲーム進行を再開する。図５がこの場合である。
【００６９】
しかし、一時停止の後、待機限界タイミングが経過するまでに他機情報が受信されない場合、例えばパケットロス等でそもそも当該フェーズの入力情報が届かなかった場合は、次のフェーズ時間経過時に送信される自機情報に過去Ｍフェーズ分の情報が含まれているため、その情報をもとにゲーム進行を行う。
【００７０】
［機能構成の説明］
図６は、本実施形態におけるスマートフォン１５００の機能構成の一例を示す機能ブロック図である。本実施形態のスマートフォン１５００は、操作入力部１００と、処理部２００と、音出力部３９０と、画像表示部３９２と、通信部３９４と、記憶部５００とを備える。
【００７１】
操作入力部１００は、プレーヤによって為された各種の操作入力に応じて操作入力信号を処理部２００に出力する。例えば、プッシュスイッチや、ジョイスティック、タッチパッド、トラックボール、加速度センサ、ジャイロ、ＣＣＤモジュール、などによって実現できる。図２の方向入力キー１５０２や、ボタンスイッチ１５０４、タッチパネル１５０６、イメージセンサユニット１５２０がこれに該当する。
【００７２】
処理部２００は、例えばＣＰＵやＧＰＵ等のマイクロプロセッサや、ＡＳＩＣ、ＩＣメモリなどの電子部品によって実現され、操作入力部１００や記憶部５００を含む各機能部との間でデータの入出力制御を行う。そして、所定のプログラムやデータ、操作入力部１００からの操作入力信号、マッチングされた他機のスマートフォン１５００から受信した各種データに基づいて各種の演算処理を実行して、スマートフォン１５００の動作を制御する。図２の制御基板１５５０がこれに該当する。そして、本実施形態における処理部２００は、ゲーム演算部２１０と、計時部２８０と、音生成部２９０と、画像生成部２９２と、通信制御部２９４と、を備える。
【００７３】
ゲーム演算部２１０は、通信型マルチプレイゲームの実行に係る各種演算処理を行う。
具体的には、ゲーム演算部２１０は、フェーズ時間計時部２１２と、送信制御部２１４と、受信制御部２１６と、進行制御部２１８と、を備える。勿論、これら以外の機能部も適宜含めることができる。
【００７４】
フェーズ時間計時部２１２は、自機におけるフェーズ時間（自機フェーズ時間）の計時を行う。
【００７５】
送信制御部２１４は、計時中の自機フェーズ時間の間に自機にて操作入力部１００より入力された操作入力情報を自機情報として、計時中の自機フェーズ時間の計時完了とともにマッチングされた他機へ送信する制御を行う。
【００７６】
受信制御部２１６は、他機情報（他機が自機に向けて送信する他機にとっての自機情報。他機が計時するフェーズ時間（他機フェーズ時間）の計時完了毎に送信されてくる。）を受信する制御を行う。
【００７７】
進行制御部２１８は、直近に計時完了した自機フェーズ時間に係る自機情報、および当該自機フェーズ時間に対応する他機フェーズ時間に係る他機情報に基づいて、所与の単位進行時間を計時しつつ、それが完了するまでの間、通信型マルチプレイゲームを進行制御する処理を繰り返す。
【００７８】
進行制御に係り繰り返される処理内容はゲーム内容によって変化する。例えば、仮想３次元空間にゲーム空間を形成し、プレーヤキャラクタ等のキャラクタオブジェクトの移動や動作を操作入力情報に基づいて制御する処理、ゲーム空間の様子を仮想カメラで撮影してゲーム画像を生成する処理、ＮＰＣ（ノンプレーヤキャラクタ）の自動制御処理、などが含まれる。格闘ゲームやシューティングゲームでは、ヒット判定処理や、ダメージ判定処理、などもこれに含まれる。
【００７９】
そして、進行制御部２１８は、フェーズ時間の切り替えタイミングから所与の待機許容タイミングが経過するまで（フェーズ時間の計時完了からの経過時間が所定の待機許容値に達するまで）については、以下の１）２）を行う。
１）最新の自機フェーズ時間に対応する他機フェーズ時間に係る他機情報が受信された場合には、当該他機情報の受信次第、単位進行時間分の進行制御を開始する。
２）最新の自機フェーズ時間に対応する他機フェーズ時間に係る他機情報が受信されない場合には、自機情報および他機情報を対比してゲーム進行を判定する必要のない先行可能制御を開始する。そして、他機に係るキャラクタの先行可能制御を開始して後に、他機情報が受信されたならば、当該受信された他機情報と当該先行可能制御との整合をとる修正制御を行う。
【００８０】
更に、待機許容タイミングが経過した以降については、以下の３）４）を行う。
３）先行可能制御が終了するまでに他機情報が受信されない場合には、先行可能制御を終了した後、ゲーム進行を一時停止する。
４）一時停止の後、所与の待機限界タイミングが経過するまでに（フェーズ時間の計時完了からの経過時間が所定の待機限界値に達するまでに）他機情報が受信された場合には、自機情報および当該他機情報を用いてゲーム進行を再開する。しかし、待機限界タイミングが経過するまでに他機情報が受信されない場合には、他機情報が受信されたタイミングで、最新の自機情報および受信した最新の他機情報に含まれる、過去のフェーズ時間分の操作入力情報に基づいてゲーム進行をまとめて実行する。
【００８１】
音生成部２９０は、例えばデジタルシグナルプロセッサ（ＤＳＰ）や、音声合成ＩＣなどのプロセッサ、音声ファイル再生可能なオーディオコーデック等によって実現され、進行制御部２１８による処理結果に基づいてゲームに係る効果音やＢＧＭ、各種操作音の音信号を生成し、音出力部３９０に出力する。
【００８２】
音出力部３９０は、音生成部２９０から入力される音信号に基づいて効果音やＢＧＭ等を音出力する装置によって実現される。図２のスピーカ１５１０がこれに該当する。
【００８３】
画像生成部２９２は、例えば、ＧＰＵ、デジタルシグナルプロセッサ（ＤＳＰ）などのプロセッサ、ビデオ信号ＩＣ、ビデオコーデックなどのプログラム、フレームバッファ等の描画フレーム用ＩＣメモリ等によって実現される。
【００８４】
そして、画像生成部２９２は、１リフレッシュレート（フレーム描画サイクル；例えば１／６０秒）で１枚のゲーム画面の画像を生成し、生成したゲーム画面の画像信号を画像表示部３９２に出力する。
【００８５】
画像表示部３９２は、画像生成部２９２から入力される画像信号に基づいて各種ゲーム画像を表示する。例えば、フラットパネルディスプレイ、ブラウン管（ＣＲＴ）、プロジェクター、ヘッドマウントディスプレイといった画像表示装置によって実現できる。本実施形態では、図２のタッチパネル１５０６がこれに該当する。
【００８６】
通信制御部２９４は、データ通信に係るデータ処理を実行し、通信部３９４を介して外部装置とのデータのやりとりを実現する。通信部３９４は、通信回線と接続して通信を実現する。図２の無線通信モジュール１５５３がこれに該当する。
【００８７】
記憶部５００は、処理部２００にスマートフォン１５００を統合的に制御させるための諸機能を実現するためのプログラムや、各種データ等を記憶する。また、処理部２００の作業領域として用いられ、処理部２００が各種プログラムに従って実行した演算結果や操作入力部１００から入力される入力データ等を一時的に記憶する。こうした機能は、例えばＲＡＭやＲＯＭなどのＩＣメモリ、ハードディスク等の磁気ディスク、ＣＤ−ＲＯＭやＤＶＤなどの光学ディスクなどによって実現される。図２の制御基板１５５０が搭載するＩＣメモリ１５５２やメモリカード１５４０がこれに該当する。
【００８８】
図７は、記憶部５００が記憶するプログラムやデータの例を示す図である。
本実施形態の記憶部５００は、ゲームプログラム５０４と、自機のユーザを示すユーザアカウント５０８と、ゲーム初期設定データ５１０と、マッチングデータ５４０と、フェーズ番号カウンタ５４２と、フェーズ時間計時タイマ５４４と、
フェーズ時間別操作入力バッファ５４６と、自機情報５４８と、遅延時間計時カウンタ５５０と、受信済他機情報５５２と、予測他機情報５５４と、ゲーム進行制御データ７００と、現在日時８００と、を記憶する。勿論、これら以外のプログラムやデータも適宜記憶することができる。
【００８９】
ゲームプログラム５０４は、処理部２００が読み出して実行することによってゲーム演算部２１０としての機能を実現させるためのアプリケーションソフトウェアである。
【００９０】
ゲーム初期設定データ５１０は、通信型マルチプレイゲームの実行に必要な各種初期設定データを格納する。ゲーム初期設定データ５１０には、プレーヤキャラクタとすることのできるキャラクタ毎にキャラクタ初期設定データ５２０を含んでいる。
【００９１】
１つのキャラクタ初期設定データ５２０は、例えば図８に示すように、適用キャラクタ種類５２１と、当該キャラクタに用意された各種アクションを定義する複数のアクション定義データ５３０と、を含む。勿論、これら以外のデータも適宜含めることができる。
【００９２】
１つのアクション定義データ５３０は、固有のアクションＩＤ５３１と、当該アクションを実行させるための操作コマンド５３２と、先行可能モーションデータ５３４と、主動作モーションデータ５３５と、を含む。勿論、これら以外のデータも適宜含めることができる。
【００９３】
先行可能モーションデータ５３４は、当該アクションにおける先行可能制御を定義する。例えば、技を繰り出す前の決めポーズや力を蓄えているかのような間をもたらすモーションデータなどである。この先行可能モーションデータ５３４は、先行可能制御として使用することができる。なお、アクションの内容によっては、当該モーションデータの設定が無い場合もあり得る。
【００９４】
主動作モーションデータ５３５は、当該アクションにおける主たる動作を定義する。
【００９５】
図７に戻って、フェーズ番号カウンタ５４２は、フェーズ時間に付与される識別情報（フェーズ期間の識別情報）としての連番をカウントする。
【００９６】
フェーズ時間計時タイマ５４４は、フェーズ時間を計時するのに使用される。
【００９７】
フェーズ時間別操作入力バッファ５４６は、フェーズ時間の計時開始から計時完了までに操作入力部１００から入力された操作入力情報を時系列に格納する。本実施形態では、最新のフェーズと過去７フェーズ分まで、合計８フェーズ分の操作入力バッファの内容を格納する。
【００９８】
自機情報５４８は、フェーズ時間完了毎に作成される他機へ送信するデータをまとめたコンテナデータである。本実施形態では、送信元を示す情報（例えば、ユーザアカウント）等を含むヘッダーと、フェーズ番号と、直近フェーズと過去７フェーズの過去８フェーズ分の時系列操作入力情報をマージした操作入力マージデータと、含む。勿論、これら以外のデータも適宜含めることができる。
【００９９】
なお、マージ対象は、フェーズ毎としてもよいし、複数フェーズをまとめてもよい。マージの方法は適宜設定可能である。例えば、マージ対象とされるフェーズにおける時系列の操作入力情報から、それらのフェーズ期間中に入力されたと見なす操作コマンドを決定し、当該操作コマンドを表す情報としてもよい。
【０１００】
遅延時間計時カウンタ５５０は、フェーズ時間の計時完了から（フェーズ時間の切り替えタイミングから）マッチングされた全ての他機からの他機情報が揃うまでの時間を計時する。
【０１０１】
受信済他機情報５５２は、マッチングされた他機から受信した他機情報である。
【０１０２】
予測他機情報５５４は、他機別に用意され、当該他機の受信済他機情報５５２から次に受信するであろう当該他機からの他機情報の予測結果である。本実施形態では、待機許容タイミング以降、他機情報が未受信の他機について作成され、当該他機の他機情報が受信され、修正制御が実行されると削除される。
【０１０３】
ゲーム進行制御データ７００は、ゲーム進行状況を記述する各種データを格納する。
【０１０４】
［動作の説明］
図９は、スマートフォン１５００における処理の流れについて説明するためのフローチャートである。ここで説明する処理の流れは、処理部２００がゲームプログラム５０４を実行することにより実行される。なお、マッチングは既に行われているものとする。
【０１０５】
先ず、スマートフォン１５００は、１）マッチングされた他機との通信を確立し、２）初回フェーズ時間の計時開始タイミングの同期を行い、３）フェーズ番号を「０」に初期化し、４）他機情報の受信及び記録を開始する（ステップＳ１０）。
【０１０６】
次いで、フェーズ時間計時タイマ５４４によるフェーズ時間の繰り返し計時を開始し、それと共に自機の操作入力のバッファを開始する（ステップＳ１２）。
【０１０７】
次に、スマートフォン１５００は、フェーズ時間の計時が完了すると、換言するとフェーズ時間の切り替えタイミングが到来すると（ステップＳ２０４）、遅延時間の計時を開始する（ステップＳ２２）。
【０１０８】
そして、計時完了した今回フェーズのフェーズ時間別操作入力バッファ５４６及びこれを含めて過去８フェーズ分のフェーズ時間別操作入力バッファ５４６を参照して、今回のフェーズに対応する自機情報５４８を作成する（ステップＳ２４）。
【０１０９】
そして、スマートフォン１５００は、作成した自機情報５４８をマッチングされている他機全てへ向けて送信し（ステップＳ２６）、フェーズ番号カウンタ５４２を「１」アップする（ステップＳ２８）。
【０１１０】
次に、スマートフォン１５００は、マッチングされている全ての他機から、今回フェーズに対応する他機情報を受信済みであるかを判定する（ステップＳ４０）。今回フェーズとは、ステップＳ２８でカウントアップする直前のフェーズ番号のフェーズ、すなわちステップＳ２０で計時を完了したフェーズのことである。
【０１１１】
具体的には、受信済他機情報５５２を参照する（図７参照）。受信済他機情報５５２は、自機情報５４８と同じデータ構成をしているので、受信済他機情報５５２の中から、当該情報に含まれている直近フェーズ番号が今回のフェーズ番号カウンタ５４２の値と同じ他機情報を検索する。そして、マッチングデータ５４０が示す全てのマッチング相手の他機からの他機情報が全て揃っていれば肯定判定する。
【０１１２】
ここで否定の場合（ステップＳ４０のＮＯ）、スマートフォン１５００は、待機許容タイミングを超過しているか判定する（ステップＳ４２）。
【０１１３】
もし、その時の遅延時間計時カウンタ５５０の値から、今回フェーズ時間の計時完了からの経過時間が所定の待機許容値を超過していなければ、待機許容タイミングを超過していないと否定判定し（ステップＳ４２のＮＯ）、更なる他機情報の受信を待つ。つまり、ゲーム進行制御は待機状態にある。
【０１１４】
対して今回フェーズ時間の計時完了からの経過時間が所定の待機許容値に超過していれば、待機許容タイミングを超過していると肯定判定し（ステップＳ４２のＹＥＳ）、スマートフォン１５００は更に待機限界タイミングに達しているかを判定する（ステップＳ４４）。
【０１１５】
今回フェーズ時間の計時完了からの経過時間が所定の待機限界値に達していなければ（ステップＳ４４のＮＯ）、スマートフォン１５００は先行可能制御処理を実行する（ステップＳ４６）。
【０１１６】
図１０は、先行可能制御処理の流れを説明するためのフローチャートである。
同処理において、スマートフォン１５００は、自機プレーヤのプレーヤキャラクタについて、現在実行途中にある制御がある場合は（ステップＳ７０のＹＥＳ）、これを終了まで継続する（ステップＳ７２）。
【０１１７】
もし実行途中にある制御が無ければ（ステップＳ７０のＮＯ）、スマートフォン１５００は、今回フェーズの自機の操作入力に対応する先行可能制御の有無を判定する（ステップＳ７４）。具体的には、今回フェーズ時間のフェーズ時間別操作入力バッファ５４６に基づいて操作コマンドを判定し、当該操作コマンドに対応するアクションに先行可能モーションデータ５３４（図８参照）が設定されているならば肯定判定する。
【０１１８】
そして、先行可能制御の設定があれば（ステップＳ７４のＹＥＳ）、スマートフォン１５００は、自機のプレーヤのプレーヤキャラクタに該当する先行可能制御を実行する（ステップＳ７６）。本実施形態では、先行可能モーションデータ５３４を実行することになる。
【０１１９】
もし、自機プレーヤのプレーヤキャラクタに係り現在実行途中にある制御も無く、且つ、該当する先行可能制御も無ければ（ステップＳ７４のＮＯ）、何もしない。自機プレーヤのプレーヤキャラクタに係るゲーム進行は一時停止した状態となる。
【０１２０】
次に、スマートフォン１５００は、他機プレーヤのプレーヤキャラクタ毎にループＡを実行する（ステップＳ９０〜ステップＳ１０２）。
【０１２１】
ループＡでは、先ず処理対象とするプレーヤキャラクタについて、現在実行途中にある制御がある場合は（ステップＳ９２のＹＥＳ）、これを終了まで継続する（ステップＳ９４）。
【０１２２】
もし、現在実行途中にある制御がなければ（ステップＳ９２のＮＯ）、処理対象とするプレーヤキャラクタに対応づけられる受信済他機情報５５２から、この時点では未受信となっている今回フェーズに対応する他機情報の内容、つまり他機における今回のフェーズにおける操作入力の結果を予測する（ステップＳ９６）。例えば、その前フェーズの他機情報が、他機ユーザのプレーヤキャラクタの移動操作コマンドを示していれば、当該移動が継続されているものと予測する。その他、予測方法はゲーム内容に応じて適宜行うことができる。予測結果は、予測他機情報５５４（図７参照）として一時記憶される。
【０１２３】
そして、予測した結果に対応する先行可能制御があれば（ステップＳ９８のＹＥＳ）、スマートフォン１５００は、当該先行可能制御を処理対象プレーヤのプレーヤキャラクタについて実行開始して（ステップＳ１００）、ループＡを終了する（ステップＳ１０２）。
【０１２４】
マッチングされている全ての他機プレーヤのプレーヤキャラクタについてループＡを実行したならば、先行可能制御処理を終了する。
【０１２５】
図９に戻って、もしマッチングされている全ての他機情報から今回フェーズに対応する他機情報が受信されないままに、待機限界タイミングに達したならば（ステップＳ４４のＹＥＳ）、受信されないままの他機情報については、次のフェーズ時間に対応する他機情報に、今回フェーズで受信するはずだった操作入力の情報が含まれているため、その情報をもとに次のゲーム進行制御においてまとめて進行制御するべく、ここではゲーム進行制御をスキップする。なお、スキップされたことを示す情報は適宜管理する。例えば、スキップフェーズリストを用意しておいて今回フェーズ番号を登録するなどでよい。
【０１２６】
マッチングされている全ての他機情報から今回フェーズに対応する他機情報が用意されたならば、スマートフォン１５００は、それらを反映したゲーム進行制御を所定の単位進行時間分だけ実行する（ステップＳ１２２）。この際、他機プレーヤのプレーヤキャラクタについては、予測他機情報５５４と今回フェーズに対応する受信済他機情報５５２とを比較して、予測した操作入力と実際の操作入力とが異なる場合に、これの整合をとるための修正制御を行い、その後、予測他機情報５５４を削除する。また、前回フェーズにおいてゲーム進行制御がスキップされている場合は、今回フェーズで受信した他機情報のうち、１つ前のフェーズに係る操作入力情報の分のゲーム進行制御から行うこととする。
【０１２７】
そして、スマートフォン１５００は、ステップＳ２０〜Ｓ１２２をゲーム終了まで繰り返す（ステップＳ１２４）。
【０１２８】
以上、本実施形態によれば、通信遅延が発生し易い環境下でも、遅延をなるべく感じさせずに快適なゲームプレイを提供することができるようになる。
【０１２９】
〔変形例〕
以上、本発明を適用した一実施形態について説明したが、本発明を適用可能な形態は上記形態に限定されるものではなく適宜構成要素の追加・省略・変更を施すことができる。
【０１３０】
［その１］
上記実施形態では、フェーズ時間を所定の長さとして説明したが可変とする構成も可能である。具体的には、図１１に示すように、待機許容タイミング以降、マッチングした全ての他機から他機情報を受信し終える（又は受信し終えたと見なす）までに要した超過時間（ハッチングされた部分）の長さの情報を自機情報に含めて他機に提供し、自機における超過時間と、受信した他機情報に含まれている超過時間とのうち、より長い方の超過時間だけ次の自機フェーズ時間（図１１のＣ３）の開始を遅らせるとしてもよい。この場合、フェーズ時間の切り替えタイミング（図１１のＣ２とＣ２の境界）を一時的に遅らせることとなる。
【符号の説明】
【０１３１】
４…無線基地局
５…インターネット接続サーバ
６…末端ネットワーク
９…インターネット
２００…処理部
２１０…ゲーム演算部
２１２…フェーズ時間計時部
２１４…送信制御部
２１６…受信制御部
２１８…進行制御部
２８０…計時部
５００…記憶部
５０４…ゲームプログラム
５１０…ゲーム初期設定データ
５２０…キャラクタ初期設定データ
５３４…先行可能モーションデータ
５４０…マッチングデータ
５４４…フェーズ時間計時タイマ
５４６…フェーズ時間別操作入力バッファ
５４８…自機情報
５５０…遅延時間計時カウンタ
５５２…受信済他機情報
５５４…予測他機情報
７００…ゲーム進行制御データ
８００…現在日時
１０００…ゲームシステム
１２００…マッチングサーバ
１５００…スマートフォン
【図１】
2018166966.tif 000003
【図２】
2018166966.tif 000004
【図３】
2018166966.tif 000005
【図４】
2018166966.tif 000006
【図５】
2018166966.tif 000007
【図６】
2018166966.tif 000008
【図７】
2018166966.tif 000009
【図８】
2018166966.tif 000010
【図９】
2018166966.tif 000011
【図１０】
2018166966.tif 000012
【図１１】
2018166966.tif 000013