私は実際にこのソフトウェアを自分で書いているわけではありませんが、問題を解決する方法がわからないことに気づきました。この問題を説明する最善の方法として、架空のマルチプレイヤー ファーストパーソン シューティング ゲームの特定のシナリオについて説明します...
- プレイヤーAは西向きの茂みに隠れている
- プレイヤー B が東からプレイヤー A に忍び寄る、またはプレイヤー A の後ろに忍び寄る
このゲーム用に書かれた人気のある「ハック」は、プレーヤー A がプレーヤー B の位置を示すレーダーを持つようにするもので、画面にプレーヤー B が表示されず、ゲームはレーダーをサポートしていません。このハッキングが可能になるのは、サーバーが特定の範囲内 (おそらくプレーヤー A のクリッピング プレーン内) 内のすべてのプレーヤーのプレーヤー A のクライアントに情報を送信しているためです。サーバーがプレーヤーAのビューフレーム内のプレーヤーのプレーヤーAのクライアントにのみ情報を送信しようとするのは現実的ではありません(私が知る限り)。サーバーは近くにいるすべてのプレイヤーに関する情報をプレイヤー A のクライアントに送信する必要があるため、プレイヤー A は自分の画面にレーダーをオーバーレイするハックを作成できます。このレーダーは、クライアントに送信されたデータを監視し、敵プレイヤーの状態の更新を引き出すことによって生成されます。これらは一般的に「レーダー」または「」として知られていると思います。
クライアントに送信される情報で、敵プレイヤーの状態の更新を難読化または非表示にする方法はありますか? 私が理解していることから、暗号化はリアルタイム ソリューションには適していないのでしょうか? サーバーがプレイヤー A のビュー フレーム内のプレイヤーの状態更新のみを送信できたとしても、プレイヤー A のハックは、カモフラージュまたはカバー オブジェクト (マイナーな方法でおそらく透明である) の後ろに隠れているプレイヤーを表示することができます。
私が本当に考えることができる唯一のことは、ある種の「パンクバスター」ソリューションを実装することです. つまり、プレイヤー A のクライアントに不正なプロセスを定期的にスキャンさせます。人気のあるハッキングが監視されるという考えです。人気のないハッキングは、十分に小さいプレイヤーベースに影響を与えるため、小さすぎて追跡できません.