how to prevent save cheating? (for games where saving is NOT allowed)

Started by
54 comments, last by TheComet 10 years, 2 months ago

Let them cheat their way through and then they don't feel like playing it again after the first roundORprevent them from cheating their way through and making them have hard fun while playing it and maybe thereby giving it good replay value (if the game was designed well) . . .. . . i choose the latter.@suliman: aren't the hackers the people that crack your game and give the cheats to the lazy, 'cheat-through' players?

OR they fail and fail and fail and since they can't do anything but start over or give up, they give up and call your game crap out of frustration.
Actually, 'fail and fail and fail' won't really be possible in my games, neither will checkpoints nor cancelling autosave be possible. You fail, you face the consequence, move on and . . . There'll be different things in my games and if isn't implemented before i start making my games, it'll be new things.
One more thing, shouldn't the player play within the developers programming? If not, i would have loved to keep going straight in the gtavc but unfortunately, you get magically turned around in the water.
Should you let them implement what you didn't program into a game? What if what they implement your idea for a sequel?
I'm just asking.

UNREAL ENGINE 4:
Total LOC: ~3M Lines
Total Languages: ~32

--
GREAT QUOTES:
I can do ALL things through Christ - Jesus Christ
--
Logic will get you from A-Z, imagination gets you everywhere - Albert Einstein
--
The problems of the world cannot be solved by skeptics or cynics whose horizons are limited by the obvious realities. - John F. Kennedy

Advertisement

Let them cheat their way through and then they don't feel like playing it again after the first roundORprevent them from cheating their way through and making them have hard fun while playing it and maybe thereby giving it good replay value (if the game was designed well) . . .. . . i choose the latter.@suliman: aren't the hackers the people that crack your game and give the cheats to the lazy, 'cheat-through' players?

OR they fail and fail and fail and since they can't do anything but start over or give up, they give up and call your game crap out of frustration.
Actually, 'fail and fail and fail' won't really be possible in my games, neither will checkpoints nor cancelling autosave be possible. You fail, you face the consequence, move on and . . . There'll be different things in my games and if isn't implemented before i start making my games, it'll be new things.
One more thing, shouldn't the player play within the developers programming? If not, i would have loved to keep going straight in the gtavc but unfortunately, you get magically turned around in the water.
Should you let them implement what you didn't program into a game? What if what they implement your idea for a sequel?
I'm just asking.

Often times, this kind of thing, in the form of modding, props up games and gives them life far beyond the finite amount of content that you can provide. There are still people buying Half-Life 2 (2004) and Rome Total War (2004) & Medieval Total War (2006), at least in part because of the community-created mods that exist for these games. Hell, half of the Valve IP is derived from popular Half-Life mods: Counter-Strike, Day of Defeat, Team Fortress.

