2016-12-06 92 views
3

最近我正在開發基於Cocos2dx-lua的移動脫機遊戲。如何防止基於Cocos2dx的離線遊戲時間作弊?

我在Google Play上找到一款名爲GameGuardian的應用程序,它可以設置時間速度。該應用程序可能會修改方法gettimeofday()libc.so。我已經嘗試了很多API,如os.time(),SystemClock.elapsedRealtime(),但都失敗了。

有人請給我一種方法來避免應用程序的影響?

回答

2

唯一確定的方法是讓您的應用程序聯繫您的遊戲服務器以確保時間。許多安卓遊戲正在這樣做。 「戰鬥貓」就是一個例子。假設您可以在應用程序啓動後立即檢查時間有效性,如果沒有可用的連接,則可以允許爲某些允許的時間生成資源。例如,自上次確認時間以來不超過1小時。

其他的想法可能是檢查當前的fps。硬件無法加速,因此在啓用VSync時,幀的渲染時間大致相同。如果您發現渲染單幀需要的時間比應該多得多,並且如果它發生在很多幀上,那麼它可能表示作弊的可能性。但這不是穩定的解決方案,因爲你必須確保你的fps通常不會在弱設備上掉線,並且它不會告訴你任何關於遊戲未運行時花費的時間。

極端情況下,如果您發現自上次保存未確認時間超過1小時後(如果用戶調整DST等)時間跳回,則可能包括完整的刪除應用程序狀態。

但通常你不能保護完全脫機遊戲時間操縱。

+0

我同意你的意見。檢查當前的fps是解決這個問題的一種可行但不完美的方法。謝謝。 –

相關問題