Posted April 09, 2012
begolf00: Hi wpegg I like your post, it gave me some insight into why developers do what they do. I think I can understand where your coming from. The customers you deal with, will always be the majority over someone like me and as such your decisions make sense. I don't know if I agree with you on some points that would apply to someone like me though.
What do you mean exactly by "things that may confuse my application". Is this a programming decision?
The way I see it if a gamer starts messing around with files and then all of a sudden the game does not work any more they shouldn't be asking the developer for support. Either reinstall or put the settings back to the original (life's not perfect though is it?). AC is a good example of having some configuration settings that can be tweaked that are located in appdata/roaming. They shouldn't be there in my opinion, a lot of other games don't put that file there so why should AC. I know BG keeps their config files in the install location which I like.
I think the purchaser of the software should at least have the decision though on where to install saved game data.
So, by "confuse my application" I mean modifying files to a state my app wasn't expecting. That is indeed a programming decision. Imagine from a gaming perspective if a savegame said someone was dead, but also said they killed someone after that point (and weren't undead). Then I come to assign XP, and my code bombs out. It's not a case an application should not consider, but you can't catch them all. So I use AppData to avoid that file being publicly manipulated. In my opinion you have no more right to that file than decompiling the exe and changing its innards, then recompiling it and running it. It's not a defense so much as a statement that this file is not to be played with. What do you mean exactly by "things that may confuse my application". Is this a programming decision?
The way I see it if a gamer starts messing around with files and then all of a sudden the game does not work any more they shouldn't be asking the developer for support. Either reinstall or put the settings back to the original (life's not perfect though is it?). AC is a good example of having some configuration settings that can be tweaked that are located in appdata/roaming. They shouldn't be there in my opinion, a lot of other games don't put that file there so why should AC. I know BG keeps their config files in the install location which I like.
I think the purchaser of the software should at least have the decision though on where to install saved game data.
Limitation of scope is an important principle for a coder, and as a result we only want people changing things we publish as changeable. There are ini files etc. that are expected to be tinkered with, but there's a limit.
As for save game data (and I think you're mixing this in with other data here, but lets focus on just savegames), If I have a game that syncs with the cloud (i feel dirty using that expression, but it fits), or that is involved in online play. I have to be able to manipulate it with confidence that I have access to the file. These things suggest that the file should not be publicly exposed, as ultimately it is not the final source of truth of the file, it is just a local cache.
As for your assertion that the user should have access to the save data, I've noticed that you've not mentioned the registry access. This is just data, no more or less than a file. In fact if a developer were so maniacal, they could save games in the registry in a load of sequential keys. The cold truth is that your hard drive cannot be considered "The game" anymore, it's just part of it. If a game is written to be entirely standalone (any linux one would) then you'll get your wish.
I should point out at this point, that I am not a games developer, and am drunk.