(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023154129
(43)【公開日】2023-10-19
(54)【発明の名称】品質測定システム及び品質測定方法
(51)【国際特許分類】
H04L 67/131 20220101AFI20231012BHJP
A63F 13/46 20140101ALI20231012BHJP
H04L 43/55 20220101ALI20231012BHJP
【FI】
H04L67/131
A63F13/46
H04L43/55
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2022063211
(22)【出願日】2022-04-06
(71)【出願人】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(71)【出願人】
【識別番号】504176911
【氏名又は名称】国立大学法人大阪大学
(74)【代理人】
【識別番号】100119677
【弁理士】
【氏名又は名称】岡田 賢治
(74)【代理人】
【識別番号】100160495
【弁理士】
【氏名又は名称】畑 雅明
(74)【代理人】
【識別番号】100115794
【弁理士】
【氏名又は名称】今下 勝博
(72)【発明者】
【氏名】福井 達也
(72)【発明者】
【氏名】谷口 友宏
(72)【発明者】
【氏名】椎名 亮太
(72)【発明者】
【氏名】藤橋 卓也
(72)【発明者】
【氏名】渡邊 尚
(72)【発明者】
【氏名】猿渡 俊介
(72)【発明者】
【氏名】本生 崇人
(57)【要約】
【課題】本開示は、ネットワークがオンラインアプリケーションに適しているかどうかをユーザが把握可能にすることを目的とする。
【解決手段】本開示は、ネットワーク側端末からユーザ端末にオンラインで提供されるアプリケーションにおける前記ユーザ端末の処理を前記ユーザ端末に代わって実行することでシミュレーションを行い、前記シミュレーションの結果得られた前記アプリケーションの品質を出力する、クライアントシミュレータを備える品質測定システムである。
【選択図】
図1
【特許請求の範囲】
【請求項1】
ネットワーク側端末からユーザ端末にオンラインで提供されるアプリケーションにおける前記ユーザ端末の処理を前記ユーザ端末に代わって実行することでシミュレーションを行い、
前記シミュレーションの結果を出力する、
クライアントシミュレータ。
【請求項2】
請求項1に記載のクライアントシミュレータと、
前記クライアントシミュレータからの制御信号を受信し、前記アプリケーションにおける前記ネットワーク側端末の処理を前記ネットワーク側端末に代わって実行することでシミュレーションを行うサーバシミュレータと、
を備え、
前記サーバシミュレータは、前記シミュレーションを行うことで前記アプリケーションの結果を判定し、
前記クライアントシミュレータは、前記サーバシミュレータで得られた前記アプリケーションの結果を出力する、
品質測定システム。
【請求項3】
前記アプリケーションは、前記ネットワーク側端末がゲームの状態を演算し、前記ユーザ端末が前記ゲームの状態に対する動作を行うゲームであり、
前記クライアントシミュレータは、前記動作を実行した旨の制御信号及び前記動作時のゲームの状態を前記サーバシミュレータに送信し、
前記サーバシミュレータは、前記制御信号及びゲームの状態を受信し、受信した前記動作時のゲームの状態と前記制御信号を受信時の自身のゲームの状態とを比較することで、前記ゲームのスコアが劣化している原因を判定する、
請求項2に記載の品質測定システム。
【請求項4】
前記アプリケーションは、前記ネットワーク側端末がゲームの状態を演算し、前記ユーザ端末が前記ゲームの状態に対する動作を行うゲームであり、
前記クライアントシミュレータ及び前記サーバシミュレータは、異なる複数のパラメータを用いて前記ゲームのシミュレーションを行い、
前記サーバシミュレータは、前記複数のパラメータのそれぞれの前記ゲームのスコアを判定し、
前記クライアントシミュレータは、前記ゲームのスコアに基づいて、前記複数のパラメータのうちの前記ゲームに適したパラメータセットを出力する、
請求項2に記載の品質測定システム。
【請求項5】
前記クライアントシミュレータは、
前記サーバシミュレータまでの往復通信遅延と前記アプリケーションの品質とが紐づけられているリファレンス結果テーブルを保持し、
前記アプリケーションの品質を前記サーバシミュレータから受信すると、受信した前記アプリケーションの品質と、前記リファレンス結果テーブルにおいて当該サーバシミュレータとの往復通信遅延に紐づけられている前記アプリケーションの品質と、を比較し、
前記比較の結果を出力する、
請求項2に記載の品質測定システム。
【請求項6】
前記クライアントシミュレータは、異なる位置に設置されている複数の前記サーバシミュレータと前記アプリケーションのシミュレーションを行い、
前記複数のサーバシミュレータとの前記シミュレーションの結果を出力する、
請求項2に記載の品質測定システム。
【請求項7】
サーバシミュレータ及びクライアントシミュレータが、オンラインで実行されるアプリケーションのシミュレーションを実行し、
前記クライアントシミュレータが、前記シミュレーションの結果を出力する、
品質測定方法。
【請求項8】
請求項2から6のいずれかに記載の品質測定システムに備わるクライアントシミュレータ又はサーバシミュレータとしてコンピュータを実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、本開示は、オンラインアプリケーションの品質測定に関する。
【背景技術】
【0002】
近年、オンラインゲームの腕を競い合うeSportsが注目されている。オンラインゲームでは、相手のPCやゲームサーバと通信して情報をやり取りしながらゲームを成り立たせるため、リアルタイム性の高い格闘ゲームやFPS(First-person shooter)ではネットワークの品質が勝敗に直結する。そのため、オンラインゲームに適したネットワークを選びたいというユーザの要求が高まっている。
【0003】
IP(Internet Protocol)通信網で転送されるパケットの挙動から、通信帯域を推定したり、特定のアプリケーションのユーザ体感品質を推定する技術が知られている(例えば、特許文献1及び2参照。)。
【0004】
従来技術では、パケットの挙動と予め定められた推定モデルから体感品質を測定しているが、ユーザの主観的な体感評価値を得られるにすぎず、アプリケーションの品質がどのように変化するかという具体的な値が明らかにならない。具体的には、オンラインゲームにおいては自身が入力したコマンドがどの程度適切に反映されるかを把握したいが、ユーザの主観的な値にマッピングされてしまうとそれを検知することはできない。あるネットワークにおいてオンラインゲームをプレイしたときにどのような品質となるかを、オンラインゲーム特有の指標で測定し、ユーザに提示できるシステムを作る必要がある。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2006-165789号公報
【特許文献2】特開2007-060475号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
本開示は、ネットワークがオンラインアプリケーションに適しているかどうかをユーザが把握可能にすることを目的とする。
【課題を解決するための手段】
【0007】
本開示は、ユーザ近傍のコンピュータ上で動作するクライアントシミュレータとネットワーク上に設置されたサーバシミュレータとの間で、オンラインアプリケーションをシミュレーションし、その時のアプリケーションのスコアを品質として提示する。これにより、ネットワークがオンラインアプリケーションに適しているかどうかを容易にユーザが把握することを可能とする。
【0008】
具体的には、本開示の品質測定システムは、本開示のクライアントシミュレータを備える。本開示のクライアントシミュレータは、ネットワーク側端末からユーザ端末にオンラインで提供されるアプリケーションにおける前記ユーザ端末の処理を前記ユーザ端末に代わって実行することでシミュレーションを行い、前記シミュレーションの結果を出力する。
【0009】
本開示の品質測定システムは、本開示のクライアントシミュレータと、サーバシミュレータと、を備えていてもよい。この場合、本開示の品質測定システムは本開示の品質測定方法を実行する。本開示の品質測定方法では、前記サーバシミュレータ及び前記クライアントシミュレータが、オンラインで実行されるアプリケーションのシミュレーションを実行し、前記クライアントシミュレータが、前記シミュレーションの結果を出力する。
【0010】
ここで、前記サーバシミュレータは、前記クライアントシミュレータからの制御信号を受信し、前記アプリケーションにおける前記ネットワーク側端末の処理を前記ネットワーク側端末に代わって実行することでシミュレーションを行う。この態様では、本開示の品質測定システムは、前記サーバシミュレータは、前記シミュレーションを行うことで前記アプリケーションの結果を判定し、前記クライアントシミュレータは、前記サーバシミュレータで得られた前記アプリケーションの結果を出力する。
【0011】
本開示の前前記アプリケーションは、前記ネットワーク側端末がゲームの状態を演算し、前記ユーザ端末が前記ゲームの状態に対する動作を行うゲームであってもよい。この場合、前記クライアントシミュレータは、前記動作を実行した旨の制御信号及び前記動作を実行時のゲームの状態を前記サーバシミュレータに送信し、前記サーバシミュレータは、前記制御信号及びゲームの状態を受信し、受信した前記動作を実行時のゲームの状態を前記制御信号を受信時の自身のゲームの状態と比較することで、前記ゲームのスコアが劣化している原因を判定する態様を採用しうる。
【0012】
本開示の前前記アプリケーションは、前記ネットワーク側端末がゲームの状態を演算し、前記ユーザ端末が前記ゲームの状態に対する動作を行うゲームであってもよい。この場合、前記クライアントシミュレータは、前記動作を実行した旨の制御信号及び前記動作時のゲームの状態を前記サーバシミュレータに送信し、前記サーバシミュレータは、前記制御信号及びゲームの状態を受信し、受信した前記動作時のゲームの状態と前記制御信号を受信時の自身のゲームの状態とを比較することで、前記ゲームのスコアが劣化している原因を判定し、前記クライアントシミュレータは、前記ゲームのスコアに基づいて、前記複数のパラメータのうちの前記ゲームに適したパラメータセットを出力してもよい。
【0013】
本開示の品質測定システム及び品質測定方法では、前記クライアントシミュレータは、前記サーバシミュレータまでの往復通信遅延と前記アプリケーションの品質とが紐づけられているリファレンス結果テーブルを保持し、前記アプリケーションの品質を前記サーバシミュレータから受信すると、受信した前記アプリケーションの品質と、前記リファレンス結果テーブルにおいて当該サーバシミュレータとの往復通信遅延に紐づけられている前記アプリケーションの品質と、を比較し、
前記比較の結果を出力してもよい。
【0014】
本開示の品質測定システム及び品質測定方法では、前記クライアントシミュレータは、異なる位置に設置されている複数の前記サーバシミュレータと前記アプリケーションのシミュレーションを行い、前記複数のサーバシミュレータとの前記シミュレーションの結果を出力してもよい。
【0015】
本開示のプログラムは、本開示に係るサーバシミュレータ又はクライアントシミュレータに備わる各機能部としてコンピュータを実現させるためのプログラムであり、本開示に係るサーバシミュレータ又はクライアントシミュレータが実行する方法に備わる各ステップをコンピュータに実行させるためのプログラムである。
【0016】
なお、上記各開示は、可能な限り組み合わせることができる。
【発明の効果】
【0017】
本開示によれば、ネットワークがオンラインアプリケーションに適しているかどうかをユーザが把握可能にすることができる。
【図面の簡単な説明】
【0018】
【
図6】リファレンス結果テーブルに格納される往復通信遅延と命中回数の一例を示す。
【
図8】クライアントシミュレータの機能ブロックの一例を示す。
【
図9】サーバシミュレータの機能ブロックの一例を示す。
【
図10】クライアント側動作パラメータテーブル及びサーバ側動作パラメータテーブルの一例を示す。
【
図11】オンラインゲームのシミュレーションを実行するフローの一例を示す。
【
図13】サーバシミュレータ及びクライアントシミュレータでの処理と仮想世界の一例を示す。
【
図14】サーバシミュレータ及びクライアントシミュレータでの処理と仮想世界の一例を示す。
【
図26】クライアントシミュレータの機能ブロックの一例を示す。
【
図27】サーバシミュレータの機能ブロックの一例を示す。
【
図28】処理フレーム記録部及び命中判定経緯記録部の一例を示す。
【
図29】サーバシミュレータ及びクライアントシミュレータでの処理と仮想世界の一例を示す。
【
図30】サーバシミュレータ及びクライアントシミュレータでの処理と仮想世界の一例を示す。
【
図31】サーバシミュレータ及びクライアントシミュレータでの処理と仮想世界の一例を示す。
【
図32】サーバシミュレータ及びクライアントシミュレータでの処理と仮想世界の一例を示す。
【
図38】シミュレーション結果分析処理の一例を示す。
【
図40】クライアントシミュレータの機能ブロックの一例を示す。
【
図41】クライアント側動作パラメータテーブル、サーバ側動作パラメータテーブル及びシミュレータ動作パラメータリストの一例を示す。
【
図42】オンラインゲームのシミュレーションを実行するフローの一例を示す。
【
図45】クライアントシミュレータの機能ブロックの一例を示す。
【
図46】往復通信遅延毎のリファレンス結果テーブルの一例を示す。
【
図47】オンラインゲームのシミュレーションを実行するフローの一例を示す。
【
図51】クライアントシミュレータの機能ブロックの一例を示す。
【
図52】クライアント側動作パラメータテーブル及び接続サーバリストの一例を示す。
【
図53】オンラインゲームのシミュレーションを実行するフローの一例を示す。
【発明を実施するための形態】
【0019】
以下、本開示の実施形態について、図面を参照しながら詳細に説明する。なお、本開示は、以下に示す実施形態に限定されるものではない。これらの実施の例は例示に過ぎず、本開示は当業者の知識に基づいて種々の変更、改良を施した形態で実施することができる。なお、本明細書及び図面において符号が同じ構成要素は、相互に同一のものを示すものとする。
【0020】
(本開示の概要)
図1に、本開示のシステム構成例を示す。本開示の品質測定システムは、ネットワーク側端末10とユーザ端末30がネットワーク20で接続されており、ネットワーク側端末10がユーザ端末30にオンラインアプリケーションを提供する。ユーザ端末30はオンラインアプリケーションのクライアント端末として機能する任意の装置であり、例えばスマートフォンやコンピュータである。ネットワーク側端末10は、オンラインアプリケーションを提供可能な任意の装置であり、例えばサーバやクラウド上のVM(Virtual Machine)である。
【0021】
ここで、本開示のアプリケーションは、例えば、ネットワーク側端末10が仮想世界等のゲームの状態を演算し、ユーザ端末30がゲームの状態に対する動作を行うオンラインゲームである。オンラインゲームは、例えば、ネットワーク側端末10がキャラクターを移動させ、ユーザ端末30が移動するキャラクターを射撃するシューティングゲームである。本開示の品質測定システム及び品質測定方法は、任意のオンラインアプリケーションに適用可能であるが、以下の実施形態ではオンラインアプリケーションがシューティングゲームである例について説明する。
【0022】
図2及び
図3にゲーム周期ごとのゲームの状態の一例を示す。
図2及び
図3において、白丸がネットワーク側端末10の提供するゲームで定められるキャラクターであり、黒丸がユーザ端末30で操作可能なキャラクターである。
図2に示すように、ユーザ端末30における射撃の速度が無限大(一瞬)である場合、ネットワーク20における射撃を行った旨の制御信号である射撃命令の遅延が小さければ、ネットワーク側端末10における仮想世界において必ず命中する。一方、
図3に示すように、ネットワーク20の遅延が大きくなると、射撃命令がネットワーク側端末10に到達した時点で白丸のキャラクターが移動し、ネットワーク側端末10における仮想世界において命中しない場合がある。したがって、すべて命中(=ゲームスコアが満点)すればオンラインゲームに完全に適しているといえる。
【0023】
そこで、本開示の品質測定システムは第1の手段を備える。第1の手段は、ユーザ近傍のコンピュータ上で動作するクライアントシミュレータ30Sを備える。クライアントシミュレータ30Sは、ユーザ端末30の処理をユーザ端末30に代わって実行することでシミュレーションを行う。クライアントシミュレータ30Sは、シミュレーションの結果を出力する。本開示のクライアントシミュレータ30Sはコンピュータとプログラムによっても実現でき、プログラムを記録媒体に記録することも、ネットワークを通して提供することも可能である。
【0024】
また、第1の手段は、ネットワーク20上に設置されたサーバシミュレータ10Sを備えてもよい。サーバシミュレータ10Sは、ネットワーク側端末10の処理をネットワーク側端末10に代わって実行することでシミュレーションを行う。本開示のサーバシミュレータ10Sはコンピュータとプログラムによっても実現でき、プログラムを記録媒体に記録することも、ネットワークを通して提供することも可能である。
【0025】
本実施形態では、アプリケーションがシューティングゲームである。この場合、第1の手段は、クライアントシミュレータ30Sとサーバシミュレータ10Sの間でオンラインゲームをシミュレーションし、その時のゲームスコアを品質として提示する。具体的には、クライアントシミュレータ30Sは、ユーザ端末30に代わってキャラクターの射撃を行い、射撃命令をネットワーク側端末10に送信する。サーバシミュレータ10Sは、射撃命令を受信し、射撃命令を受信したタイミングでのキャラクターへの命中回数又は命中率を、ゲームのシミュレーション結果として判定する。クライアントシミュレータ30Sは、サーバシミュレータ10Sからシミュレーション結果を受信すると、シミュレーション結果を出力する。出力は、ユーザ端末30の表示部に表示したり、音声出力するなど、ユーザに提示可能な任意の態様を採用しうる。
【0026】
本開示の品質測定システム及び品質測定方法は、クライアントシミュレータ30Sがネットワーク20を用いてオンラインゲームを実施したときの品質を、ゲームの指標を用いてユーザ端末30に提示することが可能となる。これにより、ユーザはネットワーク20がオンラインゲームに適しているかどうかをゲームの観点で把握できる。
【0027】
(第2の手段)
第1の手段では、ネットワーク20を用いてオンラインゲームを実施したときの品質を測定・提示することはできるが、その品質が劣化する原因を把握することができない。そこで、本開示の品質測定システムは、第2の手段を備えていてもよい。第2の手段は、ゲームの状態の情報(以下、仮想世界情報と称する。)をクライアントシミュレータ30Sとサーバシミュレータ10Sで共有しながらシミュレーションを行い、シミュレーション終了後に仮想世界報を突合してゲームのスコアが劣化した要因を分析して提示する。
【0028】
図4及び
図5に、分析の一例を示す。
図4に示すように、クライアントシミュレータ30Sが前のフレーム番号1Fの映像を見て狙っていることに起因した射撃の失敗の場合、サーバシミュレータ10Sは、ネットワーク20における定常的なフレーム遅れに起因した射撃失敗であると判定する。
図5に示すように、射撃命令を含むパケットの到達が遅れた場合、射撃命令を含むパケットが到達しなかったことに起因した射撃失敗であると判定する。
【0029】
本開示の品質測定システム及び品質測定方法は、あるネットワーク20を用いてオンラインゲームを実施したときにスコアが劣化する原因をオンラインゲームの仕組みと合わせて測定し、提示することができる。このため、ユーザはオンラインゲームの品質を劣化させているネットワーク20の問題をより具体的に把握できる。
【0030】
(第3の手段)
オンラインゲームはゲームそれぞれ独自の動作アルゴリズム及びパラメータで動いている。ユーザは、どのようなオンラインゲームであれば、自身のネットワークで正しく動作するのか把握したいという要求がある。そこで、本開示の品質測定システムは、第3の手段を備えていてもよい。第3の手段は、クライアントシミュレータ30Sとサーバシミュレータ10Sで実施するシミュレーションのパラメータの設定を変化させて測定を行い、ゲームのスコアが劣化しないゲームに適したパラメータセットを提示する。
【0031】
パラメータセットの変更とその提示は任意であるが、例えば、以下が例示できる。
・ゲームの動作レートであるゲーム周期を変えたときの結果を提示する。動作レートは任意であるが、例えば60fps及び30fpsが例示できる。60fps(16.6msで1周期)の時に品質が劣化する場合でも、30fpsに変えれば品質の劣化を防ぐことができる。
・射撃の当たり判定を変えたときの結果を提示する。
・接続するサーバシミュレータ10Sの位置を変更したときの結果を提示する。
【0032】
本態様では、パラメータは、クライアントシミュレータ30Sの射撃における移動推定を含んでいてもよい。これにより、プレイヤスキルに応じたシミュレーションを提示することができる。移動推定の方法は任意であるが、例えばAI(Artificial Intelligence)を用いることができる。
【0033】
本開示の品質測定システム及び品質測定方法は、あるネットワーク20を用いた時に、どの程度のゲームならプレイできるか、またはどの程度のプレイヤスキルがあればプレイできるか、をユーザが判断することが可能になる。
【0034】
(第4の手段)
本開示の品質測定システムが備える第4の手段は、固定遅延を与えてシミュレーションしたときの命中回数のリファレンス結果テーブルと測定したネットワーク20の遅延値と命中回数の結果を比較して、その結果の差分から当該ネットワーク20における遅延揺らぎとパケットロスの影響度合いを提示する通信品質測定機能である。
【0035】
例えば、
図6に示すような、ネットワーク20の往復通信遅延[ms]と命中回数の結果がリファレンス結果テーブルとして予め得られており、20msの往復通信遅延を持つユーザがシミュレーションをしたときに、命中回数=80のときは通信経路に伴う通信遅延影響のみであり、命中回数=70のときは通信遅延揺らぎやパケロスによる影響があると判定することができる。
【0036】
本開示の品質測定システム及び品質測定方法は、あるネットワーク20を用いた時に、オンラインゲームに適さない状況が物理的な位置によるものなのかネットワーク20の品質によるものなのかをオンラインゲームの観点から測定してユーザに提示することが可能になる。
【0037】
(実施形態例1)
図7に、本開示の品質測定システムのハードウェア構成を示す。ネットワーク側端末10及びユーザ端末30は、それぞれ、ネットワーク20を介して通信するための通信インタフェース10I及び30Iを備える。ネットワーク側端末10はサーバシミュレータ10Sを実行する演算処理部を備え、ユーザ端末30はクライアントシミュレータ30Sを実行する演算処理部を備える。
【0038】
図8に、クライアントシミュレータ30Sの機能ブロックの一例を示す。クライアントシミュレータ30Sは、クライアント行動生成部31、データ送信部32、データ受信部33、仮想世界更新部34、コントロール送受信部41、クライアントシミュレータ制御部42、周期入力部43を備える。
【0039】
図9に、サーバシミュレータ10Sの機能ブロックの一例を示す。サーバシミュレータ10Sは、データ受信部11、仮想世界演算部12、サーバ行動生成部13、データ送信部14、命中回数記録部15、コントロール送受信部21、サーバシミュレータ制御部22を備える。
【0040】
クライアントシミュレータ30S及びサーバシミュレータ10Sは、オンラインゲームを実行する際に用いるパラメータを格納するテーブルを保持している。本実施形態では、クライアントシミュレータ30Sの保持するテーブルを「クライアント側動作パラメータテーブル」と称し、サーバシミュレータ10Sの保持するテーブルを「サーバ側動作パラメータテーブル」と称する。
【0041】
図10に、クライアント側動作パラメータテーブル、サーバ側動作パラメータテーブル及び命中回数記録部15の一例を示す。命中回数記録部15には、仮想世界演算部12で命中と判定された回数がカウントされる。本実施形態例においては、
図10に示すパラメータはハードコーディングされている。
【0042】
クライアント側動作パラメータテーブルには、ゲーム種類、ゲーム周期、シミュレーション時間、射撃周期、射撃アルゴリズム、接続先サーバが格納される。
ゲーム種類は、クライアントシミュレータ30Sがシミュレーションを行うゲームの種類であり、本実施形態ではシューティングゲームである。
ゲーム周期は、仮想世界を更新する周期であり、例えば60FPSである。
シミュレーション時間は、クライアントシミュレータ30Sがシミュレーションを実行する時間であり、例えば10秒間である。
射撃周期は、クライアントシミュレータ30Sがシミュレーションにおいて射撃を行う時間間隔であり、例えば0.1秒間隔である。
射撃アルゴリズムは、クライアントシミュレータ30Sがシミュレーションにおいて射撃を行うアルゴリズムであり、例えば現在位置を射撃することが例示できる。
接続先サーバは、サーバシミュレータ10Sと接続するための任意の情報であり、例えばIPアドレス又はURL(Uniform Resource Locator)が例示できる。
【0043】
サーバ側動作パラメータテーブルには、ゲーム種類、ゲーム周期、シミュレーション時間、移動速度、移動アルゴリズムが格納される。
ゲーム種類は、サーバシミュレータ10Sがシミュレーションを行うゲームの種類であり、本実施形態ではシューティングゲームである。
ゲーム周期は、仮想世界を更新する周期であり、例えば60FPSである。
シミュレーション時間は、サーバシミュレータ10Sがシミュレーションを実行する時間であり、例えば10秒間である。
移動速度は、サーバシミュレータ10Sがキャラクターを移動させる速度であり、例えば1ブロック/フレームである。
移動アルゴリズムは、サーバシミュレータ10Sがキャラクターを移動させるアルゴリズムであり、例えばランダムである。
【0044】
図11に、オンラインゲームのシミュレーションを実行するフローの一例を示す。本実施形態では、開始手順S01、実施手順S02、終了手順S03、表示手順S04を順に実行する。
【0045】
図12に、開始手順S01の一例を示す。
S111:クライアントシミュレータ30Sは、クライアント側動作パラメータテーブルを参照して接続先サーバで定められるサーバシミュレータ10Sに、シミュレーション開始要求をコントロール送受信部41から送信する。
S112:サーバシミュレータ10Sのコントロール送受信部21は、シミュレーション開始要求を受け取ると、サーバシミュレータ制御部22にシミュレーションの開始を指示する。サーバシミュレータ制御部22は、最初のサーバ側仮想世界情報を生成するとともに、命中回数記録部15のカウントを0にリセットする。ここで、サーバ側仮想世界情報の生成方法は任意であるが、例えば乱数を用いて生成することができる。
S113:サーバシミュレータ制御部22は、生成した最初のサーバ側仮想世界情報をコントロール送受信部21を介してクライアントシミュレータ30Sに送信する。
S114:クライアントシミュレータ30Sのコントロール送受信部41は、最初のサーバ側仮想世界情報を受信すると、クライアントシミュレータ制御部42にこれを渡す。クライアントシミュレータ制御部42は、最初のサーバ側仮想世界情報をクライアント側仮想世界情報に反映する。
S115:クライアントシミュレータ制御部42は、仮想世界情報の反映を完了した旨の通知を、コントロール送受信部41を介してサーバシミュレータ10Sに送信する。
S116:サーバシミュレータ10Sのコントロール送受信部21は、仮想世界情報の反映を完了した旨を受信すると、サーバシミュレータ制御部22にこれを通知する。この通知が、サーバシミュレータ10Sにおいてフレームの送受信を開始するフレーム開始契機処理の契機となる。サーバシミュレータ制御部42は、仮想世界情報の反映を完了した旨の通知を受けると、周期入力部23をサーバ側動作パラメータテーブルの設定値に基づき起動する。
S117:サーバシミュレータ制御部22は、サーバ側動作パラメータテーブルの設定値に基づきシミュレーション時間「10秒」をカウントダウンする。
【0046】
ステップS116の後のサーバシミュレータ10Sにおけるフレーム開始契機処理では、以下の処理を実行する。周期入力部23は、サーバ側動作パラメータテーブルのゲーム周期に従い、フレームの開始を仮想世界演算部12に通知する。
【0047】
以下、サーバシミュレータ10Sにおけるフレーム開始契機処理後のサーバシミュレータ10S及びクライアントシミュレータ30Sの動作について、
図13及び
図14を参照しながら説明する。
図13及び
図14はゲーム周期ごとの処理及びゲームの状態を示す。
図13及び
図14において、白丸がネットワーク側端末10の提供するゲームで定められるキャラクターであり、黒丸がユーザ端末30で操作可能なキャラクターである。また図中における枠は仮想世界の状態を示し、括弧内の数字は座標を示す。
【0048】
ここで、
図13は、ネットワーク20における通信遅延が短い場合のゲームの状態を示す説明図である。
図14は、ネットワーク20における通信遅延が長い場合のゲームの状態を示す説明図である。ゲーム周期F1~F3ごとに、サーバシミュレータ10Sが命中判定処理、仮想世界演算処理及びサーバ行動生成処理を実行し、クライアントシミュレータ30Sが仮想世界更新処理及びクライアント行動生成処理を実行する。
図13では、通信遅延がゲーム周期に比べ十分短く、通信が安定している場合は、すべての射撃が命中する。
図14では、通信遅延がゲーム周期に比べ長い場合や、パケットがロスしたり遅延揺らぎが発生した場合には射撃が命中しない可能性がある。
【0049】
図15に、命中判定処理の一例を示す。
S211:仮想世界演算部12は、フレームの開始が通知されると、命中判定処理を開始する。
S212:仮想世界演算部12は、データ送信部32から送信されたクライアント送信情報が格納されていて、これに射撃命令が含まれている場合、射撃命令とサーバ側仮想世界情報とを照合して当該射撃がサーバキャラクターに命中しているかを判定し、命中している場合は命中回数記録部15に記録されている値に1を加算する。
S213:仮想世界演算部12は、仮想世界演算処理を開始する。
【0050】
図16に、仮想世界演算処理の一例を示す。
S214:仮想世界演算部12は、自身にサーバキャラクター移動情報が格納されている場合、フレーム周期でこれを元にサーバ側仮想世界情報を更新する。
S215:仮想世界演算部12は、サーバ側仮想世界情報への更新が完了すると、自身に格納しているクライアント送信情報とサーバキャラクター移動情報を削除する。
S216:仮想世界演算部12は、サーバ行動生成部13にサーバ側仮想世界情報の更新を通知する。
S217:データ送信部14は、サーバ側仮想世界情報にあるサーバキャラクターの座標と現在のフレーム番号を仮想世界情報としてクライアントシミュレータ30Sに送信する。
【0051】
図17に、サーバ行動生成処理の一例を示す。
S221:サーバ行動生成部13は、サーバ側仮想世界情報の更新が通知されるとサーバ行動生成処理を開始する。
S222:サーバ行動生成部13は、サーバ側動作パラメータテーブルの値に基づきサーバキャラクターの移動情報を生成し、これをサーバキャラクター移動情報として仮想世界演算部12に送信する。
S223:仮想世界演算部12は、サーバキャラクター移動情報を自身に格納する。
【0052】
ステップS217において、クライアントシミュレータ30Sはデータ受信処理を実行する。
図18に、データ受信処理の一例を示す。
S237:データ受信部33は、サーバシミュレータ10Sからサーバ側仮想世界情報を受信すると、当該データを仮想世界更新部34に送信する。
S238:仮想世界更新部34は、クライアント側仮想世界情報に格納されている仮想世界情報を削除し、受信したサーバ側仮想世界情報をクライアント側仮想世界情報に格納する。
【0053】
サーバ側仮想世界情報の受信時に周期入力部43が起動していない場合、クライアントシミュレータ30Sは、周期入力部起動処理を実行する。
図19に、周期入力部起動処理の一例を示す。
S231:データ受信部33は、サーバシミュレータ10Sからサーバ側仮想世界情報を受信すると、クライアントシミュレータ制御部42にこれを通知する。この通知が、クライアントシミュレータ30Sにおいてフレームの送受信を開始するフレーム開始契機処理の契機となる。
S232:クライアントシミュレータ制御部42は、サーバ側仮想世界情報を受信した旨の通知を受けると、周期入力部43をクライアント側動作パラメータテーブルの設定値に基づき起動する。
【0054】
ステップS231の後のクライアントシミュレータ30Sにおけるフレーム開始契機処理では、以下の処理を実行する。周期入力部43は、クライアント側動作パラメータテーブルのゲーム周期に従い、フレームの開始を仮想世界更新部34に通知する。
【0055】
図20に、クライアントシミュレータ30Sにおける仮想世界更新処理の一例を示す。
S234:仮想世界更新部34は、フレームの開始が通知されると、仮想世界更新処理を開始する。
S235:仮想世界更新部34は、自身に格納されているサーバ側仮想世界情報をクライアント側仮想世界情報に上書きする。
S236:仮想世界更新部34は、クライアント行動生成部31にクライアント側仮想世界情報とクライアント側仮想世界情報が更新された旨を合わせて通知する。
【0056】
図21に、クライアント行動生成処理の一例を示す。
S239:クライアント行動生成部31は、クライアント側仮想世界情報とクライアント側仮想世界情報が更新された旨が通知されると、クライアント行動生成処理を実行する。
S2401:クライアント行動生成部31は、クライアント側動作パラメータテーブルの値に基づき射撃するかどうかを判断し、射撃を行う場合はサーバキャラクターの座標に対して射撃を行う射撃命令を生成し、クライアント側行動情報としてデータ送信部32に通知する。射撃を行わない場合は、その旨をクライアント側行動情報としてデータ送信部32に通知する。
【0057】
図22に、クライアントシミュレータ30Sにおけるデータ送信処理の一例を示す。
S241:データ送信部32は、クライアント行動生成部31からクライアント側行動情報の通知を受けると、これをクライアント送信情報としてサーバシミュレータ10Sに送信する。
【0058】
図23に、サーバシミュレータ10Sにおけるデータ受信処理の一例を示す。
S219:データ受信部11は、クライアントシミュレータ30Sからクライアント送信情報を受信すると、当該データを仮想世界演算部12に通知する。
S220:仮想世界演算部12は、射撃命令を含まないクライアント送信情報を格納している場合、格納しているクライアント送信情報を削除して、通知されたクライアント送信情報を格納する。射撃命令を含むクライアント送信情報を格納している場合は何もしない。
【0059】
図24に、終了手順S03の一例を示す。
S311:サーバシミュレータ制御部22は、シミュレーション時間のカウントダウンが0になるとシミュレーション終了を判断する。
S312:サーバシミュレータ制御部22は、周期入力部23に周期動作停止を指示する。
S313:サーバシミュレータ制御部22は、コントロール送受信部21を介してクライアントシミュレータ30Sにシミュレーション終了を通知する。
S314:クライアントシミュレータ30Sのコントロール送受信部41は、シミュレーション終了の通知を受信すると、その旨をクライアントシミュレータ制御部42に通知する。クライアントシミュレータ制御部42は、シミュレーション終了の通知を受け取ると、周期入力部43に周期動作停止を指示する。
S315:クライアントシミュレータ制御部42は、コントロール送受信部41を介してシミュレーション終了を完了した旨をサーバシミュレータ10Sに通知する。
S316:サーバシミュレータ10Sのコントロール送受信部21は、シミュレーション終了を完了した旨を受信すると、これをサーバシミュレータ制御部22に通知する。サーバシミュレータ制御部22は、シミュレーション終了を完了した旨の通知を受け取ると、命中回数記録部15に記録されている命中回数を読み取り、これをシミュレーション結果としてコントロール送受信部21を介してクライアントシミュレータ30Sに送信する。
S317:クライアントシミュレータ30Sのコントロール送受信部41は、シミュレーション結果を受信すると、クライアントシミュレータ制御部42に送信する。
【0060】
表示手順S04では、クライアントシミュレータ制御部42は、シミュレーション結果を表示部44に出力する。例えば、
図25に示すように、表示部44は、射撃回数、命中回数及び命中率を表示する。これにより、ネットワーク20においてオンラインゲームをプレイしたときにどのような品質となるかを、ゲーム指標でユーザに提示することができる。
【0061】
(実施形態例2)
図26に、本実施形態に係るクライアントシミュレータの機能ブロックの一例を示す。クライアントシミュレータ30Sは、処理フレーム記録部35を備える。
図27に、本実施形態に係るサーバシミュレータの機能ブロックの一例を示す。サーバシミュレータ10Sは、命中判定経緯記録部24を備える。
【0062】
図28に、処理フレーム記録部35及び命中判定経緯記録部24の一例を示す。処理フレーム記録部35には、仮想世界更新処理実施回数、仮想世界情報フレーム番号及び射撃命令の有無が格納される。命中判定経緯記録部24には、サーバ側仮想世界情報フレーム番号、クライアント側仮想世界情報フレーム番号、射撃命令の有無及び命中判定が格納される。
【0063】
仮想世界更新処理実施回数は、仮想世界更新処理の実施回数である。サーバ側仮想世界情報フレーム番号は、サーバシミュレータ10Sからクライアントシミュレータ30Sに送信される仮想世界情報のフレーム番号である。クライアント側仮想世界情報フレーム番号はクライアントシミュレータ30Sからサーバシミュレータ10Sに送信される仮想世界情報のフレーム番号である。射撃命令の有無は、仮想世界情報における射撃命令の有無を示す。
【0064】
本実施形態では、オンラインゲームのシミュレーションを実行する際、第1の実施形態と同様に、開始手順S01、実施手順S02、終了手順S03、表示手順S04を順に実行する。クライアント側動作パラメータテーブル、サーバ側動作パラメータテーブル及び命中回数記録部15については、
図10と同様である。本実施形態では、実施手順S02において、クライアントシミュレータ30Sとサーバシミュレータ10Sで実施するシミュレーションの設定を変化させて測定を行い、ゲームのスコアが劣化しないパラメータセットを提示する。
【0065】
以下、サーバシミュレータ10Sにおけるフレーム開始契機処理後のサーバシミュレータ10S及びクライアントシミュレータ30Sの動作について、
図29~
図32を参照しながら説明する。
図29~
図32は、ゲーム周期ごとの処理及びゲームの状態を示す。
図29~
図32において、白丸がネットワーク側端末10の提供するゲームで定められるキャラクターであり、黒丸がユーザ端末30で操作可能なキャラクターである。また図中における枠は仮想世界の状態を示し、括弧内の数字は座標を示す。
【0066】
図29は仮想世界情報フレーム番号2F~5Fを示し、
図30は仮想世界情報フレーム番号11F~13Fを示し、
図31は仮想世界情報フレーム番号21F~23Fを示し、
図32は仮想世界情報フレーム番号31F~33Fを示す。本実施形態においても、ゲーム周期ごとに、サーバシミュレータ10Sが命中判定処理、仮想世界演算処理及びサーバ行動生成処理を実行し、クライアントシミュレータ30Sが仮想世界更新処理及びクライアント行動生成処理を実行する。
【0067】
図33に、命中判定処理の一例を示す。本実施形態では、第1の実施形態のステップS212に代えて、ステップS251~S257及びS261~S265を備える。
S211:仮想世界演算部12は、フレームの開始が通知されると、命中判定処理を開始する。
S251:仮想世界演算部12は、サーバ側仮想世界情報フレーム番号を取得する。以下、現在のサーバ側仮想世界情報フレーム番号と称す。
S252:仮想世界演算部12は、クライアント送信情報が格納されているかを確認する。格納されている場合はステップS253へ移行し、格納されていない場合はステップS261へ移行する。
S253:仮想世界演算部12は、命中判定経緯記録部24における現在のサーバ側仮想世界情報フレーム番号の行のクライアント側仮想世界フレーム番号の列にクライアント送信情報に含まれるクライアント側仮想世界情報のフレーム番号を記録する。
S254:仮想世界演算部12は、クライアント送信情報に射撃命令が含まれているか確認する。含まれている場合はステップS255へ移行し、含まれていない場合はステップS262へ移行する。
S255:仮想世界演算部12は、命中判定経緯記録部24における現在のサーバ側仮想世界情報フレーム番号の行の射撃命令の有無の列に”有り”を記録する。
S256:仮想世界演算部12は、クライアント送信情報に記載の射撃命令とサーバ側仮想世界情報とを照合して当該射撃がサーバキャラクターに命中しているかを判定する。命中している場合はステップS257へ移行し、命中していない場合はステップS265へ移行する。
S257:仮想世界演算部12は、命中回数記録部15に記録されている値に1を加算するとともに、命中判定経緯記録部24における現在のサーバ側仮想世界情報フレーム番号の行の命中判定の列に”命中”を記録する。
【0068】
S261:仮想世界演算部12は、命中判定経緯記録部24における現在のサーバ側仮想世界情報フレーム番号の行のクライアント側仮想世界フレーム番号の列に”到達無し”を記録する。そして、ステップS213へ移行する。
S262:仮想世界演算部12は、シミュレーション開始から記録した命中判定経緯記録部24の射撃命令の有無列の”有り”と”無し”の数を計測し、クライアント送信情報に記載の総射撃回数情報と比較して、総射撃回数情報と等しいか確認する。等しい場合はステップS263へ移行し、等しくない場合はステップS264へ移行する。
S263:仮想世界演算部12は、命中判定経緯記録部24における現在のサーバ側仮想世界情報フレーム番号の行の射撃命令の有無の列に”無し”を記録する。そして、ステップS213へ移行する。
S264:仮想世界演算部12は、命中判定経緯記録部24における現在のサーバ側仮想世界情報フレーム番号の行の射撃命令の有無の列に”無し”を記録する。そして、ステップS213へ移行する。
S265:命中回数記録部15に記録されている値に1を加算するとともに、命中判定経緯記録部24における現在のサーバ側仮想世界情報フレーム番号の行の命中判定の列に”命中せず”を記録する。そして、ステップS213へ移行する。
【0069】
図34に、仮想世界更新処理の一例を示す。本実施形態では、第1の実施形態のステップS236に代えて、ステップS2361~S2363を備える。
S2361:仮想世界更新部34は、シミュレーションを開始してから自身の仮想世界更新処理の実施回数を確認し、処理フレーム記録部35の仮想世界更新処理の実施回数の行の仮想世界情報フレーム番号の列に現在のクライアント側仮想世界情報のフレーム番号を記載する。
S2362:仮想世界更新部34は、クライアント行動生成部31にクライアント側仮想世界情報が更新された旨を合わせて通知する。
S2363:仮想世界更新部34は、クライアント側仮想世界情報をデータ送信部32に通知する。
【0070】
図35に、クライアント行動生成処理の一例を示す。本実施形態では、第1の実施形態のステップS2401に代えて、ステップS2402を備える。
S239:クライアント行動生成部31は、クライアント側仮想世界情報が更新された旨が通知されると、クライアント行動生成処理を実行する。
S2402:クライアント行動生成部31は、クライアント側動作パラメータテーブルの値に基づき射撃するかどうかを判断し、射撃を行う場合はサーバキャラクターの座標に対して射撃を行う射撃命令とこれまでの射撃回数の合計値を示す総射撃回数情報とをクライアント側行動情報としてデータ送信部32に通知するとともに、処理フレーム記録部35の仮想世界更新処理の実施回数の行の射撃命令の有無に”有り”を記録する。射撃を行わない場合は、その旨と総射撃回数情報をクライアント側行動情報としてデータ送信部32に通知する。
【0071】
図36に、データ送信処理の一例を示す。本実施形態では、第1の実施形態のステップS241に代えて、ステップS2411を備える。
S2411:データ送信部32は、クライアント側仮想世界情報の通知を受けた後にクライアント側行動情報の通知を受けると、これらの両方をクライアント送信情報としてサーバシミュレータ10Sに送信する。
【0072】
なお、本実施形態では、フレーム開始契機処理、仮想世界演算処理、サーバ行動生成処理、データ受信処理は、第1の実施形態と同様である。
【0073】
図37に、終了手順S03の一例を示す。本実施形態では、第1の実施形態のステップS315とS316の間に、ステップS318を備える。
S318:サーバシミュレータ制御部22はシミュレーション終了を完了した旨の通知を受け取ると、命中回数記録部15と命中判定経緯記録部24を読み取り、シミュレーション結果分析処理を行う。
S316:サーバシミュレータ制御部22は、これらをシミュレーション結果としてコントロール送受信部41を介してクライアントシミュレータ30Sに送信する。
【0074】
図38に、ステップS318におけるシミュレーション結果分析処理の一例を示す。サーバシミュレータ制御部22は、シミュレーション結果の命中判定経緯記録部24における命中判定が”命中せず”である行に対して以下の処理を行う。
S3211:自身の前の行において、クライアント側仮想世界情報フレーム番号が”到達無し”であるか確認する。仮想世界情報フレーム番号が記載されている場合はステップS3212に移行し、到達なしの場合はステップS3219に移行する。
S3212:自身の行において、クライアント側仮想世界情報フレーム番号からサーバ側仮想世界フレーム番号引いた差を現在フレーム番号差として取得する。
S3213:自身の前の行において、クライアント側仮想世界情報フレーム番号からサーバ側仮想世界フレーム番号引いた差を前回フレーム番号差として取得する。
S3214:現在フレーム番号差と前回フレーム番号差の値が等しいか確認する。等しい場合はステップS3215に移行し、等しくない場合はステップS3216に移行する。
S3215:仮想世界情報遅れによる命中失敗数に1を加算する。
S3216:サーバシミュレータ制御部22は、命中判定経緯記録部24を参照し、自身の行におけるクライアント側仮想世界情報フレーム番号と同じ仮想世界情報を持ち射撃命令が”有り”の行を取得する。
S3217:サーバシミュレータ制御部22は、取得した行の仮想世界情報フレーム番号と、取得した行の前の行の仮想世界情報フレーム番号の差が1であるか確認する。ステップS3217において差が1である場合、ステップS2318に移行し、それ以外はステップS2319に移行する。
S3218:サーバシミュレータ制御部22は、仮想世界情報揺らぎによる命中失敗数に1を加算する。
S3219:射撃命令の到達揺らぎによる命中失敗数に1を加算する。
【0075】
サーバシミュレータ制御部22は、シミュレーション結果の命中判定経緯記録部24における命中判定が”命中せず”である行の数を計測し、この数を射撃命令の到達ロスによる命中失敗数に代入する。
次に、サーバシミュレータ制御部22は、以下をシミュレーション結果とする。
i)仮想世界情報遅れによる命中失敗数
ii)射撃命令の到達揺らぎによる命中失敗数
iii)仮想世界情報揺らぎによる命中失敗数
iv)射撃命令の到達ロスによる命中失敗数
v)命中回数記録部15に記載の命中回数
【0076】
表示手順S04では、クライアントシミュレータ制御部42は、シミュレーション結果を表示部44に出力する。例えば、
図39に示すように、表示部44は、射撃回数、命中回数、命中率、仮想世界情報遅れによる命中失敗数、仮想世界情報揺らぎによる命中失敗数、射撃命令の到達ロスによる命中失敗数、射撃命令の到達揺らぎによる命中失敗数を表示する。これにより、通信品質が劣化した原因を詳細に分析することが可能となる。
【0077】
(実施形態例3)
図40に、本実施形態に係るクライアントシミュレータ30Sの機能ブロックの一例を示す。クライアントシミュレータ30Sは、シミュレータ動作パラメータリストを備える。本実施形態に係るサーバシミュレータ10Sの機能ブロックは、
図9に示す第1の実施形態と同様である。
【0078】
図41に、クライアント側動作パラメータテーブル、サーバ側動作パラメータテーブル及びシミュレータ動作パラメータリストの一例を示す。本実施形態では、クライアント側動作パラメータテーブル及びサーバ側動作パラメータテーブルにおける、ゲーム周期、射撃アルゴリズム、及び移動速度は、パラメータ設定手順S05にて設定される。シミュレータ動作パラメータリストは、シミュレーションにおいて採用しうる種々のパラメータを格納する。本実施形態では、クライアントシミュレータ30Sの用いる射撃アルゴリズム、サーバシミュレータ10Sの用いる移動速度、サーバシミュレータ10Sの用いる移動アルゴリズムを格納する例を示す。
【0079】
図42に、オンラインゲームのシミュレーションを実行するフローの一例を示す。本実施形態では、パラメータ設定手順S05、開始手順S01、実施手順S02、終了手順S03、結果収集手順S06、表示手順S04を順に実行する。
【0080】
図43に、パラメータ設定手順S05の一例を示す。
S511:クライアントシミュレータ30Sのクライアントシミュレータ制御部42は、シミュレータ動作パラメータリストを参照し、シミュレーションを行うパラメータ番号を選定する。例えば、
図42に示すシミュレータ動作パラメータリストの#1~#5を順に選定する。
S512:クライアントシミュレータ制御部42は、選定したパラメータ番号の動作パラメータ群を、クライアント側動作パラメータテーブルに設定する。例えば、シミュレータ動作パラメータリストの#1であれば、ゲーム周期を60fpsに設定し、射撃アルゴリズムを現在位置を射撃するものに設定する。
S513:クライアントシミュレータ制御部42は、選定したパラメータ番号の動作パラメータ群をコントロール送受信部41を介してサーバシミュレータ10Sに送信する。例えば、シミュレータ動作パラメータリストの#1であれば、パラメータ群は、ゲーム周期が60fpsであり、移動速度が1Block/Frameであり、移動アルゴリズムがランダムである旨を含む。
S514:サーバシミュレータ10Sのコントロール送受信部21は、動作パラメータ群を受け取ると、サーバシミュレータ制御部22に通知する。サーバシミュレータ制御部22は、動作パラメータ群をサーバ側動作パラメータテーブルに設定する。
S515:サーバシミュレータ制御部22は、コントロール送受信部41を介して動作パラメータ設定完了をクライアントシミュレータ30Sに通知する。これにより、シミュレータ動作パラメータリストの#1の場合、クライアント側動作パラメータテーブル及びサーバ側動作パラメータテーブルに、
図10に示すような、ゲーム周期、射撃アルゴリズム、及び移動速度が格納される。
【0081】
第1の実施形態と同様に、開始手順S01、実施手順S02及び終了手順S03を実行し、結果収集手順S06へ移行する。
【0082】
結果収集手順S06では、クライアントシミュレータ制御部42は、シミュレータ動作パラメータリストに記録されているすべてのパラメータ群についてシミュレーション結果を取得しているか確認する。すべてのパラメータ群についてシミュレーション結果を取得している場合は表示手順S04に進む。そうでない場合はパラメータ設定手順S05に戻る。
【0083】
表示手順S04では、クライアントシミュレータ制御部42は、シミュレータ動作パラメータリストの#1~#5のすべてのシミュレーション結果を、表示部44を介してユーザに提示する。例えば、
図44に示すように、表示部44は、パラメータとそのパラメータでのシミュレーション結果を表示する。シミュレーション結果は、例えば、射撃回数、命中回数及び命中率を含む。
【0084】
ここで、クライアントシミュレータ制御部42は、すべてのシミュレーション結果から、ユーザが利用しているネットワークにおいて正常動作が可能なゲームパラメータを提示してもよい。例えば、表示部44は、命中率が100%であるパラメータセットのうちの移動速度が最速のパラメータを、「30FPS以下のゲームであれば正常動作可能」と表示する。これにより、通信品質が劣化した原因を詳細に分析することが可能となる。
【0085】
(実施形態例4)
図45に、本実施形態に係るクライアントシミュレータの機能ブロックの一例を示す。クライアントシミュレータ30Sは、往復通信遅延毎のリファレンス結果テーブルを備える。
【0086】
図46に、往復通信遅延毎のリファレンス結果テーブルの一例を示す。クライアントシミュレータ30Sとサーバシミュレータ10Sとの往復通信遅延は、例えばネットワークエミュレータを用いて予め取得することができる。クライアントシミュレータ30Sは、シミュレーション結果をサーバシミュレータ10Sから取得すると、往復通信遅延と紐づけて格納する。これにより、本実施形態では、往復通信遅延ごとのシミュレーション結果をリファレンス結果テーブルとして保持することができる。往復通信遅延のバリエーションは例えば、5ms毎である。ただし、往復通信遅延の値は5ms毎に限らず、1ms毎に値を取得しておいてもよい。
【0087】
図47に、オンラインゲームのシミュレーションを実行するフローの一例を示す。本実施形態では、第1の実施形態における表示手順S04に代えて、比較結果表示手順S07を実行する。
【0088】
図48に、比較結果表示手順S07の一例を示す。比較結果表示手順S07では、クライアントシミュレータ制御部42は、以下の処理を実行する。
S711:クライアントシミュレータ制御部42は、クライアントシミュレータ30Sのコントロール送受信部41からサーバシミュレータ10Sのコントロール送受信部21にPingを行い、ネットワーク20の往復通信遅延を測定する。
S712:クライアントシミュレータ制御部42は、往復通信遅延毎のリファレンス結果テーブルを参照し、測定した往復通信遅延における平均命中回数を取得する。
S713:クライアントシミュレータ制御部42は、シミュレーション結果と平均命中回数を比較し、シミュレーション結果の命中回数が平均命中回数よりも小さい場合には、ユーザが利用しているネットワーク20が混雑している可能性がある旨を、シミュレーション結果と合わせて表示部44に表示する。
【0089】
例えば、
図49に示すように、シミュレーション結果の命中回数が60発であり、同一往復通信遅延のネットワークにおける平均命中回数が80発である場合、パケットのロスと遅延揺らぎが発生している可能性がある。そこで、クライアントシミュレータ制御部42は、「利用しているネットワークが混雑している可能性があります。」と表示する。これにより、ゲームの品質劣化が、ネットワーク20の経路長によるものなのか、ネットワーク20の混雑によるものなのかを切り分けて提示することができる。
【0090】
(実施形態例5)
図50に、本開示のシステム構成例を示す。本開示の品質測定システムは、複数のネットワーク側端末10#1、10#2、10#3を備える。
【0091】
図51に、クライアントシミュレータ30Sの機能ブロックの一例を示す。クライアントシミュレータ30Sは、実施形態例1に係るクライアントシミュレータ30Sにおいて、接続サーバリストをさらに備える。
【0092】
図52に、本実施形態のクライアント側動作パラメータテーブル及び接続サーバリストの一例を示す。接続サーバリストは、ユーザ端末30から接続可能なネットワーク側端末10の一覧が設置場所と共に格納されている。クライアント側動作パラメータテーブルの接続先サーバは、接続先サーバ設定手順で設定される。
【0093】
図53に、オンラインゲームのシミュレーションを実行するフローの一例を示す。本実施形態では、接続先サーバ設定手順S08、開始手順S01、実施手順S02、終了手順S03、結果収集手順S06、表示手順S04を順に実行する。
【0094】
接続先サーバ設定手順S08では、クライアントシミュレータ30Sのクライアントシミュレータ制御部42は、接続サーバリストを参照し、シミュレーションを行うサーバを選定する。例えば、ネットワーク側端末10#1~#3を順に選定する。そして、クライアントシミュレータ制御部42は、選定したネットワーク側端末10を、クライアント側動作パラメータテーブルに設定する。
【0095】
第1の実施形態と同様に、開始手順S01、実施手順S02及び終了手順S03を実行し、結果収集手順S06へ移行する。
【0096】
結果収集手順S06では、クライアントシミュレータ制御部42は、接続先サーバリストに記録されているすべてのネットワーク側端末10についてシミュレーション結果を取得しているか確認する。すべてのネットワーク側端末10についてシミュレーション結果を取得している場合は表示手順S04に進む。そうでない場合は接続先サーバ設定手順S08に戻る。
【0097】
表示手順S04では、クライアントシミュレータ制御部42は、すべてのシミュレーション結果を、表示部44を介してユーザに提示する。例えば、
図54に示すように、ネットワーク側端末10#1~10#3の命中率をそれぞれ表示する。これにより、オンラインゲームのネットワーク側端末10の位置によって、オンラインゲーム品質がどのように変わるかをユーザに提示することができる。
【0098】
上述の実施形態では、ネットワーク側端末10がユーザ端末30に提供するオンラインゲームがシューティングゲームである例を示したが、本開示の品質測定システム及び品質測定方法は任意のオンラインゲームに適用可能である。さらに、本開示の品質測定システム及び品質測定方法は、オンラインゲームに限らず、任意のアプリケーションに適用可能である。
【産業上の利用可能性】
【0099】
本開示はゲーム産業に適用することができる。
【符号の説明】
【0100】
10:ネットワーク側端末
10I、30I:通信インタフェース
10S:サーバシミュレータ
11:データ受信部
12:仮想世界演算部
13:サーバ行動生成部
14:データ送信部
15:命中回数記録部
21:コントロール送受信部
22:サーバシミュレータ制御部
23:周期入力部
24:命中判定経緯記録部
30:ユーザ端末
30S:クライアントシミュレータ
31:クライアント行動生成部
32:データ送信部
33:データ受信部
34:仮想世界更新部
35:処理フレーム記録部
41:コントロール送受信部
42:クライアントシミュレータ制御部
43:周期入力部
44:表示部