It's like someone crapped in my coffee...
Sam Hart2010-01-13 06:33:34
Okay, a few posts ago I mentioned that I really am enjoying Dragon Age: Origins. I posted many loving words about it calling it a "frighteningly rich and deep RPG with a tremendous amount of replay value". I also suggested it may very well "[usurp] Oblivion as my #2 most played RPG". Well... I may be ready to retract some of that praise and enthusiasm after what happened to me tonight....
First of all, I do want to say that DA:O is a really good game. I've finished one play-through (Dwarven chick named "MooseKnuckle", who bedded Alistair only to subsequently get annoyed at his incessant prattling for the rest of the game), and have been well into my second play-through (Elf mage dude named "Riff Raff", who has been all about the Benjamins, baby). Up until tonight, I've thoroughly enjoyed my time in DA:O.
For my second play-through, I'll readily admit I have exploited a glitch whereby you can get easy gold in the game. Gold was the one thing I never had enough of in the first game, and for my second game I really wanted to pimp out my characters. I personally don't think I exploited this glitch in excess, I really had only managed to amass about 117 sovereigns (which is less than I earned legitimately my first game) and was yet to really spend time doing the glitch in order to get some of the uber items I wanted.
Last night I finished up the last of the three "Warden Treaties" quests in my second play-through, as well as finished every possible side-quest that can be completed before the Landsmeet. I was very proud of myself as I had unknowingly skipped most of these side-quests my first play-through due to my eagerness. I saved my game, and went to bed.
Tonight I sat down to play the game, like I have many nights before, but instead of actually playing, I encountered a rather nasty bug that seems to be caused by basic developer neglect. When I went to load my game, I encountered the following error:
My first thought at seeing this error was that something had gone awry during my last save. Perhaps an Xbox dashboard pop-up had interrupted it at a crucial moment, or maybe I accidentally bumped the system as it was saving. Who knows? That's why you have multiple saves, right?
So I go to an older save. I get the exact same error.
Same error on an even older save. And again on a save older than that.
I wound up having to go back nearly three hours to find a save that wasn't "corrupt".
Panicking, I turned to Google to try and find the answer. As it turns out, this is known problem. Here's the basic gist of it.
You can sell the items you collect in the game to NPCs. Turns out, the NPCs will actually keep track of the items you sell them and allow you to buy them back. This is actually a pretty cool feature that I'm sure anyone who's ever accidentally sold a killer item in an RPG can appreciate. This feature works well, and seems fairly solid- As far as I know, no one has hit a limit where NPCs suddenly stop accepting items because they are "full".
When you go to load your game, however, there seems to be some sort of saved data check that occurs. What, exactly, is going on during this check I haven't the foggiest- it could be something as simple as checking the size of the save file, or something more complicated like having a fixed upper limit on a given array that details a given NPC's inventory. Somehow, once you get past a certain point in the number of items sold to an NPC, this saved data check fails and the game reports the saved data as corrupt.
Thus, by exploiting the glitch I mentioned above, you hasten yourself towards this bug. However, it's not required to hit this bug, as several people not using the glitch yet still getting this error can attest.
Since having these numbers of items in NPCs doesn't crash the game or otherwise trigger some sort of mechanism whereby some of the items are shed to make room for new items, it seems fairly likely that what we have here is two developers (or groups of developers) working on different bits of the code, each with subtly different ideas as to how this data should be handled and interpreted. The end result is a semi-sloppy mess where the same data can hork one aspect of the code (the load game segment), but leave another part running fine (normal gameplay and the save game segment).
I'm speculating here, but here's a really simple example of how such a bug like this might arise.
- In-game code uses some sort of re-sizable array to store NPC inventories. As more items are sold, the array gets re-sized to accommodate them. More items are stored, the array grows, and the game chugs along normally.
- When a save is requested, the in-game code passes the NPC inventory arrays to some sort of a saved game module. If the save-game module allows for arbitrarily sized arrays, it stores them as-is. However, if the save-game module doesn't allow for arbitrarily sized arrays, it may truncate (and corrupt) the data.
- Then a load is requested, the load-game code performs some sort of test on the saved data. The load-game code has a hard-upper limit to NPC inventory size, and when it attempts to load inventory sizes past that limit it horks. Or, if the saved-game code had a similar limit and truncated the data, the load-game code finds truncated (and corrupt) data and horks.
In the end, this is a pretty sloppy error. Admittedly, in a game the size of DA:O, it's understandable to have errors like this. But the error has been known for a couple of months now, and it seems pretty straight forward as what needs to happen to fix it. Yet BioWare hasn't even acknowledged it, let alone released a patch fixing it.
Meanwhile, I'm having to backtrack several hours in my game and left with this nagging fear that I may accidentally fill my NPC's inventory again and hit the bug even if I do refrain from exploiting the gold glitch (simply because I was apparently already pretty close to hitting the bug anyway).
I may wind up not playing the game until a patch is released that fixes this :-P