this post was submitted on 14 Aug 2023
6 points (100.0% liked)

Godot

5925 readers
94 users here now

Welcome to the programming.dev Godot community!

This is a place where you can discuss about anything relating to the Godot game engine. Feel free to ask questions, post tutorials, show off your godot game, etc.

Make sure to follow the Godot CoC while chatting

We have a matrix room that can be used for chatting with other members of the community here

Links

Other Communities

Rules

We have a four strike system in this community where you get warned the first time you break a rule, then given a week ban, then given a year ban, then a permanent ban. Certain actions may bypass this and go straight to permanent ban if severe enough and done with malicious intent

Wormhole

[email protected]

Credits

founded 1 year ago
MODERATORS
 

I know that motivated people can generally crack encrypted saves, but in general, if I have some saved dictionaries which I don't want the player to be able to access directly, is an encrypted save the best way to handle this, or is there a better way?

top 2 comments
sorted by: hot top controversial new old
[โ€“] [email protected] 6 points 1 year ago* (last edited 1 year ago)

That's how I'd do it, would be best if it's encrypted in memory as well. Or at least encrypt important values so you can't edit them with Cheat Engine or similiar programs. There's also ways to make it harder to debug and reverse engineer your game if you want to look into them

But whatever you do, someone will be cheating sooner or later. No way arround that, you can only slow them down

Only exception is server sided games, but you can still create bots for those and maybe even find some way to exploit your code

[โ€“] Feyter 4 points 1 year ago

That's a good question and obviously the answer is "it depends".

The main point we need to clarify here is what are you trying to prevent? If you want to prevent the player from accessing inventory or levels that should be unlocked later in the game and the game is Singleplayer not competitive in any way... Maybe keep your game open to be modified? I think people can decide on their own how they want to play those games. See legendary Atari code for example. However encrypting config files that hold those data should be enough for such cases if you really want to prevent the player from doing this.

If you want something like additional skins or bonus levels that can be unlocked for money encrypting files that control this in you game could be a start. But like you already said everything that is shipped to the user can be cracked and decompiled. So if you take this really serious you should maybe come up with a Server System that hold the information about what a player has unlocked and what not. But this would be quiet some work with running server cost etc. so unless you try to do the next Fortnite or Fallguys this is maybe overkill.

Last of all if you worried about cheating in multiplayer like one player editing it's healthy or position than encryption should not be the way to go instead you should definitely implemented a client server structur in which the server hold all the critical information about all clients and client are more or less "just" taking input from the player and sending it to the server.