tutorial_encrypting_savegames - seraph526/godot-se GitHub Wiki
加密保存游戏 (Encrypting Save Games)
为什么要加密保存?
现在的世界不同于往日。资本政治掌控着世界,强制我们消费以保持这个腐败社会的发动机在正确的轨道上运行。因此,现今,最大的电子游戏消费市场是移动端。这是由一个可怜人组成的市场,他们强迫自自己沉溺电子世界,以忘记他们每天悲惨的生活,通勤,或是其他自由的理想,不用为统治阶级工作或服务。这些个体要专注于他们的电子游戏(如不如此,会使他们非常焦虑),所以他们乐于花钱以获得更好的体验,通常是通过内置购买和虚拟货币方式。
但是,设想一下,如果有人找到一种方式,可以修改游戏存档,不通过花钱的方式得到物品和虚拟货币?这会是件很可怕的事情,因为这会使游戏者快速的消费游戏中的内容,比你想的要快得多。如果这样的事情发生了,那么不再会有什么事情值得他们思考,巨大的痛苦,无关紧要的琐事会再次降临他们的生活
不,我们当然不愿意这样的事情发生,所以让我们来看下,如何加密保存我们的游戏,以保障世界的秩序。
How?
类File的使用非常简单。只要打开一个地址,读或写数据(integers, strings and variants)。要创建一个加密文件,一定要提供一个口令,如下:
var f = File.new()
var err = f.open_encrypted_with_pass("user://savedata.bin",File.WRITE,"mypass")
f.store_var( game_state )
f.close()
这会使文件变得不可阅读,但仍然不能防止他们共享存档。要解决这个问题,要使用设备唯一ID或一些唯一的用户ID,如:
var f = File.new()
var err = f.open_encrypted_with_pass("user://savedata.bin",File.WRITE,OS.get_unique_ID())
f.store_var( game_state )
f.close()
教程至此结束!谢谢你们的合作,公民们。