(57)【要約】【課題】  オンラインゲームをプレイしたプレイヤーのスコアが、捏造されたものではなく、プレイヤーの操作結果から得られた正当なスコアであることを検証するオンラインゲームのスコア検証システムを提供する。【解決手段】  プレイヤー端末はインターネット経由でオンラインゲームサーバからゲームプログラムを受信し、端末上でゲームをプレイする。複数のプレイヤーが同一のオンラインゲームを実行し、ハイスコアが競われる。プレイヤーが獲得したスコアは、プレイヤーの操作履歴とともに、オンラインゲームサーバに送信される。スコアがハイスコアに該当する場合には、オンラインゲームサーバで受信した操作履歴から同一のプレイを再現し、再現により得られたスコアから受信したスコアの正当性を検証する。【選択図】        図１
2007007194.tif 000002
【特許請求の範囲】
【請求項１】
オンラインゲームにおけるスコアの捏造を防止するためのスコア検証システムであって、
オンラインゲームのゲームプログラムを、前記ゲームプログラムを識別する識別情報を付して格納するゲームプログラム格納手段と、
前記ゲームプログラムを、オンラインゲームをプレイするプレイヤー端末に送信するゲーム送信手段と、
前記プレイヤー端末より、前記ゲームプログラムを識別する識別情報、前記プレイヤーによる前記ゲームプログラムの操作により算出された第１のスコア、及び前記プレイヤーの操作コマンドの操作履歴を少なくとも含むゲーム結果に関する情報を受信するゲーム結果受信手段と、
前記識別情報に対応するゲームプログラムを前記ゲームプログラム格納手段から読み出して、前記操作履歴に従って操作コマンドを実行して前記プレイヤーの操作を再現し、第２のスコアを算出するスコア算出手段と、
前記第１のスコアと前記第２のスコアを対比して、前記第１のスコアが正当なスコアであるかを検証するスコア検証手段と、
を備えていて、
前記ゲームプログラムは、プレイヤーの操作コマンドを記録する機能を備えており、かつ同一の操作コマンドを再現すると同一のスコアが算出されるよう設定されていること
を特徴とするスコア検証システム。
【請求項２】
前記操作履歴には、前記プレイヤー端末が操作コマンドを受け付けた際に前記プレイヤー端末に表示されていたフレームに関する情報が操作履歴として記録されていて、
前記スコア算出手段は、前記操作履歴に記録されたフレームが表示されたときに、対応する操作コマンドを再現すること
を特徴とする請求項１記載のスコア検証システム。
【請求項３】
前記操作履歴には、前記ゲームプログラムによって表示されていたフレームを基準にした時間で、前記プレイヤー端末が操作コマンドを受け付けたタイミングに関する情報が操作履歴として記録されていて、
前記スコア算出手段は、前記操作履歴に記録された時間に従って前記プレイヤーの操作を再現すること
を特徴とする請求項１記載のスコア検証システム。
【請求項４】
前記ゲームプログラムについて上位者のスコアに関する情報を記憶するハイスコア記憶手段と、
前記第１のスコアを前記ハイスコア記憶手段に記憶された上位者のスコアと対比して、前記第１のスコアが上位者に該当するかを判定するハイスコア判定手段と、
前記第１のスコアが正当なスコアであると検証された場合に、前記ハイスコア記憶手段を参照して、前記第１のスコアがハイスコアに該当する場合には、前記第１のスコアを上位者に追加して前記ハイスコア記憶手段を更新するハイスコア更新手段と、
を備えていて、
前記スコア算出手段は、前記ハイスコア判定手段によって前記第１のスコアが上位者に該当すると判定された場合に、前記第２のスコアを算出すること
を特徴とする請求項１乃至３いずれかに記載のスコア検証システム。
【請求項５】
オンラインゲームにおけるスコアの捏造を防止するためのスコア検証方法であって、
オンラインゲームを管理するオンラインゲームサーバが、オンラインゲームのゲームプログラムを、前記ゲームプログラムを識別する識別情報を付して格納したゲームプログラム格納部から読み出して、オンラインゲームをプレイするプレイヤー端末に送信するゲーム送信ステップと、
前記プレイヤー端末が、前記ゲームプログラムを実行して、前記プレイヤーの操作コマンドの操作履歴を記録する操作履歴記録ステップと、
前記プレイヤー端末が、前記ゲームプログラムについて前記プレイヤーの操作により第１のスコアを算出する第１のスコア算出ステップと、
前記プレイヤー端末が、前記ゲームプログラムを識別する識別情報、前記第１のスコア、及び前記操作履歴を少なくとも含むゲーム結果に関する情報を、前記オンラインゲームサーバに送信するゲーム結果送信ステップと、
前記オンラインゲームサーバが、前記プレイヤー端末より、前記識別情報、前記第１のスコア、及び前記操作履歴を少なくとも含むゲーム結果に関する情報を受信するゲーム結果受信ステップと、
前記オンラインゲームサーバが、前記識別情報に対応するゲームプログラムを前記ゲームプログラム格納部から読み出して、前記操作履歴に従って操作コマンドを実行して前記プレイヤーの操作を再現し、第２のスコアを算出する第２のスコア算出ステップと、
前記オンラインゲームサーバが、前記第１のスコアと前記第２のスコアを対比して、前記第１のスコアが正当なスコアであるかを検証するスコア検証ステップと、
を有していて、
前記ゲームプログラムは、プレイヤーの操作コマンドを記録する機能を備えており、かつ同一の操作コマンドを再現すると同一のスコアが算出されるよう設定されていること
を特徴とするスコア検証方法。
【請求項６】
前記操作履歴には、前記プレイヤー端末が操作コマンドを受け付けた際に前記プレイヤー端末に表示されていたフレームに関する情報が操作履歴として記録されていて、
前記第２のスコア算出ステップにおいて、前記操作履歴に記録されたフレームが表示されたときに、対応する操作コマンドを再現すること
を特徴とする請求項５記載のスコア検証方法。
【請求項７】
前記操作履歴には、前記ゲームプログラムによって表示されていたフレームを基準にした時間で、前記プレイヤー端末が操作コマンドを受け付けたタイミングに関する情報が操作履歴として記録されていて、
前記第２のスコア算出ステップにおいて、前記操作履歴に記録された時間に従って前記プレイヤーの操作を再現すること
を特徴とする請求項５記載のスコア検証方法。
【請求項８】
前記オンラインゲームサーバが、前記第１のスコアを前記ゲームプログラムについて上位者のスコアに関する情報を記憶したハイスコア記憶部に記憶された上位者のスコアと対比して、前記第１のスコアが上位者に該当するかを判定するハイスコア判定ステップと、
前記オンラインゲームサーバが、前記第１のスコアが正当なスコアであると検証された場合に、前記ハイスコア記憶部を参照して、前記第１のスコアがハイスコアに該当する場合には、前記第１のスコアを上位者に追加して前記ハイスコア記憶部を更新するハイスコア更新ステップと、
を有していて、
前記第２のスコア算出ステップは、前記ハイスコア判定ステップにおいて前記第１のスコアが上位者に該当すると判定された場合に、実行されること
を特徴とする請求項５乃至７いずれかに記載のスコア検証方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オンラインゲームをプレイしたプレイヤーのスコアが正当なスコアであることを検証するための、オンラインゲームのスコア検証システム及びスコア検証方法に関するものである。
【背景技術】
【０００２】
近年のブロードバンドの普及に伴って、オンラインゲームの利用が急速に拡大するようになっている。オンラインゲームにも様々なタイプのものが提供されるようになっており、ネットワークを介して複数のプレイヤーが対戦する対戦型のゲームの他に、同一のゲームに複数のプレイヤーが挑戦し、ハイスコアを競い合うタイプのゲームも普及するようになっている。このようなオンラインゲームにおいては、ハッキングなどによるゲームの改ざんや、ハイスコアの捏造によって不正に高得点を得ようとする行為も生じており、プレイヤーが公正な条件下でハイスコアを競い合ってゲームを楽しむためには、このような不正行為を防止することが求められることとなっている。
【０００３】
このような課題に対応する手段として、例えば、ゲームの結果を暗号化してゲームサーバに送信することでスコアの捏造を防止する発明や（特許文献１参照。）、ゲームセッションの送受信に際して暗号キーと合わせて送受信することで、ネットワーク上の他のデバイスからの改ざんを防止しようとする発明（特許文献２参照。）が開示されている。
【０００４】
【特許文献１】特開２００２−３５５４４５号公報
【特許文献２】特開２００４−６５９５６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上記のようなスコアの捏造やゲームの改ざんを防止するための方法は、ハッキング等によるネットワーク上の他のデバイスからの攻撃を防ぐことを主な目的としている。そのため、例えばプレイヤーが操作する端末においてリバースエンジニアリングが行われて、何らかの方法で捏造したスコアを暗号化した方法でサーバに送信する方法を発見してしまうと、捏造されたスコアであることを検証することができないという問題を抱えている。
【０００６】
つまり、プレイヤー端末からサーバに安全にスコアを送信するという対策のみでは不正行為を防止するには不十分で、サーバに送信するスコアそのものが、プレイヤーが実際にゲームを実行した操作結果から得られた正当なスコアであることを保証するための対策が施されるべきである。
【０００７】
本発明は、このような課題に対応するためになされたものであり、オンラインゲームをプレイしたプレイヤーのスコアが、捏造されたものではなく、プレイヤーの操作結果から得られた正当なスコアであることを検証するための、オンラインゲームのスコア検証システム及びスコア検証方法を提供するものである。
【課題を解決するための手段】
【０００８】
このような課題を解決するために、本発明は、オンラインゲームにおけるスコアの捏造を防止するためのスコア検証システムであって、オンラインゲームのゲームプログラムを、前記ゲームプログラムを識別する識別情報を付して格納するゲームプログラム格納手段と、前記ゲームプログラムを、オンラインゲームをプレイするプレイヤー端末に送信するゲーム送信手段と、前記プレイヤー端末より、前記ゲームプログラムを識別する識別情報、前記プレイヤーによる前記ゲームプログラムの操作により算出された第１のスコア、及び前記プレイヤーの操作コマンドの操作履歴を少なくとも含むゲーム結果に関する情報を受信するゲーム結果受信手段と、前記識別情報に対応するゲームプログラムを前記ゲームプログラム格納手段から読み出して、前記操作履歴に従って操作コマンドを実行して前記プレイヤーの操作を再現し、第２のスコアを算出するスコア算出手段と、前記第１のスコアと前記第２のスコアを対比して、前記第１のスコアが正当なスコアであるかを検証するスコア検証手段と、を備えていて、前記ゲームプログラムは、プレイヤーの操作コマンドを記録する機能を備えており、かつ同一の操作コマンドを再現すると同一のスコアが算出されるよう設定されていることを特徴とする。
【０００９】
本発明によれば、プレイヤー端末から送信された操作履歴からプレイヤー端末で実行されたプレイを再現し、その結果から得られたスコアをプレイヤー端末から送信されたスコアと対比することによって、プレイヤー端末から送信されたスコアがプレイヤーの操作結果から得られた正当なスコアであることを検証することができる。
【００１０】
尚、本発明において、ゲームプログラムの識別情報の付し方は特に限定されるものではないが、ハイスコアを競わせるためにスコアの検証を行う場合には、ハイスコアを競う対象となる同一のゲーム毎に識別できる情報であることが必要になる。従って、あるゲームについての特定のゲーム・インスタンスを対象にハイスコアを競う場合には、ゲームタイトルを識別するだけでなく、対応するゲーム・インスタンスを特定できる識別情報であることが必要になる。
【００１１】
また、本発明は、前記操作履歴には、前記プレイヤー端末が操作コマンドを受け付けた際に前記プレイヤー端末に表示されていたフレームに関する情報が操作履歴として記録されていて、前記スコア算出手段は、前記操作履歴に記録されたフレームが表示されたときに、対応する操作コマンドを再現することを特徴とすることもできる。
【００１２】
操作履歴をゲーム開始等からの絶対時間で把握すると、コンピュータの処理能力の相違等によって正確にプレイを再現できないおそれがある。このように構成すると、プレイヤーの操作タイミングが表示されるフレームを基準に正規化されるため、異なるコンピュータにおいても正確にプレイを再現することができる。
【００１３】
また、本発明は、前記操作履歴には、前記ゲームプログラムによって表示されていたフレームを基準にした時間で、前記プレイヤー端末が操作コマンドを受け付けたタイミングに関する情報が操作履歴として記録されていて、前記スコア算出手段は、前記操作履歴に記録された時間に従って前記プレイヤーの操作を再現することを特徴とすることもできる。
【００１４】
この構成も同様に、プレイヤーの操作タイミングが表示されるフレームを基準に正規化されるため、異なるコンピュータにおいても正確にプレイを再現することができるが、どのフレームで操作が行われたかだけでなく、どのフレームが表示されてから何秒で操作が行われたか、といった時間が反映されるため、より正確な再現が可能になる。
【００１５】
さらに、本発明は、前記ゲームプログラムについて上位者のスコアに関する情報を記憶するハイスコア記憶手段と、前記第１のスコアを前記ハイスコア記憶手段に記憶された上位者のスコアと対比して、前記第１のスコアが上位者に該当するかを判定するハイスコア判定手段と、前記第１のスコアが正当なスコアであると検証された場合に、前記ハイスコア記憶手段を参照して、前記第１のスコアがハイスコアに該当する場合には、前記第１のスコアを上位者に追加して前記ハイスコア記憶手段を更新するハイスコア更新手段と、を備えていて、前記スコア算出手段は、前記ハイスコア判定手段によって前記第１のスコアが上位者に該当すると判定された場合に、前記第２のスコアを算出することを特徴としてもよい。
【００１６】
この構成においては、プレイヤー端末から送信された全てのスコアを検証するのではなく、送信されたスコアがハイスコアにランクされるもののみを選択して、検証を行う。全てのスコアについてゲームを再現して検証を行うこととすると、サーバ側のスコア検証にかかる処理負担が非常に重くなる可能性があるため、このように構成することによって、効率的なハイスコアの検証が可能になる。
【００１７】
尚、ここでハイスコアの範囲については特に限定されるものではなく、対象として設定された範囲について検証が行われる。例えば、１位のみが競われるものであれば１位を超えるスコアが検証の対象となり、上位１０位を競うものであれば１０位以内にランクインするスコアが検証の対象になる。
【００１８】
さらに、本発明は、オンラインゲームをプレイするプレイヤー端末と、オンラインゲームを管理するオンラインゲームサーバにより実行される、オンラインゲームのスコア検証方法として特定することもできる。
【００１９】
つまり、本発明にかかるスコア検証方法は、オンラインゲームにおけるスコアの捏造を防止するためのスコア検証方法であって、オンラインゲームを管理するオンラインゲームサーバが、オンラインゲームのゲームプログラムを、前記ゲームプログラムを識別する識別情報を付して格納したゲームプログラム格納部から読み出して、オンラインゲームをプレイするプレイヤー端末に送信するゲーム送信ステップと、前記プレイヤー端末が、前記ゲームプログラムを実行して、前記プレイヤーの操作コマンドの操作履歴を記録する操作履歴記録ステップと、前記プレイヤー端末が、前記ゲームプログラムについて前記プレイヤーの操作により第１のスコアを算出する第１のスコア算出ステップと、前記プレイヤー端末が、前記ゲームプログラムを識別する識別情報、前記第１のスコア、及び前記操作履歴を少なくとも含むゲーム結果に関する情報を、前記オンラインゲームサーバに送信するゲーム結果送信ステップと、前記オンラインゲームサーバが、前記プレイヤー端末より、前記識別情報、前記第１のスコア、及び前記操作履歴を少なくとも含むゲーム結果に関する情報を受信するゲーム結果受信ステップと、前記オンラインゲームサーバが、前記識別情報に対応するゲームプログラムを前記ゲームプログラム格納部から読み出して、前記操作履歴に従って操作コマンドを実行して前記プレイヤーの操作を再現し、第２のスコアを算出する第２のスコア算出ステップと、前記オンラインゲームサーバが、前記第１のスコアと前記第２のスコアを対比して、前記第１のスコアが正当なスコアであるかを検証するスコア検証ステップと、を有していて、前記ゲームプログラムは、プレイヤーの操作コマンドを記録する機能を備えており、かつ同一の操作コマンドを再現すると同一のスコアが算出されるよう設定されていることを特徴とする。
【００２０】
前記操作履歴には、前記プレイヤー端末が操作コマンドを受け付けた際に前記プレイヤー端末に表示されていたフレームに関する情報が操作履歴として記録されていて、前記第２のスコア算出ステップにおいて、前記操作履歴に記録されたフレームが表示されたときに、対応する操作コマンドを再現することを特徴とすることもできる。前記操作履歴には、前記ゲームプログラムによって表示されていたフレームを基準にした時間で、前記プレイヤー端末が操作コマンドを受け付けたタイミングに関する情報が操作履歴として記録されていて、前記第２のスコア算出ステップにおいて、前記操作履歴に記録された時間に従って前記プレイヤーの操作を再現することを特徴とすることもできる。
【００２１】
前記オンラインゲームサーバが、前記第１のスコアを前記ゲームプログラムについて上位者のスコアに関する情報を記憶したハイスコア記憶部に記憶された上位者のスコアと対比して、前記第１のスコアが上位者に該当するかを判定するハイスコア判定ステップと、前記オンラインゲームサーバが、前記第１のスコアが正当なスコアであると検証された場合に、前記ハイスコア記憶部を参照して、前記第１のスコアがハイスコアに該当する場合には、前記第１のスコアを上位者に追加して前記ハイスコア記憶部を更新するハイスコア更新ステップと、を有していて、前記第２のスコア算出ステップは、前記ハイスコア判定ステップにおいて前記第１のスコアが上位者に該当すると判定された場合に、実行されることを特徴としてもよい。
【発明の効果】
【００２２】
本発明によって、オンラインゲームに参加したプレイヤーのスコアが、捏造されたものではなく、プレイヤーの操作結果から得られた正当なスコアであることを、効率的に検証することができる。その結果、複数のプレイヤーでハイスコアを争うオンラインゲームを提供する際に、信頼性の高いサービスとして提供することが可能になる。
【発明を実施するための最良の形態】
【００２３】
本発明を実施するための最良の形態について、図面を用いて以下に詳細に説明する。尚、以下の説明は本発明の実施形態の一例であって、本発明はかかる実施形態に限定されるものではない。
【００２４】
図１は、本発明にかかるスコア検証システムの概要を示す図である。図２は、本発明にかかるスコア検証システムにおける、オンラインゲームサーバとプレイヤー端末の構成を示すブロック図である。図３は、正規化を行わず絶対時間のみが記録された操作履歴からゲームを再現した一例を示す図である。図４は、フレームを基準に正規化を行って記録された操作履歴からゲームを再現した一例を示す図である。図５は、本発明にかかるスコア検証システムにおいて、プレイヤー端末側でゲームをプレイするフローを示すフローチャートである。図６は、本発明にかかるスコア検証システムにおいて、オンラインゲームサーバ側でスコアを検証するフローを示すフローチャートである。
【００２５】
図１を用いて、本発明にかかるスコア検証システムの実施形態の概要を説明する。プレイヤーが操作する端末からは、インターネットを介してオンラインゲームサーバに接続し、オンラインゲームサーバからゲームプログラムを受信して、端末上でゲームプログラムを実行してオンラインゲームをプレイすることができる。本発明においては、プレイヤー間でハイスコアを競うために、各々のプレイヤーには同一のゲームプログラムが提供されることが必要であるが、ゲームの内容は特に限定されるものではない。
【００２６】
各々のプレイヤーは、それぞれのプレイヤー端末で同一のゲームプログラムを実行して、ゲームをプレイする。プレイの結果により獲得したスコアは、ゲームプログラムの実行中にプレイヤーのボタン操作やキー操作などによる操作コマンドの履歴とともに、オンラインゲームサーバに送信される。
【００２７】
オンラインゲームサーバでは、受信したスコアがハイスコアに該当する場合には、同一のゲームプログラムに受信した操作コマンドの履歴を適用して、プレイヤーがプレイしたゲームを再現する。再現した結果得られたスコアが受信したスコアと同じである場合は、受信したスコアは正当なものであることが検証される。尚、このような検証の前提として、本発明において用いられるゲームプログラムは、同じ入力操作を行えば、常に同じスコアの得られるプログラムであることが必要になる。
【００２８】
例えば、乱数の要素が含まれるものについては、シード型の乱数発生器を用いることによって、同じシードから始めれば同じ乱数が発生するように設定する。この例においては、乱数発生器のシードを統一した形で提供し、そのシードによって決まる特定のゲーム・インスタンスを所定のコンテスト期間に結び付けて提供することによって、例えば毎週異なるシードから決められたゲーム・インスタンスを、「今週のお題」のような形式で提供して一週間のハイスコアを競わせることもできる。
【００２９】
図２は、本発明にかかるスコア検証システムにおける、オンラインゲームサーバとプレイヤー端末の構成を示している。本発明にかかるスコア検証システムは、オンラインゲームサーバ１０の一部の機能として備えられていて、オンラインゲームサーバ１０は、ＣＰＵ１１、ＲＡＭ１２、ＲＯＭ１３、ＨＤＤ１４を少なくとも含んで構成されている。ＨＤＤ１４には、ゲームプログラム１４１、スコア判定プログラム１４２が格納され、ハイスコア記憶部１４３が記憶されている。
【００３０】
ＨＤＤ１４に格納された、ゲームプログラム１４１、スコア判定プログラム１４２などのアプリケーションプログラムが所定の処理を実行するためには、ＲＯＭ１３に記憶された入力制御や出力制御などのハードウェア制御のための基本的な各種プログラムを起動し、ＲＡＭ１２をワークエリアとして機能させながら、ＣＰＵ１１が演算処理を行う。
【００３１】
一方、プレイヤー端末２０には一般にパーソナルコンピュータやゲーム専用機が用いられるが、プレイヤー端末２０はＣＰＵ２１、ＲＡＭ２２、ＲＯＭ２３、ＨＤＤ２４を少なくとも含んで構成されている。オンラインゲームをプレイする際には、インターネットを介してオンラインゲームサーバ１０からゲームプログラム１４１を受信し、ＲＡＭ２２をアプリケーションプログラムのワークエリアとして機能させながら、ＣＰＵ２１で演算処理を行って、ゲームプログラムを実行する。
【００３２】
尚、一般にオンラインゲームでは、ゲームプログラム１４１がダウンロードされてＨＤＤ２４に格納されることはなく、ゲームプログラム１４１はＲＡＭ２２又はＨＤＤ２４の仮想メモリ領域において実行され、ゲームが終了されるとゲームプログラム１４１は消去される。
【００３３】
オンラインゲームをプレイするプレイヤーは、プレイしたいゲームをプレイヤー端末２０で選択する。選択されたゲームのゲームＩＤ等を指定したゲームの開始要求がオンラインゲームサーバ１０に送信されると、オンラインゲームサーバ１０はこれを受け付けて、ＨＤＤ１４に格納されているゲームプログラム１４１のうち、指定されたゲームＩＤに対応するプログラムを読み出して、プレイヤー端末２０に送信する。尚、ゲームがシード型の乱数発生器を用いた乱数の要素を含んでいる場合には、当該期間において指定されたシードによって決まる特定のゲーム・インスタンスを送信する。
【００３４】
プレイヤー端末２０がゲームプログラム１４１を受信すると、ゲームプログラム１４１が起動されてゲームが開始される。ゲームプログラム１４１の送信は１回に限定されるものではなく、プレイヤーの操作に従って順次呼び出されるものであってもよい。ゲームプログラム１４１は、ゲーム実行中の全ての操作コマンドを操作中に表示されていたフレームと関連付けて記録して、当該プレイヤーの操作履歴を作成する。作成された操作履歴は、ＲＡＭ２２またはＨＤＤ２４の仮想メモリ領域に一時ファイルとして記憶される。ここでのフレームとは、ゲームプログラム１４１により端末に表示される一枚一枚の表示画面のことであり、全てのフレームにはユニークなＩＤが付されていて、操作コマンドのタイミングをフレームのＩＤで特定することができる。
【００３５】
ゲームが終了すると、ゲームプログラム１４１によって当該プレイヤーがプレイにより獲得したスコアが算出され、先に作成された操作履歴、プレイしたゲームを特定するゲームＩＤ等（特定のゲーム・インスタンスが送信されている場合はゲーム・インスタンスを識別できるＩＤを含む）と合わせて、一塊のデータとしてオンラインゲームサーバ１０に送信される。
【００３６】
オンラインゲームサーバ１０が、スコア、操作履歴、ゲームＩＤ等を受け付けると、スコア判定プログラム１４２が読み出されて、受け付けたスコアがハイスコアであるかを判定する。このときに、プレイヤー端末２０から受け付けた情報については、データベースなどの二次記憶装置に格納しておくことが好ましい。ハイスコアに該当するか否かは、ハイスコア記憶部１４３を参照して判断される。ハイスコア記憶部１４３にハイスコアとして記憶されているスコアのうち、最下位のスコアを上回っている場合には、ハイスコアに該当すると判断される。
【００３７】
ハイスコアと判定された場合には、当該スコアの正当性を検証するために、先に受け付けた操作履歴を用いて、ゲームプログラム１４１を読み出してプレイヤーのプレイを再現する。ゲームプログラム１４１は、同一の操作コマンドを実行すれば常に同一の結果が得られるように設計されているため、再現の結果得られたスコアとプレイヤー端末２０から受け付けたスコアが一致する場合には、プレイヤーのプレイ結果に基づく正当なスコアが送信されたと判断することができる。正当なスコアであれば、ハイスコア記憶部１４３にハイスコアとして記録される。
【００３８】
本発明においては、プレイヤー端末２０での記録された操作履歴が、オンラインゲームサーバ１０においても全く同一のプレイとなるように正確に再現されることが必要である。しかしながら、コンピュータの処理能力の相違等の実行環境の相違によって、操作履歴に従って再現した操作コマンドが、プレイヤーが実際にプレイしたのとは異なるタイミングで再現されてしまうことが起り得る。この現象について、図３を例に具体的に説明し、これを防ぐための方法を図４で説明する。
【００３９】
図３は、操作履歴について正規化を行わずに、操作コマンドの絶対時間のみが記録された操作履歴からゲームを再現する例を示している。上段の図は、実際にプレイヤー端末２０で行われたプレイの操作コマンドと表示されていたフレームの関係を示している。ゲーム開始時を００．００秒とすると、００．０５秒後にコマンド１、００．１５秒後にコマンド２、００．３０秒後にコマンド３、００．３５秒後にコマンド４が実行され、この時に表示されていたフレームは、それぞれコマンド１はフレーム１、コマンド２はフレーム２、コマンド３及びコマンド４はフレーム４であった。このように、操作コマンドの絶対時間から操作履歴を作成するとする。
【００４０】
ところが、オンラインゲームサーバ１０側でフレームが表示されるタイミングについては、プレイヤー端末２０とはコンピュータの処理能力などの実行環境が異なるために、誤差が生じることがある。下段の図は、オンラインゲームサーバ１０で再現されたプレイの操作コマンドと表示されていたフレームの関係を示している。操作コマンドの実行されたタイミングは、ゲーム開始時からの絶対時間を基準に再現されるためプレイヤー端末２０での実行時と同一であるが、フレームが表示されるタイミングについては、コンピュータの処理能力の相違等からプレイヤー端末２０とは異なるタイミングで再現されることがある。
【００４１】
そこで、コマンドとフレームの対応関係を確認しみてみると、コマンド３について、上段の図においてはフレーム４に対応していたものが、下段の図においてはフレーム３に対応することとなっている。つまり、本来はフレーム４で行われた操作コマンドが、フレーム３で行われたものとしてゲームが進行し、スコアが算出されてしまう。このような誤差が生じると、プレイを正確に再現して正当なスコアを検証することができないため、何らかの方法で正規化を行うことが必要である。
【００４２】
これに対して図４は、フレームを基準にして操作コマンドのタイミングを正規化して、操作履歴を記録する例を示している。図４においても、上段が実際にプレイヤー端末２０で行われたプレイの操作コマンドと表示されていたフレームの関係を、下段がオンラインゲームサーバ１０で再現されたプレイの操作コマンドと表示されていたフレームの関係を示している。
【００４３】
本発明にかかるスコア検証システムで用いられるゲームプログラムでは、操作コマンドの履歴を記録する時間を、ゲーム開始からの絶対時間ではなく、各々のフレームが表示されてからの相対時間として把握し、各々の操作コマンドを表示されるフレームと関連付けて記録する。上段に示したように、プレイヤー端末２０におけるゲーム実行時の操作履歴は、コマンド１が実行されたタイミングはフレーム１の表示から００．０５秒後、コマンド２が実行されたタイミングはフレーム２の表示から００．０６秒後、コマンド３が実行されたタイミングはフレーム４の表示から００．０１秒後、コマンド４が実行されたタイミングはフレーム４の表示から００．０６秒後として記録される。
【００４４】
このように記録された操作履歴から、オンラインゲームサーバ１０においてプレイヤーのプレイを再現した場合、下段に示したように、フレームの表示タイミングがプレイヤー端末２０でプレイしたときと異なることになったとしても、フレームとの関係において操作コマンドのタイミングに誤差は発生しないことになる。このように操作履歴を記録することによって、異なる環境下であっても全く同じプレイを再現して、同一のスコアを得ることができる。
【００４５】
図５のフローチャートを用いて、本発明にかかるスコア検証システムにおいて、プレイヤー端末側でゲームをプレイするフローについて説明する。プレイヤー端末において、オンラインゲームサーバからゲームプログラムを受信すると（Ｓ０１）、プレイヤーの開始操作により、又は自動的にゲームプログラムが起動されて（Ｓ０２）、オンラインゲームが開始される。
【００４６】
ゲームプログラムは、ゲームのプレイ中にプレイヤーの入力操作（方向キーや実行キーの押下等）によるコマンドを受け付けると（Ｓ０３）、コマンドを受け付けた際に表示されているフレームと、当該フレームが表示されてからの経過時間（相対時間）を特定して（Ｓ０４）、操作コマンドの履歴を作成する（Ｓ０５）。ゲームが終了するまではこの処理を繰返し（Ｓ０３〜Ｓ０６）、ゲームが終了すると（Ｓ０６）ゲームプログラムを終了させ（Ｓ０７）、プレイによって獲得されたスコアを算出する（Ｓ０８）。算出されたスコアを、プレイしたゲームを特定するゲームＩＤ、作成した操作コマンドの履歴とともにオンラインゲームサーバに送信して（Ｓ０９）、処理を終了する。
【００４７】
図６のフローチャートを用いて、本発明にかかるスコア検証システムにおいて、オンラインゲームサーバ側でスコアを検証するフローについて説明する。オンラインゲームサーバでは、ゲームを終了したプレイヤー端末から、プレイしたゲームを特定するに関するゲームＩＤ、獲得したスコア、プレイヤーの操作コマンドの履歴を受信する（Ｓ１１）。これらの情報は、後の再現も可能にするために、データベース等の二次記憶装置に格納することが好ましい。
【００４８】
次に、受け付けたゲームＩＤに対応する過去のプレイヤーのハイスコアを、ハイスコア記憶部から取得する（Ｓ１２）。取得したハイスコアとプレイヤー端末から受け付けたスコアを比較して、プレイヤー端末から受け付けたスコアがハイスコアにランクインされるべきスコアであるかを判定する（Ｓ１３）。ハイスコアに該当しない場合には、そのまま処理を終了する。
【００４９】
ハイスコアに該当する場合には、受け付けたゲームＩＤに対応するゲームプログラムを読出して（Ｓ１４）、操作コマンドの履歴を元に、プレイヤーがプレイしたゲームを再現する（Ｓ１５）。再現したゲームの結果から得られるスコアを算出し（Ｓ１６）、プレイヤー端末から受け付けたスコアと同一であるかを判定する（Ｓ１７）。スコアが同一である場合は、受け付けたスコアはプレイヤーが実際にプレイした結果として得られたスコアであることが検証されて、正当なスコアとしてプレイヤー端末から受け付けたスコアをハイスコア記憶部にハイスコアとして記録する（Ｓ１８）。スコアが異なる場合には、受け付けたスコアはプレイヤーが実際にプレイした結果とは異なるものであると判断され、エラー処理が行われる（Ｓ１９）。
【図面の簡単な説明】
【００５０】
【図１】本発明にかかるスコア検証システムの概要を示す図である。
【図２】本発明にかかるスコア検証システムにおける、オンラインゲームサーバとプレイヤー端末の構成を示すブロック図である。
【図３】正規化を行わず絶対時間のみが記録された操作履歴からゲームを再現した一例を示す図である。
【図４】フレームを基準に正規化を行って記録された操作履歴からゲームを再現した一例を示す図である。
【図５】本発明にかかるスコア検証システムにおいて、プレイヤー端末側でゲームをプレイするフローを示すフローチャートである。
【図６】本発明にかかるスコア検証システムにおいて、オンラインゲームサーバ側でスコアを検証するフローを示すフローチャートである。
【符号の説明】
【００５１】
１０    オンラインゲームサーバ
１１    ＣＰＵ
１２    ＲＡＭ
１３    ＲＯＭ
１４    ＨＤＤ
１４１  ゲームプログラム
１４２  スコア判定プログラム
１４３  ハイスコア記憶部
２０    プレイヤー端末
２１    ＣＰＵ
２２    ＲＡＭ
２３    ＲＯＭ
２４    ＨＤＤ
【図１】
2007007194.tif 000003
【図２】
2007007194.tif 000004
【図３】
2007007194.tif 000005
【図４】
2007007194.tif 000006
【図５】
2007007194.tif 000007
【図６】
2007007194.tif 000008