(57)【特許請求の範囲】
【請求項１】
直接又はサーバを介して互いにデータ通信する複数のプレイヤ端末各々のコンピュータを、
複数の操作対象オブジェクト各々に対応した状態値を記憶する記憶部、
プレイヤ入力を受付ける受付部、
あるタイミングに対応して複数の前記プレイヤ端末各々が受付けたプレイヤ入力の内容を示すタイミング毎情報からその後のタイミングに対応した前記タイミング毎情報の推定結果を生成する推定モデルと、第１のタイミングに対応した前記タイミング毎情報とに基づき、前記第１のタイミングより後の第２のタイミングに対応した前記推定結果を生成する推定部、
前記第２のタイミングに対応して前記受付部が受付けたプレイヤ入力の内容と、前記推定結果で示される前記第２のタイミングに対応したプレイヤ入力の推定内容とが一致するか判断する判断部、
前記判断部の判断結果が不一致である場合、前記受付部が受付けたプレイヤ入力の内容を示す訂正情報を外部装置に送信する訂正情報送信部、
他の前記プレイヤ端末が送信した前記訂正情報を取得する訂正情報取得部、
前記訂正情報に基づき前記推定結果を補正する補正部、及び、
前記推定結果に基づき前記操作対象オブジェクトの前記状態値を更新する更新部、
として機能させるプログラム。
【請求項２】
請求項１に記載のプログラムにおいて、
前記更新部は、前記補正部により前記推定結果が補正された場合、補正後の前記推定結果又は前記訂正情報に基づき前記操作対象オブジェクトの前記状態値を更新するプログラム。
【請求項３】
請求項１又は２に記載のプログラムにおいて、
前記推定部は、
前記補正部により前記推定結果が補正された場合、補正後の前記推定結果と前記推定モデルとに基づき新たな前記推定結果を生成し、
前記補正部により前記推定結果が補正されなかった場合、補正されなかった前記推定結果と前記推定モデルとに基づき新たな前記推定結果を生成するプログラム。
【請求項４】
請求項１から３のいずれか１項に記載のプログラムにおいて、
前記タイミング毎情報は、
行及び列がゲーム空間のワールド座標系におけるｘ軸及びｙ軸に対応し、第ｑ行目かつ第ｒ列目の成分の値で前記ワールド座標系における座標（ｘｑ，ｙｒ）の状態を示す行列データで、前記ゲーム空間における前記操作対象オブジェクト各々の位置及び前記操作対象オブジェクト各々に対応してなされたプレイヤ入力の内容を示すプログラム。
【請求項５】
請求項４に記載のプログラムにおいて、
前記行列データは、前記操作対象オブジェクト各々に対応してなされたプレイヤ入力の内容として、前記プレイヤ端末のタッチパネルで検出されたスクリーン座標上のデータポイント群を示すプログラム。
【請求項６】
請求項４に記載のプログラムにおいて、
前記行列データは、前記操作対象オブジェクト各々に対応してなされたプレイヤ入力の内容として、前記プレイヤ端末のタッチパネルで検出されたスクリーン座標上のデータポイント群から算出されるベクトルをエンコードした情報を示すプログラム。
【請求項７】
請求項４から６のいずれか１項に記載のプログラムにおいて、
前記行列データは、前記操作対象オブジェクト各々に対応してなされたプレイヤ入力の内容を示す情報を、前記操作対象オブジェクト各々の位置に対応付けてマッピングした前記ワールド座標系の状態を示すプログラム。
【請求項８】
請求項４から７のいずれか１項に記載のプログラムにおいて、
前記推定モデルは、
前記行列データを時間軸に沿って格納したテンソルデータから取り出された第Ｎのタイミングに対応した前記行列データと、第Ｎのタイミングの後のタイミングに対応した前記行列データとを対応付けた学習データに基づく機械学習で生成されるプログラム。
【請求項９】
請求項８に記載のプログラムにおいて、
前記推定モデルは、
前記行列データを時間軸に沿って格納したテンソルデータから取り出された第Ｎのタイミングに対応した前記行列データと、第（Ｎ＋１）のタイミングに対応した前記行列データ乃至第（Ｎ＋Ｋ）のタイミング（Ｋは２以上の整数）に対応した前記行列データ各々とを対応付けた学習データに基づく機械学習で生成されているプログラム。
【請求項１０】
請求項１から９のいずれか１項に記載のプログラムにおいて、
前記タイミング毎情報は、プレイヤ入力の内容に加えて、ゲーム空間における前記操作対象オブジェクトの位置、前記ゲーム空間における非操作対象オブジェクトの位置、前記操作対象オブジェクトの特性、及び、前記非操作対象オブジェクトの特性の中の少なくとも１つをさらに示すプログラム。
【請求項１１】
請求項１から１０のいずれか１項に記載のプログラムにおいて、
複数の前記プレイヤ端末各々で実現された前記推定部は、同一の前記推定モデルに基づき前記推定結果を生成するプログラム。
【請求項１２】
所定時間毎の複数のタイミング各々に対応して複数のプレイヤ端末各々のタッチパネルで検出されたスクリーン座標上のタッチ位置を示すデータポイント群を、操作対象オブジェクト各々の位置に対応付けてマッピングしたワールド座標系の状態を示す行列データを前記所定時間毎に生成し、前記行列データを時間軸に沿って格納したテンソルデータを生成するテンソルデータ生成部と、
前記テンソルデータから、第Ｎのタイミングに対応した前記行列データと、第Ｎのタイミングの後のタイミングに対応した前記行列データとを対応付けた学習データを取り出す学習データ生成部と、
前記学習データに基づく機械学習により、あるタイミングに対応した前記行列データからその後のタイミングに対応した前記行列データの推定結果を生成する推定モデルを生成する推定モデル生成部と、
を有するサーバ。
【請求項１３】
請求項１２に記載のサーバにおいて、
前記学習データ生成部は、前記テンソルデータから、第Ｎのタイミングに対応した前記行列データと、第（Ｎ＋１）のタイミングに対応した前記行列データ乃至第（Ｎ＋Ｋ）のタイミング（Ｋは２以上の整数）に対応した前記行列データ各々とを対応付けた学習データを取り出すサーバ。
【請求項１４】
請求項１２又は１３に記載のサーバにおいて、
前記テンソルデータ生成部は、前記データポイント群に代えて、前記データポイント群から算出されるベクトルをエンコードしたエンコード情報を、前記操作対象オブジェクト各々の位置に対応付けてマッピングしたワールド座標系の状態を示す行列データを前記所定時間毎に生成し、前記行列データを時間軸に沿って格納したテンソルデータを生成するサーバ。
【請求項１５】
直接又はサーバを介して互いにデータ通信する複数のプレイヤ端末各々のコンピュータが、
複数の操作対象オブジェクト各々に対応した状態値を記憶し、
プレイヤ入力を受付け、
あるタイミングに対応して複数の前記プレイヤ端末各々が受付けたプレイヤ入力の内容を示すタイミング毎情報からその後のタイミングに対応した前記タイミング毎情報の推定結果を生成する推定モデルと、第１のタイミングに対応した前記タイミング毎情報とに基づき、前記第１のタイミングより後の第２のタイミングに対応した前記推定結果を生成し、
前記第２のタイミングに対応して受付けたプレイヤ入力の内容と、前記推定結果で示される前記第２のタイミングに対応したプレイヤ入力の推定内容とが一致するか判断し、
判断結果が不一致である場合、受付けたプレイヤ入力の内容を示す訂正情報を外部装置に送信し、
他の前記プレイヤ端末が送信した前記訂正情報を取得し、
前記訂正情報に基づき前記推定結果を補正し、
前記推定結果に基づき前記操作対象オブジェクトの前記状態値を更新する処理方法。
【請求項１６】
複数のプレイヤ端末と、サーバとを有し、
前記プレイヤ端末は、
複数の操作対象オブジェクト各々に対応した状態値を記憶する記憶部と、
プレイヤ入力を受付ける受付部と、
あるタイミングに対応して複数の前記プレイヤ端末各々が受付けたプレイヤ入力の内容を示すタイミング毎情報からその後のタイミングに対応した前記タイミング毎情報の推定結果を生成する推定モデルと、第１のタイミングに対応した前記タイミング毎情報とに基づき、前記第１のタイミングより後の第２のタイミングに対応した前記推定結果を生成する推定部と、
前記第２のタイミングに対応して前記受付部が受付けたプレイヤ入力の内容と、前記推定結果で示される前記第２のタイミングに対応したプレイヤ入力の推定内容とが一致するか判断する判断部と、
前記判断部の判断結果が不一致である場合、前記受付部が受付けたプレイヤ入力の内容を示す訂正情報を外部装置に送信する訂正情報送信部と、
他の前記プレイヤ端末が送信した前記訂正情報を取得する訂正情報取得部と、
前記訂正情報に基づき前記推定結果を補正する補正部と、
前記推定結果に基づき前記操作対象オブジェクトの前記状態値を更新する更新部と、
を有し、
前記サーバは、前記プレイヤ端末から前記訂正情報を受信すると、受信した前記訂正情報を他の前記プレイヤ端末に送信する送信部を有する処理システム。
【請求項１７】
請求項１６に記載の処理システムにおいて、
前記サーバは、
所定時間毎の複数のタイミング各々に対応して複数のプレイヤ端末各々のタッチパネルで検出されたスクリーン座標上のタッチ位置を示すデータポイント群を、前記操作対象オブジェクト各々の位置に対応付けてマッピングしたワールド座標系の状態を示す行列データを前記所定時間毎に生成し、前記行列データを時間軸に沿って格納したテンソルデータを生成するテンソルデータ生成部と、
前記テンソルデータから、第Ｎのタイミングに対応した前記行列データと、第Ｎのタイミングの直後の第（Ｎ＋１）のタイミングに対応した前記行列データとを対応付けた学習データを取り出す学習データ生成部と、
前記学習データに基づく機械学習により、あるタイミングに対応した前記行列データからその後のタイミングに対応した前記行列データの推定結果を生成する推定モデルを生成する推定モデル生成部と、
をさらに有し、
前記送信部は、同一の前記推定モデルを複数の前記プレイヤ端末に送信する処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバ、処理システム、処理方法及びプログラムに関する。
【背景技術】
【０００２】
通信プロトコルの改善は、プロトコルスタックの中間レイヤの削減による効率化が一般的であった。これらの方式は汎用的に適用可能であり、有効性が高いものの、数十パーセント以上の劇的な速度改善や低遅延化を実現することは難しい。また、Ｗｅｂなどの特定のアプリケーションに特化したＴＣＰ／ＩＰのパラメタ最適化は広く行われているが、エンドツーエンドでの最適化を行うことはできないため、パラメタ最適化に依存したゲーム性の設計を行うことはできなかった。
【０００３】
ところで、ＭＭＯ（Massively Multiplayer Online）やＦＰＳ（First Person Shooter）などのゲームにおいては、デルタ圧縮が広く利用されている。デルタ圧縮は、直前に送信したデータから変化していないときはデータを送信しないというものである。このデルタ圧縮は、ステータス等のように値の変化の少ないデータの送受信に有効である。しかし、このデルタ圧縮は、値が頻繁に変化するために常に差分情報の送受信が必要になるデータ、たとえば、キャラクタの現在位置等を通信する際の圧縮技術としては、有効ではない。[0]このため、ゲームにおいては、キャラクタの位置等のように値の変化が頻繁にあるデータの送受信の効率化が課題であった。
【０００４】
この課題に応える技術として、キャラクタの移動先を指定／予測する方式が挙げられる。これは、次のフレームにおけるキャラクタの移動先（位置情報）を、プレイヤ自身に直接指定させるか、あるいは、線形補完等により予測／補完するというものである。この技術によれば、連続的にプレイヤ入力の内容（移動方向等）を送受信するよりも、通信量を削減できる。例えば、非特許文献１は、低遅延化のために、キャラクタの移動を、移動方向ではなく移動先を指定するようにゲーム性を変更する方法や、移動開始時点で予測座標を算出してサーバに送信しつつ、予測結果が外れた場合は、座標を補正（ワープ）する方式を開示している。これらは、一般的には、Ｌｅｒｐ（linear interpolation）と呼ばれる技術である。
【０００５】
なお、本発明に関連する技術が、特許文献１に開示されている。特許文献１は、タッチパネルで所定時間内に検出されたスクリーン座標上の複数のタッチ位置を示すデータポイント群を記憶し、当該データポイント群から回帰直線の傾き及び当該回帰直線の傾きを回転させる回転量を決定し、当該回帰直線の傾き及び回転量に基づき操作対象オブジェクト（キャラクタ）の制御内容を決定する技術を開示している。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】“[CEDEC 2010]ネットゲームの裏で何が起こっているのか。ネットワークエンジニアから見た，ゲームデザインの大原則”、［online］、２０１０年９月６日、［２０１９年７月４日検索］、インターネット<URL: https://www.4gamer.net/games/105/G010549/20100905002/>
【特許文献】
【０００７】
【特許文献１】特許第６３８９５８１号
【発明の概要】
【発明が解決しようとする課題】
【０００８】
Ｌｅｒｐはアクション性の低いＭＭＯなどでは有効であるものの、精密に位置取りを行うようなアクション性の高いＭＭＯなどではゲーム性に影響を与えてしまう。また、予測結果をワープで補正する方式では、他のプレイヤから見てカクカクした動きになるという問題もある。このように、Ｌｅｒｐの場合、通信遅延の問題を軽減し得るが、ゲーム性に影響を与える可能性がある。
【０００９】
本発明は、ゲーム性への影響を抑制しつつ、通信遅延の問題を軽減する技術を提供することを課題とする。
【課題を解決するための手段】
【００１０】
本発明によれば、
直接又はサーバを介して互いにデータ通信する複数のプレイヤ端末各々のコンピュータを、
複数の操作対象オブジェクト各々に対応した状態値を記憶する記憶部、
プレイヤ入力を受付ける受付部、
あるタイミングに対応して複数の前記プレイヤ端末各々が受付けたプレイヤ入力の内容を示すタイミング毎情報からその後のタイミングに対応した前記タイミング毎情報の推定結果を生成する推定モデルと、第１のタイミングに対応した前記タイミング毎情報とに基づき、前記第１のタイミングより後の第２のタイミングに対応した前記推定結果を生成する推定部、
前記第２のタイミングに対応して前記受付部が受付けたプレイヤ入力の内容と、前記推定結果で示される前記第２のタイミングに対応したプレイヤ入力の推定内容とが一致するか判断する判断部、
前記判断部の判断結果が不一致である場合、前記受付部が受付けたプレイヤ入力の内容を示す訂正情報を外部装置に送信する訂正情報送信部、
他の前記プレイヤ端末が送信した前記訂正情報を取得する訂正情報取得部、
前記訂正情報に基づき前記推定結果を補正する補正部、及び、
前記推定結果に基づき前記操作対象オブジェクトの前記状態値を更新する更新部、
として機能させるプログラムが提供される。
【００１１】
また、本発明によれば、
所定時間毎の複数のタイミング各々に対応して複数のプレイヤ端末各々のタッチパネルで検出されたスクリーン座標上のタッチ位置を示すデータポイント群を、操作対象オブジェクト各々の位置に対応付けてマッピングしたワールド座標系の状態を示す行列データを前記所定時間毎に生成し、前記行列データを時間軸に沿って格納したテンソルデータを生成するテンソルデータ生成部と、
前記テンソルデータから、第Ｎのタイミングに対応した前記行列データと、第Ｎのタイミングの後のタイミングに対応した前記行列データとを対応付けた学習データを取り出す学習データ生成部と、
前記学習データに基づく機械学習により、あるタイミングに対応した前記行列データからその後のタイミングに対応した前記行列データの推定結果を生成する推定モデルを生成する推定モデル生成部と、
を有するサーバが提供される。
【００１２】
また、本発明によれば、
直接又はサーバを介して互いにデータ通信する複数のプレイヤ端末各々のコンピュータが、
複数の操作対象オブジェクト各々に対応した状態値を記憶し、
プレイヤ入力を受付け、
あるタイミングに対応して複数の前記プレイヤ端末各々が受付けたプレイヤ入力の内容を示すタイミング毎情報からその後のタイミングに対応した前記タイミング毎情報の推定結果を生成する推定モデルと、第１のタイミングに対応した前記タイミング毎情報とに基づき、前記第１のタイミングより後の第２のタイミングに対応した前記推定結果を生成し、
前記第２のタイミングに対応して受付けたプレイヤ入力の内容と、前記推定結果で示される前記第２のタイミングに対応したプレイヤ入力の推定内容とが一致するか判断し、
判断結果が不一致である場合、受付けたプレイヤ入力の内容を示す訂正情報を外部装置に送信し、
他の前記プレイヤ端末が送信した前記訂正情報を取得し、
前記訂正情報に基づき前記推定結果を補正し、
前記推定結果に基づき前記操作対象オブジェクトの前記状態値を更新する処理方法が提供される。
【００１３】
また、本発明によれば、
複数のプレイヤ端末と、サーバとを有し、
前記プレイヤ端末は、
複数の操作対象オブジェクト各々に対応した状態値を記憶する記憶部と、
プレイヤ入力を受付ける受付部と、
あるタイミングに対応して複数の前記プレイヤ端末各々が受付けたプレイヤ入力の内容を示すタイミング毎情報からその後のタイミングに対応した前記タイミング毎情報の推定結果を生成する推定モデルと、第１のタイミングに対応した前記タイミング毎情報とに基づき、前記第１のタイミングより後の第２のタイミングに対応した前記推定結果を生成する推定部と、
前記第２のタイミングに対応して前記受付部が受付けたプレイヤ入力の内容と、前記推定結果で示される前記第２のタイミングに対応したプレイヤ入力の推定内容とが一致するか判断する判断部と、
前記判断部の判断結果が不一致である場合、前記受付部が受付けたプレイヤ入力の内容を示す訂正情報を外部装置に送信する訂正情報送信部と、
他の前記プレイヤ端末が送信した前記訂正情報を取得する訂正情報取得部と、
前記訂正情報に基づき前記推定結果を補正する補正部と、
前記推定結果に基づき前記操作対象オブジェクトの前記状態値を更新する更新部と、
を有し、
前記サーバは、前記プレイヤ端末から前記訂正情報を受信すると、受信した前記訂正情報を他の前記プレイヤ端末に送信する送信部を有する処理システムが提供される。
【発明の効果】
【００１４】
本発明によれば、ゲーム性への影響を抑制しつつ、通信遅延の問題を軽減する技術が実現される。
【図面の簡単な説明】
【００１５】
【図１】本実施形態のゲームシステムの機能ブロック図の一例である。
【図２】本実施形態のプレイヤ端末のハードウエア構成の一例を示す図である。
【図３】本実施形態のサーバのハードウエア構成の一例を示す図である。
【図４】本実施形態のサーバの機能ブロック図の一例である。
【図５】本実施形態の処理を説明するための図である。
【図６】本実施形態の処理を説明するための図である。
【図７】本実施形態の処理を説明するための図である。
【図８】本実施形態の処理を説明するための図である。
【図９】本実施形態の処理を説明するための図である。
【図１０】本実施形態の処理を説明するための図である。
【図１１】本実施形態のプレイヤ端末の機能ブロック図の一例である。
【図１２】本実施形態のプレイヤ端末が処理する情報の一例を模式的に示す図である。
【図１３】本実施形態のプレイヤ端末の処理の流れの一例を示すフローチャートである。
【図１４】本実施形態のプレイヤ端末の処理の流れの一例を示すフローチャートである。
【図１５】本実施形態の処理を説明するための図である。
【図１６】本実施形態の処理を説明するための図である。
【発明を実施するための形態】
【００１６】
＜ゲームシステムの概要＞
まず、本実施形態のゲームシステムの概要を説明する。図１に示すように、本実施形態のゲームシステムは、複数のプレイヤ端末１０と、サーバ２０とを有する。プレイヤ端末１０とサーバ２０とは、通信ネットワーク３０を介して互いに繋がっている。プレイヤ端末１０は、各プレイヤが操作する端末であり、例えば、スマートフォン、タブレット端末、携帯電話、パーソナルコンピュータ等が例示されるが、これらに限定されない。複数のプレイヤ端末１０は、直接又はサーバ２０を介して互いにデータ通信することができる。本実施形態のゲームシステムは、例えばＭＭＯに好適である。
【００１７】
本実施形態では、ＭＭＯ等において大量に蓄積されるゲームログに深層学習を適用し、一般的なプレイヤの極めて近い未来（例えば、１フレーム〜十数フレーム先）の入力内容を推定する推定モデルを生成する。そして、複数のプレイヤ端末１０の各々が、同じ推定モデルに基づき複数のプレイヤ各々の未来の入力内容を推定する。当然、複数のプレイヤ端末１０の推定結果は同じ内容となる。
【００１８】
そして、各プレイヤ端末１０は、自端末に対してプレイヤが実際に入力した内容と、推定結果とが異なる場合、自端末に対してプレイヤが実際に入力した内容（推定結果を訂正する情報）を、サーバ２０介して又は直接、他のプレイヤ端末１０に送信する。なお、各プレイヤ端末１０は、自端末に対してプレイヤが実際に入力した内容と、推定結果とが一致する場合、自端末に対してプレイヤが実際に入力した内容を他のプレイヤ端末１０に送信しない。
【００１９】
各プレイヤ端末１０は、他のプレイヤ端末１０が送信した推定結果を訂正する情報を受信した場合、その情報に基づきそのプレイヤ端末１０が制御するキャラクタを制御（移動等）し、推定結果を訂正する情報を受信しなかった場合、推定結果に基づきそのキャラクタを制御する。
【００２０】
このように、本実施形態のゲームシステムでは、複数のプレイヤ端末１０が複数のプレイヤ各々の未来の入力内容を同じ推定モデルに基づき同時に推定する「同期型予測」を行う。そして、その予測結果と異なる内容をプレイヤが各プレイヤ端末１０に入力したときのみ、その内容を他のプレイヤ端末１０に通知する。このような本実施形態のゲームシステムによれば、高効率・低遅延でパケットロスに強いマルチプレイ通信方式が実現される。
【００２１】
＜ハードウエア構成＞
次に、プレイヤ端末１０及びサーバ２０のハードウエア構成を説明する。
【００２２】
「プレイヤ端末１０」
まず、プレイヤ端末１０のハードウエア構成を説明する。図２は、プレイヤ端末１０のハードウエア構成を例示するブロック図である。図２に示すように、プレイヤ端末１０は、プロセッサ１Ａ、メモリ２Ａ、入出力インターフェイス３Ａ、周辺回路４Ａ、バス５Ａ、タッチパネル６Ａ、通信部７Ａなどを有する。周辺回路４Ａには、様々なモジュールが含まれる。なお、周辺回路４Ａを有さなくてもよい。
【００２３】
プレイヤ端末１０が備える機能部は、プロセッサ１Ａ、メモリ２Ａ、入出力Ｉ／Ｆ３Ａ、入出力Ｉ／Ｆ３Ａに接続されたモジュール（タッチパネル６Ａ、通信部７Ａなど）などのハードウエアと、内蔵メモリ（ＲＯＭ、ハードディスクなど）に格納され、ＲＡＭなどにロードされるプログラム（ソフトウエア）との任意の組合せによって実現される。そして、その実現方法、装置にはいろいろな変形例があることは、当業者には理解されるところである。なお、内蔵メモリに格納されるプログラムは、あらかじめ処理装置の出荷段階から格納されているプログラムのほか、インターネット上のサーバなどからダウンロードされたプログラムなども含む。
【００２４】
バス５Ａは、プロセッサ１Ａ、メモリ２Ａ、周辺回路４Ａ及び入出力Ｉ／Ｆ（インターフェイス）３Ａが相互にデータを送受信するためのデータ伝送路である。プロセッサ１Ａは、例えばＣＰＵ（Central Processing Unit）やＧＰＵ（Graphics Processing Unit）やＮＰＵ（Neural network Processing Unit）などの演算処理装置である。メモリ２Ａは、例えばＲＡＭ（Random Access Memory）やＲＯＭ（Read Only Memory）などのメモリである。入出力Ｉ／Ｆ３Ａには、入力装置（タッチパネル６Ａ、マイク、物理ボタン等）や、出力装置（タッチパネル６Ａ、スピーカ等）や、インターネットなどのネットワークに接続するための通信部７Ａなどが接続される。プロセッサ１Ａは、各モジュールに指令を出し、それらの演算結果をもとに演算を行うことができる。
【００２５】
なお、タッチパネル６Ａは、画像を表示するディスプレイと、位置入力センサとにより構成される。タッチパネル６Ａに対してタッチ操作がなされると、位置入力センサはタッチされた位置に基づいた信号（検出結果）を出力する。タッチパネル６Ａから出力された信号は、入出力Ｉ／Ｆ３Ａを介してプロセッサ１Ａに入力される。プロセッサ１Ａは、タッチパネル６Ａから出力された信号を任意の座標系における座標に変換するプログラムを実行し、タッチパネル６Ａから出力された信号を上記座標系における座標に変換する。上記座標系は、例えば、タッチパネル６Ａのタッチされる面上の任意の点を原点とし、当該面と平行な任意の方向にＸ軸及びＹ軸を定めた座標系である。以降、当該座標系における座標を「スクリーン座標」と便宜上記載する。位置入力センサは、静電容量式又は抵抗膜式などが例示される。
【００２６】
ここで、タッチ操作とは、物体（指等）を位置入力センサに接触又は近接させて物体の接触又は近接を位置入力センサに検出させたり、物体を位置入力センサに接触又は近接させた状態を維持したまま物体を位置入力センサに接触又は近接させる位置を変更したり、物体を位置入力センサから離して位置入力センサによる検出を解除したりする操作をいう。
【００２７】
「サーバ２０」
次に、サーバ２０のハードウエア構成を説明する。図３は、サーバ２０のハードウエア構成を例示するブロック図である。図３に示すように、サーバ２０は、プロセッサ１Ａ、メモリ２Ａ、入出力インターフェイス３Ａ、周辺回路４Ａ、バス５Ａなどを有する。周辺回路４Ａには、様々なモジュールが含まれる。なお、周辺回路４Ａを有さなくてもよい。
【００２８】
サーバ２０が備える機能部は、プロセッサ１Ａ、メモリ２Ａ、入出力Ｉ／Ｆ３Ａ、入出力Ｉ／Ｆ３Ａに接続されたモジュールなどのハードウエアと、内蔵メモリ（ＲＯＭ、ハードディスクなど）に格納され、ＲＡＭなどにロードされるプログラム（ソフトウエア）との任意の組合せによって実現される。そして、その実現方法、装置にはいろいろな変形例があることは、当業者には理解されるところである。なお、内蔵メモリに格納されるプログラムは、あらかじめ処理装置の出荷段階から格納されているプログラムのほか、インターネット上のサーバなどからダウンロードされたプログラムなども含む。プロセッサ１Ａ、メモリ２Ａ、入出力インターフェイス３Ａ、周辺回路４Ａ及びバス５Ａの詳細は上述の通りであるので、ここでの説明は省略する。
【００２９】
＜機能構成＞
次に、プレイヤ端末１０及びサーバ２０の機能構成を説明する。ここでは、「プレイヤ入力を推定する推定モデルの生成」、及び、「当該推定モデルを用いたゲームの制御」に分けて、プレイヤ端末１０及びサーバ２０各々の機能構成を説明する。
【００３０】
「プレイヤ入力を推定する推定モデルの生成」
推定モデルの生成は、サーバ２０により実現される。以下、推定モデルの生成処理を詳細に説明する。なお、以下で説明する学習データの生成処理、及び、学習データに基づく推定モデルの生成処理は、例えばゲーム開発時にゲーム開発者の作業により実現される。そして、当該推定モデルは、ゲーム運用中にプレイヤから入力されるデータに基づき更新されてもよい。すなわち、実際にゲームを運用している時にプレイヤから入力されるデータを蓄積し、当該蓄積したデータから学習データを生成し、当該学習データに基づき新たな推定モデルを生成し、更新してもよい。図４に、サーバ２０の機能ブロック図の一例を示す。図示するように、サーバ２０は、記憶部２１と、テンソルデータ生成部２２と、学習データ生成部２３と、推定モデル生成部２４と、送信部２５とを有する。
【００３１】
テンソルデータ生成部２２は、所定時間毎の複数のタイミング各々に対応して行列データ（以下、「タイミング毎行列データ」という場合がある）を生成し、所定時間毎のタイミング毎行列データを時間軸に沿って格納したテンソルデータを生成する。そして、テンソルデータ生成部２２は、生成したテンソルデータを記憶部２１に記憶させる。以下、テンソルデータ生成部２２による当該処理の詳細を説明する。なお、以下では、「所定時間毎」は「フレーム毎」として説明するが、あくまで一例でありこれに限定されない。
【００３２】
前提として、本実施形態では、特許文献１に開示されている技術に基づき、タッチパネル６Ａを介したプレイヤ入力を処理し、操作対象オブジェクト（プレイヤキャラクタ等）を制御する。具体的には、本実施形態のゲームシステムでは、各プレイヤ端末１０のタッチパネル６Ａで検出されるタッチポイントの値（スクリーン座標）は、例えばフレームレートのような一定の時区間ごとに区切られて観測されている。そして、各時区間に観測されたタッチポイントの値の集合は、時区間毎に独立した配列としてバッファに格納されている。
【００３３】
以下では、「１つの時区間」は「１つのフレームの時区間」として説明するが、あくまで一例でありこれに限定されない。ゲームアプリケーションでは、通常、６０ｆｐｓ又は３０ｆｐｓとなる。例えば、３０ｆｐｓの場合、１つのフレームの時区間の長さは約３３ミリ秒となる。例えば、１００Ｈｚでセンシングする静電容量式タッチパネルを用いた場合、１フレーム内（１つの時区間内）で複数のタッチポイントの値が観測されることとなる。本実施形態では、１つのフレームの時区間毎に、その時区間に観測されたタッチポイントの値の集合が観測された順に配列としてバッファに格納されている。タッチポイントの横軸の値の集合ｘと、タッチポイントの縦軸の値の集合ｙは、各々、次の式（１）及び式（２）のように定義できる。
【００３４】
【数１】
0006748281.tif 000002
【００３５】
【数２】
0006748281.tif 000003
【００３６】
ここで、ｘａ，ｂは、第ａのフレームの時区間に観測されたタッチポイントの横軸の値の集合のうち、ｂ番目に観測された値を示す。各フレーム内の値は観測された時間に応じて昇順にソートされており、ｂ番目の値は、（ｂ−１）番目の後、かつ、（ｂ＋１）番目の前に観測された値である。
【００３７】
同様に、ｙａ，ｂは、第ａのフレームの時区間に観測されたタッチポイントの縦軸の値の集合のうち、ｂ番目に観測された値を示す。各フレーム内の値は観測された時間に応じて昇順にソートされており、ｂ番目の値は、（ｂ−１）番目の後、かつ、（ｂ＋１）番目の前に観測された値である。
【００３８】
なお、各フレームの時区間に観測されるタッチポイントの数は必ずしも同じでない。このため、変数mの値は、ａの値毎に異なり得る。それぞれの値の集合は、フレームごとにまとめられており、二次元配列を形成している。
【００３９】
以下、１つのプレイヤ端末１０のタッチパネル６Ａにおいて１つのフレームの時区間に観測されたタッチポイントの値の集合を「データポイント群」と呼ぶ。第１のプレイヤ端末１０のタッチパネル６Ａにおいて第１のフレームの時区間に観測されたデータポイント群と、第２のプレイヤ端末１０のタッチパネル６Ａにおいて第１のフレームの時区間に観測されたデータポイント群とは異なるデータポイント群である。また、第１のプレイヤ端末１０のタッチパネル６Ａにおいて第１のフレームの時区間に観測されたデータポイント群と、第１のプレイヤ端末１０のタッチパネル６Ａにおいて第２のフレームの時区間に観測されたデータポイント群とは異なるデータポイント群である。
【００４０】
記憶部２１は、複数のプレイヤ端末１０各々で観測されたデータポイント群の履歴を記憶している。そして、テンソルデータ生成部２２は、当該履歴のデータを用いた以下の処理１乃至３により、テンソルデータを生成する。
【００４１】
・「（処理１）プレイヤ端末１０毎、かつ、フレーム毎に、各フレームの時区間に各プレイヤ端末１０のタッチパネル６Ａで観測されたデータポイント群、及び、各データポイント群に基づき行動（移動等）を制御される操作対象オブジェクト（プレイヤキャラクタ等）の位置を示すワールドフレーム行列Ｍを生成」
・「（処理２）プレイヤ端末１０毎、かつ、フレーム毎に生成したワールドフレーム行列Ｍを同じフレームのもの同士で合成し、タイミング毎行列データを生成」
・「（処理３）タイミング毎行列データを時間軸に沿って格納し、テンソルデータを生成」
【００４２】
まず、処理１について説明する。本実施形態では、ワールドフレーム行列Ｍにより、各フレームの時区間に各プレイヤ端末１０のタッチパネル６Ａで観測されたデータポイント群、及び、各データポイント群に基づき行動（移動等）を制御される操作対象オブジェクト（プレイヤキャラクタ等）の位置を示す。
【００４３】
「ワールドフレーム行列Ｍ」は、行及び列が３Ｄのゲーム空間のワールド座標系（ｘ軸及びｙ軸が水平方向の軸であり、ｚ軸が垂直方向の軸）におけるｘ軸及びｙ軸に対応し、第ｑ行目かつ第ｒ列目の成分の値でワールド座標系における座標（ｘｑ，ｙｒ）の状態を示す。テンソルデータ生成部２２は、各フレームの時区間に各プレイヤ端末１０のタッチパネル６Ａで観測されたデータポイント群を、３Ｄのゲーム空間を俯瞰する２Ｄマップ上の所定位置にマッピングし、各成分の値でマッピング状態を示すワールドフレーム行列Ｍを生成する。データポイント群をマッピングする所定位置は、そのデータポイント群に基づき行動（移動等）を制御される操作対象オブジェクト（プレイヤキャラクタ等）に対応する位置であり、例えば、操作対象オブジェクトが存在する位置や、その周辺等が例示される。
【００４４】
ワールドフレーム行列Ｍは次の式（３）のように定義できる。
【００４５】
【数３】
0006748281.tif 000004
【００４６】
ここで、ｐｑ、ｒは、ワールド座標系における座標（ｘｑ、ｙｒ）の地点にデータポイント群の要素（点）が存在するか否かを示す。例えば、データポイント群の要素が存在するときはｐｑ、ｒの値をゼロより大きく１以下の数値とし、データポイント群の要素が存在しないときはｐｑ、ｒの値をゼロとしてもよい。なお、単純には、データポイント群の要素が存在するときはｐｑ、ｒの値を１とする実装が考えられるが、その他、そのデータポイント群に基づき行動を制御される操作対象オブジェクトの種類や状態（ヒットポイント、レベル、攻撃力、防御力等）等の特性を反映した値とすることで、それらをさらに示すワールドフレーム行列Ｍとすることができる。例えば、データポイント群の要素が存在する位置に対応するｐｑ、ｒの値を、操作対象オブジェクトのヒットポイントを最大値で正規化した値や、操作対象オブジェクトの強さを指標化した値等としてもよい。
【００４７】
本実施形態では、例えばＧＡＮ（Generative adversarial networks）を想定した推定モデルを生成する学習を行うため、行列のサイズを示すｎとｍの値は、システム内で一意に固定される。これにより、適切に機械学習を行うことができる。
【００４８】
次に、プレイヤ端末１０のタッチパネル６Ａで観測されたデータポイント群を３Ｄのゲーム空間を俯瞰する２Ｄマップ上の操作対象オブジェクトに対応する位置にマッピングする方法を説明する。
【００４９】
図５（Ａ）に示すように、データポイント群は、物理的なタッチパネル６Ａ上の座標（スクリーン座標）として観測されるものである。そこで、まず、テンソルデータ生成部２２は、図５（Ｂ）に示すように、スクリーン座標を、３Ｄのゲーム空間のワールド座標系に写像する。例えば、カメラ位置や向きに基づき、タッチパネル６Ａ上で観測されたデータポイント群を、３Ｄのゲーム空間のワールド座標系に写像する。図５（Ａ）に示すようにカメラが操作対象オブジェクトの背後に位置する状態で観測されたデータポイント群は、図５（Ｂ）に示すように、操作対象オブジェクトの背後に写像される。この写像により、プレイヤ端末１０に固有の値であったスクリーン座標のデータポイント群が、３Ｄのゲーム空間のワールド座標系に写像されることとなる。この座標変換処理ｍａｐは、次の式（４）のように定義できる。
【００５０】
【数４】
0006748281.tif 000005
【００５１】
ここで、ｘ及びｙはスクリーン座標のｘ座標及びｙ標であり、ｘｗ及びｙｗはワールド座標のｘ座標及びｙ座標である。
【００５２】
次に、テンソルデータ生成部２２は、図６及び図７に示すように、３Ｄのゲーム空間のワールド座標系に写像されたデータポイント群を、３Ｄのゲーム空間を俯瞰する２Ｄマップ上の操作対象オブジェクトに対応する位置に写像する。当該写像は、例えば、データポイント群を回転移動及び／又はスライド移動等することで実現される。例えば、カメラの向きや、カメラと操作対象オブジェクトとの距離等に基づき移動内容が決定されてもよい。
【００５３】
なお、この写像においては、タッチパネル６Ａ上で観測されたデータポイント群から算出される操作対象オブジェクトの制御内容と、写像後のデータポイント群から算出される操作対象オブジェクトの制御内容とが同一となるような工夫が必要となる。例えば、タッチパネル６Ａ上で観測されたデータポイント群の状態（形状、向き等）と、２Ｄマップの座標系に写像後のデータポイント群の状態（形状、向き等）とが所定の対応関係（例えば一致）となっている必要がある。このような場合、データポイント群から算出されるベクトルの写像前後での同一性が確保されるため、このデータポイント群に基づく操作対象オブジェクト（プレイヤキャラクタ等）の制御内容の同一性も確保される。
【００５４】
ここで、当該写像の具体例を説明する。例えば、テンソルデータ生成部２２は、３Ｄのゲーム空間のワールド座標系に写像されたデータポイント群を、操作対象オブジェクトのローカル座標系（操作対象オブジェクトの任意の位置を原点として相対的に算出される座標軸）に反映し、ローカル座標系において操作対象オブジェクトに対応する位置（操作対象オブジェクトの真上等）にデータポイント群を写像する。このワールド座標系からローカル座標系への写像処理ｔｒａｎｓｐｏｓｅは、次の式（５）のように定義できる。
【００５５】
【数５】
0006748281.tif 000006
【００５６】
ここで、ｘｗ及びｙｗはワールド座標上の点のｘ座標及びｙ座標であり、ｘｌ及びｙｌはローカル座標上の点のｘ座標及びｙ座標である。写像処理ｔｒａｎｓｐｏｓｅは、例えば、ゲームエンジンであるＵｎｉｔｙ（登録商標）で次のように実装することができる。
【００５７】
Ｓｔｅｐ１： カメラの方向ベクトルを、ワールド座標ｘｚ平面上に射影し、さらに、 長さ１の単位ベクトルに正規化する（normalized関数の適用）
var cameraForward = Vector3.Scale(mainCamera.forward, new Vector3(1, 0, 1)).normalized;
なお、Vector3.Scale(mainCamera.forward, new Vector3(1, 0, 1))はY座標に0をかけておく。
【００５８】
Ｓｔｅｐ２：データポイント群に基づき算出したベクトル（movingTo：右方向がx軸正方向、上方向がz軸正方向）を操作対象オブジェクトのローカル座標のxz平面上へ写像する。データポイント群に基づくベクトルの算出は、特許文献１に開示されている。
var move = transform.InverseTransformDirection(movingTo.z * cameraForward + movingTo.x * new Vector3(cameraForward.z, 0, -1 * cameraForward.x));
なお、new Vector3(cameraForward.z, 0, -1 * cameraForward.x) は cameraForward をxz平面上で-90度回転させ、上方向への指の操作がワールド座標の奥方向への操作に対応するようにする。
【００５９】
上記具体例によれば、データポイント群から算出されるベクトルは、写像前後で同一となるため、データポイント群から算出される角度と速度の値が写像前後で変化する不都合を抑制できる。
【００６０】
次に、処理２について説明する。処理１により、プレイヤ端末１０毎、かつ、フレーム毎に、各フレームの時区間に各プレイヤ端末１０のタッチパネル６Ａで観測されたデータポイント群、及び、各データポイント群に基づき行動を制御される操作対象オブジェクトの位置を示すワールドフレーム行列Ｍが生成される。
【００６１】
処理２では、テンソルデータ生成部２２は、同じｌフレームの時区間において複数のプレイヤ端末１０各々において観測されたデータポイント群、及び、各データポイント群に基づき行動を制御される操作対象オブジェクトの位置を示す複数のワールドフレーム行列Ｍを合成する。結果、そのフレームの時区間において複数のプレイヤ端末１０各々において観測されたデータポイント群のすべて、及び、それらデータポイント群に基づき行動を制御されるすべての操作対象オブジェクの位置を示す１つのワールドフレーム行列Ｍ（タイミング毎行列データ）が生成される。テンソルデータ生成部２２は、複数のフレーム各々に対応して当該処理を行うことで、複数のフレーム各々に対応したタイミング毎行列データを生成する。２つのワールドフレーム行列ＭとＭ´を合成する演算子は次の式（６）のように定義できる。
【００６２】
【数６】
0006748281.tif 000007
【００６３】
ここで、ｍａｘ（ｕ，ｖ）は、ｕ及びｖのうち大きい値を返す関数である。すなわち、式（６）の演算子は、完全に同じサイズの２つの行列が与えられたとき、同じ行及び列に対応する値のうちの大きい方を値とする新たな行列を生成するものである。なお、応用として、行列内の値をビットとしてとらえ、ビットＯＲを算出する方法や、整数値の飽和演算付きの加算として実装する方法が考えられる。
【００６４】
処理３では、テンソルデータ生成部２２は、複数のフレーム各々に対応して生成されたタイミング毎行列データを時間軸に沿って格納し、テンソルデータを生成する。
【００６５】
なお、ゲーム空間全体を１つのタイミング毎行列データで表現してもよいし、ゲーム空間全体を複数の区画に分割し、各区画を１つのタイミング毎行列データで表現してもよい。例えば、図８に示すように、ゲーム空間全体を有限個で正規化されたサイズの区画に分割してもよい。そして、区画ごとにタイミング毎行列データを生成してもよい。図９は、区画ごとに生成したタイミング毎行列データを時間軸に沿って格納したテンソルデータの概念を示す。
【００６６】
図４に戻り、学習データ生成部２３は、テンソルデータ生成部２２が生成したテンソルデータから、第Ｎのフレーム（第Ｎのタイミング）に対応したタイミング毎行列データと、第Ｎのフレームの後のフレームに対応したタイミング毎行列データとを対応付けた学習データを取り出す。例えば、学習データ生成部２３は、テンソルデータから、第Ｎのフレームに対応したタイミング毎行列データと、第（Ｎ＋１）のフレームに対応したタイミング毎行列データ乃至第（Ｎ＋Ｋ）のフレーム（Ｋは２以上の整数）に対応したタイミング毎行列データ各々とを対応付けた学習データを取り出してもよい。学習データ生成部２３は、取り出した学習データを記憶部２１に記憶させる。
【００６７】
推定モデル生成部２４は、学習データ生成部２３が生成した学習データに基づく機械学習（敵対的生成ネットワーク（ＧＡＮ）等）により、あるフレームに対応したタイミング毎行列データからその後のフレームに対応したタイミング毎行列データの推定結果を生成する推定モデルを生成する。そして、推定モデル生成部２４は、生成した推定モデルを記憶部２１に記憶させる。
【００６８】
ここで、図１０を用いて、推定モデル生成部２４が行う機械学習の概念を説明する。図１０（Ａ）及び（Ｂ）は、３Ｄのゲーム空間を俯瞰する２Ｄマップを示す。図１０（Ａ）は第Ｎのフレームの状態を示し、図１０（Ｂ）はその後のフレームの状態を示す。図では３人の操作対象オブジェクトと、各フレームの時区間において各操作対象オブジェクトに対応して３つのプレイヤ端末１０各々で観測されたデータポイント群とが示されている。データポイント群は、上述の手法で各操作対象オブジェクトの位置にマッピングされている。
【００６９】
図１０（Ｃ）及び（Ｄ）は、図１０（Ａ）及び（Ｂ）各々のデータポイント群の状態を上述したタイミング毎行列データで表し、そのタイミング毎行列データの内容を図示したものである。表の１マスが、タイミング毎行列データの１つの成分ｐｑ、ｒに対応し、各マス目の状態により成分ｐｑ、ｒの値を表現している。そして、成分ｐｑ、ｒの値により、データポイント群の要素が位置するか否かを示している。
【００７０】
推定モデル生成部２４は、学習データとして記憶されているタイミング毎行列データを例えば図１０（Ｃ）及び（Ｄ）に示すような形式で図示し、それをビットマップ化し、得られた図面ファイルに基づき機械学習を行うことができる。
【００７１】
このように、本実施形態の学習プロセスは、２つのフレーム間の入力内容の変化（データポイント群の変化）を「パターンの変化（図１０（Ｃ）→図１０（Ｄ））」として表現し、それをニューラルネットワークに学習させる。結果、あるパターン（図１０（Ｃ））が与えられた時に次のパターン（図１０（Ｄ））を自動生成できるようになる。これは、あるフレームの入力内容から、それよりも後のフレームにおける入力内容を予測することを意味する。
【００７２】
本実施形態では、例えばデータポイント群の数を間引きながら機械学習を繰り返してもよい。このようにすれば、極めて少ないタッチデータのみをクライアント間で共有するだけで、高速かつ高精度に未来の状況を予測することができる。
【００７３】
ＧＡＮを用いた学習を行う関数であるｌｅａｒｎ関数は、ある特定の区画ｃに対応する学習データバケットＢｃを受け取り、区画ｃにおける操作予測を行うモデルＧｃを出力する関数であり、次の式（７）のように定義できる。
【００７４】
【数７】
0006748281.tif 000008
【００７５】
本システムが保有するすべてのバケットをＢとすると、ある特定の区画ｃに対応する学習データバケットＢｃは、次の式（８）のように定義できる。
【００７６】
【数８】
0006748281.tif 000009
【００７７】
ここで、Ｍｉは、区画ｃにおけるｉ番目のフレームのタイミング毎行列データである。ｌｅａｒｎ関数は、ＭｅとＭｅ+ｆの組をＧＡＮへの入力とする（ｆは１以上の整数）。
【００７８】
なお、Ｍｅから任意の数だけデータポイント群を間引いたＭｅ´を作成し、Ｍｅ´とＭｅ+ｆの組をＧＡＮへの入力とすることもできる。これにより、より少ない数のデータポイント群から、未来のフレームにおける入力内容を推論できるようになる。
【００７９】
推定モデル生成部２４により生成された推定モデル、すなわちあるフレームに対応するタイミング毎行列データを入力すると、それより後のフレームのタイミング毎行列データを推定する関数であるｐｒｅｄｉｃｔは、次の式（９）のように定義できる。
【００８０】
【数９】
0006748281.tif 000010
【００８１】
ここで、Ｍｃは、区画ｃのあるフレームのタイミング毎行列データであり、ｎは予測する未来のフレーム番号であり、Ｍｃ´は、推定された「あるフレームからｎフレーム先のフレーム」におけるタイミング毎行列データである。
【００８２】
図４に戻り、送信部２５は、記憶部２１に記憶されている推定モデルを複数のプレイヤ端末１０に送信する。例えば、サーバ２０は、複数の操作対象オブジェクト各々の位置を管理しておいてもよい。そして、送信部２５は、各操作対象オブジェクトが存在する区画に対応する推定モデルを、各操作対象オブジェクトを制御するプレイヤ端末１０に送信してもよい。
【００８３】
例えば、送信部２５は、操作対象オブジェクトが第１の区画から第２の区画に移動した事実に応じて、第２の区画に対応した推定モデルを所定のプレイヤ端末１０に送信してもよい。
【００８４】
その他、サーバ２０は、上記推定モデルに基づき数フレーム先の入力内容を予測し、予測結果に基づき、数フレーム先における複数の操作対象オブジェクト各々の位置を予測してもよい。そして、送信部２５は、操作対象オブジェクトが第１の区画から第２の区画に移動するという予測結果に応じて、第２の区画に対応した推定モデルを所定のプレイヤ端末１０に送信してもよい。
【００８５】
「推定モデルを用いたゲームの制御」
図１１に、プレイヤ端末１０の機能ブロック図の一例を示す。図示するように、プレイヤ端末１０は、記憶部１１と、受付部１２と、推定部１３と、判断部１４と、訂正情報送信部１５と、訂正情報取得部１６と、補正部１７と、更新部１８とを有する。
【００８６】
記憶部１１は、サーバ２０が送信した推定モデルを記憶する。また、記憶部１１は、ゲームに関する各種情報を記憶する。例えば、記憶部１１は、図１２に示すように、複数の操作対象オブジェクト各々に対応した状態値を記憶する。複数の操作対象オブジェクトの各々は、複数のプレイヤ端末１０の各々により行動を制御される。状態値は、ゲーム空間における位置や、ヒットポイント等であるが、これらに限定されない。プレイヤ端末１０は、当該状態値に基づき、自端末のディスプレイに表示する画面を生成し、自端末のディスプレイに表示する。すなわち、プレイヤ端末１０は、複数の操作対象オブジェクト各々を状態値で示される位置に配置したゲーム画面を生成し、自端末のディスプレイに表示する。
【００８７】
受付部１２は、プレイヤ入力を受付ける。例えば、受付部１２は、タッチパネル６Ａを介したタッチ入力や、物理ボタン等を介した入力を受付ける。受付部１２は、タッチパネル６Ａで検出されるタッチポイントの値（スクリーン座標）を、例えばフレームレートのような一定の時区間ごとに区切って観測する。そして、受付部１２は、各時区間に観測されたタッチポイントの値の集合（データポイント群）を、時区間毎に独立した配列としてバッファに格納する。
【００８８】
推定部１３は、あるフレーム（あるタイミング）に対応して複数のプレイヤ端末１０各々が受付けたプレイヤ入力の内容を示すタイミング毎情報からその後のフレーム（その後のタイミング）に対応したタイミング毎情報の推定結果を生成する推定モデルと、第１のフレーム（第１のタイミング）に対応したタイミング毎情報とに基づき、第１のフレーム（第１のタイミング）より後の第２のフレーム（第２のタイミング）に対応した推定結果を生成する。
【００８９】
推定部１３が処理する推定モデルは、上述したサーバ２０が生成した推定モデル、すなわちサーバ２０から受信して記憶部１１に記憶されている推定モデルである。
【００９０】
タイミング毎情報は、上述したタイミング毎行列データと同じ形式で、その時に実際にゲームに参加しているプレイヤ端末１０各々があるフレームに対応して受付けたデータポイント群、及び、各データポイント群に基づき行動を制御される操作対象オブジェクトの位置を示す。「あるフレームに対応して受付けたデータポイント群」は、そのフレームにおける操作対象オブジェクトの制御のために受付けたデータポイント群である。
【００９１】
推定部１３は、例えば、１フレームから十数フレーム先の推定結果を生成することができる。
【００９２】
なお、複数のプレイヤ端末１０各々で実現された推定部１３は、同一の推定モデルに基づき同一の推定結果を生成する。
【００９３】
判断部１４は、第２のフレームに対応して受付部１２が受付けたプレイヤ入力の内容（データポイント群）と、推定結果で示される第２のフレームに対応したプレイヤ入力の推定内容（データポイント群）とが一致するか判断する。なお、ここでの一致は、完全一致であってもよいし、予め定義された「多少のずれ」を許可してもよい。例えば、特許文献１（特許第６３８９５８１号公報）に開示された技術を用いてデータポイント群をベクトル化し、±１度を許可するといったことがあげられる。
【００９４】
訂正情報送信部１５は、判断部１４の判断結果が不一致である場合、受付部１２が受付けたプレイヤ入力の内容を示す訂正情報を外部装置に送信する。例えば、訂正情報送信部１５は、サーバ２０に訂正情報を送信してもよい。この場合、サーバ２０は、受信した訂正情報を他のプレイヤ端末１０に送信する。その他、訂正情報送信部１５は、サーバ２０を介さず直接、他のプレイヤ端末１０に訂正情報を送信してもよい。
【００９５】
訂正情報取得部１６は、他のプレイヤ端末１０が送信した訂正情報を取得する。
【００９６】
補正部１７は、訂正情報取得部１６が取得した訂正情報に基づき推定結果を補正する。訂正情報は、少なくとも、正しい入力内容と、その入力に基づき行動を制御される操作対象オブジェクトを特定するための情報を含む。
【００９７】
更新部１８は、推定結果に基づき操作対象オブジェクトの状態値（図１２参照）を更新する。更新部１８は、補正部１７により推定結果が補正された場合、補正後の推定結果又は訂正情報取得部１６が取得した訂正情報に基づき、操作対象オブジェクトの状態値を更新することができる。また、更新部１８は、受付部１２が受付けたプレイヤ入力の内容に基づき、操作対象オブジェクトの状態値を更新することができる。なお、データポイント群から操作対象オブジェクトの制御内容（移動方向等）を決定する処理は特許文献１（特許第６３８９５８１号公報）に開示されているので、ここでの説明は省略する。
【００９８】
次に、図１３及び図１４のフローチャートを用いて、プレイヤ端末１０の処理の流れの一例を説明する。図示しないが、例えば、プレイヤ端末１０がサーバ２０にログインし、ゲームに参加した直後に、そのプレイヤ端末１０が制御する操作対象オブジェクトの初期位置等に基づき決定された推定モデルや、図１２に示すような複数の操作対象オブジェクト各々に対応した状態値等が、サーバ２０からそのプレイヤ端末１０に送信される。プレイヤ端末１０は、受信した情報を記憶部１１に記憶させる。そして、プレイヤ端末１０は以下の処理を行う。
【００９９】
まず、図１３に示すように、プレイヤ端末１０は、あるフレームに対応したタイミング毎情報を取得する（Ｓ１０１）。ゲームに参加した直後は、プレイヤ端末１０は、サーバ２０からタイミング毎情報を取得してもよい。
【０１００】
そして、プレイヤ端末１０の推定部１３は、記憶部１１に記憶されている推定モデルと、Ｓ１０１で取得されたタイミング毎情報とに基づき、その後（例えば、１〜１５フレーム先）のフレーム各々に対応したタイミング毎情報の推定結果を生成する（Ｓ１０２）。そして、推定部１３は、生成した推定結果を記憶部１１に記憶する（Ｓ１０３）。その後、プレイヤ端末１０は、Ｓ１０１に戻り、タイミング毎情報の推定結果の生成、及び、記憶を繰り返す。
【０１０１】
また、図１４に示すように、判断部１４は、あるフレームに対応したタイミング毎情報の推定結果を記憶部１１から取得するとともに（Ｓ２０１）、そのフレームに対応して受付部１２が受付けたプレイヤ入力の内容を示す情報を取得すると（Ｓ２０２）、そのタイミングに対応して受付けたプレイヤ入力の内容と、推定結果で示されるそのタイミングに対応したプレイヤ入力の推定内容とが一致するか判断する（Ｓ２０３）。なお、Ｓ２０１及びＳ２０２の処理順はこれに限定されない。
【０１０２】
そして、一致しない場合（Ｓ２０４のＮｏ）、補正部１７は、Ｓ２０２で取得されたプレイヤ入力の内容を示す情報に基づき、Ｓ２０１で取得した推定結果を補正する（Ｓ２０５）。また、訂正情報送信部１５は、受付部１２が受付けたプレイヤ入力の内容を示す訂正情報を外部装置に送信する（Ｓ２０６）。なお、Ｓ２０５及びＳ２０６の処理順はこれに限定されない。
【０１０３】
Ｓ２０４でＹｅｓの場合、また、Ｓ２０６の後に、Ｓ２０７が実行される。Ｓ２０７では、そのフレームに対応して他のプレイヤ端末１０が送信した訂正情報を、訂正情報取得部１６が取得したか否かを判断する。
【０１０４】
取得している場合（Ｓ２０７のＹｅｓ）、補正部１７は、取得された訂正情報に基づき、Ｓ２０１で取得された推定結果を補正する（Ｓ２０８）。
【０１０５】
Ｓ２０７でＹｅｓの場合、また、Ｓ２０８の後に、Ｓ２０９が実行される。Ｓ２０９では、更新部１８は、Ｓ２０１で取得された推定結果、Ｓ２０２で取得されたプレイヤ入力の内容を示す情報、Ｓ２０５及び／又はＳ２０８で補正された後の推定結果、及び、他のプレイヤ端末１０が送信した訂正情報の中の少なくとも１つに基づき、記憶部１１に記憶されている複数の操作対象オブジェクト各々に対応した状態値（図１２参照）を更新する。そして、プレイヤ端末１０は、更新後の状態値に基づきディスプレイにおけるゲーム画面を更新する。
【０１０６】
その後のＳ２１０では、Ｓ２０５及びＳ２０８の少なくとも一方で補正部１７により推定結果が補正された場合、推定部１３は補正後の推定結果を取得する。一方、補正されなかった場合、推定部１３は、補正されなかった推定結果を取得する。推定部１３は、取得した補正後の推定結果又は補正されなかった推定結果を、あるフレームに対応したタイミング毎情報としてＳ１０１で取得し、そのタイミング毎情報に基づき新たな推定結果を生成する（Ｓ１０２）。
【０１０７】
＜変形例＞
次に、変形例を説明する。タイミング毎行列データは、プレイヤ入力の内容及び操作対象オブジェクトのゲーム空間内の位置に加えて、プレイヤ入力の内容に影響し得るその他の情報を示してもよい。例えば、タイミング毎行列データは、操作対象オブジェクトの種類や状態（ヒットポイント、レベル、攻撃力、防御力等）等の特性、非操作対象オブジェクト（コンピュータが行動を制御するキャラクタ、山、海、建物等の移動の妨げとなる障害物等）のゲーム空間内の位置、非操作対象オブジェクトの種類や状態（ヒットポイント、レベル、攻撃力、防御力等）等の特性等をさらに示してもよい。タイミング毎行列データの成分ｐｑ、ｒの値により、これらの情報を示すことができる。
【０１０８】
なお、タイミング毎行列データを図示する際には、例えば図１５に示すように、色（図１５（Ｃ））、明暗、所定位置への点の追加（図１５（Ｄ））等により、成分ｐｑ、ｒの値の違いを表現することができる。
【０１０９】
このような変形例によれば、プレイヤ入力の内容に影響し得る多種多様な情報を考慮して、数フレーム先の入力内容を推定することが可能となる。結果、推定精度が向上する。
【０１１０】
他の変形例を説明する。テンソルデータ生成部２２は、データポイント群に代えて、データポイント群から算出されるベクトルをエンコードしたエンコード情報を、操作対象オブジェクト各々の位置に対応付けてマッピングしたワールド座標系の状態を示す行列データを所定時間毎に生成してもよい。エンコード情報は、例えば、図１６に示すように、凸の向きや大きさでデータポイント群から算出されるベクトルを示すものであってもよい。なお、上記変形例同様、色、明暗、所定位置への点の追加等により、上述した各種情報が付与されたエンコード情報がマッピングされてもよい。
【０１１１】
ゲーム内のステータス情報（操作対象オブジェクトの種類や状態（ヒットポイント、レベル、攻撃力、防御力等）等の特性等）のエンコードを行う関数ｅｎｃｏｄｅは、次の式（１０）のように定義できる。
【０１１２】
【数１０】
0006748281.tif 000011
【０１１３】
ここで、Ｓはゲーム内のステータス情報であり、Ｍは、あるプレイヤ端末１０のあるフレームに対応するワールドフレーム行列である。
【０１１４】
＜作用効果＞
次に、本実施形態の作用効果を説明する。各プレイヤ端末１０が受付けた入力内容のすべてを他のプレイヤ端末１０に送信する方式の場合、例えば３０ＦＰＳを実現するためには「３０Ｈｚ（１秒間に３０往復）」のＵＤＰパケットを送受信する必要がある。これに対し、各プレイヤ端末１０が受付けた入力内容の内予測がはずれたもののみを他のプレイヤ端末１０に送信する本実施形態の方式の場合、例えば３０ＦＰＳを実現するためには「３０Ｈｚ以下」のＵＤＰパケットを送受信すればよい。予測が１００％外れた場合に３０Ｈｚとなり、予測が少しでも当たれば３０ＦＰＳ未満となる。なお、予測が１００％外れ続けることは稀であり、ほとんどあり得ない。このような本実施形態のゲームシステムによれば、高効率・低遅延でパケットロスに強いマルチプレイ通信方式が実現される。
【０１１５】
本実施形態の最大の優位性は、既存のゲーム内容を変更することなく、データ通信量を削減できる「非破壊性」である。この非破壊性に加え、本実施形態は次の利点を有する。
【０１１６】
・高いパケット削減率：通信頻度、および、通信量そのものを減らすことができるため、高いアクション性や多人数プレイを、パケットロスが相対的に多く帯域に制限の多いスマートフォン用ＭＭＯ等で実現できる。
【０１１７】
・パケットロスに強い：パケットそのものを送る頻度を下げることができるため、パケットロスに本質的に強い。さらに、本実施形態によりネットワーク帯域に余裕が生じれば、パケットロス対策として通信頻度を上げたり、あるいは、１度の通信で前のアクションの履歴を送信するようなパケットロスへの対策を容易に導入できたりする。
【０１１８】
・チート対策への応用：推定モデルに基づく予測が外れた差分パケットだけを送るというモデルなので、チート防止や継続的な機械学習による長期・大規模運用に適した特性を生み出せる。
【０１１９】
・デルタ圧縮と無矛盾に統合可能：ステータス情報の送受信に適したデルタ圧縮をステータス情報の送受信に用い、移動情報の圧縮に適した本実施形態を移動情報の圧縮に用いるような、適材適所の運用を実現可能である。
【０１２０】
また、本実施形態は、直感的には、「通信していない内容を自動的に補完するための数フレーム分の入力内容を格納している通信バッファ」として使用することができる技術である。したがって、Photonやmonobitなどの既存の通信ミドルウェアを利用する上位層として実装できる。さらに、既存のデルタ圧縮によるステータス情報の圧縮と無矛盾に組み合わせることができる。
【０１２１】
なお、本明細書において、「取得」とは、ユーザ入力に基づき、又は、プログラムの指示に基づき、「自装置が他の装置や記憶媒体に格納されているデータを取りに行くこと（能動的な取得）」、たとえば、他の装置にリクエストまたは問い合わせして受信すること、他の装置や記憶媒体にアクセスして読出すこと等、および、ユーザ入力に基づき、又は、プログラムの指示に基づき、「自装置に他の装置から出力されるデータを入力すること（受動的な取得）」、たとえば、外部装置から送信されたデータを受信できる状態で待機しており、外部装置から送信されたデータを受信すること、外部装置から配信（または、送信、プッシュ通知等）されるデータを受信すること、また、受信したデータまたは情報の中から選択して取得すること、及び、「データを編集（テキスト化、データの並び替え、一部データの抽出、ファイル形式の変更等）などして新たなデータを生成し、当該新たなデータを取得すること」の少なくともいずれか一方を含む。
【０１２２】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限定されない。
１．  直接又はサーバを介して互いにデータ通信する複数のプレイヤ端末各々のコンピュータを、
複数の操作対象オブジェクト各々に対応した状態値を記憶する記憶部、
プレイヤ入力を受付ける受付部、
あるタイミングに対応して複数の前記プレイヤ端末各々が受付けたプレイヤ入力の内容を示すタイミング毎情報からその後のタイミングに対応した前記タイミング毎情報の推定結果を生成する推定モデルと、第１のタイミングに対応した前記タイミング毎情報とに基づき、前記第１のタイミングより後の第２のタイミングに対応した前記推定結果を生成する推定部、
前記第２のタイミングに対応して前記受付部が受付けたプレイヤ入力の内容と、前記推定結果で示される前記第２のタイミングに対応したプレイヤ入力の推定内容とが一致するか判断する判断部、
前記判断部の判断結果が不一致である場合、前記受付部が受付けたプレイヤ入力の内容を示す訂正情報を外部装置に送信する訂正情報送信部、
他の前記プレイヤ端末が送信した前記訂正情報を取得する訂正情報取得部、
前記訂正情報に基づき前記推定結果を補正する補正部、及び、
前記推定結果に基づき前記操作対象オブジェクトの前記状態値を更新する更新部、
として機能させるプログラム。
２．  １に記載のプログラムにおいて、
前記更新部は、前記補正部により前記推定結果が補正された場合、補正後の前記推定結果又は前記訂正情報に基づき前記操作対象オブジェクトの前記状態値を更新するプログラム。
３．  １又は２に記載のプログラムにおいて、
前記推定部は、
前記補正部により前記推定結果が補正された場合、補正後の前記推定結果と前記推定モデルとに基づき新たな前記推定結果を生成し、
前記補正部により前記推定結果が補正されなかった場合、補正されなかった前記推定結果と前記推定モデルとに基づき新たな前記推定結果を生成するプログラム。
４．  １から３のいずれかに記載のプログラムにおいて、
前記タイミング毎情報は、
行及び列がゲーム空間のワールド座標系におけるｘ軸及びｙ軸に対応し、第ｑ行目かつ第ｒ列目の成分の値で前記ワールド座標系における座標（ｘｑ，ｙｒ）の状態を示す行列データで、前記ゲーム空間における前記操作対象オブジェクト各々の位置及び前記操作対象オブジェクト各々に対応してなされたプレイヤ入力の内容を示すプログラム。
５．  ４に記載のプログラムにおいて、
前記行列データは、前記操作対象オブジェクト各々に対応してなされたプレイヤ入力の内容として、前記プレイヤ端末のタッチパネルで検出されたスクリーン座標上のデータポイント群を示すプログラム。
６．  ４に記載のプログラムにおいて、
前記行列データは、前記操作対象オブジェクト各々に対応してなされたプレイヤ入力の内容として、前記プレイヤ端末のタッチパネルで検出されたスクリーン座標上のデータポイント群から算出されるベクトルをエンコードした情報を示すプログラム。
７．  ４から６のいずれかに記載のプログラムにおいて、
前記行列データは、前記操作対象オブジェクト各々に対応してなされたプレイヤ入力の内容を示す情報を、前記操作対象オブジェクト各々の位置に対応付けてマッピングした前記ワールド座標系の状態を示すプログラム。
８．  ４から７のいずれかに記載のプログラムにおいて、
前記推定モデルは、
前記行列データを時間軸に沿って格納したテンソルデータから取り出された第Ｎのタイミングに対応した前記行列データと、第Ｎのタイミングの後のタイミングに対応した前記行列データとを対応付けた学習データに基づく機械学習で生成されるプログラム。
９．  ８に記載のプログラムにおいて、
前記推定モデルは、
前記行列データを時間軸に沿って格納したテンソルデータから取り出された第Ｎのタイミングに対応した前記行列データと、第（Ｎ＋１）のタイミングに対応した前記行列データ乃至第（Ｎ＋Ｋ）のタイミング（Ｋは２以上の整数）に対応した前記行列データ各々とを対応付けた学習データに基づく機械学習で生成されているプログラム。
１０．  １から９のいずれかに記載のプログラムにおいて、
前記タイミング毎情報は、プレイヤ入力の内容に加えて、ゲーム空間における前記操作対象オブジェクトの位置、前記ゲーム空間における非操作対象オブジェクトの位置、前記操作対象オブジェクトの特性、及び、前記非操作対象オブジェクトの特性の中の少なくとも１つをさらに示すプログラム。
１１．  １から１０のいずれかに記載のプログラムにおいて、
複数の前記プレイヤ端末各々で実現された前記推定部は、同一の前記推定モデルに基づき前記推定結果を生成するプログラム。
１２．  所定時間毎の複数のタイミング各々に対応して複数のプレイヤ端末各々のタッチパネルで検出されたスクリーン座標上のタッチ位置を示すデータポイント群を、操作対象オブジェクト各々の位置に対応付けてマッピングしたワールド座標系の状態を示す行列データを前記所定時間毎に生成し、前記行列データを時間軸に沿って格納したテンソルデータを生成するテンソルデータ生成部と、
前記テンソルデータから、第Ｎのタイミングに対応した前記行列データと、第Ｎのタイミングの後のタイミングに対応した前記行列データとを対応付けた学習データを取り出す学習データ生成部と、
前記学習データに基づく機械学習により、あるタイミングに対応した前記行列データからその後のタイミングに対応した前記行列データの推定結果を生成する推定モデルを生成する推定モデル生成部と、
を有するサーバ。
１３．  １２に記載のサーバにおいて、
前記学習データ生成部は、前記テンソルデータから、第Ｎのタイミングに対応した前記行列データと、第（Ｎ＋１）のタイミングに対応した前記行列データ乃至第（Ｎ＋Ｋ）のタイミング（Ｋは２以上の整数）に対応した前記行列データ各々とを対応付けた学習データを取り出すサーバ。
１４．  １２又は１３に記載のサーバにおいて、
前記テンソルデータ生成部は、前記データポイント群に代えて、前記データポイント群から算出されるベクトルをエンコードしたエンコード情報を、前記操作対象オブジェクト各々の位置に対応付けてマッピングしたワールド座標系の状態を示す行列データを前記所定時間毎に生成し、前記行列データを時間軸に沿って格納したテンソルデータを生成するサーバ。
１５．  直接又はサーバを介して互いにデータ通信する複数のプレイヤ端末各々のコンピュータが、
複数の操作対象オブジェクト各々に対応した状態値を記憶し、
プレイヤ入力を受付け、
あるタイミングに対応して複数の前記プレイヤ端末各々が受付けたプレイヤ入力の内容を示すタイミング毎情報からその後のタイミングに対応した前記タイミング毎情報の推定結果を生成する推定モデルと、第１のタイミングに対応した前記タイミング毎情報とに基づき、前記第１のタイミングより後の第２のタイミングに対応した前記推定結果を生成し、
前記第２のタイミングに対応して受付けたプレイヤ入力の内容と、前記推定結果で示される前記第２のタイミングに対応したプレイヤ入力の推定内容とが一致するか判断し、
判断結果が不一致である場合、受付けたプレイヤ入力の内容を示す訂正情報を外部装置に送信し、
他の前記プレイヤ端末が送信した前記訂正情報を取得し、
前記訂正情報に基づき前記推定結果を補正し、
前記推定結果に基づき前記操作対象オブジェクトの前記状態値を更新する処理方法。
１６．  複数のプレイヤ端末と、サーバとを有し、
前記プレイヤ端末は、
複数の操作対象オブジェクト各々に対応した状態値を記憶する記憶部と、
プレイヤ入力を受付ける受付部と、
あるタイミングに対応して複数の前記プレイヤ端末各々が受付けたプレイヤ入力の内容を示すタイミング毎情報からその後のタイミングに対応した前記タイミング毎情報の推定結果を生成する推定モデルと、第１のタイミングに対応した前記タイミング毎情報とに基づき、前記第１のタイミングより後の第２のタイミングに対応した前記推定結果を生成する推定部と、
前記第２のタイミングに対応して前記受付部が受付けたプレイヤ入力の内容と、前記推定結果で示される前記第２のタイミングに対応したプレイヤ入力の推定内容とが一致するか判断する判断部と、
前記判断部の判断結果が不一致である場合、前記受付部が受付けたプレイヤ入力の内容を示す訂正情報を外部装置に送信する訂正情報送信部と、
他の前記プレイヤ端末が送信した前記訂正情報を取得する訂正情報取得部と、
前記訂正情報に基づき前記推定結果を補正する補正部と、
前記推定結果に基づき前記操作対象オブジェクトの前記状態値を更新する更新部と、
を有し、
前記サーバは、前記プレイヤ端末から前記訂正情報を受信すると、受信した前記訂正情報を他の前記プレイヤ端末に送信する送信部を有する処理システム。
１７．  １６に記載の処理システムにおいて、
前記サーバは、
所定時間毎の複数のタイミング各々に対応して複数のプレイヤ端末各々のタッチパネルで検出されたスクリーン座標上のタッチ位置を示すデータポイント群を、前記操作対象オブジェクト各々の位置に対応付けてマッピングしたワールド座標系の状態を示す行列データを前記所定時間毎に生成し、前記行列データを時間軸に沿って格納したテンソルデータを生成するテンソルデータ生成部と、
前記テンソルデータから、第Ｎのタイミングに対応した前記行列データと、第Ｎのタイミングの直後の第（Ｎ＋１）のタイミングに対応した前記行列データとを対応付けた学習データを取り出す学習データ生成部と、
前記学習データに基づく機械学習により、あるタイミングに対応した前記行列データからその後のタイミングに対応した前記行列データの推定結果を生成する推定モデルを生成する推定モデル生成部と、
をさらに有し、
前記送信部は、同一の前記推定モデルを複数の前記プレイヤ端末に送信する処理システム。
【０１２３】
以上、実施形態（及び実施例）を参照して本願発明を説明したが、本願発明は上記実施形態（及び実施例）に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【符号の説明】
【０１２４】
１Ａ    プロセッサ
２Ａ    メモリ
３Ａ    入出力Ｉ／Ｆ
４Ａ    周辺回路
５Ａ    バス
６Ａ    タッチパネル
７Ａ    通信部
１０    プレイヤ端末
１１    記憶部
１２    受付部
１３    推定部
１４    判断部
１５    訂正情報送信部
１６    訂正情報取得部
１７    補正部
１８    更新部
２０    サーバ
２１    記憶部
２２    テンソルデータ生成部
２３    学習データ生成部
２４    推定モデル生成部
２５    送信部
３０    通信ネットワーク
【要約】      （修正有）【課題】ゲーム性への影響を抑制しつつ、通信遅延の問題を軽減することが可能なプログラムを提供する。【解決手段】複数の操作対象オブジェクト各々の状態値を記憶する記憶部１１と、複数のプレイヤ端末各々が受付けた入力の内容を示すタイミング毎情報からその後のタイミングの推定結果を生成する推定モデルと、第１のタイミングのタイミング毎情報とに基づき第２のタイミングの推定結果を生成する推定部１３と、第２のタイミングに受付けた入力の内容と推定結果で示される第２のタイミングの入力の推定内容とが一致するか判断する判断部１４と、判断結果が不一致である場合、受付けた入力の内容を示す訂正情報を外部装置に送信する訂正情報送信部１５と、他のプレイヤ端末が送信した訂正情報を取得する訂正情報取得部１６と、訂正情報に基づき推定結果を補正する補正部１７と、推定結果に基づき操作対象オブジェクトの状態値を更新する更新部１８とを有する。【選択図】図１１【図１】
0006748281.tif 000012
【図２】
0006748281.tif 000013
【図３】
0006748281.tif 000014
【図４】
0006748281.tif 000015
【図５】
0006748281.tif 000016
【図６】
0006748281.tif 000017
【図７】
0006748281.tif 000018
【図８】
0006748281.tif 000019
【図９】
0006748281.tif 000020
【図１０】
0006748281.tif 000021
【図１１】
0006748281.tif 000022
【図１２】
0006748281.tif 000023
【図１３】
0006748281.tif 000024
【図１４】
0006748281.tif 000025
【図１５】
0006748281.tif 000026
【図１６】
0006748281.tif 000027