JP2010227182A - オンラインゲームサーバ処理方法、オンラインゲームサーバ装置、オンラインゲームサーバ処理プログラム、オンラインゲームクライアント処理プログラムおよびオンラインゲームサーバ処理プログラム記録媒体 - Google Patents
オンラインゲームサーバ処理方法、オンラインゲームサーバ装置、オンラインゲームサーバ処理プログラム、オンラインゲームクライアント処理プログラムおよびオンラインゲームサーバ処理プログラム記録媒体 Download PDFInfo
- Publication number
- JP2010227182A JP2010227182A JP2009076013A JP2009076013A JP2010227182A JP 2010227182 A JP2010227182 A JP 2010227182A JP 2009076013 A JP2009076013 A JP 2009076013A JP 2009076013 A JP2009076013 A JP 2009076013A JP 2010227182 A JP2010227182 A JP 2010227182A
- Authority
- JP
- Japan
- Prior art keywords
- client
- player
- data
- game server
- online game
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Abstract
【課題】不正チェックを行なうクライアントに悪影響を与えることなく、有効に不正行為を検出する。
【解決手段】ネットワークを介して複数のクライアントが接続されるオンラインゲームサーバの処理方法であって、前記クライアントから、当該クライアントのプレイヤが直接に操作する当該プレイヤの分身として振る舞うプレイヤオブジェクトの座標位置を含むゲームロジックの処理結果を受信し、当該処理結果に基づいて前記クライアント毎に表示すべき移動オブジェクトのデータを束ねたデータリストを更新する工程と、前記クライアントに対し、当該クライアントに対応する前記データリストを含むテンポラリ情報を送信する工程と、前記クライアントから、前記テンポラリ情報に基づき自己のプレイヤオブジェクトを中心に所定範囲内に存在する他のプレイヤオブジェクトの動作状態に不正があった旨の不正報告情報を取得して不正情報データとして蓄積する工程とを備える。
【選択図】図1
【解決手段】ネットワークを介して複数のクライアントが接続されるオンラインゲームサーバの処理方法であって、前記クライアントから、当該クライアントのプレイヤが直接に操作する当該プレイヤの分身として振る舞うプレイヤオブジェクトの座標位置を含むゲームロジックの処理結果を受信し、当該処理結果に基づいて前記クライアント毎に表示すべき移動オブジェクトのデータを束ねたデータリストを更新する工程と、前記クライアントに対し、当該クライアントに対応する前記データリストを含むテンポラリ情報を送信する工程と、前記クライアントから、前記テンポラリ情報に基づき自己のプレイヤオブジェクトを中心に所定範囲内に存在する他のプレイヤオブジェクトの動作状態に不正があった旨の不正報告情報を取得して不正情報データとして蓄積する工程とを備える。
【選択図】図1
Description
本発明は、インターネット等のネットワークを介したオンラインゲームシステムの制御技術に関する。
この種のオンラインゲームは、同時にプレイできる人数が比較的少ないMO(Multiplayer Online)タイプと、同時にプレイできる人数が非常に多いMMO(Massively Multiplayer Online)タイプとに大別される。いずれもオンラインゲームサーバ(サーバ群)にインターネット等のネットワークを介して複数のクライアントが接続される形態をとる。MOタイプではマッチングと呼ばれる処理により選択された少人数のユーザ(プレイヤ)同士あるいはユーザとサーバとの間での対戦ゲーム(対戦格闘や将棋・囲碁・麻雀等の各種テーブルゲーム等)や、マッチングされた少人数のプレイヤでモンスター等を倒すRPG(Role Playing Game)等に用いられることが多い。この場合、常にサーバとの間で通信を行いながらゲーム進行を行う形態と、クライアント群だけでゲーム進行を行い、その結果をサーバに通知する形態とがある。また、MMOタイプでは共通の仮想空間世界(仮想空間の数はゲームによって異なる)内で各プレイヤが人物やモンスターなどのキャラクタ、ロボット、軍隊等のオブジェクト(プレイヤオブジェクト:プレイヤの分身となる移動オブジェクト)を操作するRPG等に用いられることが多い。
ところで、この種のオンラインゲームでは、従来から「チート」と呼ばれる不正行為が問題とされていた。
すなわち、一般的なMMOタイプのゲームでは、ゲーム内において各種の条件を達成することで報酬を得て更に有利な条件でゲームを進めることができるという方式をとっている。報酬の例としては、ゲーム内で流通する通貨や、プレイヤオブジェクトの性能を変化させる経験値や、プレイヤオブジェクトに対して使用可能な武器・防具・アイテム・能力スキル等や、各種パラメータを増加/減少させる装備品等の付与がある。
不正行為を行おうとする悪質プレイヤは、クライアント側におけるプログラム改変やデータ改変を行うことで、各種の条件を達成することなく報酬だけを取得し、有利な条件でゲームプレイを行う。
MOタイプのゲームにおいても、不正行為を行おうとする悪質プレイヤは、クライアント側におけるプログラム改変やデータ改変を行うことで、他のプレイヤに対して圧倒的に有利な状況でゲームプレイを行う。
これらの不正行為は真面目にゲームを楽しもうとする他のプレイヤに強い不快感を与えることになり、ひいてはオンラインゲームからのユーザ離れを引き起こし、オンラインゲーム事業が成り立たなくなる危惧がある。
以下、RPGにおける不正行為について更に補足する。
ネットワークRPGにおけるフィールド、つまり仮想空間の世界は、移動可能/不可能箇所があり、これらをプログラムが制御することでゲーム内容に変化をつけている。仮想空間内の壁、丘、橋など、通過の可・不可を定めることで、現実世界と同じような変化に富んだ世界を表現する。これは、いわゆるレベルデザインと呼ばれる仮想空間の設定をするために必要不可欠なものであり、プレイヤに楽しみを与えるために必要な要素の一つである。一例としては、到達しがたい所定の位置座標に到達することでその位置座標に存在するアイテムを苦労の末に入手したり、距離の隔たった別な地域でしか入手できない複数のアイテムを組み合わせることで別の上級アイテムを入手したり、特定の地域(位置座標範囲)でしか登場しないモンスターキャラクタを討伐することで、その特定のモンスターからしか入手できないドロップアイテム(Drop Item:モンスターを退治した場合に所定確率で発生する入手可能アイテム。一般に通貨では購入できずゲーム中では希少価値が高い場合が多い)を入手することなどである。
ネットワークゲームにおいて、これらの情報を持つデータやそれを制御するプログラムを不正に改ざんすることで、特定のプレイヤを有利する行為が行われることがある。例えば、地形に設定されたパズルを解くことで、アイテムの入った宝箱のある座標に到達しなければ入手できないアイテムを、不正な改ざんをすることで壁を無視して移動することで簡単に入手したり、現在の位置情報に紐付く各種地形情報(登場モンスター、ショップ位置、体力等の各種オブジェクトステータス値が回復/変更可能な特殊地形等)を不正に改変したりすることで不正を行うという問題がある。その他にも、登場モンスター制御→安全な街の周辺に高報酬のモンスターを登場させて低リスクで戦闘を行ったり、ショップ位置制御→本来アイテム取引ができない場所でアイテム売買や交換を行ったり、特殊地形制御→地域情報不正操作で体力回復/マイナス効果排除したりする等の種々の不正がある。
これらは、ゲームのバランスを崩すだけでなく、プレイヤ同士の平等性を著しく壊すため、運営会社の営業活動を阻害する原因となっている。
この問題を含め、ゲームクライアントソフトの不正改造に関する対策は、「アンチハックツール」と呼ばれる外部ツールによって、不正なデータ改ざんを行うソフトウェアが動作していないかどうかをチェックするのが一般的である。アンチハックツールはクライアントソフト群のひとつとしてオペレーションシステムに介在し、クライアントプログラム以外で起動している他のソフトを監視して、ゲームクライアントソフトの動作および利用しているクライアントの各種リソースに対して何らかの介入を行っているものを発見するものである。オンラインゲームのアンチハックツールとチートツールは、相手が対策を講じるとさらにその対策を行うという、俗にいう「いたちごっこ」を繰り返しており、運営終了までその対応合戦は永遠と続くことになり、運営側に対しては非常に大きな負担が強いられることになる。また、不正に直接関わっていないプレイヤであっても、ゲーム中に不正な手段で入手された稀少度の高いアイテム(レアアイテム)等を不正行為プレイヤから譲り受けた場合においては処分の対象となる問題がある。
このようにアンチハックツールだけでは対応が不可能な問題があり、リアルタイムかつ軽い負荷処理で不正チェックを行う手法はネットワークを用いたRPGゲーム全体の共通課題であった。
一方、このような不正行為に対処するための公知技術として、特許文献1、2に開示されるものがある。
特許文献1は、検証対象のクライアントからゲームの実行状態を示すプレイログを取得し、そのプレイログに基づいて他のクライアントやサーバ等においてゲームの実行を再現し、プレイログの結果値と実行再現の結果値とを比較して不一致があった場合に不正行為が存在するものと判定するようにしている。
また、特許文献2は、サーバからクライアントにチャレンジ(応答を生じさせるコードセグメントとパラメータを含む)を発行することでクライアント状態を示す応答を取得し、この応答を期待される応答と比較することで、不一致があった場合に不正行為が存在するものと判定するようにしている。
特許文献1に開示される技術は、検証対象のクライアントから取得したプレイログに基づいて、他のクライアントやサーバ等においてゲームの実行を再現するものであるため、他のクライアントやサーバ等はゲームの実行を再現するに足る環境を備えていなければならない。
特に、仮想空間内をプレイヤオブジェクトが移動するタイプのオンラインゲームにあっては、検証対象のプレイヤオブジェクトの位置座標等の大量のデータをプレイログとして取得して他のクライアント等に送信しなければならないため、通信負荷が高くなり、検証を行なうクライアントやサーバの動作に悪影響を与えるという問題があった。
また、他のクライアント等はゲームの実行を再現するために検証対象のクライアントと同じゲームロジックのプログラムや地形データや各種のアクション関連データを有していなければならない。しかし、仮想空間内をプレイヤオブジェクトが移動するタイプのオンラインゲームにあっては、広大な仮想空間に各プレイヤオブジェクトが散在しており、各クライアントは自己のプレイヤオブジェクトが存在するエリアに対応するプログラムおよびデータのみを利用可能な状態としているため、遠く離れた地点にいる検証対象のプレイヤオブジェクトについてのゲームの実行を再現することはできない。あえてそのようなゲームの実行を再現するためには、検証対象のプレイヤオブジェクトの存在する座標位置に対応するプログラムおよびデータをメモリにロードし、自クライアントにそのようなプログラムやデータがない場合にはサーバから取得しなければならず、通信負荷やメモリ消費量増大によるクライアントへの悪影響が大きくなるという問題があった。
一方、特許文献2に開示される技術は、サーバからクライアントにチャレンジを発行してクライアント状態を示す応答を取得するものであるため、このような不正診断を回避するプログラムを用い、期待される応答を返すようにすることで、不正チェックが行なえなくなるという問題がある。
本発明は上記の従来の問題点に鑑み提案されたものであり、その目的とするところは、仮想空間内をプレイヤオブジェクトが移動するタイプのオンラインゲームにおいて、不正チェックを行なうクライアントに悪影響を与えることなく、有効に不正行為を検出することのできる手法を提供することにある。
上記の課題を解決するため、本発明にあっては、請求項1に記載されるように、ネットワークを介して複数のクライアントが接続されるオンラインゲームサーバの処理方法であって、前記クライアントから、当該クライアントのプレイヤが直接に操作する当該プレイヤの分身として振る舞うプレイヤオブジェクトの座標位置を含むゲームロジックの処理結果を受信し、当該処理結果に基づいて前記クライアント毎に表示すべき移動オブジェクトのデータを束ねたデータリストを更新する工程と、前記クライアントに対し、当該クライアントに対応する前記データリストを含むテンポラリ情報を送信する工程と、前記クライアントから、前記テンポラリ情報に基づき自己のプレイヤオブジェクトを中心に所定範囲内に存在する他のプレイヤオブジェクトの動作状態に不正があった旨の不正報告情報を取得して不正情報データとして蓄積する工程とを備えるオンラインゲームサーバ処理方法を要旨としている。
また、請求項2に記載されるように、請求項1に記載のオンラインゲームサーバ処理方法において、各クライアントに対応する前記データリストから当該クライアントの対象プレイヤオブジェクトを中心とする所定範囲内に他のプレイヤオブジェクトが存在するか否か判断する工程と、他のプレイヤオブジェクトが存在しないと判断された場合に、ダミークライアントを生成し、当該ダミークライアントの不可視のプレイヤオブジェクトを前記対象プレイヤオブジェクトに付随化する工程とを備えるようにすることができる。
また、請求項3に記載されるように、請求項1または2のいずれか一項に記載のオンラインゲームサーバ処理方法において、前記クライアントから、前記テンポラリ情報に基づき自己のプレイヤオブジェクトを中心に所定範囲内に存在する他のプレイヤオブジェクトにおいて自動操作行為が行われている旨の不正報告情報を取得して不正情報データとして蓄積する工程を備えるようにすることができる。
また、請求項4に記載されるように、ネットワークを介して複数のクライアントが接続されるオンラインゲームサーバ装置であって、前記クライアントから、当該クライアントのプレイヤが直接に操作する当該プレイヤの分身として振る舞うプレイヤオブジェクトの座標位置を含むゲームロジックの処理結果を受信し、当該処理結果に基づいて前記クライアント毎に表示すべき移動オブジェクトのデータを束ねたデータリストを更新する手段と、前記クライアントに対し、当該クライアントに対応する前記データリストを含むテンポラリ情報を送信する手段と、前記クライアントから、前記テンポラリ情報に基づき自己のプレイヤオブジェクトを中心に所定範囲内に存在する他のプレイヤオブジェクトの動作状態に不正があった旨の不正報告情報を取得して不正情報データとして蓄積する手段とを備えるオンラインゲームサーバ装置として構成することができる。
また、請求項5に記載されるように、ネットワークを介して複数のクライアントが接続されるオンラインゲームサーバを構成するコンピュータを、前記クライアントから、当該クライアントのプレイヤが直接に操作する当該プレイヤの分身として振る舞うプレイヤオブジェクトの座標位置を含むゲームロジックの処理結果を受信し、当該処理結果に基づいて前記クライアント毎に表示すべき移動オブジェクトのデータを束ねたデータリストを更新する手段、前記クライアントに対し、当該クライアントに対応する前記データリストを含むテンポラリ情報を送信する手段、前記クライアントから、前記テンポラリ情報に基づき自己のプレイヤオブジェクトを中心に所定範囲内に存在する他のプレイヤオブジェクトの動作状態に不正があった旨の不正報告情報を取得して不正情報データとして蓄積する手段として機能させるオンラインゲームサーバ処理プログラムとして構成することができる。
また、請求項6に記載されるように、ネットワークを介してオンラインゲームサーバに接続されるクライアントを構成するコンピュータを、前記オンラインゲームサーバに対し、前記クライアントのプレイヤが直接に操作する当該プレイヤの分身として振る舞うプレイヤオブジェクトの座標位置を含むゲームロジックの処理結果を送信する手段、前記オンラインゲームサーバから、前記クライアントに表示すべき移動オブジェクトのデータを束ねたデータリストを含むテンポラリ情報を受信する手段、前記テンポラリ情報に基づき自己のプレイヤオブジェクトを中心に所定範囲内に存在する他のプレイヤオブジェクトの動作状態を判断し、該状態に不正があると判断した場合に前記オンラインゲームサーバに対して不正報告データを送信する手段として機能させるオンラインゲームクライアント処理プログラムとして構成することができる。
また、請求項7に記載されるように、請求項6に記載のオンラインゲームクライアント処理プログラムにおいて、前記動作状態の不正とは、対象となるプレイヤオブジェクトの存在する座標位置の周辺情報に設定されたデータにより許容される動作状態の変化と、該プレイヤオブジェクトに設定された動作状態を示すデータの変化とが一致しない場合に不正と判断するものとすることができる。
また、請求項8に記載されるように、請求項6に記載のオンラインゲームクライアント処理プログラムにおいて、前記動作状態の不正とは、対象となるプレイヤオブジェクトに対して自動操作判別手段が自動操作と判断した場合に不正と判断するものとすることができる。
また、請求項9に記載されるように、ネットワークを介して複数のクライアントが接続されるオンラインゲームサーバを構成するコンピュータを、前記クライアントから、当該クライアントのプレイヤが直接に操作する当該プレイヤの分身として振る舞うプレイヤオブジェクトの座標位置を含むゲームロジックの処理結果を受信し、当該処理結果に基づいて前記クライアント毎に表示すべき移動オブジェクトのデータを束ねたデータリストを更新する手段、前記クライアントに対し、当該クライアントに対応する前記データリストを含むテンポラリ情報を送信する手段、前記クライアントから、前記テンポラリ情報に基づき自己のプレイヤオブジェクトを中心に所定範囲内に存在する他のプレイヤオブジェクトの動作状態に不正があった旨の不正報告情報を取得して不正情報データとして蓄積する手段として機能させるためのプログラムを記録したコンピュータ読み取り可能なオンラインゲームサーバ処理プログラム記録媒体として構成することができる。
本発明にあっては、仮想空間内をプレイヤオブジェクトが移動するタイプのオンラインゲームにおいて、不正チェックを行なうクライアントに悪影響を与えることなく、有効に不正行為を検出することができる。
以下、本発明の好適な実施形態につき説明する。
<用語>
以下の説明において、「オブジェクト」とは、ゲーム世界を構成する仮想空間内に表示される要素をいう。「オブジェクト」には位置が固定していて移動することのない「固定オブジェクト」と、移動することのできる「移動オブジェクト」とが含まれる。「移動オブジェクト」には、クライアントを操作するプレイヤ(ユーザ)が直接に操作し、プレイヤの分身として振る舞う「プレイヤオブジェクト(プレイヤキャラクタ)」と、それ以外の移動オブジェクト(プレイヤオブジェクトに付随する装備品やペット等、あるいはゲーム進行により発生するモンスター、宝箱、アイテム、通貨等)が含まれる。また、あるプレイヤの操作するクライアントから見て、自クライアント内で位置等が管理される「クライアントオブジェクト」とそれ以外の移動オブジェクト(サーバを経由して取得する、周囲に存在する他のプレイヤのクライアントオブジェクト)に分けることもできる。
以下の説明において、「オブジェクト」とは、ゲーム世界を構成する仮想空間内に表示される要素をいう。「オブジェクト」には位置が固定していて移動することのない「固定オブジェクト」と、移動することのできる「移動オブジェクト」とが含まれる。「移動オブジェクト」には、クライアントを操作するプレイヤ(ユーザ)が直接に操作し、プレイヤの分身として振る舞う「プレイヤオブジェクト(プレイヤキャラクタ)」と、それ以外の移動オブジェクト(プレイヤオブジェクトに付随する装備品やペット等、あるいはゲーム進行により発生するモンスター、宝箱、アイテム、通貨等)が含まれる。また、あるプレイヤの操作するクライアントから見て、自クライアント内で位置等が管理される「クライアントオブジェクト」とそれ以外の移動オブジェクト(サーバを経由して取得する、周囲に存在する他のプレイヤのクライアントオブジェクト)に分けることもできる。
<第1の実施形態>
図1は本発明の第1の実施形態にかかるオンラインゲームシステムの構成例を示す図である。
図1は本発明の第1の実施形態にかかるオンラインゲームシステムの構成例を示す図である。
図1において、オンラインゲームシステムは、インターネット等のネットワーク2に接続されたオンラインゲームサーバ(オンラインゲームサーバ装置)1と、複数(多数)のクライアント(クライアント装置)3とから構成される。オンラインゲームサーバ1は単一のサーバ装置である必要はなく、通常は複数のサーバ装置から構成されるサーバ群である。クライアント3はネットワーク接続機能を有したPC(Personal Computer)等の機器である。
図2はオンラインゲームサーバ1の構成例を示す図である。オンラインゲームサーバ1は、機能部として、対クライアント通信部111とクライアント実行プログラム・基本データ管理部112とログイン/ログアウト処理部113とテンポラリ情報管理部114とゲームロジック処理部115と不正情報管理部116とを備えている。これらの機能部は、オンラインゲームサーバ1を構成するコンピュータのCPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)等のハードウェア資源上で実行されるコンピュータプログラムによって実現されるものである。
また、オンラインゲームサーバ1は、処理に必要なプログラムやデータをRAMやHDD(Hard Disk Drive)等の記憶領域120に保持している。保持するプログラムやデータには、クライアント実行プログラムモジュール121と地形データ122とオブジェクトグラフィックデータ123とアクション関連データ124と登録ユーザ情報125と環境情報データ126とクライアント毎MObリスト127と不正情報データ128とが含まれる。
クライアント実行プログラムモジュール121は、クライアント3において実行され、ゲーム進行を行うプログラムである。ひとまとまりのプログラムである場合は、各クライアント3に対して初回のゲーム開始前に1回ダウンロードすれば足りるが、ゲームのステージによって複数種類のプログラムとなる場合は、ゲーム進行に応じて必要なプログラムを追加的にダウンロードする。
地形データ122は、ゲーム世界を構成する仮想空間の地図データである。地形データ122は、道路、建物等の輪郭の位置情報を含むとともに、該当する位置に配置される固定オブジェクトを特定する情報、着色やテクスチャ等を特定する情報を含む。また、地形データ122は、プレイヤオブジェクトが進入できる領域であるか否かの情報や、その領域を通る場合の移動速度等の情報も含んでいる。
オブジェクトグラフィックデータ123は、描画用の画像データである。オブジェクトグラフィックデータ123は、固定オブジェクトや移動オブジェクトの画像データを含んでいる。画像データには、ポリゴンデータ、静止画データ、テクスチャデータ、特殊効果データ等が含まれる。
アクション関連データ124は、ゲームの仮想空間内で発生するアクションを記述するデータである。ある位置範囲にプレイヤオブジェクトが入るとモンスターや宝箱等が出現する場合、地形データ122の位置情報と関連付けて、出現するモンスターや宝箱等の移動オブジェクトを特定する情報や、そのモンスターや宝箱等から入手可能アイテムや通貨等の情報が含まれている。
地形データ122、オブジェクトグラフィックデータ123およびアクション関連データ124は、それぞれがひとまとまりのデータである場合は、各クライアント3に対して初回のゲーム開始前に1回ダウンロードすれば足りるが、ゲームのステージによって複数に区分されたデータとなる場合は、ゲーム進行に応じて必要なデータを追加的にダウンロードする。
登録ユーザ情報125は、オンラインゲームの利用登録を行ったユーザを管理するための情報であり、ユーザID(クライアントID)、パスワード、ハンドル名等の情報を含んでいる。
環境情報データ126は、ゲーム世界における現在の日時や天候等を示す情報である。
クライアント毎MObリスト(データリスト)127は、クライアント3毎に表示すべき移動オブジェクト(MOb:Moving Object)のMObデータをリストに束ねたものである。図3はMObリストとMObデータの構造例を示す図であり、MObリストは表示する移動オブジェクトの数に相当する複数のMObデータから構成され、各MObデータは「Serial番号」「MOb ID(MOb Type)」「位置座標(XYZ)」「状態データ」等の項目を有している。
ここで、「Serial番号」は、仮想空間内の移動オブジェクトを特定するための管理番号であり、仮想空間中の全ての移動オブジェクトに対して1対1で紐付けられたユニーク(固有)なIDである。
「MOb ID(MOb Type)」は、該当する移動オブジェクトの種類を特定する管理番号である。例えば、仮想空間内に同じ種類のモンスターが複数存在した場合、それらのモンスターはMOb ID(MOb Type)は共通となるが、Serial番号は異なる値となる。
図2に戻り、不正情報データ128は、クライアント3において検出されて報告された不正情報を蓄積したものである。不正情報には、不正が検出された監視対象のクライアント3を特定する情報と、検出された不正の内容が含まれる。
対クライアント通信部111は、クライアント3との間の通信(送信、受信)を制御する機能を有している。
クライアント実行プログラム・基本データ管理部112は、クライアント3へのクライアント実行プログラムモジュール121および基本データ(地形データ122、オブジェクトグラフィックデータ123、アクション関連データ124)のダウンロードを制御する機能を有している。
ログイン/ログアウト処理部113は、クライアント3からの要求に応じてログインおよびログアウトを制御する機能を有している。すなわち、クライアント3におけるゲーム開始時の起動処理において行われるログイン処理に際してユーザから入力されるユーザID、パスワード等に基づき、登録ユーザ情報125を参照して認証を行い、認証が正常に行われた場合にログインを行う。また、クライアント3からログアウトの通知が行われた場合にログアウトを行う。
テンポラリ情報管理部114は、各クライアント3から所定のターム(Term)毎に行われるゲームロジックの処理結果報告(クライアント3側で処理しない操作入力についてはゲームロジック処理部115での処理結果)に基づいてクライアント毎MObリスト127を更新するとともに、クライアント3から同じく所定のターム毎に行われるテンポラリ情報取得要求に応じ、クライアント毎MObリスト127中の当該クライアント3に対応するMObリストと環境情報データ126とを含むテンポラリ情報をクライアント3に送信する機能を有している。クライアント3からの処理結果報告(オンラインゲームサーバ1側のゲームロジック処理部115での処理結果も同様)には、クライアントオブジェクトの位置情報が含まれている。
なお、ここでいうタームとは、オンラインゲームサーバ1と各クライアント3のデータのやり取りのタイミングを指す。具体的にはゲームの種類によって異なるが、1秒間に4回(およそ4/60=15分の1秒)程度のやり取りが行われる。一般のゲーム装置(本発明のクライアント3を含む)は、表示装置の画面書き換えのタイミングである1/60秒を1フレームという基準として、1/30秒(2フレーム)または1/60秒(1フレーム)でキー操作入力対応・画面描画を行っているが、必ずしもこの内部処理時間とサーバ・クライアント間通信のタームは一致させる必要がない。一般的なアクション系要素を持つオンラインゲームにおいては、クライアント内部処理とサーバ・クライアント間通信のタームは異なる場合が多い。
ゲームロジック処理部115は、クライアント3側で行わないゲームロジック処理につき、クライアント3からの要求に応じて処理を行い、処理結果をクライアント3に返送する機能を有している。従って、全てのゲームロジック処理をクライアント3側で行なう場合、ゲームロジック処理部115は不要となる。
不正情報管理部116は、クライアント3から不正報告を取得し、不正情報データ128に蓄積する機能を有している。
図4はオンラインゲームサーバ1のハードウェア構成例を示す図である。
図4において、オンラインゲームサーバ1は、システムバス101に接続されたCPU102、ROM103、RAM104、NVRAM(Non-Volatile Random Access Memory)105、I/F(Interface)106と、I/F106に接続された、キーボード、マウス、モニタ、CD/DVD(Compact Disk/Digital Versatile Disk)ドライブ等のI/O(Input/Output Device)107、HDD108、NIC(Network Interface Card)109等を備えている。Mはプログラムもしくはデータが格納されたCD/DVD等のメディア(記録媒体)である。
図5はクライアント3の構成例を示す図である。クライアント3は、機能部として、対オンラインゲームサーバ通信部311とクライアント実行プログラム・基本データ取得部312とログイン/ログアウト処理部313とテンポラリ情報取得部314とプレイヤ操作入力部315とゲームロジック処理部316と不正検出処理部317と描画処理部318とを備えている。これらの機能部は、クライアント3を構成するコンピュータのCPU、ROM、RAM等のハードウェア資源上で実行されるコンピュータプログラムによって実現されるものである。クライアント3で実行される主なコンピュータプログラムは、オンラインゲームサーバ1からクライアント実行プログラムモジュール121に基づいてダウンロードされたプログラムである。
また、クライアント3は、処理に必要なプログラムやデータをRAMやHDD等の記憶領域320に保持している。保持するプログラムやデータには、地形データ321とオブジェクトグラフィックデータ322とアクション関連データ323とテンポラリ情報データ324とが含まれる。
地形データ321、オブジェクトグラフィックデータ322およびアクション関連データ323は、オンラインゲームサーバ1からクライアント実行プログラム・基本データ管理部112の制御のもとに地形データ122、オブジェクトグラフィックデータ123およびアクション関連データ124に基づいて送信されて格納されたデータである。
テンポラリ情報データ324は、オンラインゲームサーバ1からテンポラリ情報管理部114の制御のもとに送信されて格納されたテンポラリ情報のデータである。
対オンラインゲームサーバ通信部311は、オンラインゲームサーバ1との間の通信(送信、受信)を制御する機能を有している。
クライアント実行プログラム・基本データ取得部312は、オンラインゲームサーバ1のクライアント実行プログラム・基本データ管理部112に対してプログラムおよび基本データを要求し、オンラインゲームサーバ1からのダウンロードを制御する機能を有している。
ログイン/ログアウト処理部313は、オンラインゲームサーバ1のログイン/ログアウト処理部113との間でのログインおよびログアウトを制御する機能を有している。
テンポラリ情報取得部314は、オンラインゲームサーバ1のテンポラリ情報管理部114からテンポラリ情報のデータを取得し、テンポラリ情報データ324に保持する機能を有している。
プレイヤ操作入力部315は、キーボード、マウス等によりプレイヤの操作を入力する機能を有している。
ゲームロジック処理部316は、プレイヤ操作入力部315でのプレイヤの操作入力に基づき、クライアント3側で処理する操作入力についてゲームロジックを処理し、処理結果をオンラインゲームサーバ1のテンポラリ情報管理部114に送信する機能を有している。ゲームロジックの処理には、プレイヤオブジェクトの移動、他のオブジェクトとの当たり判定、アクションの起動、周囲のプレイヤオブジェクトとの会話(チャット)等が含まれる。
不正検出処理部317は、テンポラリ情報データ324に保持された現時点のテンポラリ情報に基づき、自己のプレイヤオブジェクトを中心に所定範囲内に存在する他のプレイヤオブジェクトの動作状態に不正がないかどうかをチェックし、不正行為を検出した場合にオンラインゲームサーバ1に不正報告を行う機能を有している。なお、不正のチェックに際しては、不正検出処理部317側で取得可能な地形データ321、アクション関連データ323等の周辺情報を利用する。不正チェックの詳細については後述する。
描画処理部318は、テンポラリ情報データ324に保持された現時点のテンポラリ情報およびゲームロジック処理部316(115)による操作入力の処理結果に基づいて表示装置にゲーム画像を描画する機能を有している。
以下、第1の実施形態の動作について説明する。なお、検出する不正行為としては次のようなパターンを想定している。なお、検出する不正行為はこの例に限られるものではない。
・「地形から進入できない座標位置にプレイヤオブジェクトが存在した」パターン
・「商店/露店/相手が存在しない座標位置で売買/交換/授受が行われた」パターン
・「ある座標位置に発生するモンスターから得ることができないアイテムを入手した」パターン
・「ある座標位置に存在しない宝箱からアイテム/通貨を取得した」パターン
図6はオンラインゲームサーバ1の処理例を示すフローチャートである。
・「地形から進入できない座標位置にプレイヤオブジェクトが存在した」パターン
・「商店/露店/相手が存在しない座標位置で売買/交換/授受が行われた」パターン
・「ある座標位置に発生するモンスターから得ることができないアイテムを入手した」パターン
・「ある座標位置に存在しない宝箱からアイテム/通貨を取得した」パターン
図6はオンラインゲームサーバ1の処理例を示すフローチャートである。
図6において、オンラインゲームサーバ1はクライアント3からの通信を受けて処理を開始すると(ステップS101)、通信内容により処理を分岐する(ステップS102)。
通信内容がクライアント3のテンポラリ情報取得部314からのテンポラリ情報取得要求である場合、テンポラリ情報管理部114は、環境情報データ126から環境情報を取得するとともに、クライアント毎MObリスト127から要求元のクライアント3に対応するMObリストを取得する(ステップS103)。そして、取得した環境情報とMObリストをテンポラリ情報として要求元のクライアント3のテンポラリ情報取得部314に送信し(ステップS104)、処理を終了する(ステップS110)。
また、通信内容がクライアント3のゲームロジック処理部316からの処理結果通知である場合、テンポラリ情報管理部114は、取得した処理結果通知に基づいてクライアント毎MObリスト127のMObデータを更新する(ステップS105)。すなわち、処理結果にプレイヤオブジェクトの位置情報が含まれている場合は該当するMObデータの位置座標を更新する。また、アクションの起動によりモンスターや宝箱やアイテムや通貨等の移動オブジェクトが新たに発生した場合には、該当するクライアントと対応付けてクライアント毎MObリスト127にMObデータを追加する。その後、処理を終了する(ステップS110)。
また、通信内容がクライアント3のゲームロジック処理部316からの操作入力による処理要求である場合、ゲームロジック処理部115は操作入力によるゲームロジックの処理を行い(ステップS106)、処理結果をクライアント3のゲームロジック処理部316に送信する(ステップS107)。そして、処理結果に基づいてクライアント毎MObリスト127のMObデータを更新し(ステップS108)、処理を終了する(ステップS110)。
また、通信内容がクライアント3の不正検出処理部317からの不正報告である場合、不正情報管理部116は、取得した不正報告の内容を不正情報データ128に記録し(ステップS109)、処理を終了する(ステップS110)。
図7はクライアント3の処理例を示すフローチャートである。
図7において、クライアント3はユーザ(プレイヤ)による起動操作により処理を開始すると(ステップS301)、ログイン/ログアウト処理部313によるログイン処理を含む起動処理を行う(ステップS302)。
起動が完了すると、テンポラリ情報取得部314は、オンラインゲームサーバ1のテンポラリ情報管理部114に対してテンポラリ情報取得要求を行ってテンポラリ情報を取得し、テンポラリ情報データ324に保存する(ステップS303)。この際、後述する不正チェックを行うため、過去のテンポラリ情報についても最低直前の1回分は残しておく。
次いで、描画処理部318は、取得したテンポラリ情報および操作入力の処理結果に基づいてゲーム画像の描画を行う(ステップS304)。起動直後には操作入力はなく、ゲームロジックの処理結果もないため、テンポラリ情報のみに基づいて描画が行われる。
次いで、プレイヤ操作入力部315はプレイヤから操作入力を受け(ステップS305)、ゲームロジック処理部316は操作入力に基づいてゲームロジックの処理を行う(ステップS306)。なお、クライアント3側で処理しない操作入力については、ゲームロジックの処理を行わない。
次いで、ゲームロジック処理部316は、オンラインゲームサーバ1にゲームロジックの処理結果を送信する(ステップS307)。クライアント3側で処理しない操作入力についてゲームロジックの処理を行わなかった場合は、操作入力の内容をオンラインゲームサーバ1のゲームロジック処理部316に送信して処理を要求し、処理結果を受信する(ステップS307)。
次いで、不正検出処理部317は、テンポラリ情報データ324に保持された現時点のテンポラリ情報に基づき、自己のプレイヤオブジェクトを中心に所定範囲内に存在する他のプレイヤオブジェクトの動作状態に不正がないかどうかをチェックする(ステップS308)。
図8は不正チェックの対象となる周辺のプレイヤオブジェクトの位置の例を示す図である。今、着目しているクライアント3のプレイヤオブジェクトがMOb1であるとし、MOb2はMOb1に付随するペット等の移動オブジェクト、MOb3はモンスター等の移動オブジェクト、MOb4、MOb6は他のプレイヤのプレイヤオブジェクト、MOb5は宝箱等の移動オブジェクトであるとする。
この場合、着目しているクライアント3のテンポラリ情報データ324には全ての移動オブジェクトMOb1〜MOb6のMObデータが含まれている。従って、不正検出処理部317は、テンポラリ情報データ324の各MObデータの「MOb ID(MOb Type)」から自己のプレイヤオブジェクトを除いて、プレイヤオブジェクトとなり得る移動オブジェクトMOb4、MOb6を先ず特定する。次いで、プレイヤオブジェクトMOb1の「座標位置」と他のプレイヤオブジェクトMOb4、MOb6の「座標位置」からXY平面内における距離をそれぞれ演算し、それが所定範囲内に入るものを不正チェックの対象とする。図8の例では、所定範囲を破線の円で示しているが、この中に入るプレイヤオブジェクトとしてプレイヤオブジェクトMOb4を特定する。
次いで、不正検出処理部317は、特定した他のプレイヤオブジェクトMOb4につき、テンポラリ情報データ324の前回の「座標位置」から今回の「座標位置」に対して、ゲームロジック処理部316と同様のゲームロジックに従って移動を試みる。なお、あくまでも不正チェックのためであるため、ゲーム画面に反映させるための処理結果は出力しない。
図9は不正チェックの例を示す図であり、図8のプレイヤオブジェクトMOb1、MOb4のみを示している。この場合、プレイヤオブジェクトMOb4の前回の座標位置Pから現在の座標位置に矢印で示すように移動を試みた場合、壁Wとの当たり判定により前進が阻まれることから移動は行えず、プレイヤオブジェクトMOb4の今回の座標位置への移動は不正行為によって行われた可能性が高く、「不正あり」と判断する。問題なく移動が行えた場合は「不正なし」と判断する。
これは「地形から進入できない座標位置にプレイヤオブジェクトが存在した」パターンの不正を検出する場合の例であるが、その他のパターンについては次にように不正チェックを行う。
すなわち、「商店/露店/相手が存在しない座標位置で売買/交換/授受が行われた」パターンや「ある座標位置に存在しない宝箱からアイテム/通貨を取得した」パターンの場合、対象となるプレイヤオブジェクトの現在の座標位置に商店/露店/相手や宝箱に対応する「MOb ID(MOb Type)」の移動オブジェクトが存在せず、かつ、その近傍に売買/交換/授受が行われ、あるいはアイテム/通貨を取得したことを示す「MOb ID(MOb Type)」の移動オブジェクトの発生を確認した場合には「不正あり」と判断する。
また、「ある座標位置に発生するモンスターから得ることができないアイテムを入手した」パターンの場合、対象となるプレイヤオブジェクトの現在の座標位置にモンスターに対応する「MOb ID(MOb Type)」の移動オブジェクトが存在し、かつ、その近傍のアイテム/通貨を取得したことを示す「MOb ID(MOb Type)」の移動オブジェクトが、アクション関連データ323からそのモンスターからは取得できないものであることを確認した場合には「不正あり」と判断する。
図7に戻り、不正検出処理部317は、「不正あり」と判断した場合(ステップS309のYes)、オンラインゲームサーバ1の不正情報管理部116に不正報告を行う(ステップS310)。
そして、プレイヤからログアウト操作が行われていない場合(ステップS311のNo)、オンラインゲームサーバ1からのテンポラリ情報の取得(ステップS303)に戻り、同様の処理を繰り返す。これらの処理は、1/30秒(2フレーム)または1/60秒(1フレーム)という処理周期で繰り返す。
プレイヤからログアウト操作が行われた場合(ステップS311のYes)、クライアント3は処理を終了する(ステップS312)。
以上の処理により、各クライアント3は自己のプレイヤオブジェクトの所定範囲内に存在する他のプレイヤオブジェクトの不正チェックを行うことから、自己のプレイヤオブジェクトのゲームロジックに必要なプログラムとデータを共通に使用でき、不正チェックのために新たなプログラムやデータをメモリ上に展開したりオンラインゲームサーバ1から取得したりする必要がなく、メモリの圧迫や通信負荷によるクライアント3への悪影響をなくすことができる。また、監視の対象となるクライアント3とは別のクライアント3において不正チェックが行われるため、不正チェックを免れることは極めて困難となる。
<第2の実施形態>
第2の実施形態は、監視対象となるプレイヤオブジェクトの周辺に他のプレイヤオブジェクトが存在しない場合に備え、ダミークライアントにおける不可視のプレイヤオブジェクト(Nullオブジェクト)による不正チェックを行えるようにしたものである。
第2の実施形態は、監視対象となるプレイヤオブジェクトの周辺に他のプレイヤオブジェクトが存在しない場合に備え、ダミークライアントにおける不可視のプレイヤオブジェクト(Nullオブジェクト)による不正チェックを行えるようにしたものである。
すなわち、上述した第1の実施形態では、不正行為を行う悪質プレイヤの操作するプレイヤオブジェクトの周辺に他のクライアントのプレイヤによって操作されるプレイヤオブジェクトが存在しない場合に不正チェックを行えないという問題がある。
そこで、この第2の実施形態では、オンラインゲームサーバ側において各クライアントのプレイヤオブジェクトの所定範囲内に他のプレイヤオブジェクトが1つ以上存在するか否か判断し、存在しないと判断した場合には各種の不正チェックを行う専用のダミークライアントを生成し、このダミークライアントにおける誰のものでもない不可視のプレイヤオブジェクトをチェック対象のプレイヤオブジェクトに付随させて不正チェックを行うようにしている。
ゲームシステムの全体構成は図1とほぼ同様となり、ダミークライアントをどこに配置するかによって若干の違いが生じる。すなわち、ダミークライアントをクライアント3のいずれかに設ける場合や、オンラインゲームサーバ1の内部に設ける場合には図1と同じ構成となる。また、クライアント3やオンラインゲームサーバ1とは別に専用のダミークライアントを設ける場合には、ネットワーク2にダミークライアントが接続されることとなる。なお、ダミークライアントをクライアント3のいずれかに設ける場合、監視対象のクライアントと同じ装置内にダミークライアントを設けることは好ましくない。これは、悪質プレイヤに対してチェック情報を開示してしまうことに繋がるためである。
また、オンラインゲームサーバ1の構成は図2と同様であるが、不正情報管理部116とテンポラリ情報管理部114に以下に説明する処理を行う機能拡張を施している。ダミークライアントの構成については後述する。その他のクライアント3の構成は図4に示したものと同様である。
図10は第2の実施形態におけるオンラインゲームサーバ1の不正情報管理部116の処理例を示すフローチャートである。
図10において、オンラインゲームサーバ1の不正情報管理部116は処理を開始すると(ステップS111)、クライアント毎MObリスト127の管理単位であるクライアント3の中から1つを特定する(ステップS112)。
次いで、不正情報管理部116は、特定したクライアント3のMObリストをクライアント毎MObリスト127から取得する(ステップS113)。
次いで、不正情報管理部116は、取得したMObリストに基づき、特定したそのクライアント3のプレイヤオブジェクトを中心とする所定範囲内に当該クライアント3以外のプレイヤオブジェクトが存在するか否か判断する(ステップS114)。
所定範囲内に当該クライアント3以外のプレイヤオブジェクトが存在しない場合(ステップS114のNo)、不正情報管理部116は、ダミークライアントを生成する(ステップS115)。図11はダミークライアント4の構成例を示す図であり、図5に示した通常のクライアント3と似た構成となっているが、操作主体となる実在するユーザが存在せず、プレイヤオブジェクト自身の当たり判定等のゲームロジックは不要であり、ゲーム画像の描画も不要であることから、図5のログイン/ログアウト処理部313、プレイヤ操作入力部315、ゲームロジック処理部316および描画処理部318に対応する機能部はない。その他の構成は図5と同様である。
図10に戻り、不正情報管理部116は、ダミークライアント4を生成した後、ダミークライアント4の不可視のプレイヤオブジェクト(Nullオブジェクト)を、チェック対象となるクライアント3のプレイヤオブジェクトに付随化する(ステップS116)。付随化とは、対象となるクライアント3のプレイヤオブジェクトから所定距離以上離れないように(位置的に完全に重ねてもよい)、チェック対象となるクライアント3のプレイヤオブジェクトの後を追うように移動させるようにすることである。具体的には、ダミークライアント4のプレイヤオブジェクト(Nullオブジェクト)のMObデータの「MOb ID(MOb Type)」をNullオブジェクトであることを示す特別の値にするか、「状態データ」にNullオブジェクトであることを示す情報を付加する。これにより、ダミークライアント4の不正検出処理部417は、ゲームロジックの適用に際して、プレイヤオブジェクト(Nullオブジェクト)の座標位置を対象となるクライアント3のプレイヤオブジェクトと所定距離(ゼロを含む)となる値に変更する。ただし、対象となるクライアント3のプレイヤオブジェクトが地形から進入不可の座標位置に入った場合は、当たり判定により進入不可となる直前の座標位置等までしか移動させない。一方、オンラインゲームサーバ1の不正情報管理部116はNullオブジェクトのMObデータを受信してクライアント毎MObリスト127に保存した場合には、他のクライアント3への送信対象にはしない。
一方、所定範囲内に当該クライアント3以外のプレイヤオブジェクトが存在する場合(ステップS114のYes)、特定したクライアント3のプレイヤオブジェクトに付随するNullオブジェクトが存在するか否か判断し(ステップS117)、存在する場合(ステップS117のYes)は該当するダミークライアント4を削除する(ステップS118)。ダミークライアント4の削除によりNullオブジェクトは消滅する。
その後、すべてのクライアント3について処理済であるか否か判断し(ステップS119)、処理済でない場合(ステップS119のNo)はクライアント3の特定(ステップS111)に戻る。処理済である場合(ステップS119のYes)は処理を終了する(ステップS120)。
<第3の実施形態>
この第3の実施形態は、BOT行為(自動操作行為)と呼ばれるタイプの不正行為を検出できるようにしたものである。BOT行為とは、クライアントプログラム自体の改変をせずに、クライアントプログラムへの信号入力を自動で行うロボットプログラムを用いることで自動的に報酬を得られるようにした不正行為である。
この第3の実施形態は、BOT行為(自動操作行為)と呼ばれるタイプの不正行為を検出できるようにしたものである。BOT行為とは、クライアントプログラム自体の改変をせずに、クライアントプログラムへの信号入力を自動で行うロボットプログラムを用いることで自動的に報酬を得られるようにした不正行為である。
多くのオンラインゲームはゲーム中での行動時間が長ければ長いほど経験値やアイテム等の取得ができ、その結果、BOT行為を行うプレイヤは正当なプレイヤよりも優位に立てる条件が揃う。そのため、クライアントプログラムへの信号入力を自動で行うロボットプログラムが開発されてきた。一般にBOT行為はゲーム中の通貨やアイテムのインフレーションを起こすため、結果として、それらの不正行為を行っていない他のプレイヤに対して不利益を及ぼす。そのため、オンラインゲームの運営企業によっては禁止行為としている場合が多い。
従来は、オンラインゲームを運営する会社のスタッフがGMツール(Game Master Tool)と呼ばれるスタッフ用クライアントを用い、チャット機能を用いて特殊なプレイヤオブジェクトから疑わしい他のプレイヤオブジェクトに対して会話を行い、スタッフの判断でBOT行為であるかどうかを判断し、必要に応じて処分を行っていた。
また、CAPTCHA画像と呼ばれる方式で予め数個の文字・数字などを歪んだ形で表示し、その文字・数字をプレイヤに入力させることで、人間か自動操作(BOTツール)かを判別するチューリングテスト方法がある。更にゲーム中にそれらの歪んだ画像表示を用いて人間か自動操作かの判別を制御装置に行わせ、その判別結果に応じて処分対応やご褒美対応を行うというものもあった。
しかし、人間によるチャット操作による判別では、まず会話をするまでに怪しいプレイヤオブジェクトを特定するまでの手間が手作業として発生するという問題がある。そして、CAPTCHA図形を用いた判別では、判別作業を自動化することができるが、BOT判別をされるプレイヤ側にとってはあからさまにその判別入力によるBOT行為取り締まりが判るため、一時的にBOT行為を止めてゲーム終了処理(ログアウト)等によってゲームを中断されてしまうことが多い。そのため、結果としてBOT判別による不正チェックが成立しなくなるという問題があった。
一方、BOT行為を禁止する手法としては、BOTツールプログラムの動作をチェックするような手法が考えられるが、一般的なPCではチャットソフト、ウイルスチェッカーソフト、各種言語入力用フロントエンドプロセッサソフト等の、ゲームクライアントソフト以外にも複数のプログラムが動作しており、完全にゲームクライアントソフト以外の全てのソフトの介在を行わせないことは不可能である。
そこで、第3の実施形態では、あるプレイヤオブジェクトの周辺情報から、周囲のプレイヤオブジェクトの情報を得て、自クライアント以外のプレイヤオブジェクトの所定時間内の各種行動情報を得ることで、その周囲のプレイヤオブジェクトがBOTユニット(BOT行為によって他のクライアント装置によって動作しているユニット)か否かを判別し、そのプレイヤオブジェクトがBOTユニットと判別された場合にはサーバに通報するようにしている。
実際には、一般的なMMO−RPGでは、各クライアント上で動作しているクライアントプログラムは、所定の距離内でのみ効果を発生させる操作(例えば、発生させたプレイヤオブジェクトを中心に所定範囲内の他のプレイヤオブジェクトにダメージを与える攻撃呪文等)や、近距離の複数のプレイヤオブジェクトが共同で行う連携動作の成功/失敗判定などを行うため、常時(具体的には1/30秒程度のゲーム進行の単位となる非常に短い時間毎)、周囲の各プレイヤオブジェクト(各プレイヤによって操作されるもの以外の、サーバやクライアントプログラムによって操作される敵モンスターなどを含む)の行動状態などをチェックしている。
そのことを利用し、例えばあるプレイヤオブジェクトの行動状態を所定時間連続してチェックし、BOTユニット判断制御を行うことで、サーバが全プレイヤオブジェクトの行動状態の監視チェックを行うよりもより効率の良いBOTチェックが可能となる。
図12は第3の実施形態におけるクライアント3(ダミークライアント4)の不正検出処理部317(417)の処理例を示すフローチャートであり、図7のステップS309、S310に代えて、あるいはステップS309、S310と並行して行われる処理である。
図12において、不正検出処理部317(417)は、テンポラリ情報データ324に保持された現時点のテンポラリ情報に基づき、自己のプレイヤオブジェクトを中心に所定範囲内に存在する他のプレイヤオブジェクトを特定し、BOT行為が行われていないかどうかチェックする(ステップS321)。具体的には、例えば次のような処理を行う。なお、以下の例に限られるものではない。
(1)特定した他のプレイヤオブジェクトのMObデータの変化をテンポラリ情報データ324(424)から監視し、連続した所定の監視時間内に待機動作以外に所定の行動、例えばMObデータの位置座標の変化から単純な移動しか行わない場合は、BOT行為が行われると判断する。
(2)特定した他のプレイヤオブジェクトのMObデータの変化をテンポラリ情報データ324(424)から監視し、連続した所定の監視時間内の所定の行動が通常の人間の入力操作では不可能と思われる短時間(例えば0.5秒)で繰り返される場合は、BOT行為が行われると判断する。
(3)特定した他のプレイヤオブジェクトの近傍に表示されるチャットの吹き出しの移動オブジェクトの発生をMOb IDに基づいてテンポラリ情報データ324(424)から監視し、第三者のプレイヤオブジェクトから行われるチャットに対して返答のための吹き出しの移動オブジェクトが続いて発生しないか(問いかけを無視)、あるいは返答のための吹き出しの移動オブジェクトが続いて発生しても返答内容が前回と同じ(同じ返答の繰り返し)である場合は、BOT行為が行われると判断する。
次いで、不正検出処理部317(417)は、BOT行為を検出したと判断した場合(ステップS322のYes)、オンラインゲームサーバ1の不正情報管理部116に不正報告を行う(ステップS323)。
<総括>
以上、本発明の好適な実施の形態により本発明を説明した。ここでは特定の具体例を示して本発明を説明したが、特許請求の範囲に定義された本発明の広範な趣旨および範囲から逸脱することなく、これら具体例に様々な修正および変更を加えることができることは明らかである。すなわち、具体例の詳細および添付の図面により本発明が限定されるものと解釈してはならない。
以上、本発明の好適な実施の形態により本発明を説明した。ここでは特定の具体例を示して本発明を説明したが、特許請求の範囲に定義された本発明の広範な趣旨および範囲から逸脱することなく、これら具体例に様々な修正および変更を加えることができることは明らかである。すなわち、具体例の詳細および添付の図面により本発明が限定されるものと解釈してはならない。
1 オンラインゲームサーバ
111 対クライアント通信部
112 クライアント実行プログラム・基本データ管理部
113 ログイン/ログアウト処理部
114 テンポラリ情報管理部
115 ゲームロジック処理部
116 不正情報管理部
120 記憶領域
121 クライアント実行プログラムモジュール
122 地形データ
123 オブジェクトグラフィックデータ
124 アクション関連データ
125 登録ユーザ情報
126 環境情報データ
127 クライアント毎MObリスト
128 不正情報データ
2 ネットワーク
3 クライアント
311 対オンラインゲームサーバ通信部
312 クライアント実行プログラム・基本データ取得部
313 ログイン/ログアウト処理部
314 テンポラリ情報取得部
315 プレイヤ操作入力部
316 ゲームロジック処理部
317 不正検出処理部
318 描画処理部
320 記憶領域
321 地形データ
322 オブジェクトグラフィックデータ
323 アクション関連データ
324 テンポラリ情報データ
4 ダミークライアント
411 対オンラインゲームサーバ通信部
412 クライアント実行プログラム・基本データ取得部
414 テンポラリ情報取得部
417 不正検出処理部
420 記憶領域
421 地形データ
422 オブジェクトグラフィックデータ
423 アクション関連データ
424 テンポラリ情報データ
111 対クライアント通信部
112 クライアント実行プログラム・基本データ管理部
113 ログイン/ログアウト処理部
114 テンポラリ情報管理部
115 ゲームロジック処理部
116 不正情報管理部
120 記憶領域
121 クライアント実行プログラムモジュール
122 地形データ
123 オブジェクトグラフィックデータ
124 アクション関連データ
125 登録ユーザ情報
126 環境情報データ
127 クライアント毎MObリスト
128 不正情報データ
2 ネットワーク
3 クライアント
311 対オンラインゲームサーバ通信部
312 クライアント実行プログラム・基本データ取得部
313 ログイン/ログアウト処理部
314 テンポラリ情報取得部
315 プレイヤ操作入力部
316 ゲームロジック処理部
317 不正検出処理部
318 描画処理部
320 記憶領域
321 地形データ
322 オブジェクトグラフィックデータ
323 アクション関連データ
324 テンポラリ情報データ
4 ダミークライアント
411 対オンラインゲームサーバ通信部
412 クライアント実行プログラム・基本データ取得部
414 テンポラリ情報取得部
417 不正検出処理部
420 記憶領域
421 地形データ
422 オブジェクトグラフィックデータ
423 アクション関連データ
424 テンポラリ情報データ
Claims (9)
- ネットワークを介して複数のクライアントが接続されるオンラインゲームサーバの処理方法であって、
前記クライアントから、当該クライアントのプレイヤが直接に操作する当該プレイヤの分身として振る舞うプレイヤオブジェクトの座標位置を含むゲームロジックの処理結果を受信し、当該処理結果に基づいて前記クライアント毎に表示すべき移動オブジェクトのデータを束ねたデータリストを更新する工程と、
前記クライアントに対し、当該クライアントに対応する前記データリストを含むテンポラリ情報を送信する工程と、
前記クライアントから、前記テンポラリ情報に基づき自己のプレイヤオブジェクトを中心に所定範囲内に存在する他のプレイヤオブジェクトの動作状態に不正があった旨の不正報告情報を取得して不正情報データとして蓄積する工程と
を備えたことを特徴とするオンラインゲームサーバ処理方法。 - 請求項1に記載のオンラインゲームサーバ処理方法において、
各クライアントに対応する前記データリストから当該クライアントの対象プレイヤオブジェクトを中心とする所定範囲内に他のプレイヤオブジェクトが存在するか否か判断する工程と、
他のプレイヤオブジェクトが存在しないと判断された場合に、ダミークライアントを生成し、当該ダミークライアントの不可視のプレイヤオブジェクトを前記対象プレイヤオブジェクトに付随化する工程と
を備えたことを特徴とするオンラインゲームサーバ処理方法。 - 請求項1または2のいずれか一項に記載のオンラインゲームサーバ処理方法において、
前記クライアントから、前記テンポラリ情報に基づき自己のプレイヤオブジェクトを中心に所定範囲内に存在する他のプレイヤオブジェクトにおいて自動操作行為が行われている旨の不正報告情報を取得して不正情報データとして蓄積する工程
を備えたことを特徴とするオンラインゲームサーバ処理方法。 - ネットワークを介して複数のクライアントが接続されるオンラインゲームサーバ装置であって、
前記クライアントから、当該クライアントのプレイヤが直接に操作する当該プレイヤの分身として振る舞うプレイヤオブジェクトの座標位置を含むゲームロジックの処理結果を受信し、当該処理結果に基づいて前記クライアント毎に表示すべき移動オブジェクトのデータを束ねたデータリストを更新する手段と、
前記クライアントに対し、当該クライアントに対応する前記データリストを含むテンポラリ情報を送信する手段と、
前記クライアントから、前記テンポラリ情報に基づき自己のプレイヤオブジェクトを中心に所定範囲内に存在する他のプレイヤオブジェクトの動作状態に不正があった旨の不正報告情報を取得して不正情報データとして蓄積する手段と
を備えたことを特徴とするオンラインゲームサーバ装置。 - ネットワークを介して複数のクライアントが接続されるオンラインゲームサーバを構成するコンピュータを、
前記クライアントから、当該クライアントのプレイヤが直接に操作する当該プレイヤの分身として振る舞うプレイヤオブジェクトの座標位置を含むゲームロジックの処理結果を受信し、当該処理結果に基づいて前記クライアント毎に表示すべき移動オブジェクトのデータを束ねたデータリストを更新する手段、
前記クライアントに対し、当該クライアントに対応する前記データリストを含むテンポラリ情報を送信する手段、
前記クライアントから、前記テンポラリ情報に基づき自己のプレイヤオブジェクトを中心に所定範囲内に存在する他のプレイヤオブジェクトの動作状態に不正があった旨の不正報告情報を取得して不正情報データとして蓄積する手段
として機能させるオンラインゲームサーバ処理プログラム。 - ネットワークを介してオンラインゲームサーバに接続されるクライアントを構成するコンピュータを、
前記オンラインゲームサーバに対し、前記クライアントのプレイヤが直接に操作する当該プレイヤの分身として振る舞うプレイヤオブジェクトの座標位置を含むゲームロジックの処理結果を送信する手段、
前記オンラインゲームサーバから、前記クライアントに表示すべき移動オブジェクトのデータを束ねたデータリストを含むテンポラリ情報を受信する手段、
前記テンポラリ情報に基づき自己のプレイヤオブジェクトを中心に所定範囲内に存在する他のプレイヤオブジェクトの動作状態を判断し、該状態に不正があると判断した場合に前記オンラインゲームサーバに対して不正報告データを送信する手段
として機能させるオンラインゲームクライアント処理プログラム。 - 請求項6に記載のオンラインゲームクライアント処理プログラムにおいて、
前記動作状態の不正とは、対象となるプレイヤオブジェクトの存在する座標位置の周辺情報に設定されたデータにより許容される動作状態の変化と、該プレイヤオブジェクトに設定された動作状態を示すデータの変化とが一致しない場合に不正と判断する
オンラインゲームクライアント処理プログラム。 - 請求項6に記載のオンラインゲームクライアント処理プログラムにおいて、
前記動作状態の不正とは、対象となるプレイヤオブジェクトに対して自動操作判別手段が自動操作と判断した場合に不正と判断する
オンラインゲームクライアント処理プログラム。 - ネットワークを介して複数のクライアントが接続されるオンラインゲームサーバを構成するコンピュータを、
前記クライアントから、当該クライアントのプレイヤが直接に操作する当該プレイヤの分身として振る舞うプレイヤオブジェクトの座標位置を含むゲームロジックの処理結果を受信し、当該処理結果に基づいて前記クライアント毎に表示すべき移動オブジェクトのデータを束ねたデータリストを更新する手段、
前記クライアントに対し、当該クライアントに対応する前記データリストを含むテンポラリ情報を送信する手段、
前記クライアントから、前記テンポラリ情報に基づき自己のプレイヤオブジェクトを中心に所定範囲内に存在する他のプレイヤオブジェクトの動作状態に不正があった旨の不正報告情報を取得して不正情報データとして蓄積する手段
として機能させるためのプログラムを記録したコンピュータ読み取り可能なオンラインゲームサーバ処理プログラム記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009076013A JP2010227182A (ja) | 2009-03-26 | 2009-03-26 | オンラインゲームサーバ処理方法、オンラインゲームサーバ装置、オンラインゲームサーバ処理プログラム、オンラインゲームクライアント処理プログラムおよびオンラインゲームサーバ処理プログラム記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009076013A JP2010227182A (ja) | 2009-03-26 | 2009-03-26 | オンラインゲームサーバ処理方法、オンラインゲームサーバ装置、オンラインゲームサーバ処理プログラム、オンラインゲームクライアント処理プログラムおよびオンラインゲームサーバ処理プログラム記録媒体 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010227182A true JP2010227182A (ja) | 2010-10-14 |
Family
ID=43043693
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009076013A Withdrawn JP2010227182A (ja) | 2009-03-26 | 2009-03-26 | オンラインゲームサーバ処理方法、オンラインゲームサーバ装置、オンラインゲームサーバ処理プログラム、オンラインゲームクライアント処理プログラムおよびオンラインゲームサーバ処理プログラム記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2010227182A (ja) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101153440B1 (ko) | 2011-01-24 | 2012-07-09 | 주식회사 잉카인터넷 | 온라인 게임에서 핵 툴 사용상태 실시간 표시방법 |
KR101362217B1 (ko) * | 2012-01-05 | 2014-02-13 | (주)네오위즈게임즈 | 게임 캐릭터 제어 장치 및 방법과 기록매체 |
JP2014534842A (ja) * | 2011-10-13 | 2014-12-25 | ネオプル インコーポレイテッド | 異常アカウント検出装置及び方法 |
JP2016518644A (ja) * | 2013-03-12 | 2016-06-23 | ガナリラ、エルエルシー | 対話型媒体を介してセキュリティを提供するシステムおよび方法 |
KR20160134308A (ko) * | 2015-05-15 | 2016-11-23 | 주식회사 엔씨소프트 | 온라인 게임에서 비정상적인 함수 호출을 탐지하는 방법 및 프로그램 |
JP6473259B1 (ja) * | 2018-05-01 | 2019-02-20 | 株式会社Cygames | ゲームにおけるユーザの不正を検出するためのシステム、サーバ、プログラム及び方法 |
CN111389019A (zh) * | 2020-04-14 | 2020-07-10 | 网易(杭州)网络有限公司 | 游戏中的交互控制方法、装置、电子设备及计算机介质 |
CN111558226A (zh) * | 2020-04-28 | 2020-08-21 | 腾讯科技(成都)有限公司 | 一种异常操作行为的检测方法、装置、设备及存储介质 |
-
2009
- 2009-03-26 JP JP2009076013A patent/JP2010227182A/ja not_active Withdrawn
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101153440B1 (ko) | 2011-01-24 | 2012-07-09 | 주식회사 잉카인터넷 | 온라인 게임에서 핵 툴 사용상태 실시간 표시방법 |
JP2014534842A (ja) * | 2011-10-13 | 2014-12-25 | ネオプル インコーポレイテッド | 異常アカウント検出装置及び方法 |
KR101362217B1 (ko) * | 2012-01-05 | 2014-02-13 | (주)네오위즈게임즈 | 게임 캐릭터 제어 장치 및 방법과 기록매체 |
JP2020053061A (ja) * | 2013-03-12 | 2020-04-02 | ガナリラ、エルエルシー | 対話型媒体を介してセキュリティを提供するシステムおよび方法 |
JP2016518644A (ja) * | 2013-03-12 | 2016-06-23 | ガナリラ、エルエルシー | 対話型媒体を介してセキュリティを提供するシステムおよび方法 |
JP7045774B2 (ja) | 2013-03-12 | 2022-04-01 | ガナリラ、エルエルシー | 対話型媒体を介してセキュリティを提供するシステムおよび方法 |
KR20160134308A (ko) * | 2015-05-15 | 2016-11-23 | 주식회사 엔씨소프트 | 온라인 게임에서 비정상적인 함수 호출을 탐지하는 방법 및 프로그램 |
KR101699693B1 (ko) | 2015-05-15 | 2017-01-25 | 주식회사 엔씨소프트 | 온라인 게임에서 비정상적인 함수 호출을 탐지하는 방법 및 프로그램 |
JP6473259B1 (ja) * | 2018-05-01 | 2019-02-20 | 株式会社Cygames | ゲームにおけるユーザの不正を検出するためのシステム、サーバ、プログラム及び方法 |
WO2019211992A1 (ja) * | 2018-05-01 | 2019-11-07 | 株式会社Cygames | ゲームにおけるユーザの不正を検出するためのシステム、サーバ、プログラム及び方法 |
JP2019193702A (ja) * | 2018-05-01 | 2019-11-07 | 株式会社Cygames | ゲームにおけるユーザの不正を検出するためのシステム、サーバ、プログラム及び方法 |
CN111389019A (zh) * | 2020-04-14 | 2020-07-10 | 网易(杭州)网络有限公司 | 游戏中的交互控制方法、装置、电子设备及计算机介质 |
CN111389019B (zh) * | 2020-04-14 | 2024-02-23 | 网易(杭州)网络有限公司 | 游戏中的交互控制方法、装置、电子设备及计算机介质 |
CN111558226A (zh) * | 2020-04-28 | 2020-08-21 | 腾讯科技(成都)有限公司 | 一种异常操作行为的检测方法、装置、设备及存储介质 |
CN111558226B (zh) * | 2020-04-28 | 2023-04-18 | 腾讯科技(成都)有限公司 | 一种异常操作行为的检测方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2010227182A (ja) | オンラインゲームサーバ処理方法、オンラインゲームサーバ装置、オンラインゲームサーバ処理プログラム、オンラインゲームクライアント処理プログラムおよびオンラインゲームサーバ処理プログラム記録媒体 | |
US7517282B1 (en) | Methods and systems for monitoring a game to determine a player-exploitable game condition | |
US7843471B2 (en) | Persistent authenticating mechanism to map real world object presence into virtual world object awareness | |
Blackburn et al. | Cheating in online games: A social network perspective | |
US9308458B2 (en) | Automatic movement of player character in network game | |
US8821288B2 (en) | Method of determining gifts of each friend user | |
US8529343B2 (en) | Method for monitoring computer programs | |
JP4385863B2 (ja) | オンラインゲーム不正検出方法 | |
JP7121014B2 (ja) | ユーザ分析システムおよび方法 | |
JP2009530979A (ja) | ネットワーク装置の評価および誠実性の保全 | |
CN108211358A (zh) | 信息的显示方法和装置、存储介质、电子装置 | |
WO2022222415A1 (zh) | 消息发送方法、装置、设备及存储介质 | |
WO2022166492A1 (zh) | 一种信息显示方法、装置、电子设备、计算机可读存储介质及计算机程序产品 | |
Kirkbride et al. | Game-like captchas for intrusion detection | |
Chow et al. | CAPTCHA challenges for massively multiplayer online games: Mini-game CAPTCHAs | |
KR101494012B1 (ko) | 온라인 게임에 있어서의 부정 게임 상황 감시 방법 및 시스템 | |
JP7280091B2 (ja) | プログラム及びゲームシステム | |
JP2019107082A (ja) | プログラム、端末装置、及び情報処理システム | |
JP4987315B2 (ja) | ゲームシステム、そのゲームシステムに含まれるゲームサーバ及びゲームプログラム | |
JP5414925B1 (ja) | ゲームサーバ、ゲーム制御方法、ゲームシステム、ゲームプログラム及び記録媒体 | |
JP2017131322A (ja) | プログラム及びサーバ | |
CN113181656A (zh) | 外挂检测方法、设备及介质 | |
JP5504544B1 (ja) | ゲームサーバ、ゲーム制御方法、ゲームプログラム、ゲームシステム及び記録媒体 | |
KR101139916B1 (ko) | 하드웨어를 통한 자동 입력 감지 장치 및 그 방법 | |
JP7273319B2 (ja) | ゲームプログラム、ゲームシステム、及びサーバ装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20120605 |