問題タブ [anti-cheat]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
119 参照

node.js - プレイヤーの位置に基づいてサーバーからデータを送信する

私は 2D マルチプレイヤー ブラウザ ゲームを持っています。ゲームには、ヘビのようなプレーヤーと、さまざまな色のブロックのグリッドで満たされた世界が含まれています。

現在、サーバーからこれらのデータを送信しています。

  • if new player spawn - すべてのブロックとプレーヤーに関するデータを彼に、新しくスポーンしたプレーヤーに関するデータを他の人に
  • 誰かが動きを変えた場合 - 彼の軌跡、位置、方向に関するデータを全員に
  • 一部のブロックの色が変更された場合 - それに関するデータをみんなに

そのため、冗長なデータは送信しませんが、すべてのデータを全員に送信します。改変されたクライアントを使用する詐欺師はすべてを見ることができました! そのため、ビューポートに基づいてクライアントにデータを送信する必要があります。


ヘビのようなプレーヤーの場合、プレーヤーの最小値と最大値、X と Y を確認します。

プレーヤー A がプレーヤー B に近づくと、サーバーはクライアント A にプレーヤー B に関するデータを送信します。プレーヤー A がプレーヤー B から遠すぎると、サーバーはプレーヤー B をクライアント A から削除します。サーバーは、プレーヤー A が近い。


主な質問

しかし、ブロックに関するデータをどのように送信すればよいかわかりません。残念ながら、冗長なデータを送信しすぎてしまいます。

プレイヤーがスポーンするとき、近くにあるブロックに関するデータを彼に送信します。また、彼の近くのブロックの色が変わったら、彼に送ります。

プレーヤーが左に移動する場合、左のブロックに関するデータを彼に送信します。しかし、どのくらいの頻度でそれを行う必要がありますか? 彼が 1 ブロックの距離を移動するたびに、新しいブロックを送る必要がありますか?

プレイヤーがすでに行ったことのある場所に行くことにした場合はどうなりますか? 冗長データをもう一度送信する必要がありますか? または、そこにあるブロックが変更されたかどうかを確認できますか。しかし、プレイヤーがすでにいくつかのブロックを見たことをどのように思い出すことができますか? プレイヤーが見たすべてのブロックを覚えていない可能性があります (ブロックの量が多すぎます)。パフォーマンスに悪いでしょう。

Zoom チーターからゲームを保護し、パフォーマンスを低下させないようにするにはどうすればよいですか?

0 投票する
1 に答える
959 参照

android - Android アプリで自動クリック チートを防ぐにはどうすればよいですか?

ユーザーがストップウォッチを使用して正確に1秒で停止しようとするAndroidアプリを作成しました。ユーザーがストップウォッチをできるだけ速く開始および停止し、最短時間を取得しようとする 2 番目のゲームモードもあります。ストップウォッチを正確に1秒間隔で開始および停止し、ミリ秒以内に画面をダブルクリックする、インストールできる自動クリッカーアプリがいくつかあります.

私の質問は、この方法で不正行為を防ぐ最善の方法は何ですか? このために設計されたライブラリはありますか? 助けてくれてありがとう!