(57)【要約】【課題】不正チェックを行なうクライアントに悪影響を与えることなく、有効に不正行為を検出する。【解決手段】ネットワークを介して複数のクライアントが接続されるオンラインゲームサーバの処理方法であって、前記クライアントから、当該クライアントのプレイヤが直接に操作する当該プレイヤの分身として振る舞うプレイヤオブジェクトの座標位置を含むゲームロジックの処理結果を受信し、当該処理結果に基づいて前記クライアント毎に表示すべき移動オブジェクトのデータを束ねたデータリストを更新する工程と、前記クライアントに対し、当該クライアントに対応する前記データリストを含むテンポラリ情報を送信する工程と、前記クライアントから、前記テンポラリ情報に基づき自己のプレイヤオブジェクトを中心に所定範囲内に存在する他のプレイヤオブジェクトの動作状態に不正があった旨の不正報告情報を取得して不正情報データとして蓄積する工程とを備える。【選択図】図１
2010227182.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して複数のクライアントが接続されるオンラインゲームサーバの処理方法であって、
前記クライアントから、当該クライアントのプレイヤが直接に操作する当該プレイヤの分身として振る舞うプレイヤオブジェクトの座標位置を含むゲームロジックの処理結果を受信し、当該処理結果に基づいて前記クライアント毎に表示すべき移動オブジェクトのデータを束ねたデータリストを更新する工程と、
前記クライアントに対し、当該クライアントに対応する前記データリストを含むテンポラリ情報を送信する工程と、
前記クライアントから、前記テンポラリ情報に基づき自己のプレイヤオブジェクトを中心に所定範囲内に存在する他のプレイヤオブジェクトの動作状態に不正があった旨の不正報告情報を取得して不正情報データとして蓄積する工程と
を備えたことを特徴とするオンラインゲームサーバ処理方法。
【請求項２】
請求項１に記載のオンラインゲームサーバ処理方法において、
各クライアントに対応する前記データリストから当該クライアントの対象プレイヤオブジェクトを中心とする所定範囲内に他のプレイヤオブジェクトが存在するか否か判断する工程と、
他のプレイヤオブジェクトが存在しないと判断された場合に、ダミークライアントを生成し、当該ダミークライアントの不可視のプレイヤオブジェクトを前記対象プレイヤオブジェクトに付随化する工程と
を備えたことを特徴とするオンラインゲームサーバ処理方法。
【請求項３】
請求項１または２のいずれか一項に記載のオンラインゲームサーバ処理方法において、
前記クライアントから、前記テンポラリ情報に基づき自己のプレイヤオブジェクトを中心に所定範囲内に存在する他のプレイヤオブジェクトにおいて自動操作行為が行われている旨の不正報告情報を取得して不正情報データとして蓄積する工程
を備えたことを特徴とするオンラインゲームサーバ処理方法。
【請求項４】
ネットワークを介して複数のクライアントが接続されるオンラインゲームサーバ装置であって、
前記クライアントから、当該クライアントのプレイヤが直接に操作する当該プレイヤの分身として振る舞うプレイヤオブジェクトの座標位置を含むゲームロジックの処理結果を受信し、当該処理結果に基づいて前記クライアント毎に表示すべき移動オブジェクトのデータを束ねたデータリストを更新する手段と、
前記クライアントに対し、当該クライアントに対応する前記データリストを含むテンポラリ情報を送信する手段と、
前記クライアントから、前記テンポラリ情報に基づき自己のプレイヤオブジェクトを中心に所定範囲内に存在する他のプレイヤオブジェクトの動作状態に不正があった旨の不正報告情報を取得して不正情報データとして蓄積する手段と
を備えたことを特徴とするオンラインゲームサーバ装置。
【請求項５】
ネットワークを介して複数のクライアントが接続されるオンラインゲームサーバを構成するコンピュータを、
前記クライアントから、当該クライアントのプレイヤが直接に操作する当該プレイヤの分身として振る舞うプレイヤオブジェクトの座標位置を含むゲームロジックの処理結果を受信し、当該処理結果に基づいて前記クライアント毎に表示すべき移動オブジェクトのデータを束ねたデータリストを更新する手段、
前記クライアントに対し、当該クライアントに対応する前記データリストを含むテンポラリ情報を送信する手段、
前記クライアントから、前記テンポラリ情報に基づき自己のプレイヤオブジェクトを中心に所定範囲内に存在する他のプレイヤオブジェクトの動作状態に不正があった旨の不正報告情報を取得して不正情報データとして蓄積する手段
として機能させるオンラインゲームサーバ処理プログラム。
【請求項６】
ネットワークを介してオンラインゲームサーバに接続されるクライアントを構成するコンピュータを、
前記オンラインゲームサーバに対し、前記クライアントのプレイヤが直接に操作する当該プレイヤの分身として振る舞うプレイヤオブジェクトの座標位置を含むゲームロジックの処理結果を送信する手段、
前記オンラインゲームサーバから、前記クライアントに表示すべき移動オブジェクトのデータを束ねたデータリストを含むテンポラリ情報を受信する手段、
前記テンポラリ情報に基づき自己のプレイヤオブジェクトを中心に所定範囲内に存在する他のプレイヤオブジェクトの動作状態を判断し、該状態に不正があると判断した場合に前記オンラインゲームサーバに対して不正報告データを送信する手段
として機能させるオンラインゲームクライアント処理プログラム。
【請求項７】
請求項６に記載のオンラインゲームクライアント処理プログラムにおいて、
前記動作状態の不正とは、対象となるプレイヤオブジェクトの存在する座標位置の周辺情報に設定されたデータにより許容される動作状態の変化と、該プレイヤオブジェクトに設定された動作状態を示すデータの変化とが一致しない場合に不正と判断する
オンラインゲームクライアント処理プログラム。
【請求項８】
請求項６に記載のオンラインゲームクライアント処理プログラムにおいて、
前記動作状態の不正とは、対象となるプレイヤオブジェクトに対して自動操作判別手段が自動操作と判断した場合に不正と判断する
オンラインゲームクライアント処理プログラム。
【請求項９】
ネットワークを介して複数のクライアントが接続されるオンラインゲームサーバを構成するコンピュータを、
前記クライアントから、当該クライアントのプレイヤが直接に操作する当該プレイヤの分身として振る舞うプレイヤオブジェクトの座標位置を含むゲームロジックの処理結果を受信し、当該処理結果に基づいて前記クライアント毎に表示すべき移動オブジェクトのデータを束ねたデータリストを更新する手段、
前記クライアントに対し、当該クライアントに対応する前記データリストを含むテンポラリ情報を送信する手段、
前記クライアントから、前記テンポラリ情報に基づき自己のプレイヤオブジェクトを中心に所定範囲内に存在する他のプレイヤオブジェクトの動作状態に不正があった旨の不正報告情報を取得して不正情報データとして蓄積する手段
として機能させるためのプログラムを記録したコンピュータ読み取り可能なオンラインゲームサーバ処理プログラム記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、インターネット等のネットワークを介したオンラインゲームシステムの制御技術に関する。
【背景技術】
【０００２】
この種のオンラインゲームは、同時にプレイできる人数が比較的少ないＭＯ（Multiplayer Online）タイプと、同時にプレイできる人数が非常に多いＭＭＯ（Massively Multiplayer Online）タイプとに大別される。いずれもオンラインゲームサーバ（サーバ群）にインターネット等のネットワークを介して複数のクライアントが接続される形態をとる。ＭＯタイプではマッチングと呼ばれる処理により選択された少人数のユーザ（プレイヤ）同士あるいはユーザとサーバとの間での対戦ゲーム（対戦格闘や将棋・囲碁・麻雀等の各種テーブルゲーム等）や、マッチングされた少人数のプレイヤでモンスター等を倒すＲＰＧ（Role Playing Game）等に用いられることが多い。この場合、常にサーバとの間で通信を行いながらゲーム進行を行う形態と、クライアント群だけでゲーム進行を行い、その結果をサーバに通知する形態とがある。また、ＭＭＯタイプでは共通の仮想空間世界（仮想空間の数はゲームによって異なる）内で各プレイヤが人物やモンスターなどのキャラクタ、ロボット、軍隊等のオブジェクト（プレイヤオブジェクト：プレイヤの分身となる移動オブジェクト）を操作するＲＰＧ等に用いられることが多い。
【０００３】
ところで、この種のオンラインゲームでは、従来から「チート」と呼ばれる不正行為が問題とされていた。
【０００４】
すなわち、一般的なＭＭＯタイプのゲームでは、ゲーム内において各種の条件を達成することで報酬を得て更に有利な条件でゲームを進めることができるという方式をとっている。報酬の例としては、ゲーム内で流通する通貨や、プレイヤオブジェクトの性能を変化させる経験値や、プレイヤオブジェクトに対して使用可能な武器・防具・アイテム・能力スキル等や、各種パラメータを増加／減少させる装備品等の付与がある。
【０００５】
不正行為を行おうとする悪質プレイヤは、クライアント側におけるプログラム改変やデータ改変を行うことで、各種の条件を達成することなく報酬だけを取得し、有利な条件でゲームプレイを行う。
【０００６】
ＭＯタイプのゲームにおいても、不正行為を行おうとする悪質プレイヤは、クライアント側におけるプログラム改変やデータ改変を行うことで、他のプレイヤに対して圧倒的に有利な状況でゲームプレイを行う。
【０００７】
これらの不正行為は真面目にゲームを楽しもうとする他のプレイヤに強い不快感を与えることになり、ひいてはオンラインゲームからのユーザ離れを引き起こし、オンラインゲーム事業が成り立たなくなる危惧がある。
【０００８】
以下、ＲＰＧにおける不正行為について更に補足する。
【０００９】
ネットワークＲＰＧにおけるフィールド、つまり仮想空間の世界は、移動可能／不可能箇所があり、これらをプログラムが制御することでゲーム内容に変化をつけている。仮想空間内の壁、丘、橋など、通過の可・不可を定めることで、現実世界と同じような変化に富んだ世界を表現する。これは、いわゆるレベルデザインと呼ばれる仮想空間の設定をするために必要不可欠なものであり、プレイヤに楽しみを与えるために必要な要素の一つである。一例としては、到達しがたい所定の位置座標に到達することでその位置座標に存在するアイテムを苦労の末に入手したり、距離の隔たった別な地域でしか入手できない複数のアイテムを組み合わせることで別の上級アイテムを入手したり、特定の地域（位置座標範囲）でしか登場しないモンスターキャラクタを討伐することで、その特定のモンスターからしか入手できないドロップアイテム（Drop Item：モンスターを退治した場合に所定確率で発生する入手可能アイテム。一般に通貨では購入できずゲーム中では希少価値が高い場合が多い）を入手することなどである。
【００１０】
ネットワークゲームにおいて、これらの情報を持つデータやそれを制御するプログラムを不正に改ざんすることで、特定のプレイヤを有利する行為が行われることがある。例えば、地形に設定されたパズルを解くことで、アイテムの入った宝箱のある座標に到達しなければ入手できないアイテムを、不正な改ざんをすることで壁を無視して移動することで簡単に入手したり、現在の位置情報に紐付く各種地形情報（登場モンスター、ショップ位置、体力等の各種オブジェクトステータス値が回復／変更可能な特殊地形等）を不正に改変したりすることで不正を行うという問題がある。その他にも、登場モンスター制御→安全な街の周辺に高報酬のモンスターを登場させて低リスクで戦闘を行ったり、ショップ位置制御→本来アイテム取引ができない場所でアイテム売買や交換を行ったり、特殊地形制御→地域情報不正操作で体力回復／マイナス効果排除したりする等の種々の不正がある。
【００１１】
これらは、ゲームのバランスを崩すだけでなく、プレイヤ同士の平等性を著しく壊すため、運営会社の営業活動を阻害する原因となっている。
【００１２】
この問題を含め、ゲームクライアントソフトの不正改造に関する対策は、「アンチハックツール」と呼ばれる外部ツールによって、不正なデータ改ざんを行うソフトウェアが動作していないかどうかをチェックするのが一般的である。アンチハックツールはクライアントソフト群のひとつとしてオペレーションシステムに介在し、クライアントプログラム以外で起動している他のソフトを監視して、ゲームクライアントソフトの動作および利用しているクライアントの各種リソースに対して何らかの介入を行っているものを発見するものである。オンラインゲームのアンチハックツールとチートツールは、相手が対策を講じるとさらにその対策を行うという、俗にいう「いたちごっこ」を繰り返しており、運営終了までその対応合戦は永遠と続くことになり、運営側に対しては非常に大きな負担が強いられることになる。また、不正に直接関わっていないプレイヤであっても、ゲーム中に不正な手段で入手された稀少度の高いアイテム（レアアイテム）等を不正行為プレイヤから譲り受けた場合においては処分の対象となる問題がある。
【００１３】
このようにアンチハックツールだけでは対応が不可能な問題があり、リアルタイムかつ軽い負荷処理で不正チェックを行う手法はネットワークを用いたＲＰＧゲーム全体の共通課題であった。
【００１４】
一方、このような不正行為に対処するための公知技術として、特許文献１、２に開示されるものがある。
【００１５】
特許文献１は、検証対象のクライアントからゲームの実行状態を示すプレイログを取得し、そのプレイログに基づいて他のクライアントやサーバ等においてゲームの実行を再現し、プレイログの結果値と実行再現の結果値とを比較して不一致があった場合に不正行為が存在するものと判定するようにしている。
【００１６】
また、特許文献２は、サーバからクライアントにチャレンジ（応答を生じさせるコードセグメントとパラメータを含む）を発行することでクライアント状態を示す応答を取得し、この応答を期待される応答と比較することで、不一致があった場合に不正行為が存在するものと判定するようにしている。
【先行技術文献】
【特許文献】
【００１７】
【特許文献１】特開２００６−６４７３号公報
【特許文献２】特開２００４−１６４６４０号公報
【発明の概要】
【発明が解決しようとする課題】
【００１８】
特許文献１に開示される技術は、検証対象のクライアントから取得したプレイログに基づいて、他のクライアントやサーバ等においてゲームの実行を再現するものであるため、他のクライアントやサーバ等はゲームの実行を再現するに足る環境を備えていなければならない。
【００１９】
特に、仮想空間内をプレイヤオブジェクトが移動するタイプのオンラインゲームにあっては、検証対象のプレイヤオブジェクトの位置座標等の大量のデータをプレイログとして取得して他のクライアント等に送信しなければならないため、通信負荷が高くなり、検証を行なうクライアントやサーバの動作に悪影響を与えるという問題があった。
【００２０】
また、他のクライアント等はゲームの実行を再現するために検証対象のクライアントと同じゲームロジックのプログラムや地形データや各種のアクション関連データを有していなければならない。しかし、仮想空間内をプレイヤオブジェクトが移動するタイプのオンラインゲームにあっては、広大な仮想空間に各プレイヤオブジェクトが散在しており、各クライアントは自己のプレイヤオブジェクトが存在するエリアに対応するプログラムおよびデータのみを利用可能な状態としているため、遠く離れた地点にいる検証対象のプレイヤオブジェクトについてのゲームの実行を再現することはできない。あえてそのようなゲームの実行を再現するためには、検証対象のプレイヤオブジェクトの存在する座標位置に対応するプログラムおよびデータをメモリにロードし、自クライアントにそのようなプログラムやデータがない場合にはサーバから取得しなければならず、通信負荷やメモリ消費量増大によるクライアントへの悪影響が大きくなるという問題があった。
【００２１】
一方、特許文献２に開示される技術は、サーバからクライアントにチャレンジを発行してクライアント状態を示す応答を取得するものであるため、このような不正診断を回避するプログラムを用い、期待される応答を返すようにすることで、不正チェックが行なえなくなるという問題がある。
【００２２】
本発明は上記の従来の問題点に鑑み提案されたものであり、その目的とするところは、仮想空間内をプレイヤオブジェクトが移動するタイプのオンラインゲームにおいて、不正チェックを行なうクライアントに悪影響を与えることなく、有効に不正行為を検出することのできる手法を提供することにある。
【課題を解決するための手段】
【００２３】
上記の課題を解決するため、本発明にあっては、請求項１に記載されるように、ネットワークを介して複数のクライアントが接続されるオンラインゲームサーバの処理方法であって、前記クライアントから、当該クライアントのプレイヤが直接に操作する当該プレイヤの分身として振る舞うプレイヤオブジェクトの座標位置を含むゲームロジックの処理結果を受信し、当該処理結果に基づいて前記クライアント毎に表示すべき移動オブジェクトのデータを束ねたデータリストを更新する工程と、前記クライアントに対し、当該クライアントに対応する前記データリストを含むテンポラリ情報を送信する工程と、前記クライアントから、前記テンポラリ情報に基づき自己のプレイヤオブジェクトを中心に所定範囲内に存在する他のプレイヤオブジェクトの動作状態に不正があった旨の不正報告情報を取得して不正情報データとして蓄積する工程とを備えるオンラインゲームサーバ処理方法を要旨としている。
【００２４】
また、請求項２に記載されるように、請求項１に記載のオンラインゲームサーバ処理方法において、各クライアントに対応する前記データリストから当該クライアントの対象プレイヤオブジェクトを中心とする所定範囲内に他のプレイヤオブジェクトが存在するか否か判断する工程と、他のプレイヤオブジェクトが存在しないと判断された場合に、ダミークライアントを生成し、当該ダミークライアントの不可視のプレイヤオブジェクトを前記対象プレイヤオブジェクトに付随化する工程とを備えるようにすることができる。
【００２５】
また、請求項３に記載されるように、請求項１または２のいずれか一項に記載のオンラインゲームサーバ処理方法において、前記クライアントから、前記テンポラリ情報に基づき自己のプレイヤオブジェクトを中心に所定範囲内に存在する他のプレイヤオブジェクトにおいて自動操作行為が行われている旨の不正報告情報を取得して不正情報データとして蓄積する工程を備えるようにすることができる。
【００２６】
また、請求項４に記載されるように、ネットワークを介して複数のクライアントが接続されるオンラインゲームサーバ装置であって、前記クライアントから、当該クライアントのプレイヤが直接に操作する当該プレイヤの分身として振る舞うプレイヤオブジェクトの座標位置を含むゲームロジックの処理結果を受信し、当該処理結果に基づいて前記クライアント毎に表示すべき移動オブジェクトのデータを束ねたデータリストを更新する手段と、前記クライアントに対し、当該クライアントに対応する前記データリストを含むテンポラリ情報を送信する手段と、前記クライアントから、前記テンポラリ情報に基づき自己のプレイヤオブジェクトを中心に所定範囲内に存在する他のプレイヤオブジェクトの動作状態に不正があった旨の不正報告情報を取得して不正情報データとして蓄積する手段とを備えるオンラインゲームサーバ装置として構成することができる。
【００２７】
また、請求項５に記載されるように、ネットワークを介して複数のクライアントが接続されるオンラインゲームサーバを構成するコンピュータを、前記クライアントから、当該クライアントのプレイヤが直接に操作する当該プレイヤの分身として振る舞うプレイヤオブジェクトの座標位置を含むゲームロジックの処理結果を受信し、当該処理結果に基づいて前記クライアント毎に表示すべき移動オブジェクトのデータを束ねたデータリストを更新する手段、前記クライアントに対し、当該クライアントに対応する前記データリストを含むテンポラリ情報を送信する手段、前記クライアントから、前記テンポラリ情報に基づき自己のプレイヤオブジェクトを中心に所定範囲内に存在する他のプレイヤオブジェクトの動作状態に不正があった旨の不正報告情報を取得して不正情報データとして蓄積する手段として機能させるオンラインゲームサーバ処理プログラムとして構成することができる。
【００２８】
また、請求項６に記載されるように、ネットワークを介してオンラインゲームサーバに接続されるクライアントを構成するコンピュータを、前記オンラインゲームサーバに対し、前記クライアントのプレイヤが直接に操作する当該プレイヤの分身として振る舞うプレイヤオブジェクトの座標位置を含むゲームロジックの処理結果を送信する手段、前記オンラインゲームサーバから、前記クライアントに表示すべき移動オブジェクトのデータを束ねたデータリストを含むテンポラリ情報を受信する手段、前記テンポラリ情報に基づき自己のプレイヤオブジェクトを中心に所定範囲内に存在する他のプレイヤオブジェクトの動作状態を判断し、該状態に不正があると判断した場合に前記オンラインゲームサーバに対して不正報告データを送信する手段として機能させるオンラインゲームクライアント処理プログラムとして構成することができる。
【００２９】
また、請求項７に記載されるように、請求項６に記載のオンラインゲームクライアント処理プログラムにおいて、前記動作状態の不正とは、対象となるプレイヤオブジェクトの存在する座標位置の周辺情報に設定されたデータにより許容される動作状態の変化と、該プレイヤオブジェクトに設定された動作状態を示すデータの変化とが一致しない場合に不正と判断するものとすることができる。
【００３０】
また、請求項８に記載されるように、請求項６に記載のオンラインゲームクライアント処理プログラムにおいて、前記動作状態の不正とは、対象となるプレイヤオブジェクトに対して自動操作判別手段が自動操作と判断した場合に不正と判断するものとすることができる。
【００３１】
また、請求項９に記載されるように、ネットワークを介して複数のクライアントが接続されるオンラインゲームサーバを構成するコンピュータを、前記クライアントから、当該クライアントのプレイヤが直接に操作する当該プレイヤの分身として振る舞うプレイヤオブジェクトの座標位置を含むゲームロジックの処理結果を受信し、当該処理結果に基づいて前記クライアント毎に表示すべき移動オブジェクトのデータを束ねたデータリストを更新する手段、前記クライアントに対し、当該クライアントに対応する前記データリストを含むテンポラリ情報を送信する手段、前記クライアントから、前記テンポラリ情報に基づき自己のプレイヤオブジェクトを中心に所定範囲内に存在する他のプレイヤオブジェクトの動作状態に不正があった旨の不正報告情報を取得して不正情報データとして蓄積する手段として機能させるためのプログラムを記録したコンピュータ読み取り可能なオンラインゲームサーバ処理プログラム記録媒体として構成することができる。
【発明の効果】
【００３２】
本発明にあっては、仮想空間内をプレイヤオブジェクトが移動するタイプのオンラインゲームにおいて、不正チェックを行なうクライアントに悪影響を与えることなく、有効に不正行為を検出することができる。
【図面の簡単な説明】
【００３３】
【図１】本発明の第１の実施形態にかかるオンラインゲームシステムの構成例を示す図である。
【図２】オンラインゲームサーバの構成例を示す図である。
【図３】ＭＯｂリストとＭＯｂデータの構造例を示す図である。
【図４】オンラインゲームサーバのハードウェア構成例を示す図である。
【図５】クライアントの構成例を示す図である。
【図６】オンラインゲームサーバの処理例を示すフローチャートである。
【図７】クライアントの処理例を示すフローチャートである。
【図８】不正チェックの対象となる周辺のプレイヤオブジェクトの位置の例を示す図である。
【図９】不正チェックの例を示す図である。
【図１０】第２の実施形態におけるオンラインゲームサーバの不正情報管理部の処理例を示すフローチャートである。
【図１１】ダミークライアントの構成例を示す図である。
【図１２】第３の実施形態におけるクライアントの不正検出処理部の処理例を示すフローチャートである。
【発明を実施するための形態】
【００３４】
以下、本発明の好適な実施形態につき説明する。
【００３５】
＜用語＞
以下の説明において、「オブジェクト」とは、ゲーム世界を構成する仮想空間内に表示される要素をいう。「オブジェクト」には位置が固定していて移動することのない「固定オブジェクト」と、移動することのできる「移動オブジェクト」とが含まれる。「移動オブジェクト」には、クライアントを操作するプレイヤ（ユーザ）が直接に操作し、プレイヤの分身として振る舞う「プレイヤオブジェクト（プレイヤキャラクタ）」と、それ以外の移動オブジェクト（プレイヤオブジェクトに付随する装備品やペット等、あるいはゲーム進行により発生するモンスター、宝箱、アイテム、通貨等）が含まれる。また、あるプレイヤの操作するクライアントから見て、自クライアント内で位置等が管理される「クライアントオブジェクト」とそれ以外の移動オブジェクト（サーバを経由して取得する、周囲に存在する他のプレイヤのクライアントオブジェクト）に分けることもできる。
【００３６】
＜第１の実施形態＞
図１は本発明の第１の実施形態にかかるオンラインゲームシステムの構成例を示す図である。
【００３７】
図１において、オンラインゲームシステムは、インターネット等のネットワーク２に接続されたオンラインゲームサーバ（オンラインゲームサーバ装置）１と、複数（多数）のクライアント（クライアント装置）３とから構成される。オンラインゲームサーバ１は単一のサーバ装置である必要はなく、通常は複数のサーバ装置から構成されるサーバ群である。クライアント３はネットワーク接続機能を有したＰＣ（Personal Computer）等の機器である。
【００３８】
図２はオンラインゲームサーバ１の構成例を示す図である。オンラインゲームサーバ１は、機能部として、対クライアント通信部１１１とクライアント実行プログラム・基本データ管理部１１２とログイン／ログアウト処理部１１３とテンポラリ情報管理部１１４とゲームロジック処理部１１５と不正情報管理部１１６とを備えている。これらの機能部は、オンラインゲームサーバ１を構成するコンピュータのＣＰＵ（Central Processing Unit）、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）等のハードウェア資源上で実行されるコンピュータプログラムによって実現されるものである。
【００３９】
また、オンラインゲームサーバ１は、処理に必要なプログラムやデータをＲＡＭやＨＤＤ（Hard Disk Drive）等の記憶領域１２０に保持している。保持するプログラムやデータには、クライアント実行プログラムモジュール１２１と地形データ１２２とオブジェクトグラフィックデータ１２３とアクション関連データ１２４と登録ユーザ情報１２５と環境情報データ１２６とクライアント毎ＭＯｂリスト１２７と不正情報データ１２８とが含まれる。
【００４０】
クライアント実行プログラムモジュール１２１は、クライアント３において実行され、ゲーム進行を行うプログラムである。ひとまとまりのプログラムである場合は、各クライアント３に対して初回のゲーム開始前に１回ダウンロードすれば足りるが、ゲームのステージによって複数種類のプログラムとなる場合は、ゲーム進行に応じて必要なプログラムを追加的にダウンロードする。
【００４１】
地形データ１２２は、ゲーム世界を構成する仮想空間の地図データである。地形データ１２２は、道路、建物等の輪郭の位置情報を含むとともに、該当する位置に配置される固定オブジェクトを特定する情報、着色やテクスチャ等を特定する情報を含む。また、地形データ１２２は、プレイヤオブジェクトが進入できる領域であるか否かの情報や、その領域を通る場合の移動速度等の情報も含んでいる。
【００４２】
オブジェクトグラフィックデータ１２３は、描画用の画像データである。オブジェクトグラフィックデータ１２３は、固定オブジェクトや移動オブジェクトの画像データを含んでいる。画像データには、ポリゴンデータ、静止画データ、テクスチャデータ、特殊効果データ等が含まれる。
【００４３】
アクション関連データ１２４は、ゲームの仮想空間内で発生するアクションを記述するデータである。ある位置範囲にプレイヤオブジェクトが入るとモンスターや宝箱等が出現する場合、地形データ１２２の位置情報と関連付けて、出現するモンスターや宝箱等の移動オブジェクトを特定する情報や、そのモンスターや宝箱等から入手可能アイテムや通貨等の情報が含まれている。
【００４４】
地形データ１２２、オブジェクトグラフィックデータ１２３およびアクション関連データ１２４は、それぞれがひとまとまりのデータである場合は、各クライアント３に対して初回のゲーム開始前に１回ダウンロードすれば足りるが、ゲームのステージによって複数に区分されたデータとなる場合は、ゲーム進行に応じて必要なデータを追加的にダウンロードする。
【００４５】
登録ユーザ情報１２５は、オンラインゲームの利用登録を行ったユーザを管理するための情報であり、ユーザＩＤ（クライアントＩＤ）、パスワード、ハンドル名等の情報を含んでいる。
【００４６】
環境情報データ１２６は、ゲーム世界における現在の日時や天候等を示す情報である。
【００４７】
クライアント毎ＭＯｂリスト（データリスト）１２７は、クライアント３毎に表示すべき移動オブジェクト（ＭＯｂ：Moving Object）のＭＯｂデータをリストに束ねたものである。図３はＭＯｂリストとＭＯｂデータの構造例を示す図であり、ＭＯｂリストは表示する移動オブジェクトの数に相当する複数のＭＯｂデータから構成され、各ＭＯｂデータは「Ｓｅｒｉａｌ番号」「ＭＯｂ  ＩＤ（ＭＯｂ  Ｔｙｐｅ）」「位置座標（ＸＹＺ）」「状態データ」等の項目を有している。
【００４８】
ここで、「Ｓｅｒｉａｌ番号」は、仮想空間内の移動オブジェクトを特定するための管理番号であり、仮想空間中の全ての移動オブジェクトに対して１対１で紐付けられたユニーク（固有）なＩＤである。
【００４９】
「ＭＯｂ  ＩＤ（ＭＯｂ  Ｔｙｐｅ）」は、該当する移動オブジェクトの種類を特定する管理番号である。例えば、仮想空間内に同じ種類のモンスターが複数存在した場合、それらのモンスターはＭＯｂ  ＩＤ（ＭＯｂ  Ｔｙｐｅ）は共通となるが、Ｓｅｒｉａｌ番号は異なる値となる。
【００５０】
図２に戻り、不正情報データ１２８は、クライアント３において検出されて報告された不正情報を蓄積したものである。不正情報には、不正が検出された監視対象のクライアント３を特定する情報と、検出された不正の内容が含まれる。
【００５１】
対クライアント通信部１１１は、クライアント３との間の通信（送信、受信）を制御する機能を有している。
【００５２】
クライアント実行プログラム・基本データ管理部１１２は、クライアント３へのクライアント実行プログラムモジュール１２１および基本データ（地形データ１２２、オブジェクトグラフィックデータ１２３、アクション関連データ１２４）のダウンロードを制御する機能を有している。
【００５３】
ログイン／ログアウト処理部１１３は、クライアント３からの要求に応じてログインおよびログアウトを制御する機能を有している。すなわち、クライアント３におけるゲーム開始時の起動処理において行われるログイン処理に際してユーザから入力されるユーザＩＤ、パスワード等に基づき、登録ユーザ情報１２５を参照して認証を行い、認証が正常に行われた場合にログインを行う。また、クライアント３からログアウトの通知が行われた場合にログアウトを行う。
【００５４】
テンポラリ情報管理部１１４は、各クライアント３から所定のターム（Term）毎に行われるゲームロジックの処理結果報告（クライアント３側で処理しない操作入力についてはゲームロジック処理部１１５での処理結果）に基づいてクライアント毎ＭＯｂリスト１２７を更新するとともに、クライアント３から同じく所定のターム毎に行われるテンポラリ情報取得要求に応じ、クライアント毎ＭＯｂリスト１２７中の当該クライアント３に対応するＭＯｂリストと環境情報データ１２６とを含むテンポラリ情報をクライアント３に送信する機能を有している。クライアント３からの処理結果報告（オンラインゲームサーバ１側のゲームロジック処理部１１５での処理結果も同様）には、クライアントオブジェクトの位置情報が含まれている。
【００５５】
なお、ここでいうタームとは、オンラインゲームサーバ１と各クライアント３のデータのやり取りのタイミングを指す。具体的にはゲームの種類によって異なるが、１秒間に４回（およそ４／６０＝１５分の１秒）程度のやり取りが行われる。一般のゲーム装置（本発明のクライアント３を含む）は、表示装置の画面書き換えのタイミングである１／６０秒を１フレームという基準として、１／３０秒（２フレーム）または１／６０秒（１フレーム）でキー操作入力対応・画面描画を行っているが、必ずしもこの内部処理時間とサーバ・クライアント間通信のタームは一致させる必要がない。一般的なアクション系要素を持つオンラインゲームにおいては、クライアント内部処理とサーバ・クライアント間通信のタームは異なる場合が多い。
【００５６】
ゲームロジック処理部１１５は、クライアント３側で行わないゲームロジック処理につき、クライアント３からの要求に応じて処理を行い、処理結果をクライアント３に返送する機能を有している。従って、全てのゲームロジック処理をクライアント３側で行なう場合、ゲームロジック処理部１１５は不要となる。
【００５７】
不正情報管理部１１６は、クライアント３から不正報告を取得し、不正情報データ１２８に蓄積する機能を有している。
【００５８】
図４はオンラインゲームサーバ１のハードウェア構成例を示す図である。
【００５９】
図４において、オンラインゲームサーバ１は、システムバス１０１に接続されたＣＰＵ１０２、ＲＯＭ１０３、ＲＡＭ１０４、ＮＶＲＡＭ（Non-Volatile Random Access Memory）１０５、Ｉ／Ｆ（Interface）１０６と、Ｉ／Ｆ１０６に接続された、キーボード、マウス、モニタ、ＣＤ／ＤＶＤ（Compact Disk/Digital Versatile Disk）ドライブ等のＩ／Ｏ（Input/Output Device）１０７、ＨＤＤ１０８、ＮＩＣ（Network Interface Card）１０９等を備えている。Ｍはプログラムもしくはデータが格納されたＣＤ／ＤＶＤ等のメディア（記録媒体）である。
【００６０】
図５はクライアント３の構成例を示す図である。クライアント３は、機能部として、対オンラインゲームサーバ通信部３１１とクライアント実行プログラム・基本データ取得部３１２とログイン／ログアウト処理部３１３とテンポラリ情報取得部３１４とプレイヤ操作入力部３１５とゲームロジック処理部３１６と不正検出処理部３１７と描画処理部３１８とを備えている。これらの機能部は、クライアント３を構成するコンピュータのＣＰＵ、ＲＯＭ、ＲＡＭ等のハードウェア資源上で実行されるコンピュータプログラムによって実現されるものである。クライアント３で実行される主なコンピュータプログラムは、オンラインゲームサーバ１からクライアント実行プログラムモジュール１２１に基づいてダウンロードされたプログラムである。
【００６１】
また、クライアント３は、処理に必要なプログラムやデータをＲＡＭやＨＤＤ等の記憶領域３２０に保持している。保持するプログラムやデータには、地形データ３２１とオブジェクトグラフィックデータ３２２とアクション関連データ３２３とテンポラリ情報データ３２４とが含まれる。
【００６２】
地形データ３２１、オブジェクトグラフィックデータ３２２およびアクション関連データ３２３は、オンラインゲームサーバ１からクライアント実行プログラム・基本データ管理部１１２の制御のもとに地形データ１２２、オブジェクトグラフィックデータ１２３およびアクション関連データ１２４に基づいて送信されて格納されたデータである。
【００６３】
テンポラリ情報データ３２４は、オンラインゲームサーバ１からテンポラリ情報管理部１１４の制御のもとに送信されて格納されたテンポラリ情報のデータである。
【００６４】
対オンラインゲームサーバ通信部３１１は、オンラインゲームサーバ１との間の通信（送信、受信）を制御する機能を有している。
【００６５】
クライアント実行プログラム・基本データ取得部３１２は、オンラインゲームサーバ１のクライアント実行プログラム・基本データ管理部１１２に対してプログラムおよび基本データを要求し、オンラインゲームサーバ１からのダウンロードを制御する機能を有している。
【００６６】
ログイン／ログアウト処理部３１３は、オンラインゲームサーバ１のログイン／ログアウト処理部１１３との間でのログインおよびログアウトを制御する機能を有している。
【００６７】
テンポラリ情報取得部３１４は、オンラインゲームサーバ１のテンポラリ情報管理部１１４からテンポラリ情報のデータを取得し、テンポラリ情報データ３２４に保持する機能を有している。
【００６８】
プレイヤ操作入力部３１５は、キーボード、マウス等によりプレイヤの操作を入力する機能を有している。
【００６９】
ゲームロジック処理部３１６は、プレイヤ操作入力部３１５でのプレイヤの操作入力に基づき、クライアント３側で処理する操作入力についてゲームロジックを処理し、処理結果をオンラインゲームサーバ１のテンポラリ情報管理部１１４に送信する機能を有している。ゲームロジックの処理には、プレイヤオブジェクトの移動、他のオブジェクトとの当たり判定、アクションの起動、周囲のプレイヤオブジェクトとの会話（チャット）等が含まれる。
【００７０】
不正検出処理部３１７は、テンポラリ情報データ３２４に保持された現時点のテンポラリ情報に基づき、自己のプレイヤオブジェクトを中心に所定範囲内に存在する他のプレイヤオブジェクトの動作状態に不正がないかどうかをチェックし、不正行為を検出した場合にオンラインゲームサーバ１に不正報告を行う機能を有している。なお、不正のチェックに際しては、不正検出処理部３１７側で取得可能な地形データ３２１、アクション関連データ３２３等の周辺情報を利用する。不正チェックの詳細については後述する。
【００７１】
描画処理部３１８は、テンポラリ情報データ３２４に保持された現時点のテンポラリ情報およびゲームロジック処理部３１６（１１５）による操作入力の処理結果に基づいて表示装置にゲーム画像を描画する機能を有している。
【００７２】
以下、第１の実施形態の動作について説明する。なお、検出する不正行為としては次のようなパターンを想定している。なお、検出する不正行為はこの例に限られるものではない。
・「地形から進入できない座標位置にプレイヤオブジェクトが存在した」パターン
・「商店／露店／相手が存在しない座標位置で売買／交換／授受が行われた」パターン
・「ある座標位置に発生するモンスターから得ることができないアイテムを入手した」パターン
・「ある座標位置に存在しない宝箱からアイテム／通貨を取得した」パターン
図６はオンラインゲームサーバ１の処理例を示すフローチャートである。
【００７３】
図６において、オンラインゲームサーバ１はクライアント３からの通信を受けて処理を開始すると（ステップＳ１０１）、通信内容により処理を分岐する（ステップＳ１０２）。
【００７４】
通信内容がクライアント３のテンポラリ情報取得部３１４からのテンポラリ情報取得要求である場合、テンポラリ情報管理部１１４は、環境情報データ１２６から環境情報を取得するとともに、クライアント毎ＭＯｂリスト１２７から要求元のクライアント３に対応するＭＯｂリストを取得する（ステップＳ１０３）。そして、取得した環境情報とＭＯｂリストをテンポラリ情報として要求元のクライアント３のテンポラリ情報取得部３１４に送信し（ステップＳ１０４）、処理を終了する（ステップＳ１１０）。
【００７５】
また、通信内容がクライアント３のゲームロジック処理部３１６からの処理結果通知である場合、テンポラリ情報管理部１１４は、取得した処理結果通知に基づいてクライアント毎ＭＯｂリスト１２７のＭＯｂデータを更新する（ステップＳ１０５）。すなわち、処理結果にプレイヤオブジェクトの位置情報が含まれている場合は該当するＭＯｂデータの位置座標を更新する。また、アクションの起動によりモンスターや宝箱やアイテムや通貨等の移動オブジェクトが新たに発生した場合には、該当するクライアントと対応付けてクライアント毎ＭＯｂリスト１２７にＭＯｂデータを追加する。その後、処理を終了する（ステップＳ１１０）。
【００７６】
また、通信内容がクライアント３のゲームロジック処理部３１６からの操作入力による処理要求である場合、ゲームロジック処理部１１５は操作入力によるゲームロジックの処理を行い（ステップＳ１０６）、処理結果をクライアント３のゲームロジック処理部３１６に送信する（ステップＳ１０７）。そして、処理結果に基づいてクライアント毎ＭＯｂリスト１２７のＭＯｂデータを更新し（ステップＳ１０８）、処理を終了する（ステップＳ１１０）。
【００７７】
また、通信内容がクライアント３の不正検出処理部３１７からの不正報告である場合、不正情報管理部１１６は、取得した不正報告の内容を不正情報データ１２８に記録し（ステップＳ１０９）、処理を終了する（ステップＳ１１０）。
【００７８】
図７はクライアント３の処理例を示すフローチャートである。
【００７９】
図７において、クライアント３はユーザ（プレイヤ）による起動操作により処理を開始すると（ステップＳ３０１）、ログイン／ログアウト処理部３１３によるログイン処理を含む起動処理を行う（ステップＳ３０２）。
【００８０】
起動が完了すると、テンポラリ情報取得部３１４は、オンラインゲームサーバ１のテンポラリ情報管理部１１４に対してテンポラリ情報取得要求を行ってテンポラリ情報を取得し、テンポラリ情報データ３２４に保存する（ステップＳ３０３）。この際、後述する不正チェックを行うため、過去のテンポラリ情報についても最低直前の１回分は残しておく。
【００８１】
次いで、描画処理部３１８は、取得したテンポラリ情報および操作入力の処理結果に基づいてゲーム画像の描画を行う（ステップＳ３０４）。起動直後には操作入力はなく、ゲームロジックの処理結果もないため、テンポラリ情報のみに基づいて描画が行われる。
【００８２】
次いで、プレイヤ操作入力部３１５はプレイヤから操作入力を受け（ステップＳ３０５）、ゲームロジック処理部３１６は操作入力に基づいてゲームロジックの処理を行う（ステップＳ３０６）。なお、クライアント３側で処理しない操作入力については、ゲームロジックの処理を行わない。
【００８３】
次いで、ゲームロジック処理部３１６は、オンラインゲームサーバ１にゲームロジックの処理結果を送信する（ステップＳ３０７）。クライアント３側で処理しない操作入力についてゲームロジックの処理を行わなかった場合は、操作入力の内容をオンラインゲームサーバ１のゲームロジック処理部３１６に送信して処理を要求し、処理結果を受信する（ステップＳ３０７）。
【００８４】
次いで、不正検出処理部３１７は、テンポラリ情報データ３２４に保持された現時点のテンポラリ情報に基づき、自己のプレイヤオブジェクトを中心に所定範囲内に存在する他のプレイヤオブジェクトの動作状態に不正がないかどうかをチェックする（ステップＳ３０８）。
【００８５】
図８は不正チェックの対象となる周辺のプレイヤオブジェクトの位置の例を示す図である。今、着目しているクライアント３のプレイヤオブジェクトがＭＯｂ１であるとし、ＭＯｂ２はＭＯｂ１に付随するペット等の移動オブジェクト、ＭＯｂ３はモンスター等の移動オブジェクト、ＭＯｂ４、ＭＯｂ６は他のプレイヤのプレイヤオブジェクト、ＭＯｂ５は宝箱等の移動オブジェクトであるとする。
【００８６】
この場合、着目しているクライアント３のテンポラリ情報データ３２４には全ての移動オブジェクトＭＯｂ１〜ＭＯｂ６のＭＯｂデータが含まれている。従って、不正検出処理部３１７は、テンポラリ情報データ３２４の各ＭＯｂデータの「ＭＯｂ  ＩＤ（ＭＯｂ  Ｔｙｐｅ）」から自己のプレイヤオブジェクトを除いて、プレイヤオブジェクトとなり得る移動オブジェクトＭＯｂ４、ＭＯｂ６を先ず特定する。次いで、プレイヤオブジェクトＭＯｂ１の「座標位置」と他のプレイヤオブジェクトＭＯｂ４、ＭＯｂ６の「座標位置」からＸＹ平面内における距離をそれぞれ演算し、それが所定範囲内に入るものを不正チェックの対象とする。図８の例では、所定範囲を破線の円で示しているが、この中に入るプレイヤオブジェクトとしてプレイヤオブジェクトＭＯｂ４を特定する。
【００８７】
次いで、不正検出処理部３１７は、特定した他のプレイヤオブジェクトＭＯｂ４につき、テンポラリ情報データ３２４の前回の「座標位置」から今回の「座標位置」に対して、ゲームロジック処理部３１６と同様のゲームロジックに従って移動を試みる。なお、あくまでも不正チェックのためであるため、ゲーム画面に反映させるための処理結果は出力しない。
【００８８】
図９は不正チェックの例を示す図であり、図８のプレイヤオブジェクトＭＯｂ１、ＭＯｂ４のみを示している。この場合、プレイヤオブジェクトＭＯｂ４の前回の座標位置Ｐから現在の座標位置に矢印で示すように移動を試みた場合、壁Ｗとの当たり判定により前進が阻まれることから移動は行えず、プレイヤオブジェクトＭＯｂ４の今回の座標位置への移動は不正行為によって行われた可能性が高く、「不正あり」と判断する。問題なく移動が行えた場合は「不正なし」と判断する。
【００８９】
これは「地形から進入できない座標位置にプレイヤオブジェクトが存在した」パターンの不正を検出する場合の例であるが、その他のパターンについては次にように不正チェックを行う。
【００９０】
すなわち、「商店／露店／相手が存在しない座標位置で売買／交換／授受が行われた」パターンや「ある座標位置に存在しない宝箱からアイテム／通貨を取得した」パターンの場合、対象となるプレイヤオブジェクトの現在の座標位置に商店／露店／相手や宝箱に対応する「ＭＯｂ  ＩＤ（ＭＯｂ  Ｔｙｐｅ）」の移動オブジェクトが存在せず、かつ、その近傍に売買／交換／授受が行われ、あるいはアイテム／通貨を取得したことを示す「ＭＯｂ  ＩＤ（ＭＯｂ  Ｔｙｐｅ）」の移動オブジェクトの発生を確認した場合には「不正あり」と判断する。
【００９１】
また、「ある座標位置に発生するモンスターから得ることができないアイテムを入手した」パターンの場合、対象となるプレイヤオブジェクトの現在の座標位置にモンスターに対応する「ＭＯｂ  ＩＤ（ＭＯｂ  Ｔｙｐｅ）」の移動オブジェクトが存在し、かつ、その近傍のアイテム／通貨を取得したことを示す「ＭＯｂ  ＩＤ（ＭＯｂ  Ｔｙｐｅ）」の移動オブジェクトが、アクション関連データ３２３からそのモンスターからは取得できないものであることを確認した場合には「不正あり」と判断する。
【００９２】
図７に戻り、不正検出処理部３１７は、「不正あり」と判断した場合（ステップＳ３０９のＹｅｓ）、オンラインゲームサーバ１の不正情報管理部１１６に不正報告を行う（ステップＳ３１０）。
【００９３】
そして、プレイヤからログアウト操作が行われていない場合（ステップＳ３１１のＮｏ）、オンラインゲームサーバ１からのテンポラリ情報の取得（ステップＳ３０３）に戻り、同様の処理を繰り返す。これらの処理は、１／３０秒（２フレーム）または１／６０秒（１フレーム）という処理周期で繰り返す。
【００９４】
プレイヤからログアウト操作が行われた場合（ステップＳ３１１のＹｅｓ）、クライアント３は処理を終了する（ステップＳ３１２）。
【００９５】
以上の処理により、各クライアント３は自己のプレイヤオブジェクトの所定範囲内に存在する他のプレイヤオブジェクトの不正チェックを行うことから、自己のプレイヤオブジェクトのゲームロジックに必要なプログラムとデータを共通に使用でき、不正チェックのために新たなプログラムやデータをメモリ上に展開したりオンラインゲームサーバ１から取得したりする必要がなく、メモリの圧迫や通信負荷によるクライアント３への悪影響をなくすことができる。また、監視の対象となるクライアント３とは別のクライアント３において不正チェックが行われるため、不正チェックを免れることは極めて困難となる。
【００９６】
＜第２の実施形態＞
第２の実施形態は、監視対象となるプレイヤオブジェクトの周辺に他のプレイヤオブジェクトが存在しない場合に備え、ダミークライアントにおける不可視のプレイヤオブジェクト（Ｎｕｌｌオブジェクト）による不正チェックを行えるようにしたものである。
【００９７】
すなわち、上述した第１の実施形態では、不正行為を行う悪質プレイヤの操作するプレイヤオブジェクトの周辺に他のクライアントのプレイヤによって操作されるプレイヤオブジェクトが存在しない場合に不正チェックを行えないという問題がある。
【００９８】
そこで、この第２の実施形態では、オンラインゲームサーバ側において各クライアントのプレイヤオブジェクトの所定範囲内に他のプレイヤオブジェクトが１つ以上存在するか否か判断し、存在しないと判断した場合には各種の不正チェックを行う専用のダミークライアントを生成し、このダミークライアントにおける誰のものでもない不可視のプレイヤオブジェクトをチェック対象のプレイヤオブジェクトに付随させて不正チェックを行うようにしている。
【００９９】
ゲームシステムの全体構成は図１とほぼ同様となり、ダミークライアントをどこに配置するかによって若干の違いが生じる。すなわち、ダミークライアントをクライアント３のいずれかに設ける場合や、オンラインゲームサーバ１の内部に設ける場合には図１と同じ構成となる。また、クライアント３やオンラインゲームサーバ１とは別に専用のダミークライアントを設ける場合には、ネットワーク２にダミークライアントが接続されることとなる。なお、ダミークライアントをクライアント３のいずれかに設ける場合、監視対象のクライアントと同じ装置内にダミークライアントを設けることは好ましくない。これは、悪質プレイヤに対してチェック情報を開示してしまうことに繋がるためである。
【０１００】
また、オンラインゲームサーバ１の構成は図２と同様であるが、不正情報管理部１１６とテンポラリ情報管理部１１４に以下に説明する処理を行う機能拡張を施している。ダミークライアントの構成については後述する。その他のクライアント３の構成は図４に示したものと同様である。
【０１０１】
図１０は第２の実施形態におけるオンラインゲームサーバ１の不正情報管理部１１６の処理例を示すフローチャートである。
【０１０２】
図１０において、オンラインゲームサーバ１の不正情報管理部１１６は処理を開始すると（ステップＳ１１１）、クライアント毎ＭＯｂリスト１２７の管理単位であるクライアント３の中から１つを特定する（ステップＳ１１２）。
【０１０３】
次いで、不正情報管理部１１６は、特定したクライアント３のＭＯｂリストをクライアント毎ＭＯｂリスト１２７から取得する（ステップＳ１１３）。
【０１０４】
次いで、不正情報管理部１１６は、取得したＭＯｂリストに基づき、特定したそのクライアント３のプレイヤオブジェクトを中心とする所定範囲内に当該クライアント３以外のプレイヤオブジェクトが存在するか否か判断する（ステップＳ１１４）。
【０１０５】
所定範囲内に当該クライアント３以外のプレイヤオブジェクトが存在しない場合（ステップＳ１１４のＮｏ）、不正情報管理部１１６は、ダミークライアントを生成する（ステップＳ１１５）。図１１はダミークライアント４の構成例を示す図であり、図５に示した通常のクライアント３と似た構成となっているが、操作主体となる実在するユーザが存在せず、プレイヤオブジェクト自身の当たり判定等のゲームロジックは不要であり、ゲーム画像の描画も不要であることから、図５のログイン／ログアウト処理部３１３、プレイヤ操作入力部３１５、ゲームロジック処理部３１６および描画処理部３１８に対応する機能部はない。その他の構成は図５と同様である。
【０１０６】
図１０に戻り、不正情報管理部１１６は、ダミークライアント４を生成した後、ダミークライアント４の不可視のプレイヤオブジェクト（Ｎｕｌｌオブジェクト）を、チェック対象となるクライアント３のプレイヤオブジェクトに付随化する（ステップＳ１１６）。付随化とは、対象となるクライアント３のプレイヤオブジェクトから所定距離以上離れないように（位置的に完全に重ねてもよい）、チェック対象となるクライアント３のプレイヤオブジェクトの後を追うように移動させるようにすることである。具体的には、ダミークライアント４のプレイヤオブジェクト（Ｎｕｌｌオブジェクト）のＭＯｂデータの「ＭＯｂ  ＩＤ（ＭＯｂ  Ｔｙｐｅ）」をＮｕｌｌオブジェクトであることを示す特別の値にするか、「状態データ」にＮｕｌｌオブジェクトであることを示す情報を付加する。これにより、ダミークライアント４の不正検出処理部４１７は、ゲームロジックの適用に際して、プレイヤオブジェクト（Ｎｕｌｌオブジェクト）の座標位置を対象となるクライアント３のプレイヤオブジェクトと所定距離（ゼロを含む）となる値に変更する。ただし、対象となるクライアント３のプレイヤオブジェクトが地形から進入不可の座標位置に入った場合は、当たり判定により進入不可となる直前の座標位置等までしか移動させない。一方、オンラインゲームサーバ１の不正情報管理部１１６はＮｕｌｌオブジェクトのＭＯｂデータを受信してクライアント毎ＭＯｂリスト１２７に保存した場合には、他のクライアント３への送信対象にはしない。
【０１０７】
一方、所定範囲内に当該クライアント３以外のプレイヤオブジェクトが存在する場合（ステップＳ１１４のＹｅｓ）、特定したクライアント３のプレイヤオブジェクトに付随するＮｕｌｌオブジェクトが存在するか否か判断し（ステップＳ１１７）、存在する場合（ステップＳ１１７のＹｅｓ）は該当するダミークライアント４を削除する（ステップＳ１１８）。ダミークライアント４の削除によりＮｕｌｌオブジェクトは消滅する。
【０１０８】
その後、すべてのクライアント３について処理済であるか否か判断し（ステップＳ１１９）、処理済でない場合（ステップＳ１１９のＮｏ）はクライアント３の特定（ステップＳ１１１）に戻る。処理済である場合（ステップＳ１１９のＹｅｓ）は処理を終了する（ステップＳ１２０）。
【０１０９】
＜第３の実施形態＞
この第３の実施形態は、ＢＯＴ行為（自動操作行為）と呼ばれるタイプの不正行為を検出できるようにしたものである。ＢＯＴ行為とは、クライアントプログラム自体の改変をせずに、クライアントプログラムへの信号入力を自動で行うロボットプログラムを用いることで自動的に報酬を得られるようにした不正行為である。
【０１１０】
多くのオンラインゲームはゲーム中での行動時間が長ければ長いほど経験値やアイテム等の取得ができ、その結果、ＢＯＴ行為を行うプレイヤは正当なプレイヤよりも優位に立てる条件が揃う。そのため、クライアントプログラムへの信号入力を自動で行うロボットプログラムが開発されてきた。一般にＢＯＴ行為はゲーム中の通貨やアイテムのインフレーションを起こすため、結果として、それらの不正行為を行っていない他のプレイヤに対して不利益を及ぼす。そのため、オンラインゲームの運営企業によっては禁止行為としている場合が多い。
【０１１１】
従来は、オンラインゲームを運営する会社のスタッフがＧＭツール（Game Master Tool）と呼ばれるスタッフ用クライアントを用い、チャット機能を用いて特殊なプレイヤオブジェクトから疑わしい他のプレイヤオブジェクトに対して会話を行い、スタッフの判断でＢＯＴ行為であるかどうかを判断し、必要に応じて処分を行っていた。
【０１１２】
また、ＣＡＰＴＣＨＡ画像と呼ばれる方式で予め数個の文字・数字などを歪んだ形で表示し、その文字・数字をプレイヤに入力させることで、人間か自動操作（ＢＯＴツール）かを判別するチューリングテスト方法がある。更にゲーム中にそれらの歪んだ画像表示を用いて人間か自動操作かの判別を制御装置に行わせ、その判別結果に応じて処分対応やご褒美対応を行うというものもあった。
【０１１３】
しかし、人間によるチャット操作による判別では、まず会話をするまでに怪しいプレイヤオブジェクトを特定するまでの手間が手作業として発生するという問題がある。そして、ＣＡＰＴＣＨＡ図形を用いた判別では、判別作業を自動化することができるが、ＢＯＴ判別をされるプレイヤ側にとってはあからさまにその判別入力によるＢＯＴ行為取り締まりが判るため、一時的にＢＯＴ行為を止めてゲーム終了処理（ログアウト）等によってゲームを中断されてしまうことが多い。そのため、結果としてＢＯＴ判別による不正チェックが成立しなくなるという問題があった。
【０１１４】
一方、ＢＯＴ行為を禁止する手法としては、ＢＯＴツールプログラムの動作をチェックするような手法が考えられるが、一般的なＰＣではチャットソフト、ウイルスチェッカーソフト、各種言語入力用フロントエンドプロセッサソフト等の、ゲームクライアントソフト以外にも複数のプログラムが動作しており、完全にゲームクライアントソフト以外の全てのソフトの介在を行わせないことは不可能である。
【０１１５】
そこで、第３の実施形態では、あるプレイヤオブジェクトの周辺情報から、周囲のプレイヤオブジェクトの情報を得て、自クライアント以外のプレイヤオブジェクトの所定時間内の各種行動情報を得ることで、その周囲のプレイヤオブジェクトがＢＯＴユニット（ＢＯＴ行為によって他のクライアント装置によって動作しているユニット）か否かを判別し、そのプレイヤオブジェクトがＢＯＴユニットと判別された場合にはサーバに通報するようにしている。
【０１１６】
実際には、一般的なＭＭＯ−ＲＰＧでは、各クライアント上で動作しているクライアントプログラムは、所定の距離内でのみ効果を発生させる操作（例えば、発生させたプレイヤオブジェクトを中心に所定範囲内の他のプレイヤオブジェクトにダメージを与える攻撃呪文等）や、近距離の複数のプレイヤオブジェクトが共同で行う連携動作の成功／失敗判定などを行うため、常時（具体的には１／３０秒程度のゲーム進行の単位となる非常に短い時間毎）、周囲の各プレイヤオブジェクト（各プレイヤによって操作されるもの以外の、サーバやクライアントプログラムによって操作される敵モンスターなどを含む）の行動状態などをチェックしている。
【０１１７】
そのことを利用し、例えばあるプレイヤオブジェクトの行動状態を所定時間連続してチェックし、ＢＯＴユニット判断制御を行うことで、サーバが全プレイヤオブジェクトの行動状態の監視チェックを行うよりもより効率の良いＢＯＴチェックが可能となる。
【０１１８】
図１２は第３の実施形態におけるクライアント３（ダミークライアント４）の不正検出処理部３１７（４１７）の処理例を示すフローチャートであり、図７のステップＳ３０９、Ｓ３１０に代えて、あるいはステップＳ３０９、Ｓ３１０と並行して行われる処理である。
【０１１９】
図１２において、不正検出処理部３１７（４１７）は、テンポラリ情報データ３２４に保持された現時点のテンポラリ情報に基づき、自己のプレイヤオブジェクトを中心に所定範囲内に存在する他のプレイヤオブジェクトを特定し、ＢＯＴ行為が行われていないかどうかチェックする（ステップＳ３２１）。具体的には、例えば次のような処理を行う。なお、以下の例に限られるものではない。
【０１２０】
（１）特定した他のプレイヤオブジェクトのＭＯｂデータの変化をテンポラリ情報データ３２４（４２４）から監視し、連続した所定の監視時間内に待機動作以外に所定の行動、例えばＭＯｂデータの位置座標の変化から単純な移動しか行わない場合は、ＢＯＴ行為が行われると判断する。
【０１２１】
（２）特定した他のプレイヤオブジェクトのＭＯｂデータの変化をテンポラリ情報データ３２４（４２４）から監視し、連続した所定の監視時間内の所定の行動が通常の人間の入力操作では不可能と思われる短時間（例えば０．５秒）で繰り返される場合は、ＢＯＴ行為が行われると判断する。
【０１２２】
（３）特定した他のプレイヤオブジェクトの近傍に表示されるチャットの吹き出しの移動オブジェクトの発生をＭＯｂ  ＩＤに基づいてテンポラリ情報データ３２４（４２４）から監視し、第三者のプレイヤオブジェクトから行われるチャットに対して返答のための吹き出しの移動オブジェクトが続いて発生しないか（問いかけを無視）、あるいは返答のための吹き出しの移動オブジェクトが続いて発生しても返答内容が前回と同じ（同じ返答の繰り返し）である場合は、ＢＯＴ行為が行われると判断する。
【０１２３】
次いで、不正検出処理部３１７（４１７）は、ＢＯＴ行為を検出したと判断した場合（ステップＳ３２２のＹｅｓ）、オンラインゲームサーバ１の不正情報管理部１１６に不正報告を行う（ステップＳ３２３）。
【０１２４】
＜総括＞
以上、本発明の好適な実施の形態により本発明を説明した。ここでは特定の具体例を示して本発明を説明したが、特許請求の範囲に定義された本発明の広範な趣旨および範囲から逸脱することなく、これら具体例に様々な修正および変更を加えることができることは明らかである。すなわち、具体例の詳細および添付の図面により本発明が限定されるものと解釈してはならない。
【符号の説明】
【０１２５】
１          オンラインゲームサーバ
１１１      対クライアント通信部
１１２      クライアント実行プログラム・基本データ管理部
１１３      ログイン／ログアウト処理部
１１４      テンポラリ情報管理部
１１５      ゲームロジック処理部
１１６      不正情報管理部
１２０      記憶領域
１２１      クライアント実行プログラムモジュール
１２２      地形データ
１２３      オブジェクトグラフィックデータ
１２４      アクション関連データ
１２５      登録ユーザ情報
１２６      環境情報データ
１２７      クライアント毎ＭＯｂリスト
１２８      不正情報データ
２          ネットワーク
３          クライアント
３１１      対オンラインゲームサーバ通信部
３１２      クライアント実行プログラム・基本データ取得部
３１３      ログイン／ログアウト処理部
３１４      テンポラリ情報取得部
３１５      プレイヤ操作入力部
３１６      ゲームロジック処理部
３１７      不正検出処理部
３１８      描画処理部
３２０      記憶領域
３２１      地形データ
３２２      オブジェクトグラフィックデータ
３２３      アクション関連データ
３２４      テンポラリ情報データ
４          ダミークライアント
４１１      対オンラインゲームサーバ通信部
４１２      クライアント実行プログラム・基本データ取得部
４１４      テンポラリ情報取得部
４１７      不正検出処理部
４２０      記憶領域
４２１      地形データ
４２２      オブジェクトグラフィックデータ
４２３      アクション関連データ
４２４      テンポラリ情報データ
【図１】
2010227182.tif 000003
【図２】
2010227182.tif 000004
【図３】
2010227182.tif 000005
【図４】
2010227182.tif 000006
【図５】
2010227182.tif 000007
【図６】
2010227182.tif 000008
【図７】
2010227182.tif 000009
【図８】
2010227182.tif 000010
【図９】
2010227182.tif 000011
【図１０】
2010227182.tif 000012
【図１１】
2010227182.tif 000013
【図１２】
2010227182.tif 000014