I was about halfway through a game called "Final Fantasy XII: Revenant Wings" on my Nintendo DS. I was having a great time and loving it until a stupid bug wiped out all the work I'd put in and made me start over.
When I was in the middle of a particularly involved battle, the red "low battery" warning light came on, so as soon as I finished I tried to save my game. Big mistake. The DS used up its remaining power during that instant and turned itself off. When I plugged it into the charger and turned it back on, I got a message saying that my game file was corrupt and had been deleted.
OK, in retrospect, I should have plugged my DS into the charger before I tried to save my game. Still, it should be impossible to destroy your old information by writing a new version of it. That's just good design. Unfortunately, FFXII doesn't have a good design. See, the problem is that FFXII saves its game by writing over the pre-existing save file. Since the power died during that write, the results were half old game and half new game. Hence corrupt. Hence deleted. Here's how a competent programmer would handle the same situation:
- Create a new save file and write the information to it.
- Delete the old file.
See the difference? At no point do the two files get mingled together, and the old file stays valid and ready to use until the new one is completely written. In the absolute worst case of a power failure during the saving process, you'd lose the new information but the old data would still be intact and safe.
I don't know whether the buggy code was written by Square Enix, or if they were using Nintendo's built-in game saving method. Regardless, it's dumb and should be fixed ASAP for all new games.






Well, the two options you
Well, the two options you (Kirk) mentioned should take care of that.
Spare a thought for the PC owners
I'm a PC gamer but it happens there. If anything when a PC messes up its just not your saves on your favourite games that get's corrupted, The entire operating system goes down as well!
I (almost) feel your pain
It will be nice when something other than Windows comes along that most games will support. It's awful to think of losing data just because your computer crashed.
Use two save files
I've also had the same problem for a while. But now I try to use two save files so whenever I'm at any save points, I make it a point to save two files at that file so to prevent any corruptions of the files due to any mishaps.
Similar problem
I've had similar problems in the past. I've had the game stall/hang during the save process and lost hours (HOURS) of work. One of my games was notorious for hanging during save, so what I ended up having to do is maintain two save points and keep them in sync. That way, if one corrupts, I should (theoretically) still have the old one to fall back on. The next save would be to overwrite the corrupt save, and then save again to the other slot.
With PC's, the save should happen smart. First, save as a new file. Once that's done, delete the old. This way, if something happens during the save, you'll still have your old one to fail back on.
The problem with Consoles (at least most consoles), you might not have the needed space to store the extra file, so the game must overwrite the save in place. This kind of screams for a versioned save file though. Incorporate a small RCS, CVS, or something inside your game save. Make it transactional! :)
I've been doing the same
I've been doing the same thing where I routinely save to the first slot, but also save to the second slot every now and then as a backup.
I realize that space is pretty limited on a console, but I think it should still use a smart save whenever possible. For example, if the user still has one slot free, then use that space hold the newly saved file. It wouldn't take any more room but would be much safer.
Post new comment