(57)【特許請求の範囲】
【請求項１】
ゲームネットワーク中のラグスイッチのチートを検出する方法であって、
前記ゲームネットワーク中の１以上のクライアントからデータパケットを前記ゲームネットワークに関連付けられたサーバにおいて受信するステップとを含み、
前記データパケットは、前記ゲームネットワークに通信可能に接続されているネットワークインタフェースで前記サーバにおいて受信され、シーケンス番号（sequence number）またはタイムスタンプの少なくともひとつを含むトラッキングデータを有し、
前記方法はさらに、
メモリに格納された監視モジュールをプロセッサが実行することによって前記１以上のクライアントから受信した前記トラッキングデータを前記サーバにおいて監視するステップと、
前記ゲームネットワークのパラメータを考慮に入れて、前記１以上のクライアントに関連づけられた受信されたデータパケットのトラッキングデータ間の差分における変化に対してチートとみなされる兆候を評価するための１以上の所定の閾値を特定するステップと、
前記１以上のクライアントに関連づけられたデータパケットのトラッキングデータ間の差分に変化があるかを前記サーバにおいて決定するステップと、
前記サーバのメモリに格納された解析エンジンによって、決定した前記１以上のクライアントに関連づけられたデータパケットのトラッキングデータ間の差分の変化が、チートとみなされる兆候を構成するか否かを前記サーバにおいて評価するステップとを含み、
前記評価するステップは、決定した前記差分の変化が前記１以上の所定の閾値を超えているとき、決定した前記差分の変化はチートとみなされる兆候を構成すると評価することを特徴とする方法。
【請求項２】
前記所定の閾値を超えている兆候を含む監視されたデータパケットを送信するクライアントに関連する少なくとも一人のユーザを特定するステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記監視されたデータパケットを送信しているクライアントがチート行為を疑われていることを示す情報を前記ゲームネットワークを通して送信するステップをさらに含み、
前記情報は、前記ゲームネットワークに通信可能に接続されているネットワークインタフェースを経由して送信されることを特徴とする請求項２に記載の方法。
【請求項４】
前記所定の閾値を超えている兆候を含む監視されたデータパケットを送信するクライアントに関連する少なくとも一人のユーザにペナルティを科すステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項５】
前記シーケンス番号は暗号化されていることを特徴とする請求項１に記載の方法。
【請求項６】
前記クライアントの前記シーケンス番号の差分の変化はパケットロスの存在の兆候を示すことを特徴とする請求項１に記載の方法。
【請求項７】
前記タイムスタンプは暗号化されていることを特徴とする請求項１に記載の方法。
【請求項８】
前記クライアントの前記タイムスタンプの差分の変化は遅延時間（latency)の存在の兆候を示すことを特徴とする請求項１に記載の方法。
【請求項９】
前記監視するステップは、ゲームネットワーク中のホストサーバにおいて実行されることを特徴とする請求項１に記載の方法。
【請求項１０】
前記監視するステップは、ゲームネットワーク中のピアクライアントにおいて実行されることを特徴とする請求項１に記載の方法。
【請求項１１】
ゲームネットワーク中のラグスイッチのチートを検出するシステムであって、
前記ゲームネットワーク中の１以上のクライアントからデータパケットを受信するネットワークインタフェースを備え、
前記データパケットは、シーケンス番号（sequence number）またはタイムスタンプの少なくともひとつを含むトラッキングデータを有し、
前記システムはさらに、
前記１以上のクライアントから受信した前記トラッキングデータを監視する、メモリに格納されプロセッサが実行可能な監視モジュールと、
メモリに格納されプロセッサに実行される解析エンジンとを備え、
前記解析エンジンは、
前記１以上のクライアントに関連づけられたデータパケットのトラッキングデータ間の差分に変化があるかを決定するステップと、
決定した前記１以上のクライアントに関連づけられたデータパケットのトラッキングデータ間の差分の変化が、チートとみなされる兆候を構成するか否かを評価するステップとを含み、
前記評価するステップは、決定した前記差分の変化が前記１以上の所定の閾値を超えているとき、決定した前記差分の変化はチートとみなされる兆候を構成すると評価することを特徴とするシステム。
【請求項１２】
プロセッサによる前記解析エンジンの実行はさらに、少なくとも一人のチート行為が疑われるユーザを特定することを特徴とする請求項１１に記載のシステム。
【請求項１３】
プロセッサによる実行によりゲームネットワーク中のラグスイッチのチートを検出する方法を実現するプログラムを格納するコンピュータが読み出し可能な記録媒体であって、前記方法は、
前記ゲームネットワーク中の１以上のクライアントからデータパケットを前記ゲームネットワークに関連付けられたサーバにおいて受信するステップとを含み、
前記データパケットは、前記ゲームネットワークに通信可能に接続されているネットワークインタフェースで前記サーバにおいて受信され、シーケンス番号（sequence number）またはタイムスタンプの少なくともひとつを含むトラッキングデータを有し、
前記方法はさらに、
前記１以上のクライアントから受信した前記トラッキングデータを監視するステップと、
前記ゲームネットワークのパラメータを考慮に入れて、前記１以上のクライアントに関連づけられた受信されたデータパケットのトラッキングデータ間の差分における変化に対してチートとみなされる兆候を評価するための１以上の所定の閾値を特定するステップと、
前記１以上のクライアントに関連づけられたデータパケットのトラッキングデータ間の差分に変化があるかを前記サーバにおいて決定するステップと、
前記サーバのメモリに格納された解析エンジンによって、決定した前記１以上のクライアントに関連づけられたデータパケットのトラッキングデータ間の差分の変化が、チートとみなされる兆候を構成するか否かを前記サーバにおいて評価するステップとを含み、
前記評価するステップは、決定した前記差分の変化が前記１以上の所定の閾値を超えているとき、決定した前記差分の変化はチートとみなされる兆候を構成すると評価することを特徴とする記録媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
本発明は概してネットワークゲームに関し、特にネットワークゲームにおけるラグスイッチのチート（cheating）の検出に関する。
【０００２】
従来、電子ゲームのユーザは、特定の電子ゲームに関連づけられた対戦（ｔｗｏ−ｐｌａｙｅｒ）オプションを選択する事により、単一のホームゲームコンソールを介して、互いに競争、対戦した。したがって、二人のプレイヤは、その特定の電子ゲームに関連するポイントや、その他の賞を獲得するために、同時に、または一人ずつ交互にプレイすることにより、競争することができた。
【０００３】
電子ゲームコンソールが、より一般的になり、ネットワーク技術がより、広がるにつれて、一対一の対戦に関するより多くのオプションが、利用できるようになってきた。ある電子ゲームコンソールは、モデム、またはその他のネットワークコネクタを備えている。そのモデムやネットワークコネクタにより、ユーザは、そのゲームに関するデータを交換することにより、ネットワークを介して、通信することができる。ネットワークを介して通信することにより、ユーザは、直接、または中間のコンピュータノード（例えば、ネットワーク中の、セントラルサーバや、他のゲームコンソールなど）様々な他のユーザのゲームコンソールに接続することができる。そして、ネットワークゲームをプレイしつつ、様々な他のユーザと対戦することができる。
【０００４】
不都合なことに、ユーザの中には、他のユーザとネットワークゲームをプレイしている最中に、公正を欠いた利益を得るためにそのネットワークゲームを操作する。例えば、あるユーザは、他のユーザに送信するデータの送信レートを遅延させることにより、他の様々なユーザが適切にリアクションをするのに間に合うようにデータを受信できなくなるようにする。悪徳なゲームプレイヤは、ラグスイッチ（ｌａｇ  ｓｗｉｔｃｈ）を経由してゲームプレイのデータを送信する際にこの遅延を導入する。
【０００５】
ラグスイッチを介してレイテンシ（ｌａｔｅｎｃｙ；待ち時間）を追加すると、チート行為者（ｃｈｅａｔｅｒ）のオンラインゲームのキャラクタは昔の位置にいるように見える（または不可視となる）。実際には、チート行為者のゲームキャラクタは、その対戦相手の近くに位置している。チート行為者は―戦略的に重要な位置に存在しているので―対戦者を倒し、それ以降は通常のネットワークトラフィックの流れを可能にし、衰えることなくゲームプレイを継続する。
【０００６】
ラグスイッチのチートを利用することは、ネットワーク化されたコミュニティにおけるゲームプレイにおいて特に問題となる。ゲームコミュニティにおいてチートが蔓延すると、ネットワーク化されたコミュニティにおけるゲームプレイに参加することのユーザの楽しみを減少させる。例えば、ラグスイッチのような道徳的に許されない外部の助けなしにネットワークゲームをプレイしているユーザは、そのような道徳的に許されない外部の助けを活用しているユーザに対して明らかに不利な立場に置かれる。チートをしていないユーザは、チートをしているユーザに対して押し切られ、打ち負かされ、あるいはまたある観点において劣勢に立たされるが、これは個々のユーザの技量には関係しない。もし、チートをしないユーザがチートをしているユーザに負け続けると―そしてしばしば即座にかつ決定的なやり方で負けると―、チートをしていないユーザはその特定のゲーム、特定のゲームネットワーク、または特定の製品やサービスプロバイダに対する興味を失うかもしれない。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
この興味の喪失により、ゲーム開発者や、ネットワークサービスプロバイダは、不利となる。例えば、ゲーム開発者の販売するゲームタイトル数は減少し、そのネットワークサービスプロバイダにとっては、そのネットワークゲームサービスの利用者数が少なくなるかもしれない。したがって、ゲーム開発者やサービスプロバイダや、正直なゲームプレイヤには、ネットワークまたはコミュニティゲーム環境において、チートを特定し、チートを除去することに対する関心が内在する。
【課題を解決するための手段】
【０００８】
請求項に記載したある実施の形態では、ゲームネットワーク中のラグスイッチのチートを検出する方法が開示される。この方法はクライアントからデータパケットを受信することを含む。データパケットは、シーケンス番号（ｓｅｑｕｅｎｃｅ  ｎｕｍｂｅｒ）および／またはタイムスタンプを含むトラッキングデータを有する。トラッキングデータは、チート検出イベントが発生したかどうかを決定するために監視される。
【０００９】
請求項に記載した２番目の実施の形態では、ゲームネットワーク中のラグスイッチのチートを検出するシステムが開示される。システムはクライアントからデータパケットを受信する計算デバイスを含む。データパケットは、シーケンス番号および／またはタイムスタンプを含むトラッキングデータを有する。監視モジュールがトラッキングデータを監視するために実行される。解析エンジンは、トラッキングデータの監視から、チート検出イベントが発生したかどうかを決定する。
【００１０】
請求項に記載した別の実施の形態では、コンピュータが読み取り可能な記録媒体が開示される。媒体にはプログラムが格納される。プログラムは、ゲームネットワーク中のラグスイッチのチートを検出する方法を実現するために計算デバイスによって実行される。この方法は、クライアントからデータパケットを受信することを含む。データパケットは、シーケンス番号および／またはタイムスタンプを含むトラッキングデータを有する。トラッキングデータは、チート検出イベントが発生したかどうかを決定するために監視される。
【図面の簡単な説明】
【００１１】
【図１】ネットワークのゲームユーザの正当性を評価するためのネットワークアーキテクチャの一例を示す図である。
【００１２】
【図２】制御プロセッサ、マルチプロセッシングユニット、および多数のローカルメモリを含む、請求項に記載した発明の実施の形態で用いられる電子エンタテインメントシステムの一例を示す図である。
【００１３】
【図３】図４におけるラグ検出手法を実装するラグ検出モジュールを示す図である。
【００１４】
【図４】ラグスイッチのチートを検出するための処理を例示するフロー図である。
【発明を実施するための形態】
【００１５】
図１は、ネットワークのゲームユーザの正当性を評価するためのネットワークアーキテクチャの一例を示す図である。図１で特定される要素は種々の代替手段、等価物、またはその派生物を含む。１以上のクライアント１０２は１以上のネットワークゲーム１０４を含む。ネットワークゲーム１０４はクライアント１０２に内蔵（プリインストール）されているか、光学ディスクや他のデータ記録媒体を介して導入される。ネットワークゲーム１０４は、ネットワークを介して獲得されてもよい。クライアント１０２は、コミュニケーションネットワーク１０６を介してサーバ１０８と接続されるか、またはアドホックネットワークを通してお互いに接続される。
【００１６】
クライアント１０２は、ＰｌａｙＳｔａｔｉｏｎ（登録商標）３のようなゲームコンソール、ラップトップコンピューティングデバイス、ＰｌａｙＳｔａｔｉｏｎ Ｇｏのようなポータブルゲームデバイス、デスクトップコンピューティングデバイス、スマートフォン、またはネットワークゲーム１０４を実行でき、かつネットワーク１０６またはアドホックネットワークのどちらか一方に接続可能な他のデバイスを含む。いくつかの実施の形態では、クライアント１０２はクライアントＩＤのようなＩＤ番号やＩＰアドレスのようなアドレスによって特定される。別の実施の形態では、クライアント１０２のユーザはユーザネームおよび／またはパスワードを用いてネットワークに「サインオン」する。ユーザネームおよび／またはパスワードは、一時的にまたは永続的にクライアント１０２に関連づけられている。
【００１７】
サーバ１０８はネットワークゲーム１０４を含み、クライアント１０２はネットワーク１０６を介してサーバ１０８上のネットワークゲーム１０４にアクセスする。サーバ１０８上のネットワークゲーム１０４は、ゲームの全部、ゲームの一部、ゲームに関連するデータ、またはゲーム１０４がゲームコミュニティ内のユーザによってプレイされる際のゲーム１０４に関連するデータの通過を許可したり、監視したり、および／または収集したりする単なるノードであってもよい。ネットワークゲーム１０４は種々のクライアント１０２（ゲームの一部またはゲームに関連するデータ）によって同様に編成されてもよい。ネットワークゲーム１０４はまた、第三者のコンテンツライブラリサーバを通して提供されてもよい。ライブラリサーバは現在開示されている正当性評価アーキテクチャの一因であってもなくてもよい。
【００１８】
クライアント１０２やサーバ１０８への言及は、単に本発明の種々の実施の形態を理解する上での便宜であることは理解されるべきである。本発明の実施の形態はピアツーピアネットワーク、クライアントサーバネットワーク、またはピアグループ（例えば、特定の一群のピア（ｐｅｅｒ））の文脈で実装されうる。したがって、データ交換のタイミングや特性に依存して、あるクライアントはサーバともなるし、その逆もあり得る。例えば、ピアツーピアネットワーク内のいくつかのクライアントは、それぞれネットワークゲーム１０４の一部やそのゲーム１０４に関連するデータを含み、それらを送信したり受信したりする。それゆえ、クライアントまたはサーバへの言及は、請求項において特に限定する場合を除いて、いずれかまたは両方の計算実体（ｃｏｍｐｕｔｉｎｇ  ｅｎｔｉｔｙ）が実行する演算を含むことを意味する。ある例では、クライアント／サーバ機能を持つデバイスが、一般的な俗称である「ネットワークノード」、「計算ノード」、または「ネットワークデバイス」と参照される。これに関連し、クライアント１０２およびサーバ１０８は両者とも、ネットワークまたは計算ノード、またはネットワークデバイスとなりうる。
【００１９】
ネットワークゲーム１０４は、クライアント１０２で処理されるソフトウェアを含み、それによりネットワーク１０６を介して他のクライアント１０２およびサーバ１０８と通信したりデータ交換することが可能となる。ネットワーク１０６は、例えばインターネットを含む。他の私有のまたは閉じたネットワークがインターネットと独立に、またはインターネットとともに用いられてもよい。特にネットワーク１０６がインターネットのように公にアクセス可能な場合は、信頼できるセキュリティプロトコルや暗号化手法をネットワーク１０６を介したデータ交換のセキュリティを確保するために用いてもよい。各クライアント１０２に関連づけられたユーザは、お互いに物理的に一緒にいたり、共通のゲームデバイスやコンソールを共有していなくても、ネットワークゲーム１０４をプレイして互いに交流しうる。
【００２０】
ある実施の形態においては、サーバ１０８は、ネットワーク１０６を介して、ネットワークゲーム１０４をプレイするユーザを監視する。クライアント１０２は、サーバ１０８にデータを要求する。データとは例えば、特定のネットワークゲーム１０４に関連する情報や、バグの修正（ｂｕｇ  ｐａｔｃｈ）などである。クライアント１０２と、サーバ１０８との間での、いかなるタイプの通信も、本発明の様々な実施の形態の範囲に含まれる。さらに、本発明のいくつかの実施の形態においては、１以上のサーバ１０８が、クライアント１０２と通信することを目的として、ネットワーク１０６に接続されてもよい。１以上のサーバ１０８の例としては、識別情報や特定のユーザの好みなどを格納するようなタスクを有するサーバや、ＤＲＭ、広告、支払いの責任をタスクとして課されているサーバのみならず、バックアップサーバや冗長サーバなどが挙げられる
【００２１】
本発明の他の実施の形態によると、クライアント１０２は、他のクライアント１０２（例えば、ピアツーピアネットワークまたはピアグループネットワーク内の個々のノード）によってプレイされているネットワークゲーム１０４を監視してもよい。クライアント１０２は、監視プロセスの間に生成されたデータを、サーバ１０８に通信してもよい。クライアント１０２はまた、そのデータを格納し、自身で処理してもよい。例えば、ピアツーピアネットワークのシナリオにおいては、ネットワーク内のそれぞれのノードは、ある不正な行為に関して、ネットワーク内の他のノードを監視してもよい。
【００２２】
図２は、制御プロセッサ、マルチプロセッシングユニット、および多数のローカルメモリを含む、請求項に記載した発明の実施の形態で用いられる電子エンタテインメントシステム２５０の一例を示す図である。図２に示す電子エンタテインメントシステム２５０は、特にＣＥＬＬプロセッサ２５２に基づくものである。ＣＥＬＬプロセッサ２５２は、株式会社ソニーコンピュータエンタテインメント、株式会社東芝、インタナショナル・ビジネス・マシン株式会社の共同開発である。ＣＥＬＬプロセッサを用いたコンピュータアーキテクチャ、そして、高速プロセッシングモデルのある側面が、米国特許出願  ２００２−０１３８６３７号  ”Ｃｏｍｐｕｔｅｒ  Ａｒｃｈｉｔｅｃｔｕｒｅ  ａｎｄ  Ｓｏｆｔｗａｒｅ  Ｃｅｌｌｓ  ｆｏｒ  Ｂｒｏａｄｂａｎｄ  Ｎｅｔｗｏｒｋｓ，”に開示されており、その開示内容をここに援用する。システム２５０はクライアント１０２（またはネットワーク１０６内の他の計算ノード）の構成要素となり、ネットワークゲーム１０４のプレイに用いられる。図２において特定されている構成要素は、例として示したものであり、様々な代替物、等価物、派生物をも含みうる。
【００２３】
前述のＣＥＬＬプロセッサを用いることにより、データやアプリケーションは、一意に特定され、一様なフォーマットを有するソフトウェアセルにおいて、処理され、パッケージされる。その構造の一様性と、一意的な識別の容易性によって、ＣＥＬＬプロセッサを備えるコンピュータ装置のネットワークを通じた、アプリケーションデータの処理が促進される。例えば、あるコンピュータ装置がソフトウェアセルを形成し、そのソフトウェアセルを処理するために、他の装置に配信してもよい。したがって、セルは、ネットワーク上の処理リソースの利用可能性に基づいて、処理のためにネットワーク中を移動しうる。
【００２４】
図２に示すように、ＣＥＬＬプロセッサ２５２は、メインメモリ２５４、シングルパワープロセッサエレメント（ＰＰＥ）２５６、そして８個のシナジスティックプロセッサエレメント（ＳＰＥ）２５８を含む。しかしながら、ＣＥＬＬプロセッサ２５２は、一以上のＰＰＥ、任意の数のＳＰＥ２５８によって構成されてもよい。各ＳＰＥ２５８は、シナジスティックプロセッサユニット（ＳＰＵ）と、ローカルストア（ＬＳ）を備える。
【００２５】
メモリ２５４、ＰＰＥ２５６、ＳＰＥ２５８は、互いに、そしてＰＰＥ２５６と、たとえば、バスインタフェースコントローラ（ＢＩＣ）に接続されたリング型要素のインターコネクトバス（ＥＩＢ）２６４を通じて、通信してもよい。ＰＰＥ２５６と、ＳＰＥ２５８は、バスインタフェースユニット（ＢＩＵ）を通じて、ＥＩＢ２６４にアクセスしてもよい。ＰＰＥ２５６と、ＳＰＥ２５８は、メモリフローコントローラ（ＭＦＣ）と、メモリインタフェースコントローラ（ＭＩＣ）を通して、ＥＩＢ２６４を介して、メモリ２５４にアクセスしてもよい。
【００２６】
メモリ２５４は、実行可能な命令を実装するプログラム２６２を備えてもよい。これらの命令は、入出力装置２６０に接続された、ＣＤ／ＤＶＤリーダ２６６の中の、ＣＤＲＯＭまたは、他の光学ディスクから読み取られてもよい。これらＣＤＲＯＭや他の光学ディスクは、ＣＤ／ＤＶＤリーダ２６６内に、ロードされたものである。ＣＤＲＯＭもまた、プログラムや、実行可能な命令や、他のデータ２７４を備えてもよい。
【００２７】
ＰＰＥ２５６は、データやアプリケーションのスタンドアローン処理可能な標準的なプロセッサであってよい。動作の際には、ＰＰＥ２５６は、ＳＰＥ２５８によるデータやアプリケーションの処理をスケジュールし、編成（ｏｒｃｈｅｓｔｒａｔｅ）してもよい。ＳＰＵは、一命令複数データ（ＳＩＭＤ）プロセッサであってもよい。ＰＰＥ２５６の制御のもと、ＳＰＵは、データとアプリケーションを、並行かつ独立な方法で処理してもよい。ＭＩＣは、ＰＰＥ２５６、ＳＰＵによるメモリ２５４内のデータやアプリケーションへのアクセスを制御してもよい。
【００２８】
システム２５０のユーザは、コントロール装置に接続された、ＣＰＵ２０６に、コントローラインタフェース（図示せず）を介して、命令を提供してもよい。コントロール装置には、例えば、ジョイスティック、方向ボタン、および／または他のコントロールボタンなどが含まれる。例えばユーザは、システム２５０に指示して、メモリカードにあるゲーム情報を格納してもよい。ゲームカードは、取り外し可能であってよい（例えば、フラッシュメモリ、または他の不揮発性メモリカード）。ユーザはまた、ゲーム中のキャラクタに指示して、特定の行動をとらせてもよい。他の装置がシステム２５０に、ＵＳＢインタフェース２２０と、ＩＥＥＥ１３９４インタフェース２２２を介して接続されていてもよい。他の装置とは、例えば、不正なゲーム中の行為（すなわち、チート）を可能とする外部ハードウェア装置などである。
【００２９】
システム２５０のある実施の形態は、ネットワークアダプタを備えてもよい。ネットワークアダプタは、システム２５０がネットワークに接続するために必要な、ハードウェア機能を提供するように構成されてもよい。ネットワークアダプタは、イーサネット（登録商標）接続２４２を備えてもよい。ネットワークに接続するために、イーサネット接続２４２を介して、ネットワークケーブル（例えば、１００Ｂａｓｅ−ＴＸまたは１０−ＢａｓｅＴ）が、ネットワークアダプタに接続されうる。ネットワークケーブルは例えば、ＤＳＬまたは、ケーブルモデムに、通信可能に接続されてもよい。ネットワークケーブルはまた、例えばＬＡＮポートを介して、ルータに通信可能に接続されてもよく、そしてルータは、ＷＡＮを介して、ＤＳＬまたはケーブルモデムに接続されてもよい。
【００３０】
これに加えて、またはこれに代えて、イーサネット接続により、ネットワークケーブルが、無線イーサネットブリッヂに接続されることが可能である。無線イーサネットブリッヂは、例えば、８０２．１１Ｘプロトコルを用いた、無線ルータに接続されてもよい。無線ルータはまた、ケーブルまたはＤＳＬモデムに、通信可能に接続されてもよい。ある実装では、無線プロセッサまたは他の無線ネットワーク接続デバイスがシステム２５０内に内蔵されてもよい。
【００３１】
図３は、図４におけるラグ検出手法を実装するラグ検出モジュール３００を示す図である。図３において特定されている構成要素は、例として示したものであり、様々な代替物、等価物、派生物をも含みうる。
【００３２】
ルールライブラリ３０４は、ゲーム環境または、その環境の生成に関連するハードウェア、および／またはソフトウェアに関する認識可能な特徴を包含してもよい。認識可能な特徴は、ネットワークのレイテンシに関連する情報を含む。ルールは、ゲームの開発者によって独立に作成されるか、またはシステムまたはネットワークの管理者を通して提供されてもよい。さらに、特定のネットワークゲーム１０４の観察に基づいてルールを進展させる監視モジュール３０６がネットワークの状態を監視することを通して、ルールが生成されてもよい。
【００３３】
ルールライブラリ３０４は、予め定義され、または生成されたルールを格納するために提供される。ルールは、様々なファイル、またはデータ型に実装されることが可能であり、本発明においては、これらの実装に関して制限を加えるものではない。ある実施の形態においては、本発明に係るルールライブラリ３０４には、様々な他のデータが格納されてもよい。例えば、本発明のいくつかの実施の形態によると、ネットワークゲーム１０４の１以上のユーザに関する統計が、ルールライブラリ３０４や、中間（ｍｅｄｉｕｍ）またはローカルの、他の記憶装置に格納されてもよい。統計や、他の情報の代替的な記憶部は、ネットワークノードから離れた地点にあってもよく、ネットワーク１０６を介して、アクセス可能であってもよい。
【００３４】
監視モジュール３０６は、クライアント１０２において、ネットワークゲーム１０４に関するユーザの行動を、ネットワーク１０６を介したサーバ１０８とのデータ交換を通して、監視するように構成されてもよい。監視モジュール３０６には、様々なタイプの監視方法が実装されうる。例えば、データ交換の定期的なレビュー、データ交換の常時レビュー、特定のノードからのデータ交換のレビューなどである。本発明のある実施の形態によると、監視モジュール３０６は、ルールライブラリ３０４内のルールと、解析エンジン３０８によって提供される解析を用いて、受動的に、ユーザの行動を聴き、また検出する。ここで検出されるユーザの行動とは、ネットワークゲーム１０４に関連づけられた典型的なユーザの行動から逸脱するような行動、またはラグスイッチのチートを含むそのような行動の存在を示唆する行動をいう。
【００３５】
いくつかの実施の形態においては、監視モジュール３０６は、ネットワーク内の特定のクライアントノードに位置してもよい。例えば、特定のネットワークゲーム１０４、（例えばＣＤＲＯＭによって配布される）は、正当性評価システムや、ゲームソフトウェアに組み込まれた、関連するソフトウェアのある特徴を含んでもよい。または、ネットワーク１０６内のどのクライアントも、サーバ１０８に加えて、正当性評価機能を備えてもよい。
【００３６】
正当性評価ソフトウェアを備えるクライアント１０２（例えば、監視モジュール３０６）は、ネットワーク内での正当なゲームプレイを確保するために、それ自身で動作してもよく、または、サーバ１０８と協働して動作してもよい。ある実施の形態におけるクライアント１０２は、図３に示す正当性評価アーキテクチャの他の側面に加えて、特定のネットワークゲーム１０４のタイトルを通じて、監視モジュール３０６と、ルールライブラリ３０８を有してもよい。また、クライアント１０２は、ネットワーク内の他のクライアント１０２を観察してもよい。監視モジュール３０６が、ネットワーク１０６内の他のクライアント１０２とのデータ交換を通じて、不正な行為を観察したならば（ルールライブラリ３０４内の特定のルールによって、識別され、および／または解析エンジンによって判定されるように）そのような不正な行為を観察したクライアント１０２は、不正な行為に対する応答として、ある措置をとってもよい。
【００３７】
これに代えて、正当なクライアントは、サーバ１０８に、不当なクライアントを通報し、サーバ１０８が、意図的な、不正な行為を詳細に分析をしてもよい。サーバ１０８はまた、そのゲームネットワークの誠実性を保全するために設計された、行動に関与してもよい。例えば不当なクライアントを追放したり、半ば強制的な更新によって、不当なコードを上書きしたり、不当なクライアントと、それに関連づけられたユーザの記録を保持したりする。これらの、様々な誠実性を保全する行動（例えば、追放など）はまた、クライアント１０２自身や、サーバ１０８の要求に応えるクライアント１０２によって実行されうる。
【００３８】
正当性評価の責任を共有し、および／または分配することにより、バンド幅や、サーバ１０８の電力消費が、軽減され、また、正当性評価に関連して、追加的なコンピュータ装置の関与を回避することが可能となる。すなわち、正当性を評価する仲介者として、サーバ１０８を用いる代わりに、通常のデータ交換をしながらあるクライアント１０２が、その他のクライアント１０２の正当性を評価する。その逆もまた可能である。
【００３９】
正当性の評価は、また、ネットワーク１０６内の複数のクライアント１０２間で実行されてもよい。例えば、第１のクライアント１０２が、特定の時間の間、監視活動に従事し、その後、第２のクライアント１０２にその責任を交代してもよい。監視の責任を、（例えばサーバ１０８を介して）ランダムに、再割り当てすることにより、より熟練したチート行為者は、ひとつの監視エンティティによる監視を回避することはできるとしても、常にランダムに交代する監視エンティティに対処しなければならなくなる。
【００４０】
ある実施の形態においてはさらに、グループによる正当性評価がなされてもよい。そこでは、特定のクライアント１０２は、２以上のクライアント１０２によって、正当性を評価され、そのクライアント１０２が正当とみなされるか、不当とみなされるかについて、確認される。ループによる正当性評価は、サーバ１０８と協働して実行され、サーバ１０８は、クライアント１０２のグループからの正当性を評価する情報を考慮して、その特定のクライアント１０２に対してゲームプレイの継続を許可するか否か、最終的な判定を下す。これに代えて、グループ正当性評価に参加する１以上のクライアントのうちのひとつに、正当性評価をリードする責任が割り当てられてもよく、このひとつのクライアントが、生成された正当性評価情報に応答して、適切な行動をとってもよい。リーダシップ責任はまた、グループのメンバの間で分担してもよい。そのグループは、協働して動作してもよく、または、グループのメンバのうちのあるメンバクライアント１０２が、割り当てられた責任を実行してもよい。
【００４１】
監視責任を再割り当てすることによって、処理リソースやバンド幅が空いているクライアント１０２を利用することができる。例えば、あるクライアント１０２は、ネットワーク１０６に接続されてはいても、ネットワーク１０６を能動的にプレイしてはおらず、または、「待合室」や「ゲームロビー」にあり、特定のネットワーク１０６へのエントリ待ちの状態にあるかもしれない。利用可能なクライアント１０２の処理パワーを、正当性評価タスクの割り当てや、実際の正当性評価行為等に、利用することができる。
【００４２】
また他の実施の形態においては、クライアント１０２は、サーバ１０８から、ある情報をダウンロードしてもよい。ある情報とは、例えば、ルールや、ルールライブラリ３０４の更新情報などである。ルールライブラリ３０４は、ネットワークゲーム１０４のゲームソフトウェアに、一部のみ、組み込まれている。これらの更新された、またはダウンロードされたライブラリは、一時的に、例えば、メインメモリ２１０やメモリカード２１８に格納されてもよい。ルールの更新や、その他の関連する情報のダウンロードは、サーバ１０８によって判定される、通常のスケジュールの一部としてなされてもよく、様々な情報のひとつを、クライアント１０２からサーバ１０８への問い合わせの一部としてなされてもよく、または、初期ログイン（ｌｏｇ  ｏｎ）処理において、なされてもよい。この初期ログイン処理においては、ユーザの名前とパスワードが検証され、また、特定のユーザ、またはネットワーク１０６内のクライアント１０２に対する許可が示される。監視モジュール３０６はネットワークゲーム１０４においてネットワークレイテンシに関連するルールに違反し、ラグスイッチのチートを示唆する活動を監視する。
【００４３】
監視モジュール３０６は、解析エンジン３０８に、フラグや、普通でない行為を、転送してもよい。解析エンジン３０８は、フラグがつけられた行為について解析し、ネットワークゲーム１０４のゲーム環境の制約を踏まえて、その行為が実際に不正であるか否か判定する。すなわち、解析エンジン３０８は、ユーザの行為が、実際に、そのネットワークゲーム１０４に関連づけられたルールに違反するか否かを判定する。
【００４４】
監視モジュール３０６は、ネットワークゲームユーザが、ネットワークゲーム１０４をプレイしているときに、ネットワークゲームユーザからのデータを受信する。例えば、クライアント１０２は、定期的に、データをサーバ１０８、またはネットワークゲーム１０４に関連する他のクライアント１０２に、に投稿（ｐｏｓｔ）してもよく、および／または、ネットワークゲーム１０４をプレイするネットワークゲームユーザの、ゲームとユーザとの対話（ｉｎｔｅｒａｃｔｉｏｎ）を投稿してもよい。監視モジュール３０６は、投稿されたデータをレビュー（例えば、「聞く」）することにより、そのデータを投稿したクライアント１０２に関連づけられたネットワークゲームユーザがチートをしているか、および／または、ルールライブラリ３０４によって定義され、そのネットワークゲーム１０４に関連づけられた１以上のルールを順守し損なっているか、判定する。ある実施の形態においては、監視モジュール３０６は投稿とれたデータを解析エンジン３０８に転送し、そして、解析エンジン３０８が、その投稿されたデータを、定期的に、ルールライブラリ３０４のルールを踏まえて解析し、および／または評価し、そのデータを投稿したクライアント１０２に関連づけられたネットワークゲーム１０４のユーザが、チートをしているか、および／または、そのネットワークゲーム１０４に関連づけられた１以上のルールを順守し損なっているか、判定する。
【００４５】
解析エンジン３０８が、そのユーザがチートをしていると判定した場合、違反しているノードは、追放されてもよく、プレイし続けることを許可されてもよく、その他であってもよい。いくつかの実施の形態においては、サーバ１０８、または、送信元ノードは、その違反（例えば、チート行為）を解決する。それにより、ここでは、様々なタイプの解決方法が採用されうる。本発明のいくつかの実施の形態においては、その行為を解決するタスクを負うノード（例えば、サーバ１０８）は、チートをしている装置や、システム２５０上で現在動作している違反行為を除去するため、または修正するためのパッチを、送信し、あるいは、違反しているソフトウェアに加えることにより、無効化してもよい（例えば、コミュニティの誠実性を維持するタスクを負うコンピュータ装置は、違反ノードにコマンドを送信してもよく、それにより、違反ノードは、それ自身のメモリを、指定された位置および指定された値に修正するように指示される）。
【００４６】
いくつかの実施の形態においては、解析エンジンは、ネットワークゲーム１０４に関連づけられたルールに違反するユーザまたは、クライアント１０２のリストを生成してもよい。すなわち、解析エンジン３０８は、チート行為者のラップシート（ｒａｐ  ｓｈｅｅｔ）を生成してもよい。そして、チートをしているユーザは、いくつかの実施の形態においては、監視モジュール３０６により、より頻繁に監視されてもよく、または、将来のルールを生成するための変数として、利用されてもよい。
【００４７】
いくつかの実施の形態においては、クライアント１０２は、サーバ１０８に関して、図３において議論された、いくつかの、またはすべての構成要素を含んでもよい。これにより、装置は、サーバ機能、クライアント機能の両方、または一方を包含し、またはどちらをも含まない、より一般的なネットワークノード（例えば、ルータ、バッファ、ネットワークの中間ポイント）となる。これにより、ここで議論されるように、クライアント１０２は、他のクライアント１０２で生じているチートを、検出することができる。
【００４８】
例えば、１０個の特定のノードが、グループを構成するなど、ノードはまた、ピアグループとして動作してもよい。グループは、特定のネットワーク環境の特定の需要または、その性質によって定義されてもよい。例えば、ひとつのグループが、ネットワークゲーム１０４の全てのプレイヤを含んだ構成であってもよい。グループは、ネットワークゲーム１０４の全てのプレイヤ、および、特定のＩＳＰを介して参加者を含んで構成されてもよい。グループはまた、ある「ゲーム部屋」のプレイヤにより、構成されてもよい。ゲーム部屋とは、すなわち、互いに参加するように、招待されたプレイヤ、または特定のユーザの特定のゲーム環境にエントリしたユーザによって、グループが構成されてもよい。グループはまた、ひとつのユーザを他のユーザとを線引きすることのできる任意のパラメータ（例えば、年齢、経験、用いられるゲーム装置、ログイン時間、ネットワーク接続のタイプ、利用可能なバンド幅）によって、定義されてよい。
【００４９】
他の実施の形態においては、ある行為の解析において、グループの参加が提供されてもよい。例えば、複数のノードは、監視モジュール３０６を介して、特定のノードの行為を観察してもよい。観察された行為は、同じであるかもしれないし、それぞれが異なるゲーム行為の情報にかかるかもしれない。いくつかの実施の形態においては、様々なノードによって、観察された様々な行動は、同一の、または異なる行動を承認（例えば、正当であることの評価）するにあたっては、観察しているノードすべて、または所定の割合のノードによる承認が、さらに、コミュニティネットワークにおける観察されたノードの正当性の評価を確実にするため、要求される。
【００５０】
さらに、図３に関連して、様々な構成要素が議論されたが、サーバ１０８、および／またはクライアント１０２は、より多くの、またはより少ない構成要素を備えてもよく、その場合についても、本発明の様々な実施の形態の範囲に含まれる。例えば、不正な行為に対する応答は、別の誠実モジュール（ｉｎｔｅｇｒｉｔｙ  ｍｏｄｕｌｅ）（図示せず）によって、実行されてもよい。この別の誠実モジュールは、例えば、解析エンジン３０８と、協働してもよく、また、上述のように、独立に動作してもよい。
【００５１】
図４は、ラグスイッチのチートを検出するための処理４００を例示するフロー図である。図１はクライアント-サーバ環境を描いているが、図４の手法はピアツーピア環境に実装されてもよい。図４の手法の文脈において実装された計算ノードは、種々の交換可能なモジュールおよびエンジンを含むハードウェア、および／またはソフトウェア、および／またはファームウェアを含んでもよいことは注意すべきである。
【００５２】
図４において、特定されたステップ（およびその順序）は、例として示したものであり、様々な代替物、等価物、派生物をも含みうる。しかしながら、これらの実行順序に制限されるものではない。図４の処理ステップ、そしてその様々な代替ステップは、コンピュータ装置のプロセッサなどの機械によって、実行可能な命令を含む機械可読な媒体（例えば光学ディスクやメモリカード）等を含むハードウェアまたはソフトウェアとして実装されることが可能である。上述した記録媒体は計算デバイスのプロセッサによって実行可能なプログラムまたは命令を備える。
【００５３】
ステップ４０２において、クライアント１０２からのデータパケットが、サーバ１０８のような計算デバイスによって受信される。ピアツーピアの実施の形態では、データパケットは１以上のクライアント１０２、および／またはサーバ１０８によって受信されてもよい。複数のデータパケットがその中にトラッキングデータを含んでいる。トラッキングデータは、シーケンス番号およびタイムスタンプの少なくともひとつを含む。いくつかの実施の形態では、シーケンス番号および／またはタイムスタンプは暗号化される。これにより、例えば、チート行為者がトラッキングデータを操作することを防止する。
【００５４】
ステップ４０４において、メモリに格納された監視モジュールが処理デバイスによって実行され、トラッキングデータを監視する。監視モジュールは、ネットワークゲーム１０４と交信しているクライアント１０２のような１以上のデバイスを監視する。監視モジュールは、データパケットのシーケンス番号やタイムスタンプ（たとえば、トラッキングデータ）を保持する。
【００５５】
ステップ４０６において、解析エンジンは、トラッキングデータの監視から、チート検出イベントが発生したかどうかを決定する。解析エンジンは、フェアなゲームプレイを規定する１以上のルールを違反していることの１以上の兆候を特定する。そのルールは、チート検出イベントに関連するユーザにフラグとなりうる常軌を逸したラグタイムを含む。
【００５６】
解析エンジンは、パケットロスを検出するためにデータパケットのシーケンス番号を解析してもよい。パケットロスは、ネットワークを往来する少なくともひとつのデータパケットが意図する目的地に到達できないときに起こる。解析エンジンは、レイテンシの変化を検出するためにデータパケットのタイムスタンプを解析してもよい。片道レイテンシは、パケットを送信する送信源から、そのパケットを受信する目的地までの時間である。往復レイテンシは、送信源から目的地までの時間に、目的地から送信源に戻るまでの片道レイテンシを加えたものである。即時システム（ｉｎｓｔａｎｔ  ｓｙｓｔｅｍ）はパケットロス、レイテンシの変化、またはその両方を検出する。
【００５７】
上述したように、解析エンジンは、パケットロス（すなわち、データ間ケットが消失したか否か）を検出するためにデータパケットのシーケンス番号を解析する。例えば、サーバ１０８において受信された所与のクライアント１０２からのデータパケットが、それに関連するシーケンス番号Ｓ（ここでＳは整数を表す）を持っていたとする。サーバ１０８において受信される次に高いシーケンス番号がＳ＋２００であるとする。もし、中間のデータパケットがサーバ１０８において受信されない場合、チート行為者がパケットロスを意図的に引き起こしたことの証拠となろう。
【００５８】
上述したように、解析エンジンは、ネットワーク上でさらなるレイテンシが発生したかどうかを決定するために、データパケットのタイムスタンプを解析する。解析エンジンは、異なるクライアント１０２を出発したパケットのタイムスタンプ間の差分に変化があるか、いつ変化したかを観察することで決定してもよい。レイテンシの変化は、チート行為者が意図的にネットワークのトラフィックを遅くしたり、遅延させたり、あるいは止めたりしていることを示唆しているかもしれない。いくつかの実施の形態、例えばピアツーピアの構成においては、クライアント１０２の中で監視および解析が実行される。いくつかの実施の形態、例えばクライアント−サーバ構成においては、サーバ１０８の中で監視および解析が実行される。
【００５９】
チート行為者は、例えばラグスイッチを利用する方法でチートを行う。チート行為者は、送信トラフィック、送信および受信トラフィックの両方を停止したり遅らせたり等をする。ピアツーピア構成では、他のユーザはチートを示すことがあり得る疑わしい動作にフラグを立ててもよい。ネットワークの状態がバッファに記録されてもよい。所定の数（１以上）のプレイヤが疑わしいチート行為者のフラグを立てると、証拠を検証して場合によってはアクション（チート行為が疑われている者にペナルティを科す等）を起こす仲裁者に情報が送信される。別の実施の形態では、これらのアクションは自動で実行される。クライアント−サーバ構成では、データ解析を実行するために、サーバ１０８は種々のクライアント１０２からデータを収集する。
【００６０】
解析エンジンは、種々の閾値に関して、１以上のデータパケットのトラッキングデータを解析する。閾値を満たすと、チート検出イベントが発生したと決定される。典型的な閾値は、６０のパケットロスト、３秒間のネットワークトラフィック無し、１０秒間の追加のレイテンシ等を含む。しかしながら、これらの数は単なる例示であり、本技術に係る種々の実施の形態の中で、任意の適切な閾値が検討される。
【００６１】
チート検出イベントが発生したという決定がなされると、ステップ４０８の処理に進む。チート検出イベントが発生したという決定がない場合、ステップ４１０の処理に進む。
【００６２】
ステップ４０８において、ネットワークゲーム１０４における他のプレイヤに関連づけられたクライアント１０２、および／またはサーバ１０８は、チートを疑われているユーザにチートメッセージを送信する。チートが疑われていることを示している疑わしいチート行為者に関連づけられたクライアント１０２のネットワークゲーム１０４に、チートメッセージが送信される。
【００６３】
チート行為が疑われている者のネットワークゲーム１０４がチートメッセージを受信すると、そのチート行為者のネットワークゲーム１０４は、ネットワークゲーム１０４がどのように進むかを決定するように、ネットワークゲーム１０４内においてコールバックを開始する。チート行為が疑われている者は何らかの方法でペナルティが科せられる。例えば、「ネットワークが中断された」アイコンまたは同様のものがチート行為が疑われている者のスクリーンに置かれる。チート行為が疑われている者のゲームキャラクタは、ラグの前の位置、またはチートが検出されない適正な位置まで戻される。システムは、Ｎ秒の間、チート行為が疑われている者からの入力の受け入れを停止する。ここでＮは実数である。所与の数Ｘのコールバックが開始されると、ネットワークゲーム１０４は、チート行為が疑われている者をネットワークゲーム１０４から切断する。Ｘは１以上の整数である。ゲームが異なればペネルティの種類やチートを検出するための閾値が異なってもよい。任意の適切なペナルティが、本技術に係る種々の実施の形態の範囲に含まれる。ステップ４０８の後、処理はステップ４１０に進む。
【００６４】
ステップ４１０において、ネットワークゲームが終了したがどうかについての決定がなされる。ネットワークゲーム１０４が終了すると、本処理は終了する。ネットワークゲーム１０４が終了していない場合、処理はステップ４０４に戻る。
【００６５】
多くのゲームは継続的に（ゲーム中で現在動きのないキャラクタについてさえも）ネットワークトラフィックを送信することは注目に値する。しかしながら、別のゲームはそのようなシナリオにおいても継続的にネットワークトラフィックを送信しない。後者のシナリオをパケットロスを示すと誤って解釈しかねない。別のゲームはネットワークトラフィックを規定の間隔で送信する。本技術では、タイムスタンプとシーケンス番号とを利用することで、全ての種類のゲームについて有利に動作する。
【００６６】
本明細書において説明したように、実施の形態に係るラグスイッチのチートの検出方法は、ピアツーピア環境またはクライアント−サーバ環境に適用される。種々のモジュールおよびエンジンは、種々の実施の形態において異なる位置に置かれる。例えば、監視モジュールおよび／または解析エンジンは、いくつかの実施の形態においては１以上のクライアント１０２に置かれてもよい
【００６７】
本発明の種々の実施の形態によると、ゲームプレイヤがラグスイッチのチートに従事しているか否かの判定は、ゲームデータを、例えばセントラルゲームサーバ（例えば、図１のサーバ１０８）またはその他のゲームプレイヤのネットワーク装置（例えば、図１のクライアント１０２）のゲームデータを定期的にゲームデータを報告する特定のクライアント装置（例えばゲームシステム）を通じて、なされてもよい。そのゲームデータが，適切なネットワーク装置によって、処理されているに関して、そのゲームデータが解析される。例えば、一のプレイヤによって生成されたゲームデータが、その第１のプレイヤのゲームデータが、対決しているゲームプレイヤの装置に表示処理が実行されているときに、そのプレイヤと対決するプレイヤによって、ゲームメトリックの順守に関して、解析されてもよい。同様の、解析は、ゲームデータが、セントラルサーバから、その他のゲームプレイヤに送信されるに先立って、セントラルサーバによってなされてもよい。
【００６８】
様々な実施の形態について、上に述べたが、これらは例としてのみ提示されたものであって、制限を課すものではないことに注意すべきである。例えば、クライアント１０２、ネットワークゲーム１０４、および／またはサーバ１０８に関連するいかなる要素も、上述の望ましい機能のうちのいずれを採用してもよい。したがって、好ましい実施の形態の広さ、および範囲は、上述の実施例のいずれによっても、制限されてはならない。
【００６９】
本発明はさらに、エンドユーザ装置（例えば、クライアント１０２）の混合された（ｍｉｘｅｄ）ネットワークを介して操作可能な共用ネットワークゲーム１０４において実装されてもよい。例えば、第１のクライアント１０２はパーソナルコンピュータであってもよく、第２のクライアント１０２は、例えば、株式会社ソニー・コンピュータエンタテインメントのプレイステーション２や、プレイステーション３のようなホームエンタテインメントシステムであってもよい。また他の第３のクライアント１０２は、ＰＳＰ（登録商標）（同じく株式会社ソニー・コンピュータエンタテインメント）のような携帯ゲーム装置であってもよく、第４のクライアント１０２は、例えば、マイクロソフトのＸｂｏｘや、任天堂のＷｉｉのような異なる製造業者によるホームエンタテインメントシステムであってもよい。ここで記述されたいかさまに対する方法論は、関連している、または関連していない装置のグループの間で、操作可能であることを意図されている。また、本発明の実施の形態はアンチチート（ａｎｔｉ−ｃｈｅａｔ）手法に制限されない。
【図１】
0005877845.tif 000002
【図２】
0005877845.tif 000003
【図３】
0005877845.tif 000004
【図４】
0005877845.tif 000005