MMOの問題に対するチート対策とソリューション?[閉まっている]


14

ほとんどのオンラインゲームはこの問題に苦しんでおり、これをカバーするソフトウェア会社がありますが、最近私が見たものから、ほとんどの企業はそれらのプログラムが独自のシステムを作成することを避けようとしています...)しかし、それを防ぐのは非常に難しいケースです...

私はアプリケーションを投稿するためのコミュニティWikiとして別の質問トピックを作成したと言いたかったのですが、この質問の背後にある機能とアイデアはそれらをリストするのではなく、あなたの試み、道に沿った問題、可能な解決策についてもっと知ることです、アプリケーションなどの場合はコードの一部。

このような行為を防止する(試みる)ために、皆さんはどのような保護を使用していますか:

  1. アンチチートソフトウェア?(たとえば、aionがベータ段階でGameGuardの使用を中止した理由は、互換性の問題が大量に発生し、ユーザーから苦情が寄せられていることです)
  2. あなた自身のコード?(例えば、スピードハック、スピード+最後のロケーションに対する新しいロケーションの検証など、悪意のあるプレーヤーを確認するために通常どのような検証を実行しますか...)
  3. なし、気にしない?(あなたが共有したい個人的な理由や入力?)

あなたが投稿したい問題に関連するコードの興味深い部分?

私の英語の文章を自由に作り直してください。**


1
タグが作成されました。これに大量の答えがあると期待する場合は、コミュニティwikiにしてください。これにより、複数のユーザーが個々の回答を編集し続けるのではなく、個々の回答を編集できます。
ジェシードーシー

1
これがどのように有益であるかの例について。:このチェックアウトgamedev.stackexchange.com/questions/480/...
ジェシー・ドーシー

コメントとリンクのおかげで、私は今それを確認し、私の視点では、この種のゲーム開発の質問は議論するのに非常に良い点ですが、MMOゲームのほとんどは私が信じているので、コミュニティは母国ではかなり小さく、そのような質問を最初から否定することを恐れていたので、タグを作成してくれてありがとう:)
Prix

回答:


22

残念ながら、人々が不正行為をするのを止めるのは本当に難しいので、Punkbusterのようなソフトウェアは、それらの一部をキャッチしようとするために作成されました。

MMOでできる最大のことは、クライアントが送信するものを信頼しないことです。クライアントはプレイヤーがどこに移動したか、誰にどれだけのダメージを与えたかなどを伝えることができないはずです。代わりに、サーバーに制御入力を送信し、それが実用的であることを確認する必要があります(「攻撃」ボタンを押すたとえば、1秒間に1000回は無効です)、サーバーでシミュレーションを更新します。次に、ゲームの新しい状態の関連部分をクライアントに送り返します。

ユーザー入力の検証中に、入力の傾向を調べることもできます。マクロを許可しない場合、ユーザーが最後の30分間に完全に1秒間隔でまったく同じピクセル座標で同じボタンをクリックしたことに気づくことで、ここでそれらをキャッチできます。

クライアント自体が人々をだます主な場所であるため、Punkbusterのようなプログラムはウォールハックやエイムボットなどを削減できます。それ以外は、クライアントを信頼せず、クライアントから送信されたものを検証することで、チートを削減できます。


あなたの貢献に感謝します。もっと多くの人が意見を述べてくれることを期待しています。確かにこれは反論するのが非常に難しい問題です...アンチチートエンジンを無効にするためにゲームを取り締まる人もいます、そしてそれはそれから呼び出しです...それは物事をさらに難しくします...あなたがオンラインを持っていない限りGMは、指定された人または他の人があなたが述べたような検証を検証します。コミュニティwikiのこの質問についてどう思いますか?そのままにしておくか、それに合うように何かを変更する必要があります;
グランプリ

特定の回答を探しているのでない限り、おそらくコミュニティwikiです。
ショーンジェームズ

パンクバスターがより完全な答えを得るためにどのように機能するかについての詳細はありますか?
クリスロイド

良い答え-「すべてを支配する1つの解決策」はありません-ほとんどのゲームには複数の「攻撃ベクトル」があります。多くの場合、それは他の何よりもリスク評価に関するものです。つまり、誰かがシステムXなどをごまかすことができる場合のコミュニティへの影響は何
ですか?zebrabox

ハッキングは避けられないと考えており、最強のアンチチートプログラムさえあります。技術的にオフラインであるがオンラインではない場合、不正行為は問題ありません。オンラインでプレイすることは公平性に重点を置いています。そうですか?
デビッドディマランタ

8

ロギング。サーバーで発生するすべてのイベント、理想的にはクライアントから送信されるすべてのログを記録する必要があります。クライアントは本質的に信頼できませんが、信頼できないデータのログを記録することもできます。

すべてがログに記録されると、チート検出はデータを分析する問題になります。明らかなチート(許容範囲外の値、たとえば、アバターが通常許可するよりもはるかに高速にポイント間を移動できるなど)もあれば、より潜行性の高いもの(人為的に短い時間枠内でピクセル完璧なターゲティングを可能にするエイムボットなど)もあります。ウォールハッキングのようにさらに検出が難しいものもありますが、可能な限り記録することで自動検出と手動検出の両方が可能になります。さまざまな記事がありますが、一般的にチートは、人間のプレイヤーがそうではないように予測可能/反復可能であるため、自動検出で非常に簡単に発見されます。

絶対にすべてを記録することは実行不可能である可能性が最も高いため、階層型ログは便利です。たとえば、ユーザーによる不正行為のレポート、または不正行為の可能性を検出する単純な基本的なログ(統計曲線をはるかに上回るスコア)は、より詳細なログの特定のクライアント/アカウント/ CDキーにフラグを立てるのに十分です。その後、チートが使用されていることを合理的な疑いを超えて証明するために使用されます。

チートを検出したときに行うことは、まったく別の問題です。特に十分な信頼性のある自動検出メカニズムを使用している場合は、事後のアカウント禁止が適切です。両方を早期に禁止すると、検出されていることをチートに警告し、決定的な検出メカニズムに起因する誤検知のリスクも発生します。遅すぎると、他の人のゲーム体験が台無しになるリスクがあります。これは非常に灰色の領域であり、開発者が判断を下す必要があります。


2

ゲーム内のすべての重要な作業がサーバー側で行われていると仮定すると、ごまかすことはほとんどまたはまったくありません。マクロ処理を制限したり、人々がパケット編集するのを不快にしたい場合は、そのプロセスでアクティブなモジュールをプログラムで定期的にスキャンしてください。たとえば、WpeSpy.dllを見つけると、WPEが接続されていることがわかります。他の一般的なツールについても同様です。これは回避することができ、軍拡競争と失われた原因です、ゲームが比較的小さい場合は、ねじ回している人の数を約10倍に簡単に削減できます...あなたに十分です。


貢献してくれて、アンチチートソフトウェアを使用したことがありますか、またはこの種の問題を抱えていましたか?もしそうなら、それについて聞いてうれしいです。
グランプリ

2
サードパーティのアンチチートソフトウェアは使用していません。ただし、最初にオンラインRPGのコーディングを開始したとき、クライアントが「攻撃」を送信すると、サーバーはリクエストをキューに入れる代わりに「攻撃」と呼びました。これらは不正行為を防ぐために最も重要です。スピードハックは、彼らは少しアドバンテージを得るようにサーバー上のすべてのタイミングを行う、しかしまた、タイムスタンプを送信すると、あなたはあまりにも多くのドリフトを取得する場合、あなたは彼らがいずれかを使用している知っていますよ。アカウントにマークを付けますが、すぐにキックしないでください。すぐにフィードバックすることは、誰かがあなたのソフトウェアが検出したものを知るための素晴らしい方法です。
ジェームズベリンジャー

1
but also send timestamps, and if you get too much drift, you'll know they are using one. Mark their account, but don't kick them immediately -- immediate feedback is a great way for someone to know what your software detects.は最近、タイムスタンプの実装を検討しており、マークされたユーザーからシステムを警告していました検証のためのオンラインGM ...
グランプリ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.