gpt4 book ai didi

android - 我怎样才能让玩家更难破解游戏关卡数据?

转载 作者:太空宇宙 更新时间:2023-11-03 12:40:01 27 4
gpt4 key购买 nike

注意:这是专门针对 android 的,但最佳答案可能不是特定于平台的,因此还有其他标签。

考虑一款类似于愤怒的小鸟的游戏:您有很多关卡。每次您完成一个级别后,就可以玩下一个级别,但之前不能玩。我怎样才能让玩家更难破解我的游戏文件并解锁不应可用的关卡?假设进度数据存储在本地。

我的想法:

在 Android 上,所有应用程序文件都存储在一个文件夹中,用户只有拥有 root 访问权限才能访问该文件夹(默认情况下,他们从不这样做,但只要您稍微谷歌一下,通常很容易获得)。现在,我正在使用看起来像这样的 sqlite 数据库:

LevelId = pk | UnlockStatus = int, 0 = locked, 1 = unlocked, 2 = completed with 1 star, ...

只要用户没有 root 权限或根本不熟悉应用程序文件的存储位置,这就没问题。但是,如果他们有 root,则该文件非常容易编辑。

据我所知,愤怒的小鸟将其级别数据存储在 .lua 文件中,至少根据其名称。我找不到包含关卡信息的文本文件或数据库文件。在文本编辑器中打开此 .lua 只会显示乱码。我还没有尝试过十六进制编辑器。

用sql表很方便。有没有一种简单的方法可以将进度数据存储在 sql 表中,从而使用户更难理解它?理想情况下,实现起来也不应该太费时。作为一款离线游戏,我不太关心玩家是否破解它,所以我正在寻找最好的质量 - 实现时间权衡。然而,理论答案会产生更多的实现时间并获得更高的质量,这一点也值得赞赏。

最佳答案

最好的办法是使用某种加密方式保存数据。在 android 中,SQLite 不提供数据库级别的加密。但是,您可以将表中的值(记录)加密,查询后再解密。

另一种方法是将您的数据作为键/值对保存在内部或外部存储器中的某种文本文件(angrybirds 中的 .lua 示例)中,并对文件内容进行加密。另一方面,在运行时解密它并读取您的键/值对。

太棒了!问题解决了:)

关于android - 我怎样才能让玩家更难破解游戏关卡数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10122309/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com