Sure, an active modding community places more strain on you to produce a better product the next time around. But you could also look at it as free A/B testing, and at worst, even if a mod becomes much better than the content that you created(not an uncommon situation... I don't think any of the games I play regularly are unmodded), users still need to purchase the base game to run the mod.

Eric Richards

SlimDX tutorials - http://www.richardssoftware.net/

Twitter - @EricRichards22

Let them cheat their way through and then they don't feel like playing it again after the first roundORprevent them from cheating their way through and making them have hard fun while playing it and maybe thereby giving it good replay value (if the game was designed well) . . .. . . i choose the latter.@suliman: aren't the hackers the people that crack your game and give the cheats to the lazy, 'cheat-through' players?

OR they fail and fail and fail and since they can't do anything but start over or give up, they give up and call your game crap out of frustration.
Actually, 'fail and fail and fail' won't really be possible in my games, neither will checkpoints nor cancelling autosave be possible. You fail, you face the consequence, move on and . . . There'll be different things in my games and if isn't implemented before i start making my games, it'll be new things.
One more thing, shouldn't the player play within the developers programming? If not, i would have loved to keep going straight in the gtavc but unfortunately, you get magically turned around in the water.
Should you let them implement what you didn't program into a game? What if what they implement your idea for a sequel?
I'm just asking.

If they want to change the game that they bought from the original, I don't care (speaking of strictly single player games). They are increasing their fun. Sure, I put out a game and I intended it to be played a certain way, but if they change it to make it more enjoyable for themselves then who am I to deny them that? That would be like deriding anyone who ever writes any fan fiction. They are taking something you made and making it more enjoyable for themselves.


You are treating the player as an adversary instead of a partner.

As far as implementing my idea for a sequel, they are more than welcome to do that. However, their version of a sequel could be vastly different than my idea of a sequel, and if I the, the original creator of said universe, denounced it, then I doubt anyone would put any credence to it. It could even be spun off as a sort of split in the timeline. It would force me to do a better job. It would be like if someone made a Mass Effect 3 that doesn't have a balls ending that turns the entire series to poo soup. Also, see fan fiction example above.

Cheating is something an individual decides on a personal basis. This is not something the programmer can absolutely prevent. Playing a game within the designed parameters usually gives the best gaming experience (usually). It certainly gives the player a more “pure” experience of your creation.

We have morphed this post into an existential discussion of “should we allow them to cheat”, not “how to stop them from cheating”. The truest answer to the OP is: You can’t prevent, you can only deter.
I've been reading this post and thought I'd give my 2 cents.the original poster was asking about how to prevent save cheating, basically not allowing the player to save just before a hard task to stop the player from replaying that part if he or she made a mistake. It's impossible to stop this for a experienced hacker with time, but I think the original poster just wants to target the typical user so the comments left by others seem good enough.

When it comes to whether or not any of this kind of cheat prevention is needed, it depends on the design. Honestly, if they save just before something difficult so they don't have to replay the entire level each time, is it really cheating as they still need to complete the level. Altering the save file to skip things should always be prevented is a whole other story.

If the levels are short not being able to save makes sense as the user won't have to redo hours of work. In this case, simply don't allow saving mid-level. The save file always points to the beginning of an unstarted level.

If the levels are long, let them save whenever. I remember years ago when I played Final Fantasy 7. I always saved before hard parts because if I didn't and had to start over, i'd have quit the game. But I ended up finishing the game twice, the second time trying to 100 percent the game.

Learn all about my current projects and watch some of the game development videos that I've made.

Squared Programming Home

New Personal Journal

Often times, this kind of thing, in the form of modding, props up games and gives them life far beyond the finite amount of content that you can provide. There are still people buying Half-Life 2 (2004) and Rome Total War (2004) & Medieval Total War (2006), at least in part because of the community-created mods that exist for these games. Hell, half of the Valve IP is derived from popular Half-Life mods: Counter-Strike, Day of Defeat, Team Fortress.


Sure, an active modding community places more strain on you to produce a better product the next time around. But you could also look at it as free A/B testing, and at worst, even if a mod becomes much better than the content that you created(not an uncommon situation... I don't think any of the games I play regularly are unmodded), users still need to purchase the base game to run the mod.

No modding support will be in my games.
Isn't modding cheating? I read that users have no right to mod a game except the game devs add support for it.

UNREAL ENGINE 4:
Total LOC: ~3M Lines
Total Languages: ~32

--
GREAT QUOTES:
I can do ALL things through Christ - Jesus Christ
--
Logic will get you from A-Z, imagination gets you everywhere - Albert Einstein
--
The problems of the world cannot be solved by skeptics or cynics whose horizons are limited by the obvious realities. - John F. Kennedy

I think this is more like the player doesn't have a "save" option-- the game just saves at certain set points in the game. The OP (I think) just wanted to know how to prevent those automatic save points from being "backed up" by the player. If you have the option to play a "hard core" mode where "dead is dead", then this is a legitimate concern to the programmer.

No modding support will be in my games.

Isn't modding cheating? I read that users have no right to mod a game except the game devs add support for it.

You are correct that users have no right to mod a game, they also have no right to not mod a game. They can either do it or they cannot do it. They couldn't sell it or distribute it legally without permission from the copywright holders of the software that they based their mod on (as far as I understand). This does not stop them from doing it for themselves.

Modding could possibly be in the form of creating/performing a cheat. In the context of the discussion, it is cheating. What I am saying is that in a strictly single player game, where what one player does in their game has NO bearing whatsoever on a player playing their copy of the game, cheating is irrelevant and you are wasting your time trying to prevent it. The only one you are satisfying with your attempts to prevent cheating is yourself.

The idea of creating a game is to make something that someone will have fun with. I fail to see the problem of players altering a game so that they enjoy it more is a bad thing, and such alterations have zero affect on the other players of said game. I see it as a good thing. Are they altering the experience I planned for them? Yes. Is this bad? No.

You are trying to give a ball to a group of kids so they can play basketball, but get upset when they decide to kick it around and play soccer instead so you run out and say "No! You must play the game I want you to play, basketball!". I give them a ball with the intent for them to play basketball, and when they start playing soccer I would be estatic because they are having fun with something I gave them.

My point with all this is to save you time by having you not worry about something in your design I think you should not worry about and to help you create a game that will be more fun for people. I think you have placed your game/idea on a pedestal and think it a kind of personal insult to yourself and your creative idea for anyone to not interact with it in the way you want them to.

1. Make it so stupidly freaking complicated that people will look at it and say it's not worth the time.

2. Online database - save and load to/from it, and only to/from it - permitting that your server software doesn't get leaked or something and someone goes and makes their own server emulator...

You could like, encrypt the save data with a key - don't forget to generate 500 thousand keys at this point and maybe 500 different operations that looks like save-game encrypting, then maybe make it so that it loads the key from a bunch of randomly injected assembly code in the class that starts up the game, or the menu or whatever from the last time you saved, into an empty key object in memory somewhere, which is used to load the save...

hmm. I guess when you save, it could create like 5,000 "fake keys" along with it, where only a few of the injected commands actually build the real key...

I don't really know, this is just some crazy idea that would fall in the "stupidly complicated" category. I guess there's no way to really stop people from reloading old saves unless you ran the actual game from the server...

In the past what I have done to prevent saving is having a separate file that acts for a "checksum" to check if the file has been altered. You may also wish to compress a file or store it in an obscure location. You can use ids within the save that make no sense for a human to read. If you want to go REALLY far then you could add them all together.

As far as it goes for databases, at least when I am writing php code for websites I try to keep the least amount of information as possible on the client side. A good sample I guess of keeping your business side of your application separated from you client side would be cakephp's Model-View-Controller architecture that I believe Iphone also uses.

Hope this helps someone. Honestly I hate cheating in games and I try to keep things away from players unless it can be intentionally modded.

This topic is closed to new replies.

Advertisement