Man, I
wish bugfixing was as simple as non-software devs seem to think it is.
Let's do some size comparisons, shall we? Rome II, a game from 2013, had 3 million lines of code. That's twice as many
lines as there are
words in the entire Song of Ice and Fire series of novels - and each line of a program contains multiple words.
Imagine editing an entire series of novels, but every time you touch a single word on
this page, it could interact with words 1000 pages away.
Now additionally imagine that users aren't reading the actual text, they're reading a story
generated by that text. So every time they encounter a bug, you have to first find where, in this giant stack of novels, there was a faulty instruction that caused the bug. Often it isn't a single instruction, but lines on different "pages" that, when taken together, cause problems. When you edit something on page 935 of book 3, you have to be reasonably sure it won't cause bad interactions with any other pages in any of the other novels.
So even if the source of the bug is easy to find, and even if it's easy to fix (and those are rarely true), a dev can't just make the edit and throw the update into the wild. The updates have to go through multiple rounds of quality assurance and certification, a process which takes weeks even for the kind of software I work on (which is much smaller than video games).
And even then, there will always be bugs. It's pretty much physically impossible to write software of that size without having bugs.
Heck, last I checked Dragon Age: Origins still crashes out mid-combat on multicore processors. That isn't surprising, since almost everyone had single core machines when it came out... and issues with multiple cores are often incredibly difficult to debug, especially if the software wasn't designed for multiple cores from the start. As a sidenote, this is how I know that many of the people nostalgic for Origins haven't played the damn game in years.