2012-10-13 31 views
5

我正在實現基於cocos2d-x的遊戲應用程序。爲了在技術上防止作弊,其中一個想法是對所有客戶端 - 服務器通信使用HTTPS,這使得難以獲得數據格式/遊戲邏輯併發送修改後的請求來作弊。 (我知道「預防」實際上是不可能的,但是增加製作遊戲作弊的成本是可以的)。我的問題是,Cocos2d-x上的HTTPS

  1. 在Cocos2d-x,如何使HTTPS請求?可能?
  2. 在一個更一般的情況下,技術上應該怎麼做才能減少這種遊戲入侵?持有什麼策略?

回答

0

通過使用curl庫您可以使https連接。 如果你想在技術上保護你的遊戲使用你自己的強大的加密技術。

感謝

2

對於原生的跨平臺的C++網絡,你可以考慮使用Boost C++庫。 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實現可用於捲曲和提升。

關於遊戲數據,測試不一致性的最簡單方法是評分。您可以添加一些指標以避免污染排行榜。如果您可以重新計算服務器上的分數,並且如果發現不一致,您可以對其進行處理,您可以根據分數的組成部分(遊戲中花費的時間,接通電源的次數和得分乘數......)添加特殊校驗和。

此外,您可以抓取遊戲狀態的瞬間和幾個命令,對其進行編碼並重播服務器上的序列以檢查是否存在不一致。不管你喜歡如何處理作弊者。

在服務器上玩時,讓服務器管理遊戲狀態,並且不允許客戶端遊戲狀態的變化影響玩家。檢查輸入一致性等...

在使用微交易時,每個微交易應在向供應商服務器完成交易之前向供應商的服務器進行驗證。

即使這些論文1, 2來自閥門參考fps遊戲,他們應該給你一些關於如何處理狀態不一致(由通信延遲引入)的指針。它應該有助於避免假陽性並破壞非騙子的體驗。