Jump to content
  • Advertisement
suliman

Hiding savedata to prevent save backup

Recommended Posts

Hi

Im making a rougelike with permadeath and want to make replacing the savedata harder (a little bit) to prevent backing up the game state. Its a simple binary file and i dont need encryption.

 

NOTE: i dont want serverside solutions or to discuss why i want to prevent savegame backup.

 

1. Just name the save "sound.bak" or something. Really simple but also very easy to "crack"!

2. Save the data so some silly folder like "C:/appdata/flashdata/fakecompany/sound.bak". But ugly to create folder on the users computer and what if this folder is cleaned out (since its not supposed to be affiliated with the game)? Then the user will loose the progress.

3. Save a timestamp to the savefile and keep a registry of the timestamps somewhere. If the savefile is replaced they will mismatch and you can refuse to load that savegame. But if the player backups the registry then? Which means i have to "hide" the registry file as well.

4. Similar to no3 but using windows registry for some timestamp check. Would this improve anything?

5. Any way to just make the file itself harder to see in the folders?

 

What would you suggest? Or something else? Im aware a cracker would find a workaround in minutes but i just wanna make it less tempting for an average player.

 

Thanks!
Erik

Edited by suliman

Share this post


Link to post
Share on other sites
Advertisement

The only thing I can think of is to make it harder.

 

You dont want to be writing over actual data/exe (might damage them by malfunction) files, so dummy ones will have to be created/used.

 

Huge files (or very numerous small ones most of which you just 'touch' to fake their modification) that are too onerous to copy/restore  - how big is too big though  (wasted space)??      The save data itself should be encrypted to make it hard to spot within other files..

 

Combining some file stuff with registry entries to make it more complicated (have to save/restore more than a few things for it to be 'valid') might disuade some people not to bother (and some follow-the-leader pattern between the elements that randomizes which of serevarl of the ~87 dummy files (with changing filenames/subdirectories) need to be copied/restored to get all segments of the save data  (add in some encoding of the registry data to not give easy clues).  Mutating directories within the game's own base/root directory hopefully wont flag antivirus scanners etc...

 

Registry entry shell game might likewise be part of it (and leave a progression of the old no longer used entries to muddy attempts to trace the registry data)    -- but remember the more complex it all is the more likely it will get whacked if the user turns off in the middle of a 'save'  or does restores of various kinds.      

 

Thats all just to make it harder.   A dedicated cheater will figure out what changed, BUT will it be worth their time to routinely cheat if you have some mutations thrown in so they can't write a simple batch program to do their copy &restore ??  Doing it by hand every time might get 'real old, real fast'  to many potential cheaters.

 

--

 

Funny is having dummy save data that looks right, but isnt actually used just to throw the dumbest cheaters a loop,  and (heh) online forum 'cheat help' telling them that those ARE the right files.....

Edited by wodinoneeye

Share this post


Link to post
Share on other sites

Anything you put on the local machine can be undone, without exception. 

 

People will even go so far as rolling back a disk image, or restoring from system restore or backup.

 

There simply is no reliable way except going to a server which you said you don't want to do, was there a reason for that?

Share this post


Link to post
Share on other sites

So... many people log in just to state EXACTLY what i wrote in the post i have no interest in and already know. Not very useful.

 

Im asking for simple hiding tricks. Comments on the ones I suggested or other ideas are useful.

 

@Brain

I dont want online simply because thats more mess (and possibly costly) than I prefer to handle for this feature:) Also it forces the player to have internet connection/be online.

Edited by suliman

Share this post


Link to post
Share on other sites

If I was to do this, I'd start with a fixed size save game data file with a fixed number of save slots.  This one file will store the save game data.

 

When saving to that file, you can also create a hash based on some of the save data.  This hash could be stored in a separate file in a different directory (i.e. standard user folder) or stored in the registry.  A timestamp could be part of the hash.  Then when loading, you could compare the hash to the save data, and in event of mismatch disallow the loading of the data.

 

Obviously anyone who figures out that data is stored in two places can get around that.  But you did say you only want to make it more inconvenient for the average user.

 

And for the record, I also think this 'feature' is a bad idea.  It seems like something that would just annoy people, so not sure why you want to include it.

Edited by Shpongle

Share this post


Link to post
Share on other sites

@Shpongle

Yeah that seems to be the best method.

I just dont want to leave the data to obvious to meddle with (not to INVITE the player to take the easy way out first thing). I dont see how it would annoy any player just playing the game. You can still save ingame, you just have to go an extra mile (or meter) to meddle with the game data.

Share this post


Link to post
Share on other sites

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!