注意:這與android有關,但最好的答案可能不是平臺特定的,因此其他標籤。如何讓玩家難以破解遊戲級別的數據?
考慮一個類似憤怒的小鳥的遊戲:你有一堆關卡。每次你完成一個關卡,下一個關卡都可以玩,但不能玩。如何讓玩家更難以破解我的遊戲文件並解鎖應該不可用的關卡?假設進展數據存儲在本地。
我的想法:
在Android上,所有應用程序文件存儲在用戶只能訪問他們是否有root權限(默認情況下,他們不會做一個文件夾中,但它通常是很容易得到只要你有一點谷歌)。現在,我使用的SQLite數據庫,看起來是這樣的:
LevelId = pk | UnlockStatus = int, 0 = locked, 1 = unlocked, 2 = completed with 1 star, ...
這是好的,只要用戶沒有根或一點也不熟悉,其中的應用程序文件存儲。如果他們有root用戶,那麼這個文件很容易編輯。
據我所知,憤怒的小鳥將其等級數據存儲在.lua
文件中,至少根據其名稱。我找不到包含關卡信息的文本文件或數據庫文件。在文本編輯器中打開此.lua
只顯示亂碼。我沒有試過十六進制編輯器。
使用sql表格非常方便。有沒有一種簡單的方法可以將進度數據存儲在sql表中,這樣用戶將有更難理解的時間?理想情況下,實施起來也不算太費時。作爲一個離線遊戲,如果玩家不喜歡它,我不在乎,所以我正在尋找最佳質量 - 實現時間的折衷。然而,理論上的答案產生更多的實施時間,相當多的質量也值得讚賞。
如何對數據進行加密,然後將其存儲......沒有嘗試過自己..我認爲是可能的事...... – ngesh 2012-04-12 11:11:27
正如你已經提到:如果一個球員想要破壞它自己,爲什麼要去到試圖阻止他們的麻煩? – shambulator 2012-04-12 11:15:24
這樣做已經很難了,對於大多數玩家來說這絕對是遙不可及的。爲什麼要讓它更難? – 2012-04-13 05:04:52