簡體   English   中英

如何防止基於Cocos2dx的離線游戲時間欺騙?

[英]How to prevent time-cheating on offline game based on Cocos2dx?

最近我正在開發基於Cocos2dx-lua的移動離線游戲。

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

有人可以給我一個方法來避免應用程序的影響嗎?

唯一可靠的方法是讓您的應用程序聯系您的游戲服務器,以確保時間。 很多安卓游戲都在這樣做。 “戰貓”就是一個例子。
比如,您可以在應用啟動時立即檢查時間有效性,如果沒有可用連接,您可以允許在一段時間內生成資源。 例如,自上次確認時間以來,價值不超過1小時。

其他想法可能是檢查當前的fps。 硬件無法加速,因此在啟用VSync時,幀將在大致相同的時間內呈現。 如果您發現渲染單幀所需的時間明顯多於應有的時間,並且如果它出現在許多幀中,那么它可能表示作弊的可能性。 但這不是一個穩定的解決方案,因為你必須確保你的fps通常不會在弱設備上丟失,並且它不會告訴你任何關於游戲沒有運行所花費的時間。

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

但通常你無法完全保護離線游戲免受時間操縱。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM