5

cocos2d-xをベースにゲームアプリを実装しています。チートを技術的に防止するためのアイデアの 1 つは、すべてのクライアント サーバー通信に HTTPS を使用することです。これにより、データ形式/ゲーム ロジックを取得し、変更されたリクエストをチートに送信することが難しくなります。(「防止」が実際には不可能であることはわかっていますが、ゲームのチートを作成するコストを増やすためには問題ありません:)。私の質問は、

  1. Cocos2d-x で HTTPS リクエストを行うには? 可能?
  2. より一般的なケースとして、このようなゲームのハッキングを減らすために技術的に何をすべきか? 保持する戦略は?
4

3 に答える 3

2

For native cross platform C++ networking you may consider using Boost C++ libraries. Boost.Asio is the one used for networking.

Boost.Asio link: http://www.boost.org/doc/libs/1_53_0/doc/html/boost_asio.html

Boost.Asio tutorials link: http://www.boost.org/doc/libs/1_53_0/doc/html/boost_asio/tutorial.html

Although not officially supported (only due to lack of regression testing on iOS and Android), Boost runs without any problems on iOS and Android (and probably other C++ based mobile platforms as well).

To prevent cheating you usually rely on an external source (which can be your game server) e.g. if your game relies on the time of day you may get the time form an external server. You may use encryption libraries for data transfer on the client and server side.

于 2013-03-08T23:09:09.643 に答える
0

こんにちは、これは私たちが常に直面している問題です。不正行為が不正行為者の事例に限定されている場合、質問は学術的なものであり、空き時間に研究する必要があります.

一方、あなたの収入が影響を受けている場合、または不正行為者の行動が他のプレイヤーに影響を与えてゲーム体験を低下させている場合は、ゲームの状態に矛盾がないかテストし、クライアント/サーバー トランザクションを保護し、非常に微妙な方法で不正行為に対処する必要があります。詐欺師の興味を完全に抑止することは避けてください。

C++ の https 実装は、curl と boost で利用できます。

ゲーム データに関して、矛盾をテストする最も簡単な方法はスコアです。リーダーボードの汚染を避けるために、いくつかのインジケーターを追加できます。サーバー上でスコアを再計算でき、不整合が発見された場合に対処できる場合は、スコアのコンポーネント (ゲームで費やした時間、パワーアップの数、受け取ったスコア乗数など) に基づいて特別なチェックサムを追加できます。

また、ゲームの状態といくつかのコマンドのインスタントを取得し、それをエンコードしてサーバー上でシーケンスを再生し、矛盾をチェックすることもできます。好きなように詐欺師に対処してください。

サーバーでプレイする場合、サーバーにゲームの状態を管理させ、プレイヤーに影響を与えるクライアント側のゲーム状態の変更を許可しません。入力の一貫性などを確認してください...

マイクロ トランザクションを使用する場合、プレーヤーのアカウントに完全にコミットする前に、各マイクロ トランザクションをベンダーのサーバーで検証する必要があります。

Valveのこれらの論文12が fps ゲームに言及している場合でも、状態の不一致 (通信遅延によって発生) に対処する方法についていくつかの指針を示す必要があります。偽陽性を回避し、詐欺師以外の経験を台無しにするのに役立つはずです.

于 2013-12-19T21:23:53.780 に答える
0

by using curl library you can make https connection. if you want technically protect your game use you own strong encryption technique.

Thanks

于 2012-12-19T06:45:46.500 に答える