実施の形態1.
以下、図面を参照して、本発明の実施形態について説明する。本実施形態においては、携帯端末にインストールされて動作し、ゲーム機能を提供するアプリケーション・プログラム(以降、「ゲームアプリ」とする)が、ユーザのプレイに応じてプレイの評価値であるスコアを生成する。そのように生成されたスコアがネットワークを介してサーバに収集され、サーバにおいてスコアの集計が行われてランキングが生成されるゲームシステムにおいて、偽造されたスコアの検知を容易化するための構成が本実施形態に係る特徴的な構成である。
図1は、本実施形態に係るゲームシステムの運用形態を示す図である。図1に示すように、本実施形態に係るシステムは、携帯電話、スマートフォン、タブレット、PDA(Personal Digital Assistant)等の複数の携帯端末1a、1b、1c・・・(以降、総じて「携帯端末1」とする)、携帯端末1において実行されて生成されるスコアを集計してランキングを生成することによりゲーム大会を運営する大会運営サーバ2が、夫々インターネットなどのネットワーク回線を介して接続されて構成されている。
携帯端末1は、様々な機能を実現するために夫々専用の機能を有するアプリケーション・プログラム(以降、「アプリ」とする)がインストールされて動作可能となっている情報処理端末である。それらのアプリのうち、ユーザによるゲームプレイ機能を提供し、ゲームプレイによって得られたスコアを大会運営サーバ2に送信する機能を有するものが本実施形態に係るゲームアプリと呼ばれる。
本実施形態に係るゲームアプリは、ゲームプレイ機能に加えて、ゲームのプレイ映像を保存する機能や、そのプレイ映像の情報を大会運営サーバ2に送信する機能を有する。そのような機能は、システムの管理者によってSDK(Software Development Kit)として提供され、ゲームプレイ機能を提供するためのアプリケーションのコアモジュールに対して付加的に配置される。詳細は後述する。
大会運営サーバ2は、携帯端末1におけるユーザによるゲームプレイによって生成されたスコア情報を収集し、ランキングを生成して配信するゲームシステムの管理装置である。また、本実施形態に係る大会運営サーバ2は、携帯端末1から受信したプレイ映像をランキングと関連付けて配信する機能を有する。
具体的に、大会運営サーバ2によって提供されるランキングの表示画面においては、所定の順位以上にランクインしているスコアについて、そのスコアが獲得された際のゲームプレイのプレイ映像に対するリンクが、各順位のスコアに関連付けられて表示される。こいれにより、ランキングを閲覧するユーザは、高いスコアを獲得したユーザがどのようにゲームをプレイするのかを映像として閲覧することが可能となると共に、そのスコアが正当なプレイによって得られたものであるか否かを確認することが可能となる。このようなプレイ映像による不正行為の確認を可能とすることが、本実施形態に係る要旨の1つである。
次に、本実施形態に係る携帯端末1、大会運営サーバ等の情報処理装置のハードウエア構成について図2を参照して説明する。図2に示すように、本実施形態に係る情報処理装置は、一般的なサーバやPC(Personal Computer)等と同様の構成を含む。即ち、本実施形態に係る情報処理装置は、CPU(Central Processing Unit)10、RAM(Random Access Memory)20、ROM(Read Only Memory)30、SSD(Solid State Drive)40及びI/F50がバス80を介して接続されている。また、I/F50にはLCD(Liquid Crystal Display)60及び操作部70が接続されている。
CPU10は演算手段であり、情報処理装置全体の動作を制御する。RAM20は、情報の高速な読み書きが可能な揮発性の記憶媒体であり、CPU10が情報を処理する際の作業領域として用いられる。ROM30は、読み出し専用の不揮発性記憶媒体であり、ファームウエア等のプログラムが格納されている。SSD40は、情報の読み書きが可能な不揮発性の記憶媒体であり、OS(Operating System)や各種の制御プログラム、アプリケーション・プログラム等が格納される。尚、SSD40に替えてHDD(Hard Disk Drive)を用いることも可能である。
I/F50は、バス80と各種のハードウエアやネットワーク等を接続し制御する。LCD60は、ユーザが情報処理装置の状態を確認するための視覚的ユーザインタフェースとしての表示装置である。操作部70は、キーボードやマウス等、ユーザが情報処理装置に情報を入力するためのユーザインタフェースである。尚、本実施形態に係る大会運営サーバ2は、ユーザが直接操作することの無いサーバとして運用されるため、LCD60や操作部70等のユーザインタフェースは省略可能である。
このようなハードウエア構成において、ROM30に格納されたプログラムや、SSD40若しくは図示しない光学ディスク等の記憶媒体からRAM20にロードされたプログラムに従ってCPU10が演算を行うことにより、ソフトウエア制御部が構成される。このようにして構成されたソフトウエア制御部と、ハードウエアとの組み合わせによって、本実施形態に係る携帯端末1、大会運営サーバ2の機能を実現する機能ブロックが構成される。
次に、携帯端末1の機能構成について説明する。図3は、本実施形態に係る携帯端末1の機能構成を示すブロック図である。図3に示すように、本実施形態に係る携帯端末1は、コントローラ100、ユーザI/F101及びネットワークI/F102を含む。また、コントローラ100は、ユーザI/F制御部110、ネットワーク制御部120、基本制御部130及び複数のアプリケーションによって構成されるアプリ群140を含む。
ユーザI/F101は、図2において説明したLCD60及び操作部70等、ユーザが携帯端末1を操作するためのインタフェースである。ネットワークI/F102は、携帯端末1がネットワークを介して他の機器と通信するためのインタフェースであり、例えば無線通信のインタフェースが用いられる。コントローラ100は、上述したようにCPU10が様々なプログラムに従って演算を行うことにより構成され、携帯端末1の機能を実現するための各種の処理モジュールとして機能する。
ユーザI/F制御部110は、コントローラ100においてユーザI/F101を制御するための制御部であり、LCD60や、操作部70を制御するためのドライバソフトウエアを含む。ネットワーク制御部120は、ネットワークI/F102を制御するための制御部であり、ハードウエアであるネットワークI/F102を制御するためのドライバソフトウエアを含む。
基本制御部130は、コントローラ100において携帯端末1の基本的な機能を実現するためのソフトウエアモジュールであり、OSやミドルウエア等の基本的なソフトウエアモジュールである。アプリ群140は、携帯端末1において様々な機能を実現するためにインストールされるアプリケーションであり、本実施形態においては、ゲームアプリ141及び大会管理アプリ160を含む。
ゲームアプリ141は、ゲーム機能を提供するアプリケーションであり、複数種類のゲームの場合には夫々のゲームごとに複数インストールされる。大会管理アプリ160は、大会運営サーバ2によって管理されるゲーム大会に関する機能を提供するアプリケーションである。
ゲームアプリ141は、ゲームそのものの機能を担うアプリコアモジュール142及び大会運営サーバ2によって管理されるゲーム大会に対応した機能を提供する大会参加SDK150を含む。
大会参加SDK150は、ログイン処理部151、動画キャプチャ部152、スコア管理部153及び情報送信部154を含み、大会運営サーバ2によって開催されるゲーム大会に関するスコアの処理を行うスコア処理プログラムである。ログイン処理部151は、大会運営サーバ2によって管理されるゲーム大会に参加するため、大会運営サーバ2に対するログイン機能を提供する。動画キャプチャ部152は、ユーザがアプリコアモジュール142の機能によって提供されるゲームをプレイする際、そのプレイによってLCD60等の表示部に表示される画面をプレイ映像として取得し、SSD40等の記憶装置に記憶させる。
スコア管理部153は、ユーザがアプリコアモジュール142の機能によって提供されるゲームをプレイすることにより、そのプレイの評価値として生成されたスコアの情報をアプリコアモジュール142から取得する。また、スコア管理部153は、大会運営サーバ2において管理されているランキング情報の取得やランキング表の表示機能を担う。
情報送信部154は、大会運営サーバ2に対して各種の情報を送信する。情報送信部154が送信する情報には、ログイン処理部151によるログイン機能においてやり取りされるログイン情報、スコア管理部153がアプリコアモジュール142から取得したスコア情報、動画キャプチャ部152が取得したプレイ映像の情報等が含まれる。
大会管理アプリ160は、図3に示すようにサインアップ処理部161、ログイン処理部162及びスコア管理部163を含む。サインアップ処理部161は、ユーザが大会運営サーバ2にユーザ登録を行うための機能を提供する。
ログイン処理部162は、ユーザが大会管理アプリ160を介して大会運営サーバ2にアクセスし、大会運営サーバ2によって提供される各種の情報を閲覧するためのログイン機能を提供する。スコア管理部163は、ユーザが大会管理アプリ160を介して大会運営サーバ2にアクセスし、大会運営サーバ2によって提供される各種の情報を閲覧するための機能を提供する。
次に、本実施形態に係る大会運営サーバ2の機能について図4を参照して説明する。図4に示すように、本実施形態に係る大会運営サーバ2は、コントローラ200及びネットワークI/F201を含む。ネットワークI/F201の機能は、図3において説明したネットワークI/F102と同様であり、大会運営サーバ2がネットワークを介して他の機器と通信するためのインタフェースである。ネットワークI/F201としては、例えばEthernet(登録商標)、USB(Universal Serial Bus)等のインタフェースが用いられる。
コントローラ200は、大会運営サーバ2によるゲーム大会の運営機能を担い、図2において説明したように各種のプログラムに従ってCPU10が演算を行うことにより構成される。尚、コントローラ200も、携帯端末1のコントローラ100と同様に、ネットワークI/F201を制御するための制御部であるネットワーク制御部220を含む。
ランキング処理部230は、各携帯端末1においてユーザがゲームをプレイすることにより生成されたスコアの情報を収集してランキング処理を行う。そのため、ランキング処理部230は、情報入出力部231、順位確認部232及び情報更新部233を含む。
情報入出力部231は、夫々の携帯端末1から大会運営サーバ2に対して送信されたスコアの情報を取得する。また、情報入出力部231は、各携帯端末1からのランキング情報の要求に応じて、ランキングDB235の情報に基づいてランキング画面を表示するための情報を生成して送信する。
順位確認部232は、ランキングDB235を参照し、情報入出力部231が取得したスコアが現在のランキング中で何位にランクインするかを確認する。そして、確認された順位が所定の閾値順位よりも上位であれば、動画管理部240に対してプレイ映像の保存が必要であることを通知する。
情報更新部233は、順位確認部232による確認結果に基づき、情報入出力部231が取得したスコアの情報をスコアDB234に格納すると共に、ランキングDB235の情報、即ちスコアのランキングを更新する。
図5は、スコアDB234の例を示す図である。図5に示すように、スコアDB234は、“スコアID”、“ユーザID”、“スコア”、“スコア日時”、“動画パス”の情報を含む。“スコアID”は、夫々のスコアを識別する識別情報である。“ユーザID”は、ゲームプレイによりそのスコアを獲得したユーザを識別する識別情報である。“スコア”は、そのスコアの値そのものである。“スコア日時”は、そのスコアが獲得された日時である。“動画パス”は、そのスコアについてプレイ映像が取得された場合に、動画DB241に格納されているファイルパスを示す。
図6は、ランキングDB235の例を示す図である。図6に示すように、ランキングDB235は、“順位”、“スコアID”、“ユーザID”、“スコア”、“動画パス”の情報を含む。“順位”は、そのスコアの順位を示す。“スコアID”はそのスコアを識別する識別情報であり、図5の“スコアID”に対応する。
“ユーザID”は、そのスコアを獲得したユーザの識別情報であり、図5の“ユーザID”に対応する。“スコア”は、そのスコアの値そのものであり、図5の“スコア”に対応する。“動画パス”は、そのスコアについてのプレイ映像が格納されているファイルバスであり、図5の“動画パス”に対応する。
尚、大会運営サーバ2は、異なる複数のゲームについて並行して大会を運営している場合がある。その場合、図6に示すランキングDB235の情報は、夫々のゲーム毎に保持されている。図6に示す情報が、夫々の携帯端末1から送信されたスコアの情報が順位付けされて生成されたランキングの情報である。
動画管理部240は、携帯端末1において保存されたプレイ映像に関する機能を提供する。例えば、動画管理部240は、上述したように順位確認部232からの通知を受け、対象のスコアが生成された携帯端末1に対して、そのスコアが取得されたプレイのプレイ映像の送信を要求する。
そして、要求に応じて送信されたプレイ映像の情報を取得し、動画DB241に格納する。即ち、動画管理部240が、プレイ映像要求部及び映像管理部として機能する。そのようにして動画DB241にプレイ映像が格納されると、動画管理部240は順位確認部232に対してプレイ映像が得られたことを通知する。これにより、順位確認部232は、スコアDB234への対象スコアの格納を許可し、情報更新部233にそれを通知する。
通報管理部250は、ランキングに表示されている各スコアに対しての不正行為の通報を管理する機能を提供する。本実施形態に係るゲームシステムにおいて、各携帯端末1は大会参加SDK150や大会管理アプリ160の機能により、ランキングDB235に格納されているランキングの情報を、ネットワークを介して取得して表示することが出来る。
そのようにして表示されたランキングの画面においては、ランキング中の夫々のスコアに対して、そのスコアが生成された際のゲームプレイのプレイ映像として、動画DB241に格納されているプレイ映像が関連付けられる。従って、各ユーザは、プレイ映像を視聴することにより、夫々のスコアが正当なプレイによって得られたものか、不正により得られたものかを判断することが可能である。
そして、大会運営サーバ2は、そのようにして不正であると判断されたスコアに対する通報機能を提供する。通報管理部250は、そのようにして各ユーザにより送信された通報の情報を取得し、通報DB251に格納する。
図7は、通報DB251の例を示す図である。図7に示すように、通報DB251は、“通報ID”、“スコアID”、“通報者ID”、“通報日時”、“理由”の情報を含む。“通報ID”は、1件毎の通報を識別する識別情報である。“スコアID”は、通報の対象となっているスコアを識別する識別情報であり、図5、図6の“スコアID”に対応する。
“通報者ID”は、通報を行ったユーザを識別する識別情報である。“通報日時”は、その通報の情報が通報管理部250によって取得された日時を示す情報である。“理由”は、その通報について、通報者により入力された通報の理由を示す情報であり、不正の内容が記述された情報となる。
ユーザ管理部260は、本実施形態に係るゲームシステムを利用するユーザの管理を行う機能を提供する。例えば、ユーザ管理部260は、新規ユーザがサインアップを行う際に、ユーザ登録を受け付けて“ユーザID”を発行する。また、登録済みのユーザがシステムにログインする際、携帯端末1からログイン情報を取得し、ユーザDB261に格納されているパスワードとの照合を行う。
図8は、ユーザDB261の例を示す図である。図8に示すように、ユーザDB261は“ユーザID”、“パスワード”、“氏名”、“メールアドレス”、“口座情報”の情報を含む。“ユーザID”は、システムを利用するユーザを識別する識別情報であり、図5、図6の“ユーザID”や、図7の“通報者ID”に対応する。“パスワード”は、夫々のユーザを認証するための認証情報である。“氏名”は、夫々のユーザの氏名である。“メールアドレス”は、夫々のユーザのメールアドレスである。“口座情報”は、夫々のユーザの金融口座の情報であり、ランキングによって支払われる賞金の振込み等に用いられる。
次に、本実施形態に係るシステム全体の動作について、図9のシーケンス図に基づいて説明する。本実施形態に係るゲームシステムの利用に際して、ユーザは自身の携帯端末1に大会管理アプリ160をインストールし、大会管理アプリ160を操作することによってサインアップのための操作を行う。その際、携帯端末1には図10に示すようなサインアップ画面が表示される。
図10に示すような画面に対してユーザが必要な情報を入力して「送信」ボタンをタップすると、大会管理アプリ160のサインアップ処理部161が、入力された情報を大会運営サーバ2に対して送信する。これにより、大会運営サーバ2においては、ユーザ管理部260がその情報を受信し、新規のユーザIDを発行して受信した情報と共にユーザDB261に格納する。これにより、図8において説明したユーザD261の情報が新規に格納され、サインアップが完了する(S901)。
大会管理アプリ160の機能によりサインアップが完了すると、次にユーザはランキングに参加するゲームのプレイに移る。そのため、ユーザはゲームアプリ141を起動して図11に示すようなログイン画面を表示させる。図11に示すような画面に対してユーザが“ユーザID”及び“パスワード”を入力して「送信」ボタンをタップすると、アプリコアモジュール142がログイン操作を受け付け、入力された情報を大会参加SDK150に受け渡す(S902)。
大会参加SDK150においては、ログイン処理部151がそれらの情報を取得してログイン処理を行う(S903)。S902においては、情報送信部154が大会運営サーバ2に対してログイン情報を送信し、ログイン処理部151が、大会運営サーバ2からログイン認証の結果の通知を取得する。
尚、ゲームシステムに対するログインにおいて既存のSNS(Social Networking Service)サービスのアカウント情報を用いることも可能である。その場合、図10や図11に示すような入力画面は省略可能であり、替わりに既存SNSとの連携認証画面が表示される。
ログイン認証に成功したことを示す結果を取得すると、ログイン処理部151はアプリコアモジュール142に対してログインが完了したことを示す通知を行う(S904)。これにより、ゲームプレイによって生成されたスコアによるゲーム大会への参加が可能な状態となる。
ログインが完了すると、アプリコアモジュール142は、図12に示すようなプレイ開始画面を表示部に表示させる。図12に示す画面においてユーザが「プレイ開始」ボタンをタップすると、アプリコアモジュール142によって提供されるゲーム機能により、ユーザが携帯端末1を操作してゲームを行うことが可能になる。
「プレイ開始」ボタンがタップされることによりゲームプレイ開始の操作を認識すると、アプリコアモジュール142はゲーム処理を開始すると共に、大会参加SDK150に対してゲームプレイ開始の通知を行う(S905)。ゲームプレイ開始の通知を受けた大会参加SDK150においては、動画キャプチャ部152が、アプリコアモジュール142によって表示部に表示させるために出力される画面の情報の取得、即ちキャプチャを開始する(S906)。
本実施形態に係る動画キャプチャ部152は、アプリコアモジュール142が出力する画面の情報を、静止画として所定のフレームレートで取得する。例えばフレームレートが24fps(Frames Per Second)の場合、動画キャプチャ部152は、アプリコアモジュール142が出力する画面の情報を約0.042秒毎に取得して、SSD40に格納する。
この際、動画キャプチャ部152は、格納する静止画の情報に対して格納する順番に番号を付与する。これにより、番号の順に所定のフレームレートで静止画を切り替え表示することにより、所定のフレームレートの動画情報として視聴することが可能となる。尚、このような連続した静止画によるプレイ映像の格納は一例であり、例えば連続して取得した画像データを、所定のコーデックによりエンコードした動画情報として保存しても良い。
また、本実施形態に係る動画キャプチャ部152は、上述した所定フレームレートでの静止画情報の保存に加えて、アプリコアモジュール142が出力する音声情報の格納も行う。音声情報の格納については、既存の音声情報の保存方法を用いることが可能である。
アプリコアモジュール142によって提供されるゲームのユーザによるプレイが完了すると、アプリコアモジュール142はユーザのプレイ内容に応じたプレイの評価値であるスコアを生成し、図13に示すようなゲーム終了画面を表示させる。図13に示すように、ゲーム終了画面にはそのゲームプレイによってユーザが獲得したスコアが表示される。また、アプリコアモジュール142は、1回のゲームプレイが終了すると、大会参加SDK150に対してプレイ終了通知を行う(S907)。
プレイ終了通知を受けた大会参加SDK150においては、動画キャプチャ部152が、S906において開始したキャプチャを終了する(S908)。これにより、ゲームプレイの内容が撮影された動画情報であるプレイ映像が生成され、携帯端末1のSSD40に記憶される。S906、S908において、動画キャプチャ部152が、プレイ映像取得部として機能する。
続いて大会参加SDK150においては、スコア管理部153が、S907において終了したゲームプレイによって得られたスコアの情報をアプリコアモジュール142から取得する(S909)。そして、情報送信部154が大会運営サーバ2に対してスコア情報を送信する(S910)。S910においては、図14に示すように、ゲームをプレイしているユーザを識別する“ユーザID”及び“スコア”の情報が送信される。
尚、異なる複数のゲームについてランキングが管理されている場合には、S910において送信される情報には、図14に示す情報に加えてゲームの種類を識別する情報が含まれる。S910において、情報送信部154がスコア送信部として機能する。
携帯端末1からスコア情報を受信した大会運営サーバ2においては、ランキング処理部230がランキング処理を行う(S911)。S911のランキング処理には、受信したスコアの順位の確認や、必要に応じたプレイ映像の取得及び解析処理が含まれる。詳細は後述する。
S910においてスコアを送信した携帯端末1においては、大会参加SDK150のスコア管理部153が、S911の処理により更新されたランキングの情報を大会運営サーバ2から取得する(S912)。そして、スコア管理部153は、取得したランキングの情報に基づいてランキング表を携帯端末1の表示部に表示させる(S913)。これにより、ゲームプレイによって得られたスコアの順位をユーザが確認することが可能となる。
また、任意のタイミングにおいてユーザが大会管理アプリ160を操作し、ランキングの表示を行うことも可能である。その場合、ユーザによる操作に応じて、大会管理アプリ160のスコア管理部163が、ランキングの情報を大会運営サーバ2から取得する(S914)。そして、スコア管理部163は、取得したランキングの情報に基づいてランキング表を携帯端末1の表示部に表示させる(S915)。
尚、S914、S915の処理の前提としては、一般的に大会管理アプリ160でのログイン処理が必要となる。その場合、大会管理アプリ160のログイン処理部162の機能により表示された図11に示すような画面に対してユーザが情報を入力して「送信」ボタンをタップする。これにより、S903と同様にログイン処理が行われる。
図15は、S913やS915において表示されるランキング画面の例を示す図である。図15に示すように、本実施形態に係るランキング画面は、図6に示す情報に基づいて表示内容が構成される。ここで、夫々のランキング順位の表示欄には、プレイ動画のサムネイル表示部300が含まれる。そのサムネイル表示部300に表示されるサムネイル画像は、夫々のランキングに対応するスコアに関連付けられている“動画パス”に基づき、プレイ映像を構成する複数の静止画のいずれかが取得されて表示される。
上述したように、図15に示すランキング画面を表示するための情報は情報入出力部231によって生成される。即ち、情報入出力部231がランキング画面生成部として機能する。情報入出力部231は、図6に示す情報を取得し、図15に示すような画面のフォーマットの情報に図6に示す情報を適用することによって表示情報を生成する。また、情報入出力部231は、“動画パス”の情報に基づいて動画DB241からサムネイル画像の情報を取得し、表示情報に反映する。
次に、図9のS911におけるランキング処理の詳細な動作について、図16を参照して説明する。図9のS910の処理により情報入出力部231がスコアの情報を取得する(S1601)。S1601においては、情報入出力部231がスコア取得部として機能する。情報入出力部231がスコアの情報を取得すると、順位確認部232がスコアの情報に基づいてランキングDB235にアクセスし、受信されたスコアの現在のランキングにおける順位をチェックする(S1602)。
S1602において順位確認部232は、図6に示す“スコア”の情報を参照し、受信したスコアと同一の値があればその“順位”を取得する。また、同一の値がなければ、受信したスコアよりも低い値の中で最も大きな値を抽出し、その“順位”を取得する。そして、そのようにして取得した順位が、所定の閾値順位よりも上位であるか否か確認する(S1603)。
S1603において判断される閾値順位とは、不正なプレイを排除する必要がある程度に、ランキングにおける上位の順位を判断するための閾値である。この閾値は例えばランキングの結果賞金や商品等のメリットが、そのスコアを獲得したユーザに提供される順位である。
S1603の判断の結果、受信したスコアが所定の閾値順位よりも上位であれば(S1603/YES)、順位確認部232は、受信したスコアをスコアDB234に格納するに際しては、不正の排除が必要であると判断する。その場合、順位確認部232は、動画管理部240に対して図14に示すユーザID、即ち、不正を排除する対象のスコアを獲得したユーザの識別情報を通知する。
これにより、動画管理部240は、受信したユーザIDによって識別されるユーザの携帯端末1に対して、ネットワークを介してプレイ映像の送信を要求する(S1604)。S1604においては、S1602において確認された順位が併せて通知される。
プレイ映像の要求を受信した携帯端末1においては、スコア管理部153がその要求を受信し、図17に示すような動画要求画面を表示部に表示させる。図17に示すような画面においてユーザが「動画送信」をタップすることにより、情報送信部154は、動画キャプチャ部152によってSSD40に格納されたプレイ映像の情報を大会運営サーバ2に送信する。ここでは、情報送信部154がプレイ映像送信部として機能する。他方、ユーザにより「キャンセル」がタップされた場合、情報送信部154は、動画送信を拒否することを大会運営サーバ2に通知する。
プレイ映像の要求を行った動画管理部240は、上述した「キャンセル」のタップにより送信された動画送信の拒否通知を受信した場合(S1605/NO)、対象のスコアをスコアDB234に格納することなく破棄し(S1610)、処理を終了する。他方、プレイ映像の情報を受信した場合(S1605/YES)、動画管理部240は受信したプレイ映像を動画DB241に格納すると共に、そのプレイ映像を解析して動画チェック処理を行う(S1606)。
S1606の動画チェック処理は、受信した動画が不正なものではないか否かを確認する処理であり、「動画チェックOK」、「動画チェックNG」のいずれかが判断される。即ち、S1606においては、動画管理部240が映像解析部として機能する。詳細は後述する。S1606のチェックの結果、動画チェックNGであれば(S1607/NO)、動画管理部240は、対象のスコアをスコアDB234に格納することなく破棄し(S1610)、処理を終了する。
換言すると、本実施形態においては、動画チェックNGとなったプレイ映像に係るスコアについては、その解析結果に応じて順位付けの対象外とされる。これにより、人間が動画を視聴することによる確認を行うことなく、明らかな不正であるスコアについては除外されるため、動画確認のための管理者の負担を軽減することが出来る。
他方、動画チェックOKであれば(S1607/YES)、動画管理部240は、動画チェックOKとなったことを順位確認部232に通知する。この際、動画DB241においてプレイ映像が格納されたファイルパスも通知される。動画チェックOKの通知を取得した順位確認部232は、図14に示す情報や、動画管理部240から取得した動画パスの情報を情報更新部233に入力し、情報更新を要求する。
順位確認部232から情報更新の要求を受けた情報更新部233は、新たにスコアIDを生成して対象のスコアをまずはスコアDB234に格納する(S1608)。そして、新たなスコアが格納されたスコアDB234に基づいてランキングの更新処理を行い(S1609)、処理を終了する。S1609において、情報更新部233がランキングの情報を生成するランキング生成部として機能する。
尚、S1603において、新たに取得されたスコアが閾値順位よりも下位であった場合(S1603/NO)、仮にそのスコアが不正なものであったとしてもランキングに大きな影響は与えられないと判断される。その場合、順位確認部232は、情報更新部233に情報更新要求を行いS1608以降の処理が実行される。
次に、S1606の動画チェック処理の詳細な動作について図18を参照して説明する。動画管理部240は動画チェック処理を開始すると、まず携帯端末1から取得したプレイ映像の情報形式を解析し、予め定められた情報形式と一致するか否か確認する(S1801)。図19は、動画の情報形式のチェック項目を示す図である。
“ビデオコーデック”は、プレイ映像の動画エンコード方式を示す情報である。“画像サイズ”は、プレイ映像の画像サイズを示す情報である。“フレームレート”は、プレイ映像の動画のフレームレートを示す情報である。“映像ビットレート”は、プレイ映像の動画の情報量を示す情報である。
“音声コーデック”は、プレイ映像の音声エンコード方式を示す情報である。“サンプリングレート”は、プレイ映像の音声のサンプリングレートを示す情報である。“音声ビットレート”は、プレイ映像の音声の情報量を示す情報である。動画管理部240は、図19に示す各項目を、取得したプレイ映像を解析することによって抽出し、定められた情報と比較する。そして、1つでも不一致の項目がある場合、動画形式エラーであり(S1801/YES)、動画チェックNGと判断する(S1802)。
抽出した項目の情報がすべて一致し、動画形式エラーではない場合(S1801/NO)、動画管理部240は、次に、同一の動画が動画DB241に既に格納されていないか否かを判断する。そのため、動画管理部240は、取得したプレイ映像と、動画の時間の長さが同一であるプレイ映像が動画DB241に格納されていないか否か確認する(S1803)。
S1803の処理は、チェック対象のプレイ映像の長さをキーとして、動画DB241に格納されているプレイ映像の長さを検索する処理である。そのため、動画DB241においては、格納された夫々のプレイ映像について、再生時間の長さが検索可能なように情報が格納されている。尚、不正行為の態様によっては、動画の長さをわずかに変えることも可能であるため、S1803におけるプレイ映像の長さの検索に対象については、完全に長さが同一であるものに限らず、ある程度の幅を持たせても良い。
S1803の判断の結果、時間の長さが同一であるプレイ映像が動画DB241から抽出されなければ(S1803/NO)、同一のプレイ映像が動画DB241に格納されている可能性はないため、動画管理部240は動画チェックOKとして(S1806)処理を終了する。S1803の判断の結果、時間の長さが同一であるプレイ映像が動画DB241から抽出された場合(S1803/YES)、同一のプレイ映像が既に動画DB241に格納されている可能性があるため、動画管理部240は次の処理を行う。
次の処理として、動画管理部240は、チェック対象のプレイ映像に関するスコアが、長さが同一であるプレイ映像に係るスコアと同一であるか否か確認する(S1804)。そのため、動画管理部240は、順位確認部232に対して確認対象のプレイ映像、即ち、S1803において抽出されたプレイ映像を通知する。これにより、順位確認部232は、通知を受けたプレイ映像が関連付けられているスコアをランキングDB235から取得し、処理中のスコアと同一であるか否かを判断して動画管理部240に通知する。
尚、S1804の処理は、動画管理部240がランキングDB235またはスコアDB234にアクセスして、S1803において抽出されたプレイ映像のスコアを確認することにより行っても良い。S1804の結果、スコアが同一であった場合(S1804/YES)、同一のプレイ映像が既に動画DB241に格納されている可能性があるため、動画管理部240は次の処理を行う。
次の処理として、動画管理部240は、チェック対象のプレイ映像のハッシュ値が、長さが同一であるプレイ映像のハッシュ値と同一であるか否か確認する(S1805)。そのため、動画管理部240は、チェック対象のプレイ映像及び長さが同一であるプレイ映像夫々のハッシュ値を計算し、両者を比較する。ハッシュ値とは、プレイ映像の情報を所定の情報量に要約した要約情報、即ちダイジェスト値であり、それを求めるための計算に際しては、既存の様々な方法を用いることが可能である。
このように、本実施形態に係る動画チェック処理においては、解析対象のプレイ映像の長さと同一の長さのプレイ映像が既に動画DB241に格納されており、且つそのプレイ映像に係るゲームプレイによって得られたスコアの値が同一である場合にのみ、最終的な確認としてハッシュ値の解析を行う。そのため、ハッシュ値の計算を行う機会を低減することが可能であり、大会運営サーバ2の処理負荷を低減することが出来る。
S1805の結果、ハッシュ値が同一であった場合(S1805/YES)、同一のプレイ映像が既に動画DB241に格納されていることとなる。そのため、今回登録対象となっているスコアは、既にランキングに登録されているスコアと同一のスコアについて、プレイ映像がコピーされて登録されるものであると判断できるため、動画管理部240は動画チェックNGであると判断する(S1802)。
他方、長さが同一であるプレイ映像が抽出されなかった場合(S1803/NO)やスコアが同一ではなかった場合(S1804/NO)、動画管理部240は、同一のプレイ映像は動画DB241には格納されておらず動画チェックOKと判断する(S1806)。
また、長さ及びスコアは同一であるが、ハッシュは一致しなかった場合(S1805/NO)、スコア登録は認めた上で、同一のプレイ映像が登録されていないか否か詳細な確認が必要である。そのため、動画管理部240は、動画チェックOKと判断すると共に、通報DB251への情報登録のための処理を行う(S1807)。
S1807において、動画管理部240は、通報管理部250に対して情報登録要求を行う。その際、動画管理部240は図7に示す“スコアID”、“通報日時”及び“理由”の通知が必要である。“通報日時”は現在時刻を採用し、“理由”は「長さ及びスコアが同一である動画がある」等の定められた文字情報が採用される。
他方、“S1805”の判断時において未だ“スコアID”は定まっていないため、動画管理部240は、図16のS1608の処理の後に情報更新部233からスコアIDの通知を受けた後に通報管理部250に対して情報登録要求を行う。
尚、本実施形態においては、S1807の処理において登録される情報は通報DB251に登録される場合を例とするが、検証を要するスコアとして登録されれば良く、通報DB251とは異なる情報として登録しても良い。
次に、S1609のランキング更新処理について図20を参照して説明する。図20に示す処理は、情報更新部233による処理である。図20に示すように、情報更新部233は、S1608において新たに保存したスコアのユーザIDと同一のユーザIDがランキングDB235に存在するか否か確認する(S2002)。S2002の処理は、1人のユーザの複数のスコアが別個にランキングに反映されることを防ぐために行われる。
S2002の判断の結果、同一ユーザが抽出された場合(S2002/YES)、抽出された同一ユーザのスコアをチェックし(S2003)、そのスコア、即ち既に格納されている旧スコアと、新たに格納された新スコアとを比較する(S2004)。S2004の判断の結果、旧スコアの方が高い値である場合(S2004/NO)、そのユーザのスコアが更新されていないため、情報更新部233は、ランキングの更新処理は不要であると判断してそのまま処理を終了する。
他方、新スコアの方が高い値である場合(S2004/YES)、そのユーザのスコアが更新されているため、情報更新部233は、ランキングの更新処理が必要であると判断する。その場合、情報更新部233は、ランキングDB235の旧スコアを新スコアで書き換え(S2005)、ランキングDBのデータを“スコア”の降順で並び替え、その並び順に“順位”を更新して(S2006)、処理を終了する。
S2002の判断の結果、同一のユーザが抽出されなかった場合(S2002/NO)、既に格納されているスコアと入れ替える必要はないため、情報更新部233は、そのままS2006の処理を実行する。このような処理により、本実施形態に係るランキング更新処理が完了する。
次に、本実施形態に係るランキング閲覧の動作について説明する。図21は、図9のS912やS914においてランキング閲覧要求を受けた大会運営サーバ2における情報入出力部231の動作を示すフローチャートである。図21に示すように、まずは大会運営サーバ2に送信されたランキング閲覧要求を情報入出力部231が受信する(S2101)。
ランキング閲覧要求を受信した情報入出力部231は、ランキング閲覧が要求されている対象のゲームについて、スコア登録の締め切りまでの残り期間が所定の閾値よりも短いか否か確認する(S2102)。S2102の確認のため、情報入出力部231は、図22に示すように、ランキング管理対象のゲーム毎にスコア登録の締め切りタイミングを占めす情報を保持している。
図22に示す“ゲームID”は、大会運営サーバ2においてランキングが管理されている複数のゲームを夫々識別する識別情報である。大会運営サーバ2において複数のゲームについてのランキングが管理されている場合、S910においては、図14に示す情報に加えて図22の“ゲームID”に対応する識別情報が通知される。
S2102の判断の結果、残り期間が閾値よりも長い場合(S2102/NO)、情報入出力部231は、ランキングDB235から対象のゲームについてのランキング情報を取得し、図15に示すような画面を表示するための情報を生成して、ランキング閲覧の要求元に対して送信する(S2104)。これにより、ランキング閲覧要求の要求元である携帯端末1において、図15に示すような画面が表示される。
他方、S2102の判断の結果、残り期間が閾値よりも短い場合(S2102/YES)、情報入出力部231は、ランキングDB235から対象のゲームについてのランキング情報を取得し、図15に示すような画面において“スコア”の値がマスクされて非表示となっている画面を表示するための情報を生成して、ランキング閲覧の要求元に対して送信する(S2103)。これにより、ランキング閲覧要求の要求元である携帯端末1において、図15に示すような画面において“スコア”の値がマスクされて非表示となった画面が表示される。
このようなスコア値のマスク処理は、ゲーム大会におけるスコア登録の締め切り直前に、不正行為によって高順位を狙ったスコアが登録されることを防ぐために行われる。以下、その趣旨について説明する。
ゲーム大会が開催中であり、スコア登録が可能な期間においては、1位等の高順位となるスコアが最終的にどの程度の点数になるかを正確に予測することは困難である。従って、不正行為により高順位を取得する場合、不正行為を行うユーザは“スコア”の値をなるべく高い値とすることになるが、値が高過ぎれば不正行為を疑われる可能性も高くなる。
従って、不正行為を行うユーザは、スコア登録の締め切り直前において、1位等の高順位を獲得でき、且つ高過ぎない値のスコアを登録するような行為を望む場合がある。これに対して、本実施形態に係るシステムにおいては、スコア登録の締め切りまでの期間が所定の閾値よりも短くなると、ランキング表の表示に際して“スコア”の値をマスクして非表示とするため、上述したような不正行為を防ぐことが出来る。
このように、スコア登録の締め切り前の所定期間において各順位にランキング登録されているスコアの値が非表示とされることにより、不正行為を行うユーザは、1位等の高順位を獲得し且つ高過ぎて不正行為を疑われない程度の値のスコアを選んでスコア登録を行うことが困難となる。これにより、不正行為によるランキング操作を困難にすることが出来る。
次に、本実施形態に係る通報DB251への情報登録処理、即ち通報処理について説明する。本実施形態に係るゲームシステムにおける通報処理は、図15に示すランキング画面を介して閲覧可能となるプレイ映像の視聴を経て行われる。図23は、本実施形態に係るプレイ映像の視聴画面を示す図である。図15に示すランキング画面においてユーザがサムネイル表示部300をタップすることにより、図23に示すプレイ映像の視聴画面が表示される。
図23に示すプレイ映像の視聴画面は、大会参加SDK150を介して図15に示すランキング画面が閲覧されている場合には、スコア管理部153による機能により表示される。他方、大会管理アプリ160を介して図15に示すランキング画面が閲覧されている場合には、スコア管理部163による機能により表示される。
スコア管理部153、スコア管理部163は、サムネイル表示部300がタップされた場合、サムネイル表示部300がタップされたプレイ映像の動画パスを指定したプレイ映像の要求を情報送信部154に送信させる。これにより、大会運営サーバ2においては、動画管理部240がプレイ映像の要求を受信し、指定された動画パスのプレイ映像を動画DB241から読み出して、図23に示すようなプレイ映像の表示画面を表示するための情報を、要求元である携帯端末1に送信する。
このように、ランキング画面を介して夫々の順位に順位付けされているスコアが獲得された際のゲームプレイのプレイ映像が視聴可能なため、ゲームプレイの高度なテクニックに係る映像がユーザ間で共有され、ユーザに楽しさを提供することが可能である。本実施形態においては、このようにユーザに対して楽しさを提供するための仕組みが、ゲームの大会における不正防止の仕組みとしても機能する。
プレイ映像の視聴画面においては、図23に示すように「通報」ボタン400が表示されている。ユーザはプレイ映像を視聴した上で、獲得スコアとプレイ映像との不整合等の不審な点を感じた場合に、「通報」ボタン400をタップする。
「通報」ボタン400がタップされると、プレイ映像の視聴画面の表示処理を行っているスコア管理部153またはスコア管理部163は、図24に示すような通報画面を携帯端末1の表示部に表示させる。図24に示すように、通報画面には理由記入欄500が表示されており、ユーザは携帯端末1の操作部を操作し、理由記入欄500に対して文字情報を入力することにより、対象のスコアを不審に感じた理由を入力する。
そして、ユーザが図24に示す「送信」ボタンをタップすることにより、情報送信部154が、図25に示すような通報情報を大会運営サーバ2に対して送信する。これにより、大会運営サーバ2においては通報管理部250が図25に示す通報情報を受信し、通報DB251に新たなレコードとして登録する。これにより、図7に示すように通報DB251の情報が蓄積される。
図25に示すように、通報情報は“通報者ID”、“通報対象スコアID”及び“理由”の情報が含まれる。“通報者ID”は、通報を行ったユーザのユーザIDである。“通報対象スコアID”は、図23においてプレイ映像が閲覧された対象のスコアのスコアIDである。“理由”は図24に示す通報画面において入力された文字情報である。
このような通報機能を設けることにより、大会運営サーバ2の管理者は、動画DB241に登録されたプレイ映像のすべてを自発的に確認するのではなく、通報に基づいて確認するべきプレイ映像を判断することが可能となる。
以上説明したように、本実施形態に係るゲームシステムにおいては、大会運営サーバ2に対してスコアを登録するためのゲームのプレイに際して、大会参加SDK150の機能により、プレイ映像が保存される。そして、大会運営サーバ2にスコアが登録される際には、そのスコアが獲得されたゲームプレイの映像がスコアに関連付けて保存される。そのため、登録されたスコアが正当なプレイによって獲得されたものであるか否か、プレイ映像の動画を確認することによって検証することが可能となる。
プレイ映像である動画情報の偽造は、従来から用いられているようなゲームのプレイログの偽造に比べて非常に困難で面倒な作業である。従って、本実施形態に係るゲームシステムにおいては、ゲームプレイによって得られたものではない不正なスコアがランキングに反映されてしまうことを効果的に防ぐことができる。
また、大会運営サーバ2に登録されるすべてのスコアについてプレイ映像を保存しても良いが、その場合、そのために要する記憶容量が膨大なものとなる。これに対して、本実施形態においてプレイ映像の動画を確認することにより不正行為の検証が必要となるのは、ゲーム大会の結果に影響の大きい、高順位にランキングされるスコアのみである。従って、大会運営サーバ2は、受信したスコアが所定の閾値順位よりも上位である場合にのみ、スコアの送信元である携帯端末1に対してプレイ映像の送信を要求する。
最終的に不正行為の検証が必要になるのは、ゲーム大会のランキングのうち、賞金や賞品等のメリットがユーザに発生する順位である。従って、上述した閾値順位はランキングの結果によってユーザにメリットが発生する順位とすることが好ましい。
また、ゲーム大会が開始されてスコアが登録されていくと、より高いスコアが登録されることによって順位が更新されていく。そのため、大会開始当初に閾値順位よりもわずかに上位にランキングされたスコアは、スコア登録の締め切り時には閾値順位を下回っており、そのプレイ映像は不要なものとなっている可能性が高い。
従って、閾値順位は、スコア登録の締め切りまでの残り期間に応じて変化させることが好ましい。これにより、不正行為の検証に不要なプレイ映像が保存されることを防ぐことが出来る。図26は、大会運営サーバ2がスコア情報の登録を受け付ける受付期限、つまり締め切りまでの残り期間に応じた閾値順位の例を示す図である。図26においては、1位からn位までの順位において、賞金や賞品等のメリットが発生する場合を例としている。
図26に示すように、スコア登録の締め切りまでの残り期間が長い程、動画管理部240は、閾値順位を高順位として、高順位側の狭い範囲でのみプレイ映像を要求する。残り期間が短くなるに従って動画管理部240は閾値順位を下げていき、より広い範囲でプレイ映像を要求する。
そして、スコア登録の締め切りまでの残り期間が所定の期間に達した時点で、閾値順位をn位とする。このような処理により、不正を検証する必要のあるスコアについてはプレイ映像を保存しながら、検証の不要なスコアについてのプレイ映像の保存を省略し、記憶容量を効率的に利用することが可能となる。
また、本実施形態に係る大会運営サーバ2は、携帯端末1からプレイ映像を受信すると、図18において説明したような処理により動画チェックを行う。そして、動画の形式が異なる場合や、同一であると判断できるプレイ映像が既に格納されている場合には、動画チェックNGと判断し、スコアを登録せずに破棄する。これにより、大会運営サーバ2は、不正行為であることが確実なスコアについては登録を拒否し、人間による個別の確認を省略することが出来る。
本実施形態に係るゲームシステムにおけるランキングの信頼性を高めるセキュリティは、上述したように大会参加SDK150及び大会運営サーバ2の機能によって実現される。即ち、ゲーム本体であるアプリコアモジュール142に対して何らセキュリティ機能を求めることなく実現可能である。
従って、本実施形態に係るシステムによれば、ゲーム開発のネックとなるようなアプリコアモジュール142におけるセキュリティ機能の作り込みが不要であり、アプリコアモジュール142の開発を容易化することが可能である。
実施の形態2.
実施の形態1においては、大会参加SDK150がアプリコアモジュール142から所定のフレームレートで映像の情報を取得することにより、所定のフレームレートでプレイ映像を生成する場合を例として説明した。また、映像のサイズも予め定められており、そのために図19において説明したような動画の情報形式のチェックが可能である場合を例として説明した。
本実施形態においては、大会参加SDK150における動画キャプチャ機能が異なり、実施の形態1のような動画の情報形式によるチェックが不可能である場合を例として説明する。尚、実施の形態1と同様の符号を付す構成については、実施の形態1と同一または相当部を示すものとし、詳細な説明を省略する。
本実施形態に係る大会参加SDK150の動画キャプチャ部152は、アプリコアモジュール142が出力する表示情報、即ちゲーム画面の情報を受動的に取得する。即ち、動画キャプチャ部152が取得するプレイ映像のフレームレートは、アプリコアモジュール142がゲーム画面の表示情報を出力する際のフレームレートに対応したものとなる。
ここで、一般的なゲームアプリにおいて表示情報が出力される際のフレームレートは、固定されたものではなく可変である。これは、携帯端末1における処理負荷の状況により、対応可能なフレームレートが異なることや、プレイされているゲームの状態によって必要なフレームレートが異なるからである。
また、アプリコアモジュール142が出力するゲーム画面の画像サイズは、ゲームアプリ141がインストールされている携帯端末1のディスプレイサイズによって異なることが一般的である。これは、インストールされた携帯端末1に搭載されているディスプレイサイズに応じて最も効率的な処理を行うためである。
このような事情から、動画キャプチャ部152がアプリコアモジュール142から取得するゲームのプレイ映像の形式は、携帯端末1の仕様や、ゲームのプレイ状態に応じて異なることとなる。これに対して、動画キャプチャ部152が予め定められた形式にエンコードを行えば、実施の形態1における動画の情報形式に基づくチェックは可能であるが、そのようなエンコード処理は負荷が高く、携帯端末1において実行することは現実的ではない。
従って、本実施形態に係る動画キャプチャ部152は、アプリコアモジュール142がゲーム画面の表示情報を出力するフレームレートや画面サイズに応じたプレイ映像を生成して、大会運営サーバ2に送信する。このような前提において、S1606において好適な動画チェック処理を行うことが本実施形態に係る趣旨である。
図27は、本実施形態に係るシステム全体の動作を示すシーケンス図であり、図9に対応する。図27に示す通り、本実施形態に係るシステム全体の動作は、実施の形態1と概ね同様であるが、ゲームアプリ141におけるプレイ映像の取得の処理において処理が追加されている。
図27に示すように、S905においてゲームプレイが開始され、S906において動画のキャプチャが開始された後、ゲームプレイが進行すると、アプリコアモジュール142は、そのゲームプレイによって獲得された最終的なスコアを、携帯端末1のディスプレイに表示させる(S2701)。この際、アプリコアモジュール142は、画面上にスコアが表示されたことを大会参加SDK150に通知する。
スコア表示の通知をアプリコアモジュール142から受けた大会参加SDK150においては、動画キャプチャ部152が、キャプチャ中の動画におけるフレーム番号や、スコアが表示されている画面上の位置をメタデータとして生成して記憶する(2702)。
キャプチャ中の動画におけるフレーム番号は、例えば動画キャプチャ部152がアプリコアモジュール142から表示情報を取得する度にカウントを行い、S2701において通知を取得したタイミングにおけるカウント値を用いることが出来る。また、スコアが表示されている画面上の位置は、動画をキャプチャしている対象のゲームに応じて予め定められた位置の情報でも良いし、アプリコアモジュール142が大会参加SDK150に通知するようにしても良い。
このような処理により、大会参加SDK150が図16のS1604の要求に応じてプレイ映像の情報を送信する際には、図28に示すように、プレイ映像の動画データに加えて、“スコア表フレーム”及び“スコア表示位置”の付加情報がメタデータとして含まれる情報が送信される。
また、本実施形態に係る動画キャプチャ部152は、S908においてキャプチャを終了し、取得した各フレームのゲーム画面の情報をエンコードして動画データを生成すると、その動画データのハッシュ値を生成し、図28に示すように署名データとして付加する。この署名データも付加情報として用いられる。この署名データにより、大会運営サーバ2においては、受信した動画データが真に大会参加SDK150によって生成されたものであるか簡易的なチェックを行うことが可能となる。
次に、本実施形態に係る図16のS1606の動画チェック処理について、図29に基づいて説明する。図29の処理は、図18の処理に替えて実行される処理である。図29に示すように、動画管理部240は、まず解析対象のプレイ映像のハッシュ値を求め、図28に示すようにプレイ映像の情報に付加されている署名データと一致するか否か確認する(S2901)。
そのため、動画管理部240は、S2901において、大会参加SDK150の動画キャプチャ部152が署名データを生成する際に用いるハッシュ演算のアルゴリズムと同一のアルゴリズムに基づいてハッシュ値を求める。その結果、署名データが付加されていない場合や、算出されたハッシュ値と署名データとが異なり、署名が不正である場合(S2901/NO)、そのプレイ映像は大会参加SDK150によって生成されたものではない不正なものであるため、動画管理部240は、動画チェックNGと判断する(S2909)。
他方、算出されたハッシュ値と署名データとが一致し、署名が適正である場合(S2901/YES)次に動画管理部240は、算出されたハッシュ値を動画DB241に格納されている全ての動画のハッシュ値と比較し、同一のものがあるか否か確認する(S2902)。このように、動画データのハッシュ値を複数のチェックにおいて用いることにより、動画データに基づくハッシュ値の演算処理をより有効に活用し、処理を効率化することが出来る。
このため、本実施形態に係る動画管理部240は、新たなプレイ映像を動画DB241に格納する際、そのハッシュ値を関連付けて記憶させる。これにより、S2901において、動画DB241に格納されているプレイ映像のハッシュ値を新たに算出する必要がなくなる。
S2902の判断の結果、ハッシュが一致するものがあった場合(S2902/NO)、そのプレイ映像は既存のプレイ映像をコピーしたものであるため、動画管理部240は、動画チェックNGと判断する(S2909)。他方、ハッシュ値が一致するプレイ映像がなかった場合(S2902/YES)、次に動画管理部240は、解析対象のプレイ映像に、図28に示すようにメタデータが付加されているか否かチェックする(S2903)。
S2902の判断の結果、メタデータが付加されていなかった場合(S2903/NO)、そのプレイ映像は不正に生成されたものであるため、動画管理部240は、動画チェックNGと判断する(S2909)。尚、S2902とS2903の処理はどちらを先に行っても良い。
S2903の判断の結果、メタデータが抽出された場合(S2903/YES)、動画管理部240は、メタデータに基づいてプレイ映像を解析することによりプレイ映像に基づいてスコアの値を抽出し、そのプレイ映像の元となるスコアの情報が示すスコアの値と一致するか否か確認する(S2904)。
S2904において、動画管理部240は、図28に示す“スコア表示フレーム”の情報に基づいてプレイ映像中のフレームを抽出し、更に“表示位置”の情報に基づいて指定された位置の画像を抽出する。そして、抽出された画像に対してOCR(Optical Character Recognition)等の画像から文字情報を抽出する方法により、スコア値を示す文字情報を生成する。そのようにして生成されたスコア値と、スコアの情報が示すスコア値とを比較する。
S2904の判断の結果、スコアが不一致であった場合(S2904/NO)、そのプレイ映像若しくはスコアの情報が示すスコア値が不正であるため、動画管理部240は、動画チェックNGと判断する(S2909)。他方、スコア値が一致した場合(S2904/YES)、次に動画管理部240は、S2904において確認されたスコア値と同一のスコア値を示すスコアの情報が、スコアDB234に既に格納されているか否か確認する(S2905)。
S2905において動画管理部240は、順位確認部232に対して対象のスコア値を通知し、同一のスコア値を示すスコア情報がスコアDB234に格納されているか否かのチェックを要求し、順位確認部232によるチェック結果を取得する。この他、動画管理部240が直接スコアDB234にアクセスして確認を行っても良い。
S2905の判断の結果、同一のスコア値を示すスコア情報がスコアDB234に格納されていない場合(S2905/NO)、動画管理部240は、動画チェックOKと判断して(S2908)処理を終了する。他方、同一のスコア値を示すスコア情報がスコアDB234に格納されていた場合(S2905/YES)、次に動画管理部240は、スコア値が同一であるスコアについてのプレイ映像の再生時間の長さと、解析対象のプレイ映像の再生時間の長さが同一であるか否か確認する(S2906)。
S2906の処理においては、実施の形態1と同様に、同一であると判断するための範囲にある程度の幅を設け、例えばわずかなフレームを削除することによって再生時間の長さが変えられただけの場合等でも同一と判断されるようにすることが好ましい。
S2906の判断の結果、再生時間の長さが同一でなかった場合(S2906/NO)、動画管理部240は、動画チェックOKと判断して(S2908)処理を終了する。他方、再生時間の長さが同一であった場合(S2906/YES)、スコア登録は認めた上で、同一のプレイ映像が登録されていないか否か詳細な確認が必要である。
そのため、動画管理部240は、動画チェックOKと判断すると共に、通報DB251への情報登録のための処理を行う(S2907)。このような処理により、大会参加SDK150による動画キャプチャ機能の仕様に関わらず、好適な動画チェック機能を実現することが可能となる。
尚、上記説明においては、図28に示すようにプレイ映像に付加する署名データとして、動画データのハッシュ値を用いる場合を例として説明した。この場合、ハッシュ値の演算に用いられるアルゴリズムが見破られない限り、セキュリティを保つことが出来る。他方、この方式は一例であり、データの署名方法として他の方法を用いても良い。
他の署名方法としては、一般的な方法として公開鍵暗号方式による署名方法がある。この場合、大会参加SDK150の動画キャプチャ部152は、署名データとして用いる所定の識別子を公開鍵暗号方式における秘密鍵で暗号化する。そして、図29のS2901において、動画管理部240は、添付された署名データを公開鍵により復号し、所定の識別子が正常に復元されれば署名が適正であると判断する。
大会参加SDK150に秘密鍵を伝える方法としては、例えば予め大会参加SDK150に秘密鍵の情報を埋め込んでおく方式や、図27のS903におけるログイン処理に際して大会運営サーバ2から大会参加SDK150に送信する方法等がある。また、署名データとして用いる所定の識別子として、上述したように動画データのハッシュ値を用いることにより、上述したハッシュ値の演算アルゴリズムによるセキュリティと二重にセキュリティを設けることが可能である。
また、本実施形態に係る動画チェック処理のうち、図28に示すように署名データをプレイ映像に付加し、図29のS2901において署名が適正であるか否かを判断する方法は、実施の形態1にも適用可能である。この場合、図27における説明と同様に、図9のS908においてキャプチャを終了して動画データが生成された後に、動画キャプチャ部152がハッシュ値を演算する。このようにして生成されたハッシュ値が、図16のS1604による要求に応じて署名データとしてプレイ映像に付加されて送信される。
そして、図18の動作において、例えばS1801の判断よりも前に、図29のS2901と同様の処理により署名が適正であるか否かがチェックされる。これにより、実施の形態1においても上記と同様の効果を得ることが可能である。