2012-10-13 7 views
5

私はcocos2d-xに基づいてゲームアプリケーションを実装しています。技術的に不正行為を防止するために、アイデアの1つはHTTPSをすべてのクライアントとサーバー間の通信に使用することであり、データフォーマット/ゲームロジックを取得することが難しくなり、改ざんされたリクエストを送信することになります。 (私は「予防」は実際には不可能だと知っていますが、それは大丈夫です。私の質問は、HTTPS on Cocos2d-x

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

答えて

0

curlライブラリを使用すると、https接続することができます。 技術的にあなたのゲームの使用を保護したい場合は、強力な暗号化技術を所有しています。

おかげで、あなたはBoost C++ライブラリを使用して検討することネットワーキングネイティブクロスプラットフォームのC++の場合

2

。 Boost.Asioはネットワーキングに使用されるものです。

Boost.Asioリンク: http://www.boost.org/doc/libs/1_53_0/doc/html/boost_asio.html

Boost.Asioチュートリアルがリンクされていますhttp://www.boost.org/doc/libs/1_53_0/doc/html/boost_asio/tutorial.html

を正式に(のみによるiOSとAndroid上で回帰テストの不足のために)サポートされていませんが、上の任意の問題もなく実行を後押しiOSとAndroid(おそらく他のC++ベースのモバイルプラットフォームも同様)。

不正行為を防ぐには、通常、外部ソース(ゲームサーバーとすることができます)を使用します。あなたのゲームが時間に依存している場合は、外部サーバーから時間を得ることができます。クライアントとサーバー側でデータ転送に暗号化ライブラリを使用することができます。

+0

新鮮な投稿ではありませんが、ありがとうございます。 :) –

+1

はい私はそれが新鮮な投稿ではないことを認識していますが、人々は通常C++のクロスプラットフォームネットワーキングに問題があるので、この質問に答える必要があると感じました。 –

0

こんにちは、これは私たちが常に直面している問題です。不正行為が詐欺師の事例に限定されている場合、その質問は学問的なものであり、あなたの余暇を学ぶべきです。

一方、所得に影響がある場合や、詐欺師の行動が他のプレイヤーに影響を与えてゲーム体験を低下させる場合は、ゲームの状態の不一致をテストするために何らかの努力を払い、クライアント/サーバー取引を保護し、詐欺師の関心を完全に抑止するための非常に微妙な方法です。

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

ゲームデータに関して、不一致をテストする最も簡単な方法はスコアです。リーダーボードを汚染しないように、いくつかの指標を追加できます。サーバーのスコアを再計算できる場合、スコアのコンポーネント(ゲームに費やされた時間、パワーアップ数、スコア乗数など)に基づいて特別なチェックサムを追加することができます。

また、ゲームの状態といくつかのコマンドの瞬間を取得し、それをエンコードし、サーバー上のシーケンスを再生して不一致をチェックすることができます。あなたが好きなのにチーターを扱う。

サーバー上でプレイするときに、サーバーがゲームタイムを管理できるようにし、プレーヤーに影響を与えるクライアント側のゲーム状態の変更を許可しません。入力の整合性などを確認する

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

弁からの12がfpsゲームを参照していても、状態の不一致(通信遅延によって導入される)を処理する方法についてのいくつかの指針を与えるべきです。それは偽陽性を避け、非詐欺師の経験を台無しにするのに役立つはずです。