game/godot

Godot3 - I/O Encrypting save games

C/H 2018. 11. 20. 08:30

Encrypting save games

Why?

Because the world today is not the world of yesterday. A capitalist oligarchy runs the world and forces us to consume in order to keep the gears of this rotten society on track. As such, the biggest market for video game consumption today is the mobile one. It is a market of poor souls forced to compulsively consume digital content in order to forget the misery of their every day life, commute, or just any other brief free moment they have that they are not using to produce goods or services for the ruling class. These individuals need to keep focusing on their video games (because not doing so will produce them a tremendous existential angst), so they go as far as spending money on them to extend their experience, and their preferred way of doing so is through in-app purchases and virtual currency.
오늘날의 세계는 어제의 세계가 아니기 때문입니다. 자본주의적 과두정치(oligarchy)는 세계를 운영하고 우리가 이 부패한 사회의 기어를 잘 지키기 위해 소비하도록 강요합니다. 따라서 비디오 게임 소비를위한 가장 큰 시장은 오늘날 모바일 게임입니다. 그것은 일상생활, 통근(출퇴근), 또는 그들이 지배 계급을위한 재화나 용역을 생산하는데 사용하지 않는, 다른 짧은 순간을 잊어 버리기 위해 강압적으로 디지털 콘텐츠를 소비해야하는 가난한 영혼의 시장입니다. 이 사람들은 비디오 게임에 계속 집중할 필요가 있습니다(그렇게하지 않으면 엄청난 실망감을 유발할 수 있습니다). 그래서 그들은 자신의 경험을 확장하기 위해 돈을 쓰는 것과 같습니다. 선호하는 방식은 인-앱 구매 및 가상 통화입니다.

But, imagine if someone was to find a way to edit the saved games and assign the items and currency without effort? This would be terrible, because it would help players consume the content much faster, and as such run out of it sooner than expected. If this happens they will have nothing that avoids them to think, and the tremendous agony of realizing their own irrelevance would again take over their life.
그러나 누군가가 저장된 게임을 편집하고 항목과 통화를 노력없이 할당하는(빼앗는) 방법을 찾고 있다고 상상해보세요. 이것은 플레이어가 콘텐츠를 훨씬 빨리 소비하는데 도움이 될 것이고 예상보다 빨리 콘텐츠를 사용하지 못하기 때문에 끔찍할 것입니다. 이런 일이 발생하면 피할 수있는 방법이 없으며 자신의 부적절 함을 깨닫고 엄청난 고통이 삶을 대신하게됩니다.

No, we definitely do not want this to happen, so let’s see how to encrypt savegames and protect the world order.
안돼요,이 문제가 발생하지 않기를 바랍니다. 그렇다면 세이브된 게임을 암호화하고 세계 질서를 보호하는 방법을 알아 보겠습니다.

How?

The class File can open a file at a location and read/write data (integers, strings and variants). It also supports encryption. To create an encrypted file, a passphrase must be provided, like this:
File 클래스는 위치(path)에서 파일을 열고 데이터(정수, 문자열 및 변형)를 읽고 쓸 수 있습니다. 또한 암호화를 지원합니다. 암호화 된 파일을 만들려면 다음과 같이 암호 문구를 입력해야합니다.

var f = File.new()
var err = f.open_encrypted_with_pass("user://savedata.bin", File.WRITE, "mypass")
f.store_var(game_state)
f.close()

This will make the file unreadable to users, but will still not prevent them sharing save files. To solve this, use the device unique id or some unique user identifier, for example:
이렇게하면 파일을 사용자가 읽을 수 없게되지만 파일 저장 공유를 막을 수는 없습니다. 이를 해결하려면 장치 고유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()

Note that OS.get_unique_ID() only works on iOS and Android.
OS.get_unique_ID()는 iOS 및 Android에서만 작동합니다.

This is all! Thanks for your cooperation, citizen.
이게 다 입니다.! 협조 해주셔서 감사합니다, 시민 여러분.

반응형

'game > godot' 카테고리의 다른 글

Godot3 - ConfigFile  (0) 2018.11.21
Godot3 - I/O  (0) 2018.11.20
Godot3 - I/O Saving games  (0) 2018.11.19
Godot3 - I/O Data paths  (0) 2018.11.17
Godot3 - I/O Background loading  (0) 2018.11.16