How to stop users from manipulating Game Save Data

Started by
61 comments, last by BHXSpecter 9 years, 11 months ago

Although I agree you should let people play a game a way they want to, I don't even remotely agree that people should basically be encouraged to cheat by leaving things open to generic editing.


Your argument is logically unsound. It's not encouragement, no more than not locking my front door is me encouraging people to rob me. If you pop up a big screen in the game saying "Open %APPDATA%/Foo Corp/The Game/Saves/78CA8F3B.txt to get more Strength!" then you're encouraging it. If you happen to leave a file somewhere that a user could find only after intentionally looking for it and then that user opens it and then that user decides to edit the file, nobody is being encouraged to do anything and they certainly weren't being led to do something they weren't already trying to do.

(Even making saves binary adds quite a bit of protection because the amount of effort and knowledge required to change the saves then goes up significantly.


You're misusing the word "protection." There is no threat of injury or harm to you, the game, or the player.

If anything you should be encouraging people to not cheat unless they're doing something like messing around after they beat the game, which is something that should not require screwing with the save file anyway.


Why? Does it somehow make them more of a real man/woman? Does it make them a more respectable person? It's not your time. If I have X hours in a week to play Biospark Unending or Tomb Stealer or Mega Klepto Automobile or whatever, why should my use of those X hours be defined by how you want the game to be played?

Maybe I want to cheat so I can see the story because I don't give a damn about the tired gameplay. Maybe I want to cheat because the plot is uninteresting and I just want to go hog wild with the mechanics. Maybe I'm cheating because I had a bad day and felt out of control in my real life and needed to vent at some virtual avatars with mega fireballs of doom. Maybe I'm cheating because I'm bored to silliness and I want to see how badly I can muck up the game. Your judgment of gamers and their motivation is utterly irrelevant to their life or how they enjoy themselves, I'm sorry to tell you.

And here is a prime example of why I don't like people that spread nonsense like that, it isn't "cheating" its cheating.


Cheating has many definitions. Almost all of them involve getting an advantage over _someone_ by means of breaking the rules. Merriam Webster lists three definitions, only one of which could be construed to be applicable to what we're talking about. Hence "cheating."

But there is no moral debate here


And yet some folks seem to take such deep moral and ethical objections to it...

I also find it silly that people objectify the idea that unless someone else is affected by your cheating that you shouldn't strive to avoid it. Reality check: you shouldn't encourage people to cheat in games, the entire point of games is to overcome the challenge presented by the developer.


No, no it isn't. The entire point is to _have fun_. Many people have fun by overcoming challenges. And they don't cheat, even if it's easy and they already know about /noclip or the big Easy Mode button or whatever other cheat you've made ridiculously accessible. Other people don't care about wasting time slogging through what some designer thought would be fun and want to go do their own thing. Hence the rise of sandbox games and user-create content games: your player base is infinitely more creative and better at having fun than you are, no matter how great of a designer you may be.

This is not a "does a tree make a sound" debate, if you cheat at solitaire it is still cheating, if you cheat at minesweeper it is still cheating, someone does not have to observe you cheating in order for you to be cheating.


Most of us do not assign the kind of stigma to single-player game cheating as one would other kinds of cheating. The quotes soften up the word to help distinguish the use from the serious kinds of cheating that are actually harmful. Cheating is something awful you do to your significant other. Cheating is something you do to swindle retirees out of money. Cheating is something you do to steal money or rank at a tournament. Cheating is something you do to make other people look foolish or lame. "Cheating" at a game is something you do to amuse yourself without adversely affecting anyone anywhere in any way.



You as a game developer are trying to get people to exchange money for a fun experience. You can invest your time by adding more ways for more people to enjoy your game or you can waste your time by trying to remove ways for some people to enjoy your game. Which sounds like the better choice to you?

Sean Middleditch – Game Systems Engineer – Join my team!

Advertisement


Although I agree you should let people play a game a way they want to, I don't even remotely agree that people should basically be encouraged to cheat by leaving things open to generic editing.

I can agree with this, on a different front: willpower, and existentialism.

Willpower: knowing that I can easily (in under a few days' worth of time) modify the game to have about any outcome of my choosing makes it very difficult for me not to try to reason my way into caving and modifying the game, rather than completing the challenge as presented. This leaves me with a bad taste in my mouth, as it feels as if the game isn't the real challenge, I am. A game that is a metaphorical cookie jar doesn't sound fun to me, if I have the what-ifs riding in the back of my mind all of the time.

Existentialism: the game is so easy to break that legitimately earning the rewards actually yield fewer benefits than illegitimately removing limits. In that regard, if the game is all about making the values in the file increase, and I have the means to increase them beyond the game's wildest dreams, I can complete the game instantly. The game no longer is "the journey" to the happy end, but a mere obstacle that can be averted on the way to the final goal of having these values meet criteria in the most efficient way; by having the game's data unintentionally be changeable, the game is now optional.

For these reasons, and faced with these decisions, I will actually lose almost all fun in playing the game, and be forced to move on. Any high scores that I get can be forged. I no longer respect the accomplishments of my fellow players, and I doubt their abilities. My victories will be hollow, knowing that I could have had greater ones in five minutes.

Please, don't kid yourself into thinking you'll get the best of both worlds by allowing cheaters and honest players alike to do things the way they want to. Some people desire not being permitted to break the rules, and will abandon your game if it is easy enough to subvert them.

Yes cheating is cheating. No one said otherwise. So what, exactly ? How is that of any consequence ?
I am talking about single player only, multiplayer, is of course, a very different beast.

Because you are ruining the experience(based on circumstance anyway) I'm not at all opposed to say, modifying a game after you've beaten it to try and generate your own sort of fun out of it, sure go wild with that. But there literally is a lot of people out there that either modify a game and think that they are playing it "vanilla" as in their progress should be compared to your progress as a player, or that they are on some moral high ground over you. Both of these things are silly.

This "cheating is bad" point isn't an argument at all in single player. The goal of a game is to provide fun to those who play it. How the player is getting his fun is none of your concern no more that whatever else he does in private (same goes with modding for that matter). He doesn't prevent others from enjoying the game the way "it's meant to be played".

They have a word for that, its called entitlement. I.e. for some reason there seems to be this popular thought these days that because you buy a game that basically means it should be whatever you want it to be. There should be no rules, no restrictions, difficulty and comparisons to the work others have done should become irrelevant, I honestly find all of that stuff to be utter garbage.

The funny part is that your last sentence nailed the biggest issue that most people like me have with the sentiment, is that people are in some sort of self delusion that their modifications to the game "are how it is meant to be played" you say a single player game is your experience, but the reality is that when discussing games, their effects, challenges and goals, it inherently becomes a multiplayer thing.

You're misusing the word "protection." There is no threat of injury or harm to you, the game, or the player.

Generally a developer doesn't want someone to just change the rules of the game or they wouldn't have put them there in the first place. That should be rather self explanatory. There are exceptions to this, when the developer states that they want you to or the game is constructed in such a way as to be a basic shell of a game.

Maybe I want to cheat so I can see the story because I don't give a damn about the tired gameplay. Maybe I want to cheat because the plot is uninteresting and I just want to go hog wild with the mechanics. Maybe I'm cheating because I had a bad day and felt out of control in my real life and needed to vent at some virtual avatars with mega fireballs of doom. Maybe I'm cheating because I'm bored to silliness and I want to see how badly I can muck up the game. Your judgment of gamers and their motivation is utterly irrelevant to their life or how they enjoy themselves, I'm sorry to tell you.

Which is an interesting note because if anything it sounds like you actually -do- care what people think because you seem to abhor the idea of people judging you for modifying your game. I would say all the things you listed are different problems or if not a problem just an interesting event. If a game sucks to you then I suppose I could understand you cheating, but in a way most people would still consider that a cop out. I.e. even if the game feels un-fun you have to overcome it and finish it, to know you go the full experience of the game and also so you can give an accurate assessment of it to others.

Cheating has many definitions. Almost all of them involve getting an advantage over _someone_ by means of breaking the rules. Merriam Webster lists three definitions, only one of which could be construed to be applicable to what we're talking about. Hence "cheating."

Textbook definitions rarely work in games, an FPS for example is vague terminology just like what constitutes an MMO is vague terminology. I actually never really take textbook definitions of words that seriously because the reality is that definitions are added as new things become applicable for the words in modern society.

But really I shouldn't need to even explain why modifying the rules or your status in a game through file modification is considered cheating. I mean most software being modified by a user without the explicit direction of the creator is usually seen as a bad idea, barring bug fixes or some nonsense like that.

No, no it isn't. The entire point is to _have fun_. Many people have fun by overcoming challenges. And they don't cheat, even if it's easy and they already know about /noclip or the big Easy Mode button or whatever other cheat you've made ridiculously accessible. Other people don't care about wasting time slogging through what some designer thought would be fun and want to go do their own thing. Hence the rise of sandbox games and user-create content games: your player base is infinitely more creative and better at having fun than you are, no matter how great of a designer you may be.

Another reason the trend of people acting that way tends to bother me is because it always has something to do with sandbox games, games like Minecraft or something. They use it as some silly symbol that "okay there is a game here that people quite frequently mod and it has no real goals, it has no real goals because it is an underdeveloped game." That's all, because it is a game like that. Suddenly this means all games must be a sandbox, apparently. This suddenly means that FPS must be more fun if I give myself a homing bazooka with infinite ammo that kills everything instantly. Once upon a time we called that cheating.

You as a game developer are trying to get people to exchange money for a fun experience. You can invest your time by adding more ways for more people to enjoy your game or you can waste your time by trying to remove ways for some people to enjoy your game. Which sounds like the better choice to you?

An oddly slanted view of things, your opinion seems to revolve around an almost open source movement thought process, that games are more fun when they let the player rip them apart and have no rules. I personally DON'T want every game to be like that and shudder to think what a sad state the game industry would be in if games were all like that. Sandbox games are a genre, not a revolution.

EDIT: Removing some of this to cut down the size a bit, yeesh.

Please, don't kid yourself into thinking you'll get the best of both worlds by allowing cheaters and honest players alike to do things the way they want to. Some people desire not being permitted to break the rules, and will abandon your game if it is easy enough to subvert them.

This is actually a very good point that I didn't really think to say.

If you want to make it a little harder then just use a binary file raher than a text file. Java can load or save any kind of file you want. Just google Java saving binary data and you are bound to find something.

So, as a developer I have this choice on how to spend my time:

1. Implement new features.

2. Lock down the existing features.

Which will provide the most fun for most of my customers?

There is also the question on how much time should I spend on locking down the existing features?

It's well known that no amount of work will stop all who want to take shortcuts, so how many of the new features should I sacrifice to satisfy the few guys that just can't stop themselfs from trying to find a shortcut?

Are these few guys really that relevant and worth my time?

Is writing a binary file really going to waste development time? It's not 100% secure obviously, but it will eliminate most people from modifying their save games.

I'm with Satharis on this one though. Save files are not intended to be messed with. If you want to offer modability to your players you should design for it up front and provide the tools for it.

However, since the OP didn't ask for my feelings on the matter, that's all I'll say.

So, to protect a local save file:

-Learn to read/write to binary files

-Encryption can further obfuscate your save data, but at what cost? You'd also better hope there's no bugs in your encryption and decryption code.

Beyond this you'd really need to save to a remote location (server) to prevent people from messing with their save data. If I had a binary save file, I could probably track what my game state was when I saved, open the binary file in a hex editor (or even notepad) and try to identify values that match what I expect (i.e. I had 50 health, back up my save file, open the original up, find some value that is 50, change it, save it, test, and repeat until I've solved how to change my health in save points). Encryption would pretty much make this approach useless unless I knew the encryption algorithm, and would require more in-depth efforts to crack the save file.

The more protections you put in, the more diminishing your returns are (i.e. maybe 0.1% of users would crack a binary file, but only 0.01% would crack an encrypted binary file, so if you have 10000 users, 10 would be able to crack the binary file, and only 1 would be able to crack the encrypted version. So you eliminated 9990 users from messing your game by writing to binary, but you only prevented an additional 9 from messing your game by encrypting the data). And once it's cracked, the person who solved it can give step-by-step instructions (or a tool) to let the less tech-savy users modify their own save files.

Ah the sense of entitlement is strong here, just love those rampant upvotes on everything Sean says regardless of length or point and downvotes on everything else.

But not that it is surprising on here, most of my upvotes come from people just upvoting the hell out of stuff I say that sounds 'friendly' and doesn't give a serious real world opinion on why people are wrong, people don't like being proven wrong.

In fact its a trend that is shown on nearly every thread here, luckily I'm not one of those people that cares enough to sell out reality for a virtual reputation. If anything I'd probably consider it a victory if I get more downvotes after pointing this fact out, I'll just get it all back anyway.

I can agree with this, on a different front: willpower, and existentialism.

Willpower: knowing that I can easily (in under a few days' worth of time) modify the game to have about any outcome of my choosing makes it very difficult for me not to try to reason my way into caving and modifying the game, rather than completing the challenge as presented. This leaves me with a bad taste in my mouth, as it feels as if the game isn't the real challenge, I am. A game that is a metaphorical cookie jar doesn't sound fun to me, if I have the what-ifs riding in the back of my mind all of the time.

Existentialism: the game is so easy to break that legitimately earning the rewards actually yield fewer benefits than illegitimately removing limits. In that regard, if the game is all about making the values in the file increase, and I have the means to increase them beyond the game's wildest dreams, I can complete the game instantly. The game no longer is "the journey" to the happy end, but a mere obstacle that can be averted on the way to the final goal of having these values meet criteria in the most efficient way; by having the game's data unintentionally be changeable, the game is now optional.

For these reasons, and faced with these decisions, I will actually lose almost all fun in playing the game, and be forced to move on. Any high scores that I get can be forged. I no longer respect the accomplishments of my fellow players, and I doubt their abilities. My victories will be hollow, knowing that I could have had greater ones in five minutes.

Please, don't kid yourself into thinking you'll get the best of both worlds by allowing cheaters and honest players alike to do things the way they want to. Some people desire not being permitted to break the rules, and will abandon your game if it is easy enough to subvert them.


It sounds like you have serious issues then, if upon realizing that you can get away with doing something unintended, you suddenly find yourself constantly thinking about doing it.

You can probably get away with planning and robbing your neighbor in "under a few days' worth of time", and you'll probably come out with a lot more money/valuables. But I hope, now that you know you can do it and get away with it, you're not suddenly thinking about the "what-ifs" in the back of your mind all of the time.

I don't think most people seem to have the same problems with compulsiveness that you are having...

They have a word for that, its called entitlement. I.e. for some reason there seems to be this popular thought these days that because you buy a game that basically means it should be whatever you want it to be.


Yes, when you buy something - when you give someone MONEY for an item - you are entitled to do what you want with that item. That's part of the act of OWNERSHIP. And when you sell something, you give up your rights to do what you want with that item - you are no longer entitled to it.

This is part of the definition of entitlement and ownership and is a standard part of all commerce. It's something you need to accept if you ever intend on selling anything.

Just like this: I might not like race tracks, so I don't wany any of my cars to be driven on race tracks. But once I sell you my car, I no longer have the right to tell you "You can't use this on a race track." You are now entitled to do what you want with that car, including driving it on race tracks, because you bought it and you now own it.

Textbook definitions rarely work in games


This is not a game, this is a message board discussion. When speaking the same language, you need to abide by the commonly-held definitions, otherwise no one is going to understand what you mean.

an FPS for example is vague terminology just like what constitutes an MMO is vague terminology.


No, there's nothing vague about them. They're very easily defined.

A FPS is a game that uses the first-person viewer and allows the user to carry and shoot guns. "First-person shooter."

An MMO is a game that allows a large number of players to play in the same game environment simultaneously over the internet. "Massively-multiplayer on-line."

I actually never really take textbook definitions of words that seriously


And that is why you are having problems communicating with the rest of us.

"Cheating" is a very-well defined word. You keep using that word, but it does not mean what you think it means.

But really I shouldn't need to even explain why modifying the rules or your status in a game through file modification is considered cheating.


Well almost everyone here seems to think you're wrong so, yes, it sounds like you DO need to explain why modifying the rules or status is considered cheating. Because we all think it does not, and we shouldn't just take it on faith just because you said so.

You should also open your mind to the possibility that you may be wrong.

I mean most software being modified by a user without the explicit direction of the creator is usually seen as a bad idea, barring bug fixes or some nonsense like that.

Yes, but not because it's "cheating." Mostly because it potentially introduces instability in the programm either resulting in crashes or unintended consequences due to the code running in such a way that was not initially foreseen or intended by the designer.

Who's more entitled? The person who wants to use something they bought the way they want to use it or the person that doesn't let someone use the product the way they want to use it?

C++: A Dialog | C++0x Features: Part1 (lambdas, auto, static_assert) , Part 2 (rvalue references) , Part 3 (decltype) | Write Games | Fix Your Timestep!

Just like this: I might not like race tracks, so I don't wany any of my cars to be driven on race tracks. But once I sell you my car, I no longer have the right to tell you "You can't use this on a race track." You are now entitled to do what you want with that car, including driving it on race tracks, because you bought it and you now own it.

I fail to see what any of that has to do with software or games in particular, its like the DRM debate that copying is stealing, it has no real world precedent because a game is not like an alarm clock you buy off your neighbor.

In fact I don't really see your point at all in this sort of topic, what we're talking about is akin to pulling out a board game and cheating and it. Can you? Sure. Is it wrong? No but its definitely cheating and you're probably losing out on the experience of the game the way the developer intended. Can cheating in that regard be easily defined? Well it kind of depends on your intentions. Sometimes changing the game rules might be an attempt at you spicing the game up, that isn't necessarily bad.

Should you encourage people to buy something and then instantly cheat on it and never play the board game correctly? Of course not! Why would you? How are people ever going to take games seriously if you don't give them any respect yourself?

This is not a game, this is a message board discussion. When speaking the same language, you need to abide by the commonly-held definitions, otherwise no one is going to understand what you mean.

I'm not really sure what your point of this clarification is since we are TALKING about games and thus terminology used as a backing point can be a misnomer.

No, there's nothing vague about them. They're very easily defined.

A FPS is a game that uses the first-person viewer and allows the user to carry and shoot guns. "First-person shooter."

An MMO is a game that allows a large number of players to play in the same game environment simultaneously over the internet. "Massively-multiplayer on-line."

Oh really? Tell me then if you had to classify Skyrim as a game what would you classify it as? An RPG? An FPS? You can certainly shoot things in it, not necessarily guns, but there are bows and other weapons. The game also can be played in third person, does that make it a TPS? Where did we decide that an FPS requires guns to work? Does that mean a game where you fire a bow or a paintball gun isn't an FPS?

What about an MMO? What defines an MMO? How many players is a large number of players? What separates it from simply a multiplayer match based game? Persistence? How much of it needs to be persistent? Really, try going on steam and looking at the MMO category, I think you will probably agree that most of them don't look like what you would traditionally think of as an MMO at all. The definition is not as clear as you make it sound, and if you really think so then you clearly haven't thought much about the subject.

And that is why you are having problems communicating with the rest of us.

"Cheating" is a very-well defined word. You keep using that word, but it does not mean what you think it means.

Actually I'm not having problems communicating at all, I'm understand what everyone is saying perfectly, but this is like a Linux debate, just because you say it doesn't mean it is true nor that I agree with it.

Well almost everyone here seems to think you're wrong so, yes, it sounds like you DO need to explain why modifying the rules or status is considered cheating. Because we all think it does not, and we shouldn't just take it on faith just because you said so.

Fortunately I don't let a few upvotes and downvotes on a forum mean anything about reality, in fact my previous post to this one outlines why I don't often take seriously the reputation people on this forum give me or others, its a hug along club lets be realistic. In fact when someone doesn't like someone I've noticed them going and downvoting every post they've ever made on other threads to the point where a moderator has to say something about it. That isn't discussion. If I just wanted to be positive and never give an opinion that clashes with someone it is quite easy to acrue thousands of reputation as long as you aren't spouting complete nonsense.

But the reality is that what I'm saying isn't complete nonsense, in fact it has a lot of fair points and arguably most of it is subjective, and that is why its going to get downvoted no matter what I say. I could prove you wrong mathematically or some outlandish idea like that and I'll likely still get downvoted. Why? Because people have strong feelings on this subject, they argue about it all the time.

You should also open your mind to the possibility that you may be wrong.

I always keep my mind open to that possibility, but reevaluating what I've said and what the reality of things is, I don't think I'm incorrect. In fact I would say I'm totally correct and the people I'm arguing with are arguing with subjective nature, so far between you and Sean I've seen bouncing between accepting the definition of cheating to flat out saying, Oh, its not cheating, to Oh it might be cheating but I own it, so it doesn't matter.

Lets be realistic, that's not a discussion, that's subjective feelings about morality getting in the way of discussion. I'm not at any point in the future going to stop thinking modifying a games files to change your abilities in a vanilla game as anything but cheating. No amount of downvotes is going to change that fact.

Yes, but not because it's "cheating." Mostly because it potentially introduces instability in the programm either resulting in crashes or unintended consequences due to the code running in such a way that was not initially foreseen or intended by the designer.

For generic software yes, but games are not generic software. There's no "game" or winning or losing to an excel spreadsheet or something, a game doesn't fit the definition most software occupies. You can't even really compare it to something like a movie because what are you going to gain from ripping parts out of a movie? It doesn't change the experience, it just removes it. Games have an only the fly received experience and changing the game can modify that.

This topic is closed to new replies.

Advertisement