I got several questions from readers this week, all of them related to how large games are. So I'm going to answer them all in the same column.
Big fan here. Love your writing. Keep it going, man!
So, the other day I saw that one of the recent Metal Gears made fun of the fact that you don't have to change CD's anymore. (I think it was 4...) And that got me thinking... If Metal Gear Solid (from the PS1) was made today, with today's technologies, would the same game, audio, graphics and content fit in a single CD? What I'm asking is... can new technologies in file compressing and optimizations make old games considerably smaller, thus requiring less disks?
Thanks a lot,
Rodrigo Lima Diniz
Short answer: A very annoying "maybe".
Data compression is the science of reducing the size of data, usually to reduce its storage or transmission footprint. We've gotten pretty good at it in some cases, and sort of hit a wall in others. In particular, we're really good at compressing video.
A single frame of uncompressed video at 1080p takes about 6,220,800 bytes, or about 6 megabytes. A Blu-ray disk holds 50 gigabytes, about 8,000 times that. It sounds like a lot, but at 24 frames per second that's only just over five minutes of full-color 1080p video. So without compression, a Blu-ray disk wouldn't be able to hold a movie much longer than five minutes. But according to Blu-ray.com, it's apparently possible to get up to nine hours of video onto one.
Like I said, we've gotten really good at video compression.
However, video data is a very special case. When you're watching a movie, very few of the pixels change from one frame to the next, and often they don't change very much. This, combined with the fact that it's often possible to throw away lots of color information (particularly in dark scenes) without harming the image for the average viewer, and it's possible to get these amazing compression rates. (If you're curious, I wrote a longer explanation of video compression a few years ago on my blog.)
Unfortunately, videogame data is nothing like video data. The bulk of game data is comprised of texture maps. Those are also images, but unlike video frames it's a safe bet they're not 95% the same. Compression is all about finding and removing redundant data and repeating patterns. There's a limit to how much you can compress something without losing any information.
When we compress raw binary data, our compression rates don't get much better than 2:1 or perhaps 3:1. Also, our general-use compression techniques haven't advanced much in the last 20 years, either. Our computers might be a few thousands times faster, but our (non-video) compression algorithms have barely changed.
Maybe a tricky algorithm comes along now and again to shave an extra few percent off the final size, but there haven't been any dramatic leaps forward. There's a theoretical limit to how small you can compress something. (Obviously it wouldn't make any sense if you could put a zip file inside a zip file and continue to see the data get smaller. In fact, if you put a zip inside of a zip, the end result will often be a file that's slightly larger, since the data inside is already as small as it can get.)
I don't know how big the first Metal Gear Solid game was, other than the fact that it came on two disks. I also don't know if the game was already compressed. Game developers don't want to have to compress the game data if they don't have to. It makes loading times longer (this was more of a concern in the 1990s than today) because the computer has to spend time un-compressing the data before it can be put to use. But distribution costs were a big deal, and every disk ate into your bottom line. So if Hideo Kojima was finishing up MGS1 and found himself with 2 and a half disks with of content, then they might have worked hard to squeeze all of it onto just two disks by compressing things and hurting loading times. On the other hand, if the final game was 1.9 disks big, then unless they could compress it all the way down to one disk, there would be no point in compressing anything at all.
To sum up: We've made almost no gains in general data compression in the last twenty years, but it might just be barely possible to fit MGS1 onto a single disk if the original was (say) a disk and a half worth of uncompressed data. We could use heavy-duty compression on the data and make it fit, and a modern CPU would be able to unpack it quickly without giving us long loading screens